基于GPS/GPRS的車輛移動監(jiān)控終端的設計與實現(xiàn)
(1) 主控模塊是系統(tǒng)的核心模塊,負責系統(tǒng)的控制,以消息分發(fā)的方式與其他模塊交互,并控制其運行狀態(tài)達到總體控制系統(tǒng)運行的目的。根據(jù)系統(tǒng)工作時處理的不同任務將主控模塊劃分為啟動上電、正常工作、處理SMS數(shù)據(jù)、處理GPRS數(shù)據(jù)和退出下電五個狀態(tài)。主控模塊的任務名為SyscMain,他有自己的消息接收管道pipe[SY-SC],他循環(huán)地從此管道中接收和處理消息,并根據(jù)消息體的內(nèi)容在主控模塊的不同的狀態(tài)之間轉(zhuǎn)移切換,同時通過向其他模塊的消息管道發(fā)送消息來控制他們的運行狀態(tài),另一方面其他模塊通過消息管道向主控通知其自身的運行狀態(tài)和接受的數(shù)據(jù),以接受主控模塊的監(jiān)控。
(2) GPS模塊主要負責GPS數(shù)據(jù)的接收和解析。由于GPS輸出數(shù)據(jù)采用NMEA-0183格式,輸出數(shù)據(jù)為多種格式,在本系統(tǒng)中,僅選擇了取其中的一種數(shù)據(jù)格式:GPRMC(推薦最小數(shù)據(jù)量的GPS信息),其格式為(見表1):
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,,<11>,<12>*hh
當GPS輸出數(shù)據(jù)為有效定位數(shù)據(jù)時,提取相應的信息(經(jīng)緯度、高度、速度等),同時轉(zhuǎn)換UTC時間為本地時間,封裝為系統(tǒng)自定義的GPS DATA數(shù)據(jù)格式發(fā)送到通信任務模塊。
(3) PPP模塊負責GPRS的底層PPP連接和PPP數(shù)據(jù)包的處理。點對點協(xié)議(PPP)為在點對點連接上傳輸多協(xié)議數(shù)據(jù)包提供了一個標準方法。在TCP/IP協(xié)議集中他是一種用來同步調(diào)制連接的數(shù)據(jù)鏈路層協(xié)議。該模塊實現(xiàn)負責TCP/IP協(xié)議棧低層的PPP協(xié)議的連接和釋放,以及相應收到的PPP數(shù)據(jù)幀的處理與上層的TCP/IP層交互。主要包括PPP協(xié)議數(shù)據(jù)幀的封裝方式、初始化的LCP協(xié)議的協(xié)商、PAP密碼驗證和NCP協(xié)議的協(xié)商過程的處理。該模塊由外掛模塊Nucleus NET提供支持。
(4) 通信模塊(GPRS模塊)負責與監(jiān)控中心系統(tǒng)通信,完成GPRS數(shù)據(jù)的收發(fā)和短消息的收發(fā)。CPU對GPRS的控制主要是通過UART2發(fā)送AT命令實現(xiàn)。GSM AT指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,提供了一種移動平臺與數(shù)據(jù)終端設備之間的通用接口,并被加入到GSM 07.05標準以及之后的GSM 07.07標準。用戶可以通過AT指令實現(xiàn)呼叫控制、短消息SMS、電話本、數(shù)據(jù)業(yè)務、補充業(yè)務、傳真等方面的控制。
為滿足用戶進行GPRS數(shù)據(jù)通信的要求,NucleusNET作為外掛模塊能與Nucleus PLUS無縫結(jié)合從而實現(xiàn)其網(wǎng)絡互聯(lián)功能。Nucleus NET通常使用TCP/UDP協(xié)議的客戶/服務器運行模式,完成建立連接、發(fā)送數(shù)據(jù)及接收數(shù)據(jù)的工作。
TCP/IP的建立過程中,首先調(diào)用Nucleus NET提供的NU_init函數(shù)初始化GPRS網(wǎng)絡,通過相應的設置AT指令來完成,包括檢測是否連接到網(wǎng)絡(AT+CREG),通信信號強弱(AT+CSQ)以及SIM卡的PIN值是否輸入(AT+CPIN)等。然后用PPP撥號方式撥入GPRS網(wǎng)絡,完成底層的數(shù)據(jù)鏈路層的連接,這部分由上述的PPP模塊來完成。接著調(diào)用Nu_Socket函數(shù)為他的通信分配一個套接字,然后調(diào)用NU_Connect函數(shù)與監(jiān)控中心服務器建立連接成功后,就可以進行GPRS數(shù)據(jù)的發(fā)送NUSend.和接受NU_Reev.
在監(jiān)控中心服務器和移動終端上的數(shù)據(jù)傳輸協(xié)議上,為了兼容GPRS和GSM短消息這兩種通信方式,系統(tǒng)自定義了如圖所示的通信幀結(jié)構(gòu),其中協(xié)議幀最大長度為140 B,包括幀控制字節(jié)。
其中固定使用字母“A”作為幀頭;幀類型用來表示該幀的具體含義,當為下行通信幀(監(jiān)控中心服務器→終端)時表示為監(jiān)控中心對終端的控制命令類型,比如設定定時報位命令、設定超速報警命令、終端配置命令等。當為上行通信幀(終端→監(jiān)控中心服務器)時該字節(jié)省略;幀長為該幀體字段的長度;幀長的反為幀長字段按位取反的結(jié)果;幀體是個串類型,依據(jù)幀類型的不同表示不同的含義,當該幀為上行通信幀時,幀體的內(nèi)容為系統(tǒng)自定義的GPS數(shù)據(jù);幀序號從0開始到255后歸0,用來對幀順序進行判斷;校驗和為幀類型、幀長、幀長的反、幀序號、幀體幾個字段各字節(jié)按字節(jié)異或的結(jié)果,用來判斷該幀的正確性。
另一方面,用戶還可以通過按鍵發(fā)送SMS來上報監(jiān)控中心。主控芯片利用串口向GSM Modem收發(fā)一系列的GSM 07.05標準所定義的AT命令集,就能達到控制收發(fā)SMS的目的。根據(jù)GSMGSM 07.05標準,對SMS的控制共有3種接入?yún)f(xié)議:Block Mode;基于AT命令的TextMode;基于AT命令的PDU Mode。本系統(tǒng)采用PDU模式對短信息正文經(jīng)過十六進制編碼后傳送。PDU模式下可以采用3種編碼方式來對發(fā)送的內(nèi)容進行編碼,他們是7 b,8 b和UCS2編碼。7 b編碼用于發(fā)送普通的ASCII字符,他將一串7 b的字符(最高位為0)編碼成8 b的數(shù)據(jù),每8個字符可“壓縮”成7個;8 b編碼通常用于發(fā)送數(shù)據(jù)消息;而UCS2編碼用于發(fā)送Unicode字符。
發(fā)送SMS的具體過程為:
①首先發(fā)送AT以測試GSM Modem連接是否正常,等待GSM Modem返回OK;
②發(fā)送ATE0設置GSM Modem取消回顯模式,等待返回OK;
③發(fā)送AT+CMGF=0設置發(fā)送短信時選用PDU格式編碼,等待返回OK;
④接下來為正式發(fā)送SMS,先調(diào)用PDU編碼函數(shù)對接收到GPS數(shù)據(jù)GPS_DATA進行編碼,并根據(jù)通信協(xié)議封裝為上行通信幀格式,然后發(fā)送指令。
AT+CMGS=監(jiān)控中心短消息號碼+回車符(0x0d,0x0a)+上行通信幀數(shù)據(jù)+回車符(0x0d,0x0a),等待返回OK。
上述的每個步驟完成后都必須加上回車符號(0x0d,0x0a)以使GSM Modem區(qū)別為不同的AT指令,而且都必須等待相應的應答,若失敗(回應ERROR),需重新發(fā)送該AT指令。
(5) 附件模塊負責終端硬件設備的檢測,并通知主控模塊,實現(xiàn)應用程序?qū)K端硬件的控制。
CPU對其他外圍接口的控制主要通過通用I/O口實現(xiàn)開關(guān)(電平)輸入/輸出,同時通過外部中斷的方式實現(xiàn)了與點火信號、車用防盜報警器、緊急報警(SOS)等的接口。
4 結(jié) 語
使用GPRS作為GPS車輛綜合監(jiān)控調(diào)度管理系統(tǒng)的無線傳輸手段,具有費用低、無需線纜施工及安全可靠、維護方便的特點,是一種經(jīng)濟可行、技術(shù)先進的系統(tǒng)構(gòu)建方案,這將使車輛監(jiān)控系統(tǒng)具有更為廣闊的應用前景。本文設計的基于GPS/GPRS的車載移動終端已投入實際運行,工作穩(wěn)定,能夠較精確地完成車輛監(jiān)控,操作簡單方便。
評論