在以往內河航道運輸中,航標僅可提供單一視覺導航服務,且極易出現漂移、丟失、故障定位不及時問題,同時還需要人工輔助采集風向、風速、GPS(全球定位系統)信息,工作繁重且安全隱患高發。基于此,利用現代智能技術,研究開發一種具備安全輔助機制的內河航道智能航標系統就具有非常突出的現實意義。
根據《航道養護管理規定》(交水發〔2010〕756號)、《中華人民共和國航標條例》、《中華人民共和國內河交通安全管理條例》的相關要求,基于現代智能技術的內河航道航標系統開發需求,航標的運行正常率在90%~99%以上;同時,根據航道船只貨運量、年度通行情況劃分航道級別,以此進行航標的智能編號,便于后期維護[1]。
如圖1所示,基于現代智能技術的航標系統包括系統后臺、網絡節點、船載節點、組網節點4個模塊[2]。其中系統后臺主要是針對內河航道行駛船只,搭載以GPS 模塊、ZigBee(紫蜂,低速短距離傳輸的無線網上協議)模塊,實時獲取船只位置信息。隨后,經紫蜂組網將獲取的內河航道運行船只位置信息發送至組網節點;網絡節點負責以嵌入式ARM 主機(Advanced RISC Machine,RISC 微處理器)為核心,面向各個船載節點發出數據、航標節點以及氣象傳感器、潮汐傳感器、水文傳感器模塊并進行解讀、剖析,經4G 網絡將全部解析后的數據發送至網頁服務器。航標管理者可以在后臺PC 端監控模塊進行相關數據的實時處理;船載節點搭載了一個MCU(Microcontroller Unit,微控制單元)、紫蜂,可以與組網節點實現紫蜂點對點通信;組網節點搭載在航標燈上,包括紫蜂和全球衛星定位兩個模塊。

圖1 智能航標系統總體結構
基于現代智能技術的航標系統硬件選用模塊化開發技術。即在紫蜂組網特點基礎上,將各承載紫蜂節點、全球衛星定位模塊的數據轉發至網絡節點,在網絡節點上采用RISC 微處理器架構的Tiny641DK 開發板,經串口接口連接傳感器(溫濕度、風速風向等);隨后再經模塊,將采集的環境信息、航標節點位置信息轉移發送給后臺服務器。主控子模塊是微處理控制器,包括若干個模擬比較器、內部時鐘源、模數轉換器、串口、定時器/脈寬調制器、鍵盤終端模塊及輸入/輸出管腳[3]。
基于內河航道運輸特性,現代智能技術應用下的航標系統核心硬件為嵌入式主控制器,主要經USB、UART 串口與DHT11 溫濕度傳感器(可輸出數字校準信息號)、水流傳感器、降雨量傳感器、大氣壓強傳感器、能見度及水深傳感器、YGC-FX 風速風向傳感器(高強度材料、低延時)相連接。以風向傳感器為例,其輸出為4 路5VTTL 開關格雷碼,需要經電阻分壓后降至3.5VTTL 電平,并送入單片機IO管腳;同時考慮到固定在航標燈上的風向標極易跟隨航標燈的漂移而旋轉。因此,為避免標定方向變化,需要在硬件上添加一個電子CMPS04 羅盤模塊;能見度及水深傳感器自身帶有485 總線輸出,可以直接采用航標蓄電池的6V 電壓提升至24V 供其與多功能航標終端對接通信;全球衛星定位模塊則采用功耗低、性能優越的UBLOXNEO 芯片,包括USB、單排串口兩種方式,且可支持熱啟動;電源模塊需要使用穩壓電源LDO TPS56065 芯片,其具有高效率、低壓差的特點,可以將航標燈上電池電壓降低至航標系統運行水平。
基于現代智能技術的航標系統軟件采購結構劃分方式,包括底層、中間層、上層三個層次。其中,底層組網節點涵蓋了路由節點(搭載全球衛星定位模塊)、主控節點、終端節點(搭載全球衛星定位模塊),負責數據采集、組網;中間層組網節點包括RISC 微處理器上的應用程序,即客戶端傳感器采集、發送以及嵌入式Linux系統移植;上層程序主要負責基于網絡節點的數據收發、監聽,即接收經網絡傳輸的各節點航標全球定位系統數據、氣象環境信息(網絡節點),并將其實時存入數據庫內。
在底層紫蜂終端軟件設計階段,為了保障其在搭載各航標時順利獲取航標經度及維度信息,可以利用自組網的方式,經紫蜂路由節點,將全球衛星定位模塊上承載的航標經緯度數據發送到紫蜂網關節點。紫蜂組網拓撲結構多樣,對應的應用范疇也具有一定差異。基于內河航道信息“多級跳”特點,本次采用具有自組織、自愈合功能的MESH 網絡結構。主控節點與嵌入式主機開發板連接,實現數據實時遠距離交互;終端節點收集數據,經路由節點轉發至主控節點,達到多層級數據實時、全面、準確采集的目的[4]。
在中層嵌入式客戶端設計階段,可以在RISC 微處理器架構上進行類UNIX 操作系統搭建。并利用C語言,調用各接口,將風速風向、航標經緯度、溫濕度信息傳送至服務端。具體傳送程序主要依據Pthread多線程思維,經創建線程互斥鎖→創建形成→設置串口參數→獲取航標燈質數據→獲取互斥鎖→設置串口參數→串口獲取參數→LCD 顯示串口數據流程,實現多個終端傳感器數據的連接與處理;并經Socket 網絡編程,實現數據→服務器端的發送,在數據成功發送至服務器端后則可以順利解鎖。
在上層服務器端軟件開發時,需要運用JavaSocket編程理念,配合select 多路復用機制,實現嵌入式客戶端航標數據發送及多客戶端的同時監聽。其具體流程為:開啟服務端→初始化Socket 服務端→Bind 綁定IP地址、端口號→啟動Listen 監聽程序→文件描述符初始化為0→設置文件描述符→啟動select 多路復用機制→等待客戶端連接請求→添加描述至連接描述符數組→小于最大文件描述符數時處理數據并存入數據庫→在PC 端顯示。需要注意的是,數據庫內的數據不僅包括航標經緯度信息,而且還包括航標周邊礁石區、重點航道、淺灘等,需要在服務器端以編程的模式模擬對應類型的數字通道;隨后以內河航道船舶的安全距離為安全評測依據,結合氣象環境參數,預先估測相向碰撞軌跡和結果,適時發出預先警報消息及解決方案。
鑒于現代智能技術應用下的內河航道航標系統實時在線運行,功能模塊多種多樣,因此,可以硬件平臺為基礎,利用黑盒專用性測試手段,確定其在執行任務時的表現。同時利用恰當的測試方法、工具,對系統終端軟件、硬件外設備配合協同度進行測試。
內河航道智能航標系統測試包括模塊測試、硬件測試、系統測試幾個階段。
模塊測試需要在編程結束后,以穩定硬件為基礎,在無其他可用數據傳遞模塊的情況下編寫應用測試程序,并對各程序單元是否與需求功能相符進行逐一評測。比如,編寫AD 程序,讀取工作電流、蓄電池電壓等。
硬件測試需要利用高精度電阻表、萬用表、電壓表等工具,對各電路板、硬件模塊進行逐一測試。比如電源管理模塊電壓是否處于正常水平、電流電壓轉換模塊是否處于正常運行狀態等。
系統測試需要面向整個軟硬件系統開展測試,比如對航標系統進行長時期壓力測試并判定其長時期工作平穩性能等。具體測試時,可以利用白盒測試(根據源代碼組織結構尋找軟件缺陷)、黑盒測試(根據硬件工作現象、程序功能尋找軟件缺陷)等不同方法,判定系統是否與規定要求相符合。
在實驗室內,對航標系統終端各模塊、傳感器運行情況進行72h 測試,得出航標系統終端各模塊、傳感器均處于正常運行狀態,與系統開發要求相符;同時于當月在淮河進行200h 實地測試,得出系統、傳感器無異常,且數據編碼、傳送較為準確、可靠,達到了預期系統開發要求。
綜上所述,基于現代智能技術的內河航道航標系統,可以經后臺服務端對航標工作狀態、位置進行遠距離監控,切實實現智能化管理。基于此,針對當前航標系統的弊端,可以選擇以ARM 主機、ZigBee、GPS 分別為主處理器、節點通訊器、定位裝置的嵌入式Linux(自由和開放源碼的類 UNIX 操作系統)系統架構;結合航標的工作狀態進行各航標節點通訊組網,預先對航道軌跡進行碰撞分析并制定防護策略,降低后期維護成本及人員工作壓力。