高金濤,張宏鵬
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710032)
在道路運(yùn)輸和租賃行業(yè)中,企業(yè)無(wú)法掌握工作車輛具體位置和實(shí)際使用狀態(tài),目前普遍存在騙租、過(guò)期不還、過(guò)度使用、終端軟件維護(hù)成本高等情況對(duì)企業(yè)造成負(fù)面影響。本論文針對(duì)該行業(yè)管理難題,設(shè)計(jì)了基于GPS/GPRS技術(shù)的車輛定位控制跟蹤系統(tǒng),使運(yùn)輸企業(yè)能夠及時(shí)了解工作車輛的位置信息,提高管理效率,降低管理成本。依靠本系統(tǒng)搭建的C/S架構(gòu)車輛信息監(jiān)控平臺(tái)和GPS車載終端,使用戶可以24 h遠(yuǎn)程掌握車輛的位置信息和運(yùn)行狀態(tài),并可以按照要求對(duì)車輛進(jìn)行相應(yīng)的改造,實(shí)現(xiàn)對(duì)車輛的遠(yuǎn)程控制。并提出基于GPRS的嵌入式軟件遠(yuǎn)程在線升級(jí)方案,較好地解決了數(shù)量龐大并且分布范圍較廣的車載終端軟件在線升級(jí)或維護(hù)的問(wèn)題。
本系統(tǒng)由GPS衛(wèi)星定位系統(tǒng)、GPS車載終端、GPRS無(wú)線傳輸網(wǎng)絡(luò)、車輛監(jiān)控管理中心、遠(yuǎn)程監(jiān)控5大部分組成。文中主要介紹GPS車載終端的設(shè)計(jì)及實(shí)現(xiàn)方法。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
1)GPS車載終端通過(guò)GPS模塊接收GPS衛(wèi)星定位系統(tǒng)發(fā)送的車輛經(jīng)緯度等數(shù)據(jù)信息,并通過(guò)GPRS模塊和移動(dòng)運(yùn)營(yíng)商的GPRS網(wǎng)絡(luò)與監(jiān)控中心建立雙向數(shù)據(jù)通道,執(zhí)行發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、處理數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)等指令,包括經(jīng)緯度計(jì)算、超速/偏航/越界等報(bào)警信號(hào)檢測(cè)、本地?cái)?shù)據(jù)處理、接受遠(yuǎn)程參數(shù)設(shè)置、終端軟件遠(yuǎn)程更新等功能,以實(shí)現(xiàn)車輛的監(jiān)控及管理。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure
2)車輛監(jiān)控中心通過(guò)GPRS網(wǎng)絡(luò)與GPS車載終端建立UDP連接,以實(shí)現(xiàn)雙向數(shù)據(jù)傳送及數(shù)據(jù)處理[2]。
3)車輛監(jiān)控中心數(shù)據(jù)庫(kù)服務(wù)器與監(jiān)控服務(wù)器建立連接,執(zhí)行數(shù)據(jù)的存儲(chǔ)功能。
4)遠(yuǎn)程監(jiān)控通過(guò)WEB瀏覽器訪問(wèn)監(jiān)控服務(wù)器,執(zhí)行電子地圖操作、參數(shù)遠(yuǎn)程設(shè)置、與GPS車載終端進(jìn)行文字、圖片等信息交互、車輛管理、偏航路線和區(qū)域設(shè)置、信息統(tǒng)計(jì)等功能。
5)超級(jí)用戶通過(guò)登錄平臺(tái)網(wǎng)關(guān)服務(wù)器,執(zhí)行終端軟件版本遠(yuǎn)程升級(jí)。
1)主控芯片選用ATmega128,主要優(yōu)點(diǎn):低功耗、8位的微處理器,供電電壓為3.3 V;內(nèi)置128 kB的片內(nèi)Flash存儲(chǔ)器、4 kB的EEPROM存儲(chǔ)器和4 kB的SRAM,最大處理速度可達(dá)16 MIPS;-55~125℃的工作溫度,適合終端的正常工作條件。
2)GPS模塊采用華訊GPS OEM模塊6128U,該模塊采用SiRFIII低功耗單芯片,具有全方位的定位功能。特點(diǎn):冷熱啟動(dòng)時(shí)間短,接收機(jī)靈敏度高,定位速度快,可選擇坐標(biāo)系,2個(gè)全速TTL串口,工作溫度范圍-40~+85℃,供電電壓為3.3 V。支持外接GPS有源天線,有源天線的中心頻率[3]1 575.42 MHz。
3)GPRS模塊選用華為GTM900C模塊,工作電壓為4 V,工作溫度-20~70℃,關(guān)機(jī)漏極電流為 50 μA,符合常溫、低電壓和低功耗的設(shè)計(jì)要求。它是一款兩頻段的GSM/GPRS模塊。與現(xiàn)有的手機(jī)網(wǎng)絡(luò)兼容,可通過(guò)手機(jī)對(duì)終端進(jìn)行控制操作。
由圖2可以了解遠(yuǎn)程車載監(jiān)控終端的功能劃分,主要分為主控單元、控制輸出模塊、GPS數(shù)據(jù)模塊、GPRS通信模塊、音頻處理單元和電源。文中主要介紹GPRS通信模塊和語(yǔ)音解碼模塊。
圖2 硬件功能框圖Fig.2 Hardware function diagram
2.2.1 GPRS通信模塊
GTM900C提供一路全雙工串口,通過(guò)AT命令與主控芯片直接進(jìn)行信息交互。同時(shí)該模塊具有兩路的音頻輸入輸出通道,可以同時(shí)進(jìn)行音頻的輸入和輸出?;谠O(shè)計(jì)的需要本設(shè)計(jì)只使用了第一路音頻輸入輸出通道。音頻輸入通道MIC與音頻信號(hào)轉(zhuǎn)換芯片相連接,用以輸入單片機(jī)中存儲(chǔ)的音頻信息;音頻輸出通道EAR與音頻解碼芯片相連接,傳送外部的語(yǔ)音信息進(jìn)行DTMF解碼[4]。
2.2.2 音頻處理電路
音頻處理采用HT9170。該芯片是綜合數(shù)字解碼器和多帶濾波器功能的雙音多頻(DTMF)接收器,把16倍的DTMF音頻解碼,高精度的轉(zhuǎn)換電容濾波器把音頻信號(hào)分離為低頻信號(hào)和高頻信號(hào),輸出4位代碼到主控單片機(jī),其判斷外部輸入的命令后做出相應(yīng)的動(dòng)作。EST端通常為低電平,通過(guò)的RC放電使能端RT/GT保持低。當(dāng)檢測(cè)到有效音頻信號(hào)輸入時(shí),EST變成高電平,從而使RT/GT端通過(guò)RC電路對(duì)其充電。當(dāng)RT/GT端的電壓從0上升到VTRT時(shí),輸入信號(hào)為有效,然后經(jīng)編碼檢測(cè)器產(chǎn)生的編碼信號(hào)輸出。當(dāng)D0~D3輸出信號(hào)被完全鎖存時(shí),DV端變成高電平。當(dāng)RT/GT端電壓從VDD下降到VTRT時(shí),DV端變成低電平,此時(shí)D0~D3數(shù)據(jù)將一直被保持,直到接收到下一個(gè)有效信號(hào)為止。
圖3 無(wú)線模塊單元電路Fig.3 Wireless module unit circuit
圖4 DTMF解碼電路Fig.4 DTMF decoder circuit
終端軟件采用模塊化設(shè)計(jì),每個(gè)模塊都有一個(gè)功能,每個(gè)函數(shù)都以子程序的形式出現(xiàn),縮短了開(kāi)發(fā)時(shí)間,易于程序的修改和移植,同時(shí),在軟件編寫(xiě)時(shí),預(yù)留了其他的軟件應(yīng)用接口,方便軟件功能升級(jí)。軟件功能框圖如圖5所示。文中主要介紹BootLoader遠(yuǎn)程升級(jí)。
圖5 軟件功能框圖Fig.5 Software function diagram
終端的遠(yuǎn)程升級(jí)主要以GPRS網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳輸,GPRS網(wǎng)絡(luò)帶寬較窄,延遲較大,不適于采用TCP協(xié)議進(jìn)行通信[5]。而采用UDP協(xié)議無(wú)連接方式傳輸,其優(yōu)點(diǎn)是效率高,流量小,節(jié)省網(wǎng)絡(luò)帶寬資源。缺點(diǎn)是沒(méi)有確認(rèn)機(jī)制,有可能引起丟包,根據(jù)實(shí)際經(jīng)驗(yàn)發(fā)現(xiàn),采用UDP方式傳輸,丟包率能控制在1%以下,因此可通過(guò)在傳輸協(xié)議上實(shí)現(xiàn)類似TCP的包確認(rèn)和重傳機(jī)制,從而提高通信效率及可靠性。
1)終端遠(yuǎn)程升級(jí)請(qǐng)求
平臺(tái)發(fā)送升級(jí)請(qǐng)求,終端的傳輸層接收到平臺(tái)下發(fā)的升級(jí)指令判斷是否進(jìn)行升級(jí),做出相應(yīng)的回答。終端遠(yuǎn)程升級(jí)請(qǐng)求的幀格式如下:
①升級(jí)標(biāo)識(shí):01h——強(qiáng)制升級(jí)。無(wú)需版本號(hào)比較,直接強(qiáng)制升級(jí)為目標(biāo)版本;02h——邀請(qǐng)升級(jí)。終端可根據(jù)本號(hào)規(guī)則判斷確定要不要升級(jí)。
②升級(jí)類型:01h——操作系統(tǒng);02h——應(yīng)用程序。
③目標(biāo)版本信息:需要升級(jí)的版本信息。
④MD5值:整個(gè)升級(jí)數(shù)據(jù)MD5值,下載完以此來(lái)校驗(yàn)數(shù)據(jù)的完整性。
⑤數(shù)據(jù)量大?。褐甘菊麄€(gè)升級(jí)數(shù)據(jù)的大小。
⑥包長(zhǎng):用來(lái)指示升級(jí)包大小。
2)遠(yuǎn)程升級(jí)應(yīng)答
終端收到平臺(tái)下發(fā)的遠(yuǎn)程升級(jí)指令后,應(yīng)給平臺(tái)相應(yīng)的回復(fù)。終端回復(fù)內(nèi)容:
①01h——操作成功,同意升級(jí);
②02h——操作失敗,有參數(shù)異常;
③03h——拒絕升級(jí)。
3)遠(yuǎn)程升級(jí)數(shù)據(jù)下載
在遠(yuǎn)程升級(jí)命令下發(fā)前,遠(yuǎn)程升級(jí)的數(shù)據(jù)文件應(yīng)已經(jīng)準(zhǔn)備好。在移動(dòng)終端確認(rèn)下載后,會(huì)采用下載模式來(lái)獲取遠(yuǎn)程升級(jí)數(shù)據(jù)。
①D_LEN:升級(jí)數(shù)據(jù)長(zhǎng)度;
②DATA:升級(jí)數(shù)據(jù)內(nèi)容;
③Update_type(1):01h——操作系統(tǒng);02h——應(yīng)用程序;
④Target_ver(L):需要升級(jí)到的目標(biāo)版本信息。
針對(duì)于平臺(tái)要進(jìn)行大數(shù)據(jù)下載,采取建立下載鏈路的方式進(jìn)行批量數(shù)據(jù)傳輸。平臺(tái)發(fā)起下載邀請(qǐng),然后終端建立起與平臺(tái)的臨時(shí)鏈路,按照分包批量傳遞機(jī)制從平臺(tái)批量地“取”數(shù)據(jù),傳輸完畢后拆鏈。具體過(guò)程如下:
①下載數(shù)據(jù)索取。終端在核對(duì)了數(shù)據(jù)總量、包尺寸等之前平臺(tái)發(fā)來(lái)的數(shù)據(jù)包后,若一切正常,發(fā)送下載數(shù)據(jù)包索取請(qǐng)求,等待平臺(tái)發(fā)送數(shù)據(jù)。
②索取數(shù)據(jù)應(yīng)答。平臺(tái)在接收終端①后,按照順序向終端發(fā)送數(shù)據(jù)包。
③按照索取的起止順序下發(fā)數(shù)據(jù)包,并進(jìn)行排序。
④起止數(shù)據(jù)包都發(fā)完后,馬上下發(fā)查詢,查詢終端是否全部接收到。
⑤接收結(jié)果報(bào)告。在③過(guò)程中若隔了10 s仍然沒(méi)有數(shù)據(jù)到來(lái),執(zhí)行此過(guò)程。
⑥根據(jù)⑤發(fā)送報(bào)告,平臺(tái)選擇重新傳送或者續(xù)傳。
⑦下載拆鏈請(qǐng)求。若⑤返回報(bào)告全部接收完畢或平臺(tái)服務(wù)器出現(xiàn)異常,終端發(fā)送請(qǐng)求拆鏈。
⑧下載拆鏈應(yīng)答。平臺(tái)收到⑦后,拆掉鏈路并回復(fù),一次下載過(guò)程結(jié)束。
如果在傳輸過(guò)程中遇到不可抗拒因素是傳輸中斷,協(xié)議還支持?jǐn)帱c(diǎn)續(xù)傳,當(dāng)終端重新工作時(shí),會(huì)向平臺(tái)發(fā)送上次傳輸?shù)淖詈笠粋€(gè)包得流水號(hào),平臺(tái)會(huì)根據(jù)流水號(hào)繼續(xù)傳遞下一個(gè)流水號(hào)的數(shù)據(jù)包,重復(fù)以上過(guò)程。
ATmega128的存儲(chǔ)器分為兩個(gè)部分,用戶程序區(qū)和BootLoader。用戶程序區(qū)包含了應(yīng)用程序的代碼,而B(niǎo)ootLoader包含了自編程的代碼。另外一種劃分應(yīng)用程序區(qū)和BootLoader的方法也是將Flash劃分為兩個(gè)固定大小的區(qū)域。一部分是讀寫(xiě)同步區(qū)域(RWW),另一部分是讀寫(xiě)分時(shí)區(qū)域(NRWW)。NRWW和RWW之間不同的地方是當(dāng)RWW升級(jí)的時(shí)候,NRWW可以被訪問(wèn),但當(dāng)升級(jí)NRWW時(shí),RWW不可以被訪問(wèn)。Flash被按頁(yè)分配,每頁(yè)包含32、62或128字。應(yīng)用程序部分包含應(yīng)用程序的主代碼,可以通過(guò)引導(dǎo)程序?qū)ζ溥M(jìn)行改寫(xiě);引導(dǎo)程序部分包含實(shí)際自編譯的代碼自編譯部分在引導(dǎo)程序部分被執(zhí)行??梢酝ㄟ^(guò)網(wǎng)絡(luò)直接以上位機(jī)進(jìn)行數(shù)據(jù)交互,從而對(duì)主程序進(jìn)行更新。引導(dǎo)程序的大小通過(guò)熔絲位進(jìn)行設(shè)定。
文中設(shè)定 BootLoader的起始地址為 0xFC00,大小為1 024個(gè)字節(jié)。終端的頁(yè)寫(xiě)入過(guò)程如圖6所示。終端接收到的每一個(gè)數(shù)據(jù)包后,都會(huì)先存入EEPROM內(nèi),等待下接收一個(gè)數(shù)據(jù)包。在進(jìn)行程序更新時(shí),每頁(yè)寫(xiě)入新的數(shù)據(jù)之前,必須將這頁(yè)原有的數(shù)據(jù)擦除。向頁(yè)寫(xiě)入數(shù)據(jù)時(shí),首先必須先將數(shù)據(jù)寫(xiě)入RAM頁(yè)緩沖區(qū)中,臨時(shí)保存。緩沖區(qū)被一字一字填滿后,再將緩沖區(qū)的內(nèi)容按頁(yè)復(fù)制到Flash,完成應(yīng)用程序區(qū)的程序更新。
圖6 程序更新流程圖Fig.6 Flow chart of program updates
文中介紹了基于GPS/GPRS的車輛監(jiān)控終端的一種實(shí)現(xiàn)設(shè)計(jì)方案,給出了詳細(xì)的軟件及硬件組成和設(shè)計(jì)實(shí)現(xiàn),并針對(duì)數(shù)量龐大并且分布范圍較廣的車載終端軟件在線升級(jí)或維護(hù)的問(wèn)題,提出了一種GPRS的多點(diǎn)遠(yuǎn)程在線升級(jí)方案。經(jīng)多次試驗(yàn)效果良好,該系統(tǒng)可以應(yīng)用于交通指揮系統(tǒng),物流管理系統(tǒng)、城市汽車租賃管理系統(tǒng),具有十分廣泛的應(yīng)用前景。
[1]江杰,趙建霞.基于GPS/GSM雙定位模式的車載導(dǎo)航系統(tǒng)設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2008(5):46.JIANG Jie,ZHAO Jian-xia.Based on GPS/GSM double localization model of the car’s navigation system design[J].Science and Technology Innovation Herald,2008(25):46.
[2]洪利,王敏,章?lián)P.無(wú)線CPU與移動(dòng)IP網(wǎng)絡(luò)開(kāi)發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2008.
[3]HUAXUN Microelectronics Inc.GPS OEM U6128[S].2008:1-13.
[4]倪建軍,范躍祖,李松林.利用GSM短消息業(yè)務(wù)實(shí)現(xiàn)GPS車輛監(jiān)控[J].電子技術(shù)應(yīng)用 2000(7):12-19.NI Jian-jun,F(xiàn)AN Yue-zu,LI Song-lin.Use GSM short news business to realize GPS vehicle monitoring[J].Applicationof Electronic Technology,2000(7):12-19.
[5]陳新.GSM數(shù)字蜂窩移動(dòng)通信技術(shù)[M].北京:人民郵電出版社,2005.
[6]Bradford W,Parkinson,James J,et al.Global Positioning System:Theory and Applications[M].AIAA,2006:5-26.