孫良義 段建紅
(91388部隊94分隊 湛江 524022)
船體航向、姿態(tài)、位置和速度不但是船舶導航的重要參數(shù),還是以船舶為測量平臺進行各項湖上、海上試驗的重要數(shù)據(jù)。AHRS(Attitude and Heading Reference System)如慣性導航系統(tǒng)和GPS姿態(tài)測量系統(tǒng)均可提供連續(xù)性好、穩(wěn)定性高的航向、姿態(tài)信息,DGPS(Differential Global Position System)可提供連續(xù)、高精度、實時的時間基準、位置、速度等數(shù)據(jù),兩種系統(tǒng)都被廣泛應用于各項試驗中[1~3]。嵌入式系統(tǒng)以其低功耗、小體積、高穩(wěn)定性、便攜和軟硬件易裁剪等優(yōu)勢[4~5],在GPS領域的應用中占據(jù)重要位置。本文研究基于ARM920T內(nèi)核的嵌入式微處理器S3C2440A和WindowsCE6.0的DGPSAHRS組合導航系統(tǒng),以解決上述常規(guī)系統(tǒng)在空間狹小、條件簡陋的平臺環(huán)境中存在的架設、供電困難,使用維護不便的問題。
系統(tǒng)硬件主要由四部分組成:ARM主控模塊,DGPS模塊,AHRS模塊,供電模塊。ARM主控模塊負責整個系統(tǒng)的運行,DGPS模塊負責輸出GPS定位信息,AHRS模塊負責輸出姿態(tài)和航向信息,供電模塊負責為其它三個模塊供電,硬件構(gòu)成如圖1所示。
圖1 系統(tǒng)硬件設計結(jié)構(gòu)圖
核心板由Samsung公司推出的32位400MHz微處理器S3C2440A[6]、64MB的SDRAM 和64MB的 Nand Flash存儲芯片組成,外圍擴展1個RS232串口、1個UART接口、1塊7寸LCD觸摸屏、電源接口、RTC電路、復位電路、網(wǎng)絡接口、JTAG接口、SD卡接口、USB口等接口資源。SDRAM存儲器用于運行系統(tǒng)主程序,具有掉電保護功能的Nand Flash存儲器用于存儲操作系統(tǒng)內(nèi)核、Bootloader的啟動代碼和開發(fā)程序,擴展的RS232串口COM1用于接收AHRS模塊輸出的姿態(tài)和航向信息,擴展的UART有3個串口,串口COM2用于采集DGPS模塊輸出的數(shù)據(jù)信息,7寸TFT電阻式觸摸屏用于人機交互和顯示導航軟件信息,USB口用于下載WINCE內(nèi)核文件及與軟件開發(fā)主機進行數(shù)據(jù)交互,JTAG調(diào)試接口用于硬件調(diào)試和燒載Bootloader。
由Crescent GPS OEM板HC12、電平轉(zhuǎn)換板和差分天線組成。HC12[7]是一款高性能單頻12通道接收機,定位精度可達亞米級,數(shù)據(jù)輸出采用NMEA-0183標準,速率可高達20Hz。HC12有3個全雙工3.3VCMOS電平串口(A,B,C),COM A直接與 ARM 主控模塊COM2相連,用于進行HC12參數(shù)設置或輸出定位數(shù)據(jù)信息,COM B電平轉(zhuǎn)換為RS232電平后可接入PC機,同樣可用于HC12參數(shù)設置或輸出定位數(shù)據(jù)信息,COM C串口備用。HC12輸入電壓為3.3V,而供電模塊輸出電壓為5V,需要進行電平轉(zhuǎn)換。采用AMS1117-3.3芯片轉(zhuǎn)換電源電壓,MAX3232芯片轉(zhuǎn)換串口電平,通過1個34Pin的轉(zhuǎn)接頭實現(xiàn)HC12電源供電和外部通信,電平轉(zhuǎn)換電路見圖2。
圖2 電平轉(zhuǎn)換電路原理圖
差分天線選用Hemisphere公司的A30天線,它可接收GPS、SBAS和Beacon信號,具有多波段接收能力,能在高電氣噪聲和其它干擾條件下保持高精度的信號接收。
選用荷蘭XSENS公司的 MTi[8],它是一個基于微電子陀螺技術的微型姿態(tài)、航向測量系統(tǒng),內(nèi)部處理器功耗低,可360°全方位輸出姿態(tài)和航向,輸出的航向角無漂移,具有長時間穩(wěn)定性和快速動態(tài)響應的特點,其縱傾橫滾精度小于0.5°,航向角靜態(tài)精度小于1°,動態(tài)精度小于2°。
由5V充電電路、鋰電池組和升降壓電路組成,其中鋰電池組含有八塊Samsung公司18650型2400mAh鋰離子電芯。該模塊輸出參數(shù)為電壓5V、電流1A,分別為ARM主控模塊、AHRS模塊和DGPS模塊供電,供電時間不少于5小時。
系統(tǒng)軟件基于WINCE6.0[9]操作系統(tǒng),在Visual Studio2008開發(fā)環(huán)境下進行設計。軟件采用層次模塊化方法進行開發(fā)[10],分為三層九個子模塊,體系結(jié)構(gòu)如圖3所示:數(shù)據(jù)接入層、信息處理層、功能應用層。接入層:參數(shù)設置、串行接口、網(wǎng)絡接口;信息處理層:數(shù)據(jù)解析、數(shù)據(jù)平滑、數(shù)據(jù)存儲;功能應用層:海圖顯示、圖符標繪、航路規(guī)劃。
圖3 系統(tǒng)軟件體系結(jié)構(gòu)
串口模塊主要完成AHRS和DGPS模塊的參數(shù)初始化設置和導航定位數(shù)據(jù)的接收。通過串口建立DGPS模塊與ARM的連接,設置接收機應用模式為SBAS,并設置串口通信波特率、串口輸出的NMEA語句及輸出速率、最大差分齡期和衛(wèi)星仰角等參數(shù)。DGPS加電后便自動搜索衛(wèi)星,并通過串口以每秒一次的頻率向ARM發(fā)送GPRMC格式的定位信息,在定位信息有效后ARM便可以提取所需要的定位信息。
程序開辟了兩個線程,一個用于讀取HC12導航數(shù)據(jù),一個用于讀取AHRS姿態(tài)航向數(shù)據(jù)。通過多線程方法可有效避免不斷調(diào)用WaitCommEven()函數(shù)導致的阻塞。兩個線程將數(shù)據(jù)讀到緩沖區(qū)后交給信息處理層進行處理。
網(wǎng)絡模塊主要實現(xiàn)系統(tǒng)參數(shù)的遠程配置管理,并將本地導航定位數(shù)據(jù)分發(fā)到其他站點,實現(xiàn)信息交互共享。
主要完成姿態(tài)航向數(shù)據(jù)和導航定位數(shù)據(jù)的解析提取,通過平滑濾波去除野值點后保存到本地磁盤文件,并提交給功能應用層。
3.2.1 定位數(shù)據(jù)解析
DGPS模塊通信標準為NMEA-0183格式,輸出數(shù)據(jù)采用的是ASCⅡ碼,主要有GGA、GLL、GSA、GSV、RMC、VGT等數(shù)據(jù)格式,每種格式的數(shù)據(jù)幀均以“MYM”開頭,然后是兩個字母的“識別符”和三個字母的“語句名”組成ID信息頭,接著就是以逗號分割的數(shù)據(jù)體,末尾為校驗值,以回車換行符結(jié)束。本設計只關心日期、時間、經(jīng)緯度、地面速度等,選用GPRMC數(shù)據(jù)格式,如表1所示。
表1 GPRMC數(shù)據(jù)格式
圖4 AHRS輸出數(shù)據(jù)格式
AHRS模塊通信標準為FLOATS型,數(shù)據(jù)格式圖4所示,串行通訊參數(shù)為:波特率=115200,數(shù)據(jù)位=8位,停止位=2位,無奇偶校驗。
3.2.2 數(shù)據(jù)平滑
當DGPS天線被遮擋或被其他大功率信號干擾時,將影響其正常接收衛(wèi)星數(shù)據(jù),從而產(chǎn)生不可測的野值點,需要根據(jù)最近歷史數(shù)據(jù)將其剔除。設計中采用最小二乘法,樣值點可自定義,默認為10個,經(jīng)過處理,可以有效去除野值點,得到平滑的航跡曲線。
主要利用下層提交的定位、姿態(tài)和航向數(shù)據(jù)在電子海圖上實時繪制本船航跡、標牌等,并在信息顯示頁面實時刷新顯示本船經(jīng)緯度、航向、航速信息。并提供圖符標注和航路規(guī)劃功能,以更好地支持導航定位應用。
圖5所示為系統(tǒng)接收GPS導航數(shù)據(jù)后處理并顯示的軟件界面,在左邊顯示區(qū)基于電子海圖實時顯示本船標牌和航跡,在右邊控制區(qū)有四個標簽頁,依次是導航信息、顯示控制、系統(tǒng)設置、外部通信。
在“系統(tǒng)設置”頁面設置好串口端口號和波特率后,即可打開串口接收數(shù)據(jù),選擇“保存數(shù)據(jù)”按鈕可將數(shù)據(jù)以文本格式保存,用于事后處理和分析。選擇“航路規(guī)劃”按鈕,可完成航路點添加、修改、刪除等管理。
“導航信息”頁面的信息顯示區(qū)實時顯示從DGPS模塊輸出的NMEA格式導航數(shù)據(jù)和AHRS的姿態(tài)數(shù)據(jù),包括時間、經(jīng)緯度、航向、航速、橫搖、縱搖等參數(shù)。選擇任一航路點,可實時解算出本船與該點的直線距離、橫向偏移、縱向距離、相對方位以及到達目標所需時間。選擇“航跡清除”按鈕可將海圖上歷史航跡清除;在“海圖操作”區(qū)可進行海圖縮放、局部放大、海圖漫游、目標居中等操作,在海圖顯示區(qū),可直觀顯示本船與各目標點位置關系、試驗態(tài)勢等。
“顯示控制”頁面主要設置海圖圖層、航跡線型和線寬、目標顯示隱藏狀態(tài)、采樣點等顯示相關的參數(shù)設定。
“外部通信”主要通過簡單握手的UDP方式與其他站點進行網(wǎng)絡報文通信。軟件可自動搜索在線用戶,通過向?qū)Ψ桨l(fā)送握手幀或響應握手幀方式實現(xiàn)用戶列表更新。
圖5 軟件界面
實驗地點選在運動場開闊處,先采用靜態(tài)內(nèi)符合法進行精度測試。連接DGPS天線,給系統(tǒng)上電,運行系統(tǒng)軟件,設置好串口參數(shù),打開串口COM2,待差分GPS模塊進入穩(wěn)定差分定位后開始保存數(shù)據(jù),采集數(shù)據(jù)約3000組,用MATLAB處理采集數(shù)據(jù),結(jié)果如圖6所示。
圖6 系統(tǒng)圓概率誤差分布圖
導航定位等功能測試:手持該系統(tǒng)進行直線和圓形運動,觀察海圖區(qū)域航跡向軌跡形狀;設定1個目標點,畫半徑為200m的圓并設置航線,分別按直線和曲線前進,觀察距離、偏離、方位等參數(shù)變化;對海圖進行放大、縮小和平移,分別點選本艦居中和目標居中,觀察海圖顯示變化。
測試表明,終端軟件能平穩(wěn)地運行在嵌入式WINCE6.0系統(tǒng)上,操作界面簡潔、直觀、實用、功能全面,具有良好的實時性和準確性,系統(tǒng)定位精度(2DRMS)優(yōu)于1m,航向精度優(yōu)于2°。
本文基于ARM硬件平臺,以WINCE6.0為嵌入式操作系統(tǒng),在Visual Studio2008下開發(fā)了串口通信導航數(shù)據(jù)軟件,通過串行接口實現(xiàn)DGPS模塊、AHRS模塊與ARM之間的通信,構(gòu)建了一個體積小、功耗低、功能全面的手持式DGPS/AHRS組合導航系統(tǒng),并給出了詳細的硬件和軟件設計實現(xiàn)[11~12]。實驗結(jié)果表明:該系統(tǒng)能實時顯示精度較高、持久有效的導航定位數(shù)據(jù),具有重要的實用價值和一定的參考意義。
[1]徐紹銓,張華海,楊志強.GPS測量原理及應用[M].武漢:武漢大學出版社,2008.
[2]全偉,劉百奇,宮曉琳,等.慣性/天文/衛(wèi)星組合導航技術[M].北京:國防工業(yè)出版社,2011.
[3]張海寧,羅繼先.GPS/INS組合導航評價系統(tǒng)數(shù)據(jù)采集裝置設計[J].電子設計工程,2011,19(19):176179.
[4]黃彬軻,任博,張侃諭.基于ARM9的車載信息收發(fā)平臺的硬件設計[J].計算機測量與控制,2011,19(7):17151718.
[5]李文新,王廣龍,陳建輝,等.基于ARM9與 WindowCE的車輛GPS定位信息采集系統(tǒng)[J].電子設計工程,2010,18(6):8083.
[6]沈文斌.嵌入式硬件系統(tǒng)設計與開發(fā)實例詳解[M].北京:電子工業(yè)出版社,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系統(tǒng)開發(fā)基礎與實例[M].北京:中國電力出版社,2010.
[10]李景峰,楊麗娜,潘恒,等.Visual C++串口通信技術詳解[M].北京:機械工業(yè)出版社,2010.
[11]黃帥.嵌入式車載導航的設計和實現(xiàn)[J].微計算機信息,2008,24(101):284286.
[12]戚微蘇,趙宇,潘勇.基于ARMLinux的車載監(jiān)控終端設計及實現(xiàn)[J].電子測量技術,2012,35(2):8588.