基于A(yíng)RM9與WinCE的車(chē)輛GPS定位信息采集系統
3 GPS定位信息采集和處理的軟件實(shí)現
本系統的軟件開(kāi)發(fā)在可視化開(kāi)發(fā)工具Embedded VisualC++(簡(jiǎn)稱(chēng)EVC)中,采用MFC編程技術(shù)實(shí)現。
3.1 GPS數據處理狀態(tài)轉換
GPS與ARM之間用RS232串口方式進(jìn)行通信,串口對象負責接收數據,并把接收到的數據放置到串口緩沖區。GPS對象按照協(xié)議結構負責處理串口對象接收到的數據。圖3為GPS數據處理之間的狀態(tài)轉換示意圖。GPS數據處理狀態(tài)共包括4個(gè)狀態(tài):開(kāi)始狀態(tài)、數據幀頭狀態(tài)、GPS數據正文狀態(tài)和校驗狀態(tài)。
開(kāi)始狀態(tài)是一個(gè)數據幀的起始狀態(tài),它處理和判斷數據幀的起始字符$。若起始符號不是其中的$,則一直停留在開(kāi)始狀態(tài),直到$到來(lái)位置,數據幀頭狀態(tài)用于判斷數據幀的格式是否與我們目前需要的目標數據幀相匹配。如果相匹配,那么將退轉到下一個(gè)狀態(tài):GPS數據正文狀態(tài),開(kāi)始進(jìn)行數據處理。如果不匹配,則轉移到開(kāi)始狀態(tài)。
數據處理中用到了緩沖區的概念,它一邊累積計算接收的數據的異或和,一邊把相應的數據域送入緩沖區。這樣既降低了數據提取校驗的復雜度,也提高了數據處理的延續性和正確性。當GPS數據正文狀態(tài)完成,進(jìn)入“*”字符的時(shí)候,將進(jìn)入數據校驗狀態(tài),它用于判斷數據接收和處理的有效與否。若校驗成功,則接收有效,收到CR,LF字符后又重新跳轉到開(kāi)始狀態(tài)。若校驗失敗,則放棄處理的數據,直接跳轉至開(kāi)始狀態(tài)。
3.2 完整GPS數據幀的截取
了解了GPS數據處理的四個(gè)狀態(tài)之間的相互轉換,下面論述一個(gè)完整的GPS數據幀的提取和處理,它是獲取車(chē)輛GPS定位數據的關(guān)鍵。一個(gè)完整的GPS數據幀的提取流程如圖4所示。
評論