李海博



關鍵詞:智能船載終端;RK3288;硬件設計;軟件架構;全球導航衛星系統;船舶自動識別系統
中圖分類號:U666.1 文獻標識碼:A
0引言
隨著現代海洋技術和信息化的快速發展,船舶自動識別系統(AIS)[1] 和全球導航衛星系統(GNSS)[2] 等船舶導航和監控設備的需求量逐漸增加。船舶在復雜的海洋環境中需要對多種信息進行實時處理和展示,包括但不限于導航、位置跟蹤、海圖展示和多媒體信息處理。然而,現有的船載終端系統存在硬件性能較差、軟件兼容性不高以及信息整合方面混亂等問題。
為了解決上述問題,本文設計并實現了一款基于RK3288 [3] 的船舶自動識別系統智能船載終端。該系統不僅集成了高性能的硬件計算能力和豐富的外部接口,還具備高度模塊化的軟件架構,能夠進行各種功能拓展。本系統兼顧了實時性能和高度可靠性,能有效提升船舶的導航和信息處理能力。
本文首先介紹了系統的總體架構和各個組成模塊,包括硬件設計、軟件架構以及與外部設備的數據接口等。其次,對系統的實現過程和關鍵技術進行了深入分析。最后,通過一系列實驗來驗證系統的性能和可靠性。
1 系統硬件設計
基于RK3288 構建的智能船載終端具有多模塊、多接口的特性。這一設計不僅實現了與GNSS和AIS 模塊的集成,以便進行高精度導航和自動識別,而且通過隨機訪問存儲器(DDR4 RAM)[4] 和嵌入式多媒體卡(eMMC)存儲芯片確保了數據高速處理和數據長期存儲。系統還包括通用串行總線(USB)、高清晰度多媒體接口(HDMI)、422 差分信號串行通信標準(RS422)、揚聲器接口(SPK)接口,并通過串行外設接口(SPI)總線連接按鍵和屏幕低壓差分信號(LVDS)接口,從而實現與多種外界設備的高度互操作性。
1.1 設計需求分析
由于RK3288 具有優越的多核處理能力與數據高吞吐量,因此選用其作為本船載終端系統的核心處理單元,為復雜的數據流解析和處理任務,如GNSS和AIS 模塊的數據,提供了強有力的計算支持。加入DDR4 RAM 與eMMC 存儲芯片作為外掛存儲單元,旨在優化數據存儲與運行效率。DDR4 RAM 主要負責高速緩存運行數據,以減少讀寫延遲,提高數據處理效率。相對地,eMMC 用于持久地存儲關鍵系統信息,如系統配置文件和日志記錄。
多接口設計考量則是為了確保與其他船載設備和系統的兼容性和互操作性。USB、HDMI、RS422及SPK 接口的集成不僅拓寬了外設連接的靈活性,還加強了系統與外部世界的數據交流能力。RS422接口通過通用異步收發器(UARTs)與主處理單元連接[5],主要用于高穩定性和長距離的數據通信,特別是在船舶這種惡劣環境中。
在用戶交互方面,通過SPI 總線實現按鍵連接,旨在提供一種低延遲和高可靠性的用戶輸入方法。在視覺輸出方面,通過LVDS 接口與顯示屏連接,支持高分辨率和高刷新率的圖像輸出,以優化用戶體驗。
硬件架構如圖1 所示。總體而言,本硬件設計方案綜合多方面需求與優化目標,力求實現船載終端的多功能性和高性能運算,從而滿足航海安全和船員操作需求。
1.2 接口與驅動實現
1.2.1 接口設備
考慮到終端涉及多種功能模塊,如GNSS 和AIS,以及多樣的用戶交互需求,RK3288 的多接口能力成為解決方案的核心。RK3288 不僅具備出色的計算能力,而且支持多種通信協議和接口標準,這對于本系統是至關重要的。
為了滿足各種海上導航和信息交互需求,本設計考慮了每個接口的功能定位和性能需求。USB 接口用于與其他船載設備或外部存儲設備的數據交換,而HDMI 接口則為用戶提供高質量的圖形輸出。這些接口的驅動實現都依托于RK3288 強大的系統資源和豐富的接口支持。
1.2.2 GNSS 與AIS模塊
本系統實現了GNSS 發出的NMEA0183 語句以及AIS 發出的AIS 報文的解析與利用。這一部分的具體實現細節涉及底層數據解析和上層應用之間的高效配合。其中,NMEA0183 語句的解析不僅可以獲取定位信息,還可以與其他模塊如AIS 等進行數據融合,以提供更為全面和準確的導航信息。
1.2.3 數據交換與傳輸
為確保數據的高速、穩定傳輸,本系統專門采用100 M/1000 M 網絡口作為數據接口。通過該網絡口,所有設備數據都能進行高效的交換和傳輸,從而為實時數據處理和決策提供可靠的支持。
接口與驅動的設計和實現是一個系統集成和優化的過程,需綜合考慮硬件、軟件和應用層多個方面。通過合理的接口設計和驅動實現,本系統在滿足各種復雜功能和環境需求的同時,也確保了系統的高效性和穩定性。
1.3 設計優點
1.3.1 高度集成與空間效率
本系統整合了RK3288 與多種外部模塊,具有高度的集成性。這一設計不僅簡化了硬件架構,還在有限的船艙空間內實現了多功能集成,提供了一站式的解決方案。
1.3.2 多功能接口與可擴展性
通過RK3288 的豐富接口支持(包括但不限于USB、HDMI、RS422),本系統確保了極高的可擴展性。各種接口的多樣性允許系統靈活地適應不同應用場景,并能輕易地進行功能升級或擴展。
每個功能模塊都采用獨立的設計方案和特定的通信接口,并形成設計規范。這種模塊化設計不僅簡化了系統的硬件結構,還在產品更新換代時實現了引擎層和應用層代碼的無感化替換。
1.3.3 環境穩定性與可靠性
考慮到海上環境的多變性,特別是潮濕和鹽霧的影響,本設計對所有硬件接口進行了防潮、防鹽處理。這極大提高了系統在惡劣環境下的穩定性和可靠性。
1.3.4 數據處理能力與用戶交互性
本系統能夠高效地解析和處理來自GNSS 和AIS 模塊的復雜數據,支持高精度的導航和監控。同時,通過LVDS 顯示屏和SPK 接口,本系統提供了豐富和直觀的用戶交互方式,進一步提升了用戶體驗。
2 系統軟件設計
2.1 軟件系統架構
基于RK3288 搭載的Android 操作系統,智能船載終端的軟件設計主要由一個主程序及其子模塊構成[6]。主程序是整個軟件系統的核心,負責統籌和控制各個子模塊的運行,如圖2 所示。
從業務角度出發,主程序可劃分為兩大核心功能模塊:NMEA 信息服務(NMEA Service)模塊[7]和用戶交互模塊。① NMEA 信息服務模塊: 這個模塊承擔了對GNSS、AIS、水深等數據的解析和處理任務。除了數據解析和處理,該模塊還負責管理各個數據源,并對外提供信息查詢服務。為確保數據處理的穩定性和可靠性,NMEA 信息服務模塊在單獨的進程中運行。②用戶交互模塊: 作為承擔接收和處理信息的角色,這一模塊負責獲取、加工和展示由NMEA 信息服務模塊提供的通導信息。此外,該模塊還負責接收和處理用戶的操作反饋,如界面操作或命令輸入等。
數據和命令的交換是通過gRPC(進程間通信)機制完成的[8],確保了系統各組件能夠高效、安全地共享信息。整個軟件系統采用模塊化設計,優化了系統的可維護性和可擴展性。特別是采用單獨進程來運行NMEA 信息服務模塊,既確保了服務的穩定性,又方便了其他模塊或應用通過gRPC 來獲取必要的服務信息,從而實現了功能的靈活擴展。
2.2 NMEA 信息服務模塊
NMEA 信息服務模塊是系統主程序的核心組成部分,負責對由內部AIS 和GNSS 模塊接收到的信息進行全面處理。該模塊接收通過NMEA0183 和NMEA2000 協議通信接口輸入的數據,執行數據解析和融合操作,并通過一個設定好的信息訪問接口進行信息發布。因為NMEA 服務是其他業務模塊的基礎,該模塊在系統啟動后會立即自動初始化并開始其數據處理活動。
2.2.1 線程架構
該模塊內部采用多線程架構以提高數據處理的效率和并發性,具體分為兩個主要處理線程。
(1)串口數據處理線程。此線程負責從串口讀取NMEA 數據,包括但不限于GNSS 和AIS 信息。讀取完成后,解析這些數據并將得到的信息實時推送到信息處理線程進行進一步整合。
(2)信息處理線程。此線程的主要職責是進行串口管理和NMEA 信息整合。它會接收從串口數據處理線程推送過來的各類NMEA 信息,并根據預設的規則和算法進行信息的整合和融合。
2.2.2 功能實現
解析算法能快速地從原始NMEA 數據中提取關鍵信息,而高度復雜的數據融合算法則確保了從不同源接收到的數據能被智能地整合,從而能提供全面且精確的導航和船舶狀態信息。
外部信息訪問主要通過gRPC 或其他定制的通信協議來實現,以便其他業務模塊或應用方便地訪問和利用這些處理后的NMEA 信息。該模塊在整個系統中占據核心地位,是整個系統穩健運行的關鍵,體現在高數據處理效能和持續可用性方面。
2.3 海圖模塊
海圖模塊是用戶交互模塊中的樞紐,具有匯集和整合定位、航向、航速和AIS 信息的功能[9]。這些信息經由海圖模塊處理后,將直觀地呈現在用戶界面的海圖上,以便為船舶提供全方位的安全通航信息。該模塊包括兩個關鍵線程,即海圖安裝線程和切片線程,如圖3 所示。
海圖安裝線程主要負責將系統電子航海圖(SENC)數據加載到特定的SENC 數據庫中。盡管SENC 數據庫的數據量龐大,但通過切片線程與OpenGL(開放圖形庫)子集ES,并結合使用GPU加速優化性能。這種設計方式顯著提高了圖像渲染效率,實現了每秒30 幀的顯示性能,從而增強了用戶體驗。
切片線程執行的是一系列高度優化的數據處理操作,包括裁剪和瓦片化。在這個過程中,海圖數據首先按照預設的規格被切割成多個瓦片。每個瓦片都是經過精確裁剪和數據抽稀的SENC 海圖小區域。這些瓦片進一步被轉換為高效的MBTile 格式并存儲,以便快速加載和渲染。
在圖像渲染方面,模塊采用OpenGL 進行圖形繪制[10]。具體而言,各種海圖元素如點、線、面和文字符號被三角化后,通過特定的著色器程序傳送給GPU 進行渲染。這種方法不僅大幅減少了CPU的負擔,而且顯著提高了圖像渲染的效率和精度。
海圖模塊的設計和實現突出了其在整個系統中的核心地位。通過高度優化的數據處理和高性能的圖像渲染,它在提供安全通航信息方面起到了不可或缺的作用。
3 實驗與評估
3.1 自主模式測試與評估
在自主模式下,執行了多項測試,包括發射位置報告、接收頻道A 和頻道B 位置報告、在臨近時隙接收以及接收性能測試。所有測試都在標準環境中進行,并且待測設備(EUT)成功地通過了所有測試項目。
(1)發射位置報告:EUT 成功發射了超短波數據鏈(VDL)消息,與預期一致。
(2)接收頻道A 和頻道B 位置報告: EUT 在預設時間段內成功接收了從其他設備發射的位置報告,無任何錯誤或延遲。
(3)在臨近時隙接收: EUT 能夠正確處理在臨近時隙內發生的數據接收,證明了其處理能力和靈活性。
(4)接收性能測試: 在高負荷條件下,EUT 依然能夠保持高性能,證實了其在各種情況下的穩定性。
3.2 指派模式測試與評估
在指派模式下,對小組任務和基站預留兩個方面進行深入的測試。
(1)小組任務:在自主模式下,EUT 能成功接收和執行發射的小組任務指令消息,結果符合預期。
(2)基站預留:EUT 能準確地在預定的時間段內發射預留消息,確保了系統的穩定運行。
3.3 調查模式/ 詢問響應測試與評估
這一部分主要測試了EUT 對詢問消息18 和24,以及消息19 的響應。
(1)詢問消息18 和24:EUT 成功地響應了通過VDL 發出的詢問消息,并返回了正確的消息18 和24。
(2)消息19 的響應:在自主模式下,EUT 成功地響應了消息19 的詢問,結果符合預期。
4 結論與展望
本文成功設計了一款基于RK3288[3] 的船舶自動識別系統智能船載終端,并進行了實驗驗證。通過對NMEA 信息服務模塊、用戶交互模塊及海圖模塊的深入研究與設計,得出該系統不僅在技術層面達到了高度優化,而且在實用性和用戶體驗方面表現出色。值得一提的是,設備在自主模式、指派模式和調查模式/ 詢問響應下均順利通過了各項功能和性能測試,充分證明了其可行性和高效性。
未來仍可在數據融合和分析、用戶體驗、系統安全性、模塊擴展性等多個方向進行深入研究。特別是在系統安全性和模塊擴展性方面,有待進一步強化,以適應更為復雜和多變的海上環境。期望通過持續的優化和改進,該海洋導航系統能在未來得到更廣泛的應用,并持續推動相關領域的技術創新。