基于GPS/GPRS的車(chē)輛移動(dòng)監控終端的設計與實(shí)現
(1) 主控模塊是系統的核心模塊,負責系統的控制,以消息分發(fā)的方式與其他模塊交互,并控制其運行狀態(tài)達到總體控制系統運行的目的。根據系統工作時(shí)處理的不同任務(wù)將主控模塊劃分為啟動(dòng)上電、正常工作、處理SMS數據、處理GPRS數據和退出下電五個(gè)狀態(tài)。主控模塊的任務(wù)名為SyscMain,他有自己的消息接收管道pipe[SY-SC],他循環(huán)地從此管道中接收和處理消息,并根據消息體的內容在主控模塊的不同的狀態(tài)之間轉移切換,同時(shí)通過(guò)向其他模塊的消息管道發(fā)送消息來(lái)控制他們的運行狀態(tài),另一方面其他模塊通過(guò)消息管道向主控通知其自身的運行狀態(tài)和接受的數據,以接受主控模塊的監控。
(2) GPS模塊主要負責GPS數據的接收和解析。由于GPS輸出數據采用NMEA-0183格式,輸出數據為多種格式,在本系統中,僅選擇了取其中的一種數據格式:GPRMC(推薦最小數據量的GPS信息),其格式為(見(jiàn)表1):
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,,<11>,<12>*hh

當GPS輸出數據為有效定位數據時(shí),提取相應的信息(經(jīng)緯度、高度、速度等),同時(shí)轉換UTC時(shí)間為本地時(shí)間,封裝為系統自定義的GPS DATA數據格式發(fā)送到通信任務(wù)模塊。
(3) PPP模塊負責GPRS的底層PPP連接和PPP數據包的處理。點(diǎn)對點(diǎn)協(xié)議(PPP)為在點(diǎn)對點(diǎn)連接上傳輸多協(xié)議數據包提供了一個(gè)標準方法。在TCP/IP協(xié)議集中他是一種用來(lái)同步調制連接的數據鏈路層協(xié)議。該模塊實(shí)現負責TCP/IP協(xié)議棧低層的PPP協(xié)議的連接和釋放,以及相應收到的PPP數據幀的處理與上層的TCP/IP層交互。主要包括PPP協(xié)議數據幀的封裝方式、初始化的LCP協(xié)議的協(xié)商、PAP密碼驗證和NCP協(xié)議的協(xié)商過(guò)程的處理。該模塊由外掛模塊Nucleus NET提供支持。
(4) 通信模塊(GPRS模塊)負責與監控中心系統通信,完成GPRS數據的收發(fā)和短消息的收發(fā)。CPU對GPRS的控制主要是通過(guò)UART2發(fā)送AT命令實(shí)現。GSM AT指令集是由諾基亞、愛(ài)立信、摩托羅拉和HP等廠(chǎng)家共同為GSM系統研制的,提供了一種移動(dòng)平臺與數據終端設備之間的通用接口,并被加入到GSM 07.05標準以及之后的GSM 07.07標準。用戶(hù)可以通過(guò)AT指令實(shí)現呼叫控制、短消息SMS、電話(huà)本、數據業(yè)務(wù)、補充業(yè)務(wù)、傳真等方面的控制。
為滿(mǎn)足用戶(hù)進(jìn)行GPRS數據通信的要求,NucleusNET作為外掛模塊能與Nucleus PLUS無(wú)縫結合從而實(shí)現其網(wǎng)絡(luò )互聯(lián)功能。Nucleus NET通常使用TCP/UDP協(xié)議的客戶(hù)/服務(wù)器運行模式,完成建立連接、發(fā)送數據及接收數據的工作。
TCP/IP的建立過(guò)程中,首先調用Nucleus NET提供的NU_init函數初始化GPRS網(wǎng)絡(luò ),通過(guò)相應的設置AT指令來(lái)完成,包括檢測是否連接到網(wǎng)絡(luò )(AT+CREG),通信信號強弱(AT+CSQ)以及SIM卡的PIN值是否輸入(AT+CPIN)等。然后用PPP撥號方式撥入GPRS網(wǎng)絡(luò ),完成底層的數據鏈路層的連接,這部分由上述的PPP模塊來(lái)完成。接著(zhù)調用Nu_Socket函數為他的通信分配一個(gè)套接字,然后調用NU_Connect函數與監控中心服務(wù)器建立連接成功后,就可以進(jìn)行GPRS數據的發(fā)送NUSend.和接受NU_Reev.
在監控中心服務(wù)器和移動(dòng)終端上的數據傳輸協(xié)議上,為了兼容GPRS和GSM短消息這兩種通信方式,系統自定義了如圖所示的通信幀結構,其中協(xié)議幀最大長(cháng)度為140 B,包括幀控制字節。

其中固定使用字母“A”作為幀頭;幀類(lèi)型用來(lái)表示該幀的具體含義,當為下行通信幀(監控中心服務(wù)器→終端)時(shí)表示為監控中心對終端的控制命令類(lèi)型,比如設定定時(shí)報位命令、設定超速報警命令、終端配置命令等。當為上行通信幀(終端→監控中心服務(wù)器)時(shí)該字節省略;幀長(cháng)為該幀體字段的長(cháng)度;幀長(cháng)的反為幀長(cháng)字段按位取反的結果;幀體是個(gè)串類(lèi)型,依據幀類(lèi)型的不同表示不同的含義,當該幀為上行通信幀時(shí),幀體的內容為系統自定義的GPS數據;幀序號從0開(kāi)始到255后歸0,用來(lái)對幀順序進(jìn)行判斷;校驗和為幀類(lèi)型、幀長(cháng)、幀長(cháng)的反、幀序號、幀體幾個(gè)字段各字節按字節異或的結果,用來(lái)判斷該幀的正確性。
另一方面,用戶(hù)還可以通過(guò)按鍵發(fā)送SMS來(lái)上報監控中心。主控芯片利用串口向GSM Modem收發(fā)一系列的GSM 07.05標準所定義的AT命令集,就能達到控制收發(fā)SMS的目的。根據GSMGSM 07.05標準,對SMS的控制共有3種接入協(xié)議:Block Mode;基于A(yíng)T命令的TextMode;基于A(yíng)T命令的PDU Mode。本系統采用PDU模式對短信息正文經(jīng)過(guò)十六進(jìn)制編碼后傳送。PDU模式下可以采用3種編碼方式來(lái)對發(fā)送的內容進(jìn)行編碼,他們是7 b,8 b和UCS2編碼。7 b編碼用于發(fā)送普通的ASCII字符,他將一串7 b的字符(最高位為0)編碼成8 b的數據,每8個(gè)字符可“壓縮”成7個(gè);8 b編碼通常用于發(fā)送數據消息;而UCS2編碼用于發(fā)送Unicode字符。
發(fā)送SMS的具體過(guò)程為:
①首先發(fā)送AT以測試GSM Modem連接是否正常,等待GSM Modem返回OK;
②發(fā)送ATE0設置GSM Modem取消回顯模式,等待返回OK;
③發(fā)送AT+CMGF=0設置發(fā)送短信時(shí)選用PDU格式編碼,等待返回OK;
④接下來(lái)為正式發(fā)送SMS,先調用PDU編碼函數對接收到GPS數據GPS_DATA進(jìn)行編碼,并根據通信協(xié)議封裝為上行通信幀格式,然后發(fā)送指令。
AT+CMGS=監控中心短消息號碼+回車(chē)符(0x0d,0x0a)+上行通信幀數據+回車(chē)符(0x0d,0x0a),等待返回OK。
上述的每個(gè)步驟完成后都必須加上回車(chē)符號(0x0d,0x0a)以使GSM Modem區別為不同的AT指令,而且都必須等待相應的應答,若失敗(回應ERROR),需重新發(fā)送該AT指令。
(5) 附件模塊負責終端硬件設備的檢測,并通知主控模塊,實(shí)現應用程序對終端硬件的控制。
CPU對其他外圍接口的控制主要通過(guò)通用I/O口實(shí)現開(kāi)關(guān)(電平)輸入/輸出,同時(shí)通過(guò)外部中斷的方式實(shí)現了與點(diǎn)火信號、車(chē)用防盜報警器、緊急報警(SOS)等的接口。
4 結 語(yǔ)
使用GPRS作為GPS車(chē)輛綜合監控調度管理系統的無(wú)線(xiàn)傳輸手段,具有費用低、無(wú)需線(xiàn)纜施工及安全可靠、維護方便的特點(diǎn),是一種經(jīng)濟可行、技術(shù)先進(jìn)的系統構建方案,這將使車(chē)輛監控系統具有更為廣闊的應用前景。本文設計的基于GPS/GPRS的車(chē)載移動(dòng)終端已投入實(shí)際運行,工作穩定,能夠較精確地完成車(chē)輛監控,操作簡(jiǎn)單方便。
評論