基于ARM9與WinCE的車輛GPS定位信息采集系統
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所示。
評論