1 系統硬/軟體平臺概述
本文引用地址:http://www.eepw.com.cn/article/197411.htm車輛GPS定位信息採集系統的硬體平臺結構如圖1所示。
該平臺可以分為3大模塊:
1)微系統核心模塊 由基於ARM920T的32位嵌入式微處理器S3C2440、SDRAM和Nand FLASH構成和總線接口構成。2片32 MB的HY57V561620構成64 MB的SDRAM存儲器,用於運行系統主程序。存儲容量為64 M×8 bit的Nand FLASHK9F1208UOM,因其具有掉點保護功能,用於存儲作業系統內核、Bootloader的啟動代碼和用戶程序。
2)GPS原始數據接收模塊 由一臺遵循NMEA-0183協議標準的GPS接收機和PS天線組成。通過外接GPS接收機,將接收到的GPS原始信息,送入到嵌入式微處理器進行數據解析,最終得出戰車所在位置的位置、速度和海拔等信息。
3)外設控制模塊 包括LCD+觸控螢幕、USB主/從口、電源、JTAG調試接口、復位電路。選用東華的自帶4線模擬電阻式觸控螢幕和硬體驅動的3.5#TFT型LCD,用於人機互動以及現實解析後的GPS信息。USB主口用於擴展U盤,用於數據存儲,從口用於下載WinCE內核文件以及與軟體開發主機進行數據交互,JTAG調試接口用於硬體調試以及燒載Bootloader。
軟體平臺為微軟公司的嵌入式作業系統WindowsCE,它界面友好,支持嵌套中斷、更好的線程響應、更多的優先級別;支持串口和網絡通信;具有豐富的API函數,具有強大的開發工具;多硬體平臺支持,支持ARM、MIPS等處理器。經過Platform. Builder定製移植的WindowsCE作業系統如圖2所示。
2 定位信息數據格式
GPS的輸出數據遵循NMEA-0183協議標準,即美海軍的電子設備標準。根據NMEA-0183協議,獲取GPS定位信息,必須將串行口的波特率設置為4800b/s,數據位設置為8 bit,停止位設置為1 bit,校驗為設置為無。該協議定義了GPS接收機輸出的標準信息,最常用、兼容性最廣的語句格式包括:$GPRMC、$GPGGA、$GPGSV、$GPGSA、$GPGLL等。應用到的GPS數據格式包括$GPRMC、$GPGGA、$GPGSV三種。其中,用$GPRMC語句獲取時間、經緯度、速度、年月日信息,用$GPGSV語句獲取海拔高度信息,用$GPGSV語句獲取可見衛星數信息及衛星的方位角和仰角信息,用以獲取衛星的視圖。各語句的數據段的含義,參考NMEA-0183協議標準。
3 GPS定位信息採集和處理的軟體實現
本系統的軟體開發在可視化開發工具Embedded VisualC++(簡稱EVC)中,採用MFC編程技術實現。
3.1 GPS數據處理狀態轉換
GPS與ARM之間用RS232串口方式進行通信,串口對象負責接收數據,並把接收到的數據放置到串口緩衝區。GPS對象按照協議結構負責處理串口對象接收到的數據。圖3為GPS數據處理之間的狀態轉換示意圖。GPS數據處理狀態共包括4個狀態:開始狀態、數據幀頭狀態、GPS數據正文狀態和校驗狀態。
開始狀態是一個數據幀的起始狀態,它處理和判斷數據幀的起始字符$。若起始符號不是其中的$,則一直停留在開始狀態,直到$到來位置,數據幀頭狀態用於判斷數據幀的格式是否與我們目前需要的目標數據幀相匹配。如果相匹配,那麼將退轉到下一個狀態:GPS數據正文狀態,開始進行數據處理。如果不匹配,則轉移到開始狀態。
數據處理中用到了緩衝區的概念,它一邊累積計算接收的數據的異或和,一邊把相應的數據域送入緩衝區。這樣既降低了數據提取校驗的複雜度,也提高了數據處理的延續性和正確性。當GPS數據正文狀態完成,進入「*」字符的時候,將進入數據校驗狀態,它用於判斷數據接收和處理的有效與否。若校驗成功,則接收有效,收到CR,LF字符後又重新跳轉到開始狀態。若校驗失敗,則放棄處理的數據,直接跳轉至開始狀態。
3.2 完整GPS數據幀的截取
了解了GPS數據處理的四個狀態之間的相互轉換,下面論述一個完整的GPS數據幀的提取和處理,它是獲取車輛GPS定位數據的關鍵。一個完整的GPS數據幀的提取流程如圖4所示。
圖4中,m_strRecDisp為一個CString變量,用於表示接收數據的字符串,該程序流程中,用到兩個最重要的函數即:字符(串)查找函數和字符串截取函數。