1 引言 全球定位系統(Global Position System,GPS)是可在海、陸、空進行全方位實時三維導航與定位的新一代衛星導航定位系統,具有全天候、高精度和高效益等特點,現GPS已在各領域得到廣泛應用。 本文采用嵌入式操作系統μC/OS-II,控制OEM板接收導航信息,并對GPS數據采集系統的硬件和軟件提出了詳細的設計方案,給出了提取GPS特征數據的算法,這些對研究嵌入式系統應用、GPS定位及其在組合導航中的應用以及對OEM板的二次開發等都是實用的。 2 系統總體設計 嵌入式GPS數據采集系統由接收部分(OEM板)、電平轉換部分(MAX232)、控制部分、顯示部分組成,硬件結構如圖1所示。 OEM板通過天線接收來自GPS的導航數據并經過電平轉換后發送給EP7312, EP7312接收OEM板發來的數據并存儲、顯示。EP7312與OEM板之間采用異步串行方式通信,幀格式1位起始位,8位數據位,1位停止位,無校驗位,波特率為9600 bit.s-1。通過軟件控制EP7312對GPS信號進行實時處理,以獲得當前的經度、緯度坐標等所需信息,并通過液晶顯示。 3 系統硬件配置 3.1 接收模塊 GPS-OEM板主要是由變頻器、標頻器、信號通道、微處理器和存儲單元等構成。在上電完成初始自檢后,它將自動地接收來自天線的GPS射頻信號,經過變頻、放大、相關、混頻等一系列處理后,完成并行通道對其視界內幾何位置最佳的數顆衛星的連續跟蹤,并且測出信號從衛星到接收天線的傳播時間,解譯出GPS衛星所發送的導航電文,最后經由I/0口輸出串行數據,這些數據主要是向用戶提供定位信息,包括緯度、經度、速度、時間等。 系統接收部分選用的Jupiter TU30-D410 -031,是美國Rockwell公司生產的并行12通道OEM板。該OEM板具有體積小、定時時間短、無靜態漂移等特點,能夠提供位置、速度、時間、定位與導航信息,以載波相位輸出、1PPS時標和10kHz方波輸出,適合各種導航定位的應用。 3.2 控制模塊 系統采用Cirrus Logic公司的32位嵌入式處理器EP7312。該ARM處理器內帶8K緩存,支持Thumb指令。EP7312資源豐富,功能強大,有27個通用I/O,2個UART,2個定時器,并內帶LCD控制器,可直接連接單色、彩色LCD。EP7312功耗很低,最大不超過90mW。 采用EP7312構成的GPS應用系統,具有功耗低、體積小、使用靈活的特點,系統的結構和功能可以根據需求的不同進行個性化配置,而且可以很方便地進行系統外設的擴展。 3.3 顯示模塊 本系統采用液晶顯示器是SHARP公司的彩色LCD,有效顯示點陣為320×240,其功耗較低,抗干擾能力強,體積小。由于EP7312內部帶有LCD控制器,當系統接收OEM板輸出的導航數據信息時,只要設置其內部控制器的寄存器就可以對LCD實現控制,然后再通過向Frame Buffer輸出接收到的并經過處理的導航信息,這時顯示屏上就可以顯示定位點精確的經度、緯度及本地時間了。 4 系統軟件設計及實現 4.1 μC/OS-II簡介 μC/OS-II是開源實時嵌入式操作系統,絕大部分代碼是用C編寫的,其可移植性較強,可廣泛地應用于各種不同的硬件平臺上[3]。μC/OS-II是一個占先式實時系統,當有優先級高的任務就緒時,原任務將被打斷而轉為優先級較高的任務,這也是實時性的重要保證。μC/OS-II具體移植可參照其它資料。 4.2 應用程序設計 根據設計要求,系統將應用程序劃分為采集存儲和顯示兩個任務,其優先級分別為10和11。采集存儲任務的主要功能是對導航數據采集,并且每30秒作為歷史記錄存儲一次,以便與當前的導航信息比較。首先必須掌握系統的通信協議。GPS-OEM板采用NMEA-0183通信標準格式,可以輸出多種句型,均以“$”開頭。輸出的語句按串口通信協議,波特率9600bit.s-1,1位開始位,8位數據位,1位停止位,無奇偶校驗。輸出數據采用的是ASCⅡ碼字符,內容包含了緯度、經度、速度、日期、航向及衛星狀況等信息。語句達十余種,本系統所使用的語句僅限于$GPRMC定位數據語句。其結構為: $GPRMC,,,,,, <6>,,,,,*hh 其中“GP”為交談識別符;“RMC”為語句識別符;“*”為校驗和識別符;“hh”為校驗和,其代表了“$”與“*”之間所有字符的按位異或值(不包括這兩個字符)。 $GPRMC語句數據區的內容為: 定位點的協調世界時間(UTC),hhmmss(時分秒)格式; 定位狀態,A=有效定位,V=無效定位; 定位點緯度,ddmm.mmmm(度分)格式; 緯度半球,N(北半球)或S(南半球); 定位點經度,dddmm.mmmmm(度分)格式; 經度半球,E(東經)或W(西經); 地面速率,000.0節"999.9節; 地面航向,000.0度"359.9度; UTC日期,ddmmyy(日月年)格式; 磁偏角,000.0度"180度; 磁偏角方向,E(東)或W(西)。 由于TU30-D410-031的波特率設置為9600bit.s-1,因此任務運行時,首先應將串行口的波特率設為此值,EP7312就會接收到OEM板的定位數據。在串口收到信息后,先判別是否為語句引導頭“$GPRMC”,否,則放棄此次接收;是,則接收數據內容。由于接收到$GPRMC幀頭后,再接收11個數據包即完成整幀數據的接收,存儲后系統將調用等待延時函數。 顯示任務的功能是負責所采集的數據在LCD上顯示出來,每隔一秒刷新一次。$GPRMC語句輸出了基本的定位信息,可以滿足一般用戶的使用要求。接收來的數據存放在內存中,提取時先從數據中讀取定位狀態判斷是否有效,若有效再提取相應的時間及經緯度等信息。應注意的是在處理北京時間時應在UTC時間上加上8h才是準確的北京時,在超出24h時應作減24h處理。系統運行時GPS定位信息在LCD上顯示界面如圖2。 5 結束語 本文論述了嵌入式系統對GPS數據的讀取、處理及顯示的方法,分析了GPS模塊的信息格式并編制通信軟件,成功地實現了GPS定位信息的接收與顯示。該系統程序簡單,可靠,可運用于車輛的導航系統中,另外,其方法思路對嵌入式系統、OEM板開發也具有很好的參考價值。 |