孫良義 段建紅
(91388部隊94分隊 湛江 524022)
船體航向、姿態、位置和速度不但是船舶導航的重要參數,還是以船舶為測量平臺進行各項湖上、海上試驗的重要數據。AHRS(Attitude and Heading Reference System)如慣性導航系統和GPS姿態測量系統均可提供連續性好、穩定性高的航向、姿態信息,DGPS(Differential Global Position System)可提供連續、高精度、實時的時間基準、位置、速度等數據,兩種系統都被廣泛應用于各項試驗中[1~3]。嵌入式系統以其低功耗、小體積、高穩定性、便攜和軟硬件易裁剪等優勢[4~5],在GPS領域的應用中占據重要位置。本文研究基于ARM920T內核的嵌入式微處理器S3C2440A和WindowsCE6.0的DGPSAHRS組合導航系統,以解決上述常規系統在空間狹小、條件簡陋的平臺環境中存在的架設、供電困難,使用維護不便的問題。
系統硬件主要由四部分組成:ARM主控模塊,DGPS模塊,AHRS模塊,供電模塊。ARM主控模塊負責整個系統的運行,DGPS模塊負責輸出GPS定位信息,AHRS模塊負責輸出姿態和航向信息,供電模塊負責為其它三個模塊供電,硬件構成如圖1所示。

圖1 系統硬件設計結構圖
核心板由Samsung公司推出的32位400MHz微處理器S3C2440A[6]、64MB的SDRAM 和64MB的 Nand Flash存儲芯片組成,外圍擴展1個RS232串口、1個UART接口、1塊7寸LCD觸摸屏、電源接口、RTC電路、復位電路、網絡接口、JTAG接口、SD卡接口、USB口等接口資源。SDRAM存儲器用于運行系統主程序,具有掉電保護功能的Nand Flash存儲器用于存儲操作系統內核、Bootloader的啟動代碼和開發程序,擴展的RS232串口COM1用于接收AHRS模塊輸出的姿態和航向信息,擴展的UART有3個串口,串口COM2用于采集DGPS模塊輸出的數據信息,7寸TFT電阻式觸摸屏用于人機交互和顯示導航軟件信息,USB口用于下載WINCE內核文件及與軟件開發主機進行數據交互,JTAG調試接口用于硬件調試和燒載Bootloader。
由Crescent GPS OEM板HC12、電平轉換板和差分天線組成。HC12[7]是一款高性能單頻12通道接收機,定位精度可達亞米級,數據輸出采用NMEA-0183標準,速率可高達20Hz。HC12有3個全雙工3.3VCMOS電平串口(A,B,C),COM A直接與 ARM 主控模塊COM2相連,用于進行HC12參數設置或輸出定位數據信息,COM B電平轉換為RS232電平后可接入PC機,同樣可用于HC12參數設置或輸出定位數據信息,COM C串口備用。HC12輸入電壓為3.3V,而供電模塊輸出電壓為5V,需要進行電平轉換。采用AMS1117-3.3芯片轉換電源電壓,MAX3232芯片轉換串口電平,通過1個34Pin的轉接頭實現HC12電源供電和外部通信,電平轉換電路見圖2。

圖2 電平轉換電路原理圖
差分天線選用Hemisphere公司的A30天線,它可接收GPS、SBAS和Beacon信號,具有多波段接收能力,能在高電氣噪聲和其它干擾條件下保持高精度的信號接收。
選用荷蘭XSENS公司的 MTi[8],它是一個基于微電子陀螺技術的微型姿態、航向測量系統,內部處理器功耗低,可360°全方位輸出姿態和航向,輸出的航向角無漂移,具有長時間穩定性和快速動態響應的特點,其縱傾橫滾精度小于0.5°,航向角靜態精度小于1°,動態精度小于2°。
由5V充電電路、鋰電池組和升降壓電路組成,其中鋰電池組含有八塊Samsung公司18650型2400mAh鋰離子電芯。該模塊輸出參數為電壓5V、電流1A,分別為ARM主控模塊、AHRS模塊和DGPS模塊供電,供電時間不少于5小時。
系統軟件基于WINCE6.0[9]操作系統,在Visual Studio2008開發環境下進行設計。軟件采用層次模塊化方法進行開發[10],分為三層九個子模塊,體系結構如圖3所示:數據接入層、信息處理層、功能應用層。接入層:參數設置、串行接口、網絡接口;信息處理層:數據解析、數據平滑、數據存儲;功能應用層:海圖顯示、圖符標繪、航路規劃。

圖3 系統軟件體系結構
串口模塊主要完成AHRS和DGPS模塊的參數初始化設置和導航定位數據的接收。通過串口建立DGPS模塊與ARM的連接,設置接收機應用模式為SBAS,并設置串口通信波特率、串口輸出的NMEA語句及輸出速率、最大差分齡期和衛星仰角等參數。DGPS加電后便自動搜索衛星,并通過串口以每秒一次的頻率向ARM發送GPRMC格式的定位信息,在定位信息有效后ARM便可以提取所需要的定位信息。
程序開辟了兩個線程,一個用于讀取HC12導航數據,一個用于讀取AHRS姿態航向數據。通過多線程方法可有效避免不斷調用WaitCommEven()函數導致的阻塞。兩個線程將數據讀到緩沖區后交給信息處理層進行處理。
網絡模塊主要實現系統參數的遠程配置管理,并將本地導航定位數據分發到其他站點,實現信息交互共享。
主要完成姿態航向數據和導航定位數據的解析提取,通過平滑濾波去除野值點后保存到本地磁盤文件,并提交給功能應用層。
3.2.1 定位數據解析
DGPS模塊通信標準為NMEA-0183格式,輸出數據采用的是ASCⅡ碼,主要有GGA、GLL、GSA、GSV、RMC、VGT等數據格式,每種格式的數據幀均以“MYM”開頭,然后是兩個字母的“識別符”和三個字母的“語句名”組成ID信息頭,接著就是以逗號分割的數據體,末尾為校驗值,以回車換行符結束。本設計只關心日期、時間、經緯度、地面速度等,選用GPRMC數據格式,如表1所示。

表1 GPRMC數據格式

圖4 AHRS輸出數據格式
AHRS模塊通信標準為FLOATS型,數據格式圖4所示,串行通訊參數為:波特率=115200,數據位=8位,停止位=2位,無奇偶校驗。
3.2.2 數據平滑
當DGPS天線被遮擋或被其他大功率信號干擾時,將影響其正常接收衛星數據,從而產生不可測的野值點,需要根據最近歷史數據將其剔除。設計中采用最小二乘法,樣值點可自定義,默認為10個,經過處理,可以有效去除野值點,得到平滑的航跡曲線。
主要利用下層提交的定位、姿態和航向數據在電子海圖上實時繪制本船航跡、標牌等,并在信息顯示頁面實時刷新顯示本船經緯度、航向、航速信息。并提供圖符標注和航路規劃功能,以更好地支持導航定位應用。
圖5所示為系統接收GPS導航數據后處理并顯示的軟件界面,在左邊顯示區基于電子海圖實時顯示本船標牌和航跡,在右邊控制區有四個標簽頁,依次是導航信息、顯示控制、系統設置、外部通信。
在“系統設置”頁面設置好串口端口號和波特率后,即可打開串口接收數據,選擇“保存數據”按鈕可將數據以文本格式保存,用于事后處理和分析。選擇“航路規劃”按鈕,可完成航路點添加、修改、刪除等管理。
“導航信息”頁面的信息顯示區實時顯示從DGPS模塊輸出的NMEA格式導航數據和AHRS的姿態數據,包括時間、經緯度、航向、航速、橫搖、縱搖等參數。選擇任一航路點,可實時解算出本船與該點的直線距離、橫向偏移、縱向距離、相對方位以及到達目標所需時間。選擇“航跡清除”按鈕可將海圖上歷史航跡清除;在“海圖操作”區可進行海圖縮放、局部放大、海圖漫游、目標居中等操作,在海圖顯示區,可直觀顯示本船與各目標點位置關系、試驗態勢等。
“顯示控制”頁面主要設置海圖圖層、航跡線型和線寬、目標顯示隱藏狀態、采樣點等顯示相關的參數設定。
“外部通信”主要通過簡單握手的UDP方式與其他站點進行網絡報文通信。軟件可自動搜索在線用戶,通過向對方發送握手幀或響應握手幀方式實現用戶列表更新。

圖5 軟件界面
實驗地點選在運動場開闊處,先采用靜態內符合法進行精度測試。連接DGPS天線,給系統上電,運行系統軟件,設置好串口參數,打開串口COM2,待差分GPS模塊進入穩定差分定位后開始保存數據,采集數據約3000組,用MATLAB處理采集數據,結果如圖6所示。

圖6 系統圓概率誤差分布圖
導航定位等功能測試:手持該系統進行直線和圓形運動,觀察海圖區域航跡向軌跡形狀;設定1個目標點,畫半徑為200m的圓并設置航線,分別按直線和曲線前進,觀察距離、偏離、方位等參數變化;對海圖進行放大、縮小和平移,分別點選本艦居中和目標居中,觀察海圖顯示變化。
測試表明,終端軟件能平穩地運行在嵌入式WINCE6.0系統上,操作界面簡潔、直觀、實用、功能全面,具有良好的實時性和準確性,系統定位精度(2DRMS)優于1m,航向精度優于2°。
本文基于ARM硬件平臺,以WINCE6.0為嵌入式操作系統,在Visual Studio2008下開發了串口通信導航數據軟件,通過串行接口實現DGPS模塊、AHRS模塊與ARM之間的通信,構建了一個體積小、功耗低、功能全面的手持式DGPS/AHRS組合導航系統,并給出了詳細的硬件和軟件設計實現[11~12]。實驗結果表明:該系統能實時顯示精度較高、持久有效的導航定位數據,具有重要的實用價值和一定的參考意義。
[1]徐紹銓,張華海,楊志強.GPS測量原理及應用[M].武漢:武漢大學出版社,2008.
[2]全偉,劉百奇,宮曉琳,等.慣性/天文/衛星組合導航技術[M].北京:國防工業出版社,2011.
[3]張海寧,羅繼先.GPS/INS組合導航評價系統數據采集裝置設計[J].電子設計工程,2011,19(19):176179.
[4]黃彬軻,任博,張侃諭.基于ARM9的車載信息收發平臺的硬件設計[J].計算機測量與控制,2011,19(7):17151718.
[5]李文新,王廣龍,陳建輝,等.基于ARM9與 WindowCE的車輛GPS定位信息采集系統[J].電子設計工程,2010,18(6):8083.
[6]沈文斌.嵌入式硬件系統設計與開發實例詳解[M].北京:電子工業出版社,2005.
[7]新月HC12使用手冊[R].北京合眾思壯科技有限責任公司,2007.
[8]Mti and MTx User Manual and Technical Documentation[R].Xsens Technologies B.V,Revision G,March 2,2006.
[9]張歡,鈕文良.Windows CE系統開發基礎與實例[M].北京:中國電力出版社,2010.
[10]李景峰,楊麗娜,潘恒,等.Visual C++串口通信技術詳解[M].北京:機械工業出版社,2010.
[11]黃帥.嵌入式車載導航的設計和實現[J].微計算機信息,2008,24(101):284286.
[12]戚微蘇,趙宇,潘勇.基于ARMLinux的車載監控終端設計及實現[J].電子測量技術,2012,35(2):8588.