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