引言
當前,衛(wèi)星導航成為導航技術發(fā)展的主要方向,自助式導航繼續(xù)發(fā)展,組合導航系統(tǒng)已經(jīng)成為主要的導航方式。針對電子羅盤經(jīng)啟動后要較長時間才能穩(wěn)定,而陀螺球轉(zhuǎn)速高、磨損大、壽命短等問題[1],本文做了載體姿態(tài)和位置測量的研究。就測姿定位問題,本文基于單片機最小系統(tǒng),設計了基于GPS/電子羅盤的測姿定位系統(tǒng),將GPS與電子羅盤組合,利用多種信息源相互補充,構(gòu)成了一種有多余度和高精度的導航定位系統(tǒng)。它具有高精度、穩(wěn)定、小型化、易操作等特點,為最終組合導航的實現(xiàn)奠定了基礎。
1 系統(tǒng)總體設計方案
基于GPS/電子羅盤的測姿定位系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
RXD0為GPS接收機發(fā)送到單片機的數(shù)據(jù);RXD1為電子羅盤發(fā)送到單片機的數(shù)據(jù);TXD0為單片機發(fā)送到MAX3232的數(shù)據(jù);P(2~3)為單片機發(fā)送到LCD進行顯示的數(shù)據(jù)。整個流程如下:首先,GPS接收機iTrax0302通過天線接收GPS衛(wèi)星發(fā)射的信號,按要求輸出當前經(jīng)度、緯度和高度信息。電子羅盤HMR3300 實時輸出跟蹤天線的當前方向、俯仰信息。GPS 接收機iTrax0302和電子羅盤HMR3300 輸出的信息由C8051F021單片機通過串行口接收,單片機子系統(tǒng)是整個系統(tǒng)的控制核心,它完成串行信息的接收、數(shù)據(jù)處理和對各部分電路的控制工作。經(jīng)處理的信息由單片機串行口輸出后,再經(jīng)過電平轉(zhuǎn)換芯片MAX3232實現(xiàn)由TTL到RS232電平的轉(zhuǎn)換。最后,再由MAX3232將信息傳入上位機顯示即可。
圖1 基于GPS/電子羅盤的測姿定位系統(tǒng)結(jié)構(gòu)框圖
2 系統(tǒng)硬件設計
2.1 電路的基本構(gòu)成
在信息接收模塊中,本系統(tǒng)采用iTrax0302作為GPS接收機,GPS上電后將自動從天線接收GPS衛(wèi)星發(fā)射的射頻信號,經(jīng)過一系列的處理過程,通過并行通道完成最佳位置衛(wèi)星的跟蹤,測出衛(wèi)星到天線的傳播距離,解讀導航電文,從而計算出經(jīng)度、緯度、海拔高度等信息。iTrax0302是體積小、功耗低的GPS OEM板,具有極快的信號獲取引擎,自帶2個UART接口,可接收NMEA0183格式的數(shù)據(jù)和二進制的iTalk格式數(shù)據(jù)。
iTrax0302內(nèi)嵌8 Mb的Flash,可用于存儲中間定位數(shù)據(jù),并為授時應用提供極高的精度[2]。對偏航、俯仰等姿態(tài)信息的獲取選用了數(shù)字電子羅盤HMR3300,航向精度為±1.0°,分辨率可達0.1°,橫滾和俯仰的精度為±0.3°,分辨率為±0.1°,輸出端口采用RS232(或RS485)。同時,它還具有體積小、功耗低、價格便宜等特點[3]。
在信息處理模塊中,GPS和電子羅盤將采集到的信息通過串口不斷發(fā)送過來,單片機通過對這些數(shù)據(jù)的處理提取所需的有用信息,然后將有用信息按一定協(xié)議組裝成數(shù)據(jù)包傳送給電平轉(zhuǎn)換器發(fā)送模塊??刂普麄€系統(tǒng)的中央處理器選用C8051F021,它是集成在一塊芯片上的混合信號系統(tǒng)級單片機,其最突出的優(yōu)點就是改進了可以控制片內(nèi)數(shù)字資源與外部I/O引腳相連的交叉開頭網(wǎng)絡。
C8051F021具有異步的雙串口UART0和UART1,可分別用于接收電子羅盤信息與GPS信息。而在接收電子羅盤信息與GPS信息時要分為兩個中斷分別進行信息處理。C8051F021具有多中斷源,滿足這一性能要求。此外,C8051F021還具有低功耗、高速度、低電壓工作(3.3 V)、高容量存儲器等特性,滿足本方案的要求,故信息處理模塊采用C8051F021單片機。
信息接收和信息處理模塊的硬件電路圖如圖2所示。
圖2 信息接收和信息處理模塊的硬件電路圖
2.2 串行通信接口電路
在信息傳輸模塊中,由于C8051F021引腳的信號電平為TTL類型,而上位機串口的異步串行通信是基于RS232標準的,兩者通信信號的邏輯電平不一致,必須進行信號電平轉(zhuǎn)換。而MAX3232芯片能直接將單片機輸出的TTL電平轉(zhuǎn)換成上位機能接收的RS232電平,或?qū)C機輸出的RS232電平轉(zhuǎn)換成單片機能接收的TTL電平,故采用MAX3232來實現(xiàn)其中的電平轉(zhuǎn)換,從而實現(xiàn)系統(tǒng)的串行通信[4]。本系統(tǒng)的串行通信硬件結(jié)構(gòu)框圖如圖3所示。
圖3 串行通信硬件結(jié)構(gòu)框圖
3 系統(tǒng)軟件設計
系統(tǒng)的軟件實現(xiàn)采用C語言,C語言具有功能豐富的標準函數(shù)庫,具有運算速度快和可移植性強等特點。用C語言來編寫軟件會大大縮短開發(fā)周期,增強軟件的可讀性,便于改進和擴充。
對于串口的數(shù)據(jù)處理有兩種方法:一種是查詢的方法,另一種是中斷的方法。查詢的方法是不斷地檢測接收和發(fā)送標志位,當查詢到有數(shù)據(jù)進入到SBUF時對SBUF數(shù)據(jù)進行判斷,是否為所需的數(shù)據(jù),如果是則存儲到數(shù)據(jù)寄存器中。由于查詢方法在編寫程序時比較復雜,需要反復地查詢標志位,但是相較于其他算法對于實現(xiàn)循環(huán)比較簡單。本系統(tǒng)對串口接收和發(fā)送的數(shù)據(jù)采用的是查詢的方法[4]。
圖4 單片機信息處理流程
單片機信息處理流程如圖4所示。首先,待單片機初始化后,開啟中斷0,關閉中斷1,開始通過串口0接收電子羅盤信息。電子羅盤HMR3300更新頻率為8 Hz,即每秒最多可更新8次[5]。為了保證其穩(wěn)定輸出,每秒鐘提取4次電子羅盤信息。然后,以判斷回車來表示接收完一次羅盤信息,即hmr[i]=10。待接收完畢后,開啟中斷1,關閉中斷0,通過串口1接收GPS定位信息。iTrax0302更新速率為1fix/s。提取定位信息時,每秒鐘提取一次GPS信息。接收到一條完整的語句后將其放入GPS數(shù)據(jù)存儲區(qū)。同樣地,我們以判斷回車來表示接收完一次GPS信息,即gps[i]=10。
GPS信息接收完畢后,再開啟中斷0,關閉中斷1,接收電子羅盤信息。同時,將采集到的姿態(tài)和定位信息通過串口0傳送給MAX3232后,不斷發(fā)送給上位機。在中斷0中接收電子羅盤的數(shù)據(jù)時,需要提取的是其航向、俯仰和滾動信息,應判定接收到的數(shù)據(jù)是否為起始標志位,若是則開始采集數(shù)據(jù),讀取第二位數(shù),進行采集的同時保存數(shù)據(jù);如不是,則繼續(xù)判定。
由于采用的是非定長通信,因此,在采集數(shù)據(jù)的同時還要判定當前位是否為結(jié)束標志位,若是則進行CRC校驗,若正確則對得到的數(shù)據(jù)進行HPR分離;若否則開始新的采集。同樣,在中斷1中應在接收有效后,判斷是否接收到GGA語句,若是再進行分析處理[6]。也可直接發(fā)送指令給GPS接收機,使GPS接收機只輸出所需要的語句信息。同樣的操作也適用于電子羅盤HMR3300。
4 實驗驗證
為了驗證所設計系統(tǒng)的正確性和有效性,筆者進行了地面跑車實驗。將該系統(tǒng)固定于汽車內(nèi),實驗過程中可見衛(wèi)星數(shù)為11顆,可用衛(wèi)星為7顆。實驗后,將采集到的數(shù)據(jù)運用MATLAB軟件進行數(shù)據(jù)處理并對結(jié)果進行了分析。跑車實驗數(shù)據(jù)分析如圖5所示。結(jié)論如下:
① 通過對比汽車內(nèi)的里程顯示器與采集回來的實驗數(shù)據(jù)計算得出跑車距離,結(jié)果均為2.9 km,基本一致;對比分析圖中的軌跡顯示與實際跑車路線,基本匹配;對比分析圖中的姿態(tài)信息與實際跑車路線情況,基本匹配。
② 當衛(wèi)星信號被某些障礙物暫時阻斷時,儀器線路的瞬間故障使基準信號無法與衛(wèi)星信號混頻產(chǎn)生差頻信號;外界干擾或接收機所處的動態(tài)條件惡劣,使載波跟蹤環(huán)路無法鎖定信號而引起信號的暫時失鎖等,所有這些原因都會使GPS計數(shù)中斷,使恢復跟蹤后的整周計數(shù)產(chǎn)生錯誤,如何在短時間內(nèi)測出何時發(fā)生整周數(shù)跳變,并求出丟失的整周數(shù),則需要與慣性導航相結(jié)合,才能在任何條件下都實現(xiàn)高精度的實時導航定位,為MEMSIMU/GPS/電子羅盤組合導航系統(tǒng)起到更好的輔助作用。
圖5 跑車實驗數(shù)據(jù)分析
結(jié)語
本文設計了基于GPS/電子羅盤的測姿定位系統(tǒng),以無線方式實現(xiàn)了載體的定位和姿態(tài)數(shù)據(jù)的采集,并通過將采集到的信息顯示于LCD及上位機上,使信息更直觀地展示在人們眼前。
評論