定位定向導航系統車載終端應用設計與實現
(2)CPU對GPS的控制
主要是通過串行口UART1發送控制命令實現(GPS采樣周期的設置、GPS輸出數據選擇 、通訊波特率設置等),同時也是通過串行口UART1接收GPS定位信息,由于GPS輸出數據采用NMEA-0183(Ver2.0)格式,輸出數據為多組,在本系統中,僅選擇了取其中的一組數據:GPRMC(推薦最小數據量的GPS具體內容/傳輸數據),其格式見圖3,其中,當且僅當GPS輸出數據為有效定位數據時,對應的UTC時間才為當前準確時間。

圖3 GPS數據格式(GPRMC)
(3)CPU對其它外圍接口的控制
主要通過通用I/O口實現開關(電平)輸入/輸出,同時通過外部中斷的方式實現了實現與車用防盜報警器、緊急報警(SOS)、醫療服務、故障服務、點火信號等的接口。
(4)CPU對系統的整體控制:
首先,CPU完成對GPRS、GPS及外圍接口的初始化工作;其次,CPU通過串行口UART1對GPRS進行操作,完成從撥號到PPP協商(創建PPP鏈路、用戶驗證、PPP回叫控制、協商和調用網絡層協議),并與服務器建立起TCP連接;然后,在保證與服務器之間的TCP連接正常的前提下,實現與服務器之間的數據交互與控制;最后,CPU還必須要周期性地對系統終端的當前狀態作出測試及判斷,并對各種實際情況作出相應的處理,以保證系統能正常而穩定地工作。
四、系統軟件設計
在整個GPS_GPRS定位系統的設計中,涉及到服務器軟件、客戶端應用軟件及車載終端底層軟件。在此,主要就車載終端底層軟件的設計作進一步的說明。
在GPS_GPRS定位系統車載終端底層軟件的設計中,程序采用了模塊化設計,軟件由一個主程序和若干個子程序構成,其中,子程序主要完成一些單一的基本工能,主程序則主要負責完成對各個功能模塊(即子程序)的調用,同時對車載終端的資源及邏輯作出規劃,主程序框圖如圖4所示。

圖4 系統主程序框圖
下面就主程序的設計要點作出如下闡述:
當系統完成GPS及GPRS的初始化之后,即進行網絡撥號、PPP協商、TCP聯結等操作,當車載終端與服務器之間建立起網絡聯結之后,便可通過自定義的車載終端與服務器之間的通訊協議進行數據交互。
在此過程中,系統會首先判斷,當前系統是否允許終端將GPS數據進行上傳,并進行相應操作;同時,會檢測是否收到控制命令(包括通過網絡發出的控制命令,或通過短信方式發出來的命令,或是通過遙控器發出的控制命令),倘若收到了控制命令,則對命令的合法性作出判斷,并進行相應的處理。
同時,系統會定時對網絡質量進行測試,倘若網絡測試正常,則返回到繼續判斷控制命令及對系統當前狀態進行處理;倘若網絡測試不正常,則進行有限次嘗試,倘若有限次嘗試均以失敗告終,而主動斷開網絡連結,并對GPRS作出復位及再次初始化操作,之后,再重復主程序的撥號、PPP協商、TCP聯結及網絡數據交互工作。
其中,與GPRS的數據交換,通過串行口UART0中斷完成;與GPS的數據交換,通過串行口UART1完成;另外,外部警情接收通過外部中斷0和1完成,無線遙控接收由外部中斷2完成。通訊超時及定時處理,由定時器TIME2完成,它們均以子程序的形式存在于車載終端控制軟件中,同時還包括一些對GPRS、GPS模塊進行初始化及設置,以及PPP協議、TCP/IP協議的解析與實現子程序,具體框圖及說明略。
由以上對車載載終端控制程序的說明可知,車載終端工作流程控制程序的工作流程如下:
1:與服務器建立網絡連接;
2:與服務器建立TCP聯結;
3:對用戶進行注冊;
4:向服務器發送GPS定位數據;
5:默認狀態下,按設定周期(默認狀態為每5秒一幀),定位數據不間斷地上傳到服務器;
6:網絡狀態檢測及網絡質量測試,并據網絡當前狀況,作出相應處理(比如斷線重撥);
7:接收網絡或第三方控制或操作命令,并作出相應處理(比如:GPS采樣周期設定、停止發送GPS數據、開始發送GPS數據、設置監聽號碼、更改操作密碼等);
8:處理突發警情(自動撥打監聽中心號碼、上報求助警情信息等)。
五、結語
利用GPRS的數據傳輸功能,對GPS數據進行實時傳輸,與以往GPS監控系統所采用的短信、GSM數據通道或DTMF數據傳輸等傳統方法相比,運營成本得到了極大的降低,同時其可操作性及實時性也都有了顯著的提高,而且成本較低,結構簡單,達到了較高的可靠性。
該系統中,PPP、TCP/IP協議棧都由8位單片機完成,由于速度上的限制,使得系統中的協議棧只能椐實際應用而作出相應的壓縮與處理,但這已足以達到該系統的資源需求。同時,該系統為以GPRS為代表的無線網絡接入方式的應用提供了一個可循的途徑。隨著GPRS、C DMA等無線網絡接入方式的不斷完善,相信以此為代表的新一代無線數據傳輸方式具有很大的應用前景。
評論