基于A(yíng)RM的車(chē)載GPS定位終端的設計
車(chē)載GPS系統的應用程序在功能上可以分為7個(gè)功能模塊,即初始化模塊,控制模塊,GPS數據獲取模塊,上行數據轉換模塊,用戶(hù)界面模塊,通信模塊和下行數據處理模塊。
初始化模塊主要實(shí)現對串口的初始化及把所有的標志位置零;控制模塊主要是根據上位機的命令來(lái)執行相應的操作,比如采集GPS數據,發(fā)送當前行車(chē)狀態(tài)等;用戶(hù)界面模塊主要功能就是把GPS數據,狀態(tài)數據等在觸摸屏上顯示出來(lái),同時(shí)還要可以響應觸摸屏上的中斷,以便實(shí)現通過(guò)觸摸屏操作車(chē)載終端的功能。
GPS數據獲取模塊的主要功能就是通過(guò)與串口相連接的GPS模塊獲取當前的GPS信息;在本程序中用的是GPRMC定位語(yǔ)句,將忽略其它信息。提取GPRMC語(yǔ)句的思路是設置一個(gè)數據緩沖區,把接收到的GPS數據都放入這個(gè)緩沖區,當緩沖區滿(mǎn)了的時(shí)候就在緩沖區中查找是否接受到GPRMC定位語(yǔ)句,如果沒(méi)有接收到則重新接收GPS數據。如果找到了GPRMC定位語(yǔ)句則還要判斷該語(yǔ)句在緩沖區中的位置離緩沖區的最大字節數是否大于62個(gè)字節。(因為本程序中需要的GPRMC定位語(yǔ)句所包含的字節數為62)
上行數據轉換模塊的主要功能是把接收到的GPS數據或是相關(guān)的狀態(tài)信息轉換成約定好的數據格式以便同監控中心的通信。該模塊會(huì )判斷需要轉換的數據是GPS數據信息還是相關(guān)狀態(tài)信息或是兩者都有,然后選擇相應的轉換程序。由上面的介紹可以知道接受到的GPS數據都是順序存放在數據緩沖區當中的,需要什么數據就到緩沖區中相應的位置提取就可以了。數據都是以字符形式存放的,所以實(shí)際要用的時(shí)候必須先轉換成整形數據。下行數據轉換模塊的功能與上行數據轉化模塊的功能相反,它將監控中心發(fā)送的命令進(jìn)行識別后發(fā)送給車(chē)載終端,并送用戶(hù)界面模塊顯示。
通信模塊的主要任務(wù)是完成車(chē)載終端與監控中心的通信,它既可以通過(guò)GPRS網(wǎng)絡(luò )實(shí)現與監控中心的無(wú)線(xiàn)通信,也可以通過(guò)網(wǎng)口與筆記本電腦連接進(jìn)行通信。如果車(chē)載終端與上位機的距離隔的很遠可以直接通過(guò)GPRS網(wǎng)絡(luò )與監控中心進(jìn)行連接,而且通過(guò)GR47模塊連接GPRS網(wǎng)絡(luò )與監控中心連接也非常方便,只用往GPRS模塊發(fā)送幾條AT命令就可以了,但是監控中心必須有能上因特網(wǎng)的固定IP。啟動(dòng)車(chē)載終端的同時(shí)GR47模塊也會(huì )被啟動(dòng),這是模塊會(huì )自動(dòng)連接上GPRS網(wǎng)絡(luò )進(jìn)入命令模式。撥號成功以后就連接上了GPRS網(wǎng)絡(luò )了,然后對于GR47模塊連接的串口進(jìn)行讀寫(xiě)操作就可以實(shí)現與監控中心的無(wú)線(xiàn)通信了。通過(guò)網(wǎng)口進(jìn)行通信則比較簡(jiǎn)單,直接采用Linux下的socket編程就可以實(shí)現。
根據以上各個(gè)模塊的功能的定義,軟件部分主流程圖如圖5所示:
圖5 主程序流程圖
4 總結
本文的創(chuàng )新點(diǎn)是采用GPRS通信網(wǎng)絡(luò )進(jìn)行無(wú)線(xiàn)通信代替了傳統的GSM短信息通信模式,不僅節約了整個(gè)系統的運行成本,而且提高了數據的傳輸速度和可靠性;同時(shí)選用了工業(yè)級的帶有內存管理功能的ARM9芯片AT91RM9200作為處理器,并圍繞它進(jìn)行電路設計,使得該終端有很高的可靠性,并且能夠適應比較惡劣的環(huán)境,因為選用了帶內存管理功能的ARM9芯片,所以可以移植Linux操作系統,該操作系統自帶的資源十分豐富,使得應用程序的功能更加強大,同時(shí)也增加了軟件的擴展性;最后本車(chē)載定位終端融合了GPS全球定位技術(shù),GPRS無(wú)線(xiàn)通信技術(shù),ARM嵌入式技術(shù)以及嵌入式Linux系統的移植與編程,屬于一個(gè)交叉學(xué)科的工程項目。自該系統投入市場(chǎng)半年以來(lái),創(chuàng )造了50余萬(wàn)元的經(jīng)濟效益。
評論