引 言
基于GPS/ GPRS 的車輛監(jiān)控系統(tǒng)在我國(guó)開始應(yīng)用是在20 世紀(jì)90 年代初, 在2000 年后才逐漸出現(xiàn)了較成熟的產(chǎn)品。目前很多的導(dǎo)航定位產(chǎn)品數(shù)據(jù)傳輸?shù)姆绞經(jīng)]有得到優(yōu)化, 不能做到以較少的流量完成相對(duì)實(shí)時(shí)穩(wěn)定的監(jiān)控任務(wù), 影響整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性。
本文從系統(tǒng)總體設(shè)計(jì)的角度介紹基于GPRS 網(wǎng)絡(luò)GPS 監(jiān)控系統(tǒng)的設(shè)計(jì), 選用GPRS 網(wǎng)絡(luò)為主GSM 通訊方式為輔的通訊方式, 這種通訊方式穩(wěn)定性強(qiáng), 面對(duì)將來(lái)的3G 網(wǎng)絡(luò)可平滑技術(shù)升級(jí), 耗費(fèi)流量較少, 同時(shí)GPRS 網(wǎng)絡(luò)支持TCP/ IP 協(xié)議, 使得無(wú)線數(shù)據(jù)的傳輸變得更加輕松,更容易擴(kuò)展功能。
GPRS( 通用分組無(wú)線業(yè)務(wù)) 是在現(xiàn)有的GSM 網(wǎng)絡(luò)上開通的一種數(shù)據(jù)業(yè)務(wù), 相比原來(lái)GSM 撥號(hào)方式的數(shù)據(jù)交換傳送方式, 具有“永遠(yuǎn)在線”、“ 按流量計(jì)費(fèi)”、“快捷登錄”、“ 支持TCP/ IP 協(xié)議”、“適用于中小數(shù)據(jù)量傳輸”等優(yōu)點(diǎn)。GPRS 系統(tǒng)在GSM 基礎(chǔ)上, 增加了分組控制單元( PCU ) 、服務(wù)GPRS 支持節(jié)點(diǎn)SGSN ( serving GPRS support node) 、網(wǎng)關(guān)GPRS 支持節(jié)點(diǎn)GGSN ( gateway GPRSsuppor t node) 等網(wǎng)元設(shè)備。
1 車輛監(jiān)控系統(tǒng)總體及通訊通道
車輛監(jiān)控管理系統(tǒng)包括服務(wù)器、監(jiān)控服務(wù)終端、車載終端以及外圍網(wǎng)頁(yè)瀏覽器管理器和用戶手機(jī)管理器。各個(gè)部分以服務(wù)器為中心, 通過GSM/ GPRS 網(wǎng)絡(luò)以及Internet 網(wǎng)絡(luò)組織起來(lái)配合工作, 完成車輛實(shí)時(shí)監(jiān)控管理等功能。系統(tǒng)總體結(jié)構(gòu)框圖如圖1 所示。
?
圖1? 車輛監(jiān)控系統(tǒng)結(jié)構(gòu)框圖
車載終端集成控制芯片( MCU ) 、GPS 定位模塊、GPRS 數(shù)據(jù)傳輸模塊以及語(yǔ)音模塊等周邊設(shè)備。GPS 定位模塊采集定位信息, 通過串口發(fā)送給MCU, MCU 分析打包后通過串口發(fā)送給GPRS 模塊, 完成信息的采集、分析、傳送流程。
數(shù)據(jù)傳輸中, GPRS 網(wǎng)絡(luò)與Internet 網(wǎng)絡(luò)共同搭建系統(tǒng)的數(shù)據(jù)傳輸通道, 車載機(jī)與監(jiān)控中心之間維持3 條通信通道:
1) T CP 協(xié)議命令通道——采用T CP 協(xié)議ASCII 方式編碼傳送。
2) T CP 協(xié)議數(shù)據(jù)通道——數(shù)據(jù)以二進(jìn)制編碼傳送, 與命令通道信息在同一SOCKET 傳送。
3) UDP 協(xié)議數(shù)據(jù)通道——實(shí)時(shí)上傳數(shù)據(jù)以UDP 協(xié)議采用二進(jìn)制編碼傳送。
服務(wù)器申請(qǐng)靜態(tài)IP 地址, 開放相應(yīng)的TCP 及U DP端口, 開啟線程完成數(shù)據(jù)接收存儲(chǔ)工作。
2? 數(shù)據(jù)采集傳輸協(xié)議與AT命令
2. 1? GPS 數(shù)據(jù)采集及NMEA??0183 協(xié)議
GPS 模塊, GPS 信號(hào)接收機(jī)和設(shè)備軟件以及GPS 數(shù)據(jù)的后處理軟件包構(gòu)成完整的GPS 模塊。車載終端GPS定位模塊選擇了RoyalTek 公司的REB??1315LPX, 根據(jù)NMEA-0183 協(xié)議完成GPS 定位信息的采集。
NMEA-0183 協(xié)議, NMEA 即Nat iONal Mar ine Electronics Associat ion, 是美國(guó)國(guó)際海洋電子協(xié)會(huì)的縮寫。
NMEA-0183 協(xié)議是該組織為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式, NMEA??0183 協(xié)議語(yǔ)句采用ASCI I 碼, 串行通信默認(rèn)參數(shù)為, 波特率4 800 bps, 8 位數(shù)據(jù)位, 1 位開始位, 1 位停止位, 無(wú)奇偶校驗(yàn)位。其包含的語(yǔ)句種類有: GPGGA,GPGSA, GPGSV, GPRMC, GPV TG.系統(tǒng)采用GPRMC格式, 可以完成所需定位信息的采集。
2. 2? GPRS數(shù)據(jù)傳輸模塊及AT 命令
GPRS 數(shù)據(jù)傳輸模塊選擇SIMComWirelESS SolutionLtd 開發(fā)的一款緊湊型雙頻GSM/ GPRS 無(wú)線通信模塊SIM900A.工作頻率為GSM/ GPRS 900/ 1 800 MHz, 其在GPRS 無(wú)線網(wǎng)絡(luò)連接條件下, 可嵌入TCP/UDP 協(xié)議、FTP/ HTT P 等協(xié)議的數(shù)據(jù)通信, 數(shù)據(jù)下行速率最大可達(dá)到85. 6 kbps.
AT 指令集是從終端設(shè)備T E( terminal equipment) 或數(shù)據(jù)終端設(shè)備DTE( data terminal equipment) 向終端適配器TA( terminal adapter ) 或數(shù)據(jù)電路終端設(shè)備DCE( datacircuit terminal equipment) 發(fā)送的。通過T A, T E 發(fā)送AT 指令來(lái)控制移動(dòng)臺(tái)MS(mobile st ation) 的功能。系統(tǒng)網(wǎng)絡(luò)傳輸中用到的AT 命令有如下幾種:
AT + CMGF= 1 設(shè)置消息內(nèi)容為文本模式;
AT + CMGS = " 138xxxxxxxx"短消息發(fā)送目標(biāo)號(hào)碼;
AT + CIPST ART = "T CP/U DP", "120. 192. 209.83", "8030"
TCP/ UDP 方式連接服務(wù)器, 服務(wù)器IP 為120. 192.209. 83, 端口為8030;
AT + CIPSEN D , 發(fā)送數(shù)據(jù)指令;
數(shù)據(jù)內(nèi)容+ 0x0A , 輸入數(shù)據(jù)內(nèi)容并以0x0A 為數(shù)據(jù)結(jié)尾;
AT + CIPCLOSE, 關(guān)閉連接;
AT + CIPSHUT, 關(guān)閉移動(dòng)場(chǎng)景;
2. 3? 套接字Socket
socket, 用于描述IP 地址和端口, 是一個(gè)通信鏈的句柄。服務(wù)打開一個(gè)Socket, 并綁定到一個(gè)端口上, 不同的端口對(duì)應(yīng)于不同的服務(wù)。一般Socket 有2 種: 流式Socket( SOCK _ STREAM ) 和數(shù)據(jù)報(bào)式Socket ( SOCK _DGRAM) .流式是一種面向連接的S ocket , 針對(duì)于面向連接的TCP 服務(wù)應(yīng)用; 數(shù)據(jù)報(bào)式Socket 是無(wú)連接的Socket, 用于UDP 服務(wù)應(yīng)用。
在車載終端和服務(wù)器程序中, 定義了不同協(xié)議格式的2 種Socket( SOCK_STREAM、SOCK_DGRAM) .Socket作為網(wǎng)絡(luò)節(jié)點(diǎn), 通過T CP/U DP 協(xié)議完成數(shù)據(jù)發(fā)送接收。
3? 車載模塊與服務(wù)器通訊模塊軟件設(shè)計(jì)
軟件部分設(shè)計(jì)主要包括車載模塊通訊軟件和服務(wù)器軟件通訊模塊設(shè)計(jì)。
3. 1? 車載模塊通訊軟件設(shè)計(jì)
1) 車載終端處理器芯片
車載模塊的處理器選擇芯唐M0516 處理器, 車載終端內(nèi)部通訊包括MCU 與GPS 模塊、GPRS 模塊、以及周邊模塊的數(shù)據(jù)傳輸。內(nèi)部數(shù)據(jù)傳輸都通過串口完成。以下代碼為初始化串口中斷, 并使能收發(fā)中斷, 中斷服務(wù)函數(shù):
Void init _ 1315 ( PFN _DRVU ART _CA LLBA CK GPS _
INT _HANDLE)
{
STR_U ART_T sParam;
UNLOCKREG( ) ;
SY SCLK??> PWRCON . XT L12M_EN= 1;
/ * 設(shè)置串口1 功能引腳* /
DrvGPIO_Init Funct ion( E_FUNC_UA RT 0) ;
/ * 串口通信設(shè)置* /
sParam. u32BaudRat e= 9 600;
sParam. u8cDataBits= DRV UART_DAT ABIT S_8;
sParam. u8cSt opBits= DRVU ART _ST OPBIT S_1;
sParam. u8cPar ity= DRVUART _PARIT Y_N ONE;
sParam. u8cRxTriggerLevel = DRVU ART _ FIFO _1BYTES;
while (DrvUART _ Open ( UART _ PORT 0,& sParam) ! = E_SUCCESS) ;
DrvU ART _EnableInt( U ART _PORT0, DRVU ART _RDAINT , GPS_IN T_HANDLE) ;
}
MCU 通過響應(yīng)串口的中斷, 完成車載終端內(nèi)部數(shù)據(jù)傳輸過程。
2) GPS 模塊接收數(shù)據(jù)
GPS 模塊采用REB??1315LPX 模塊, 其讀取定位信息流程如下圖2 所示。
?
圖2 REB-1315LPX 模塊數(shù)據(jù)的讀取方法
代碼較多, 具體實(shí)現(xiàn)函數(shù)不在此處詳述。
(3)GPRS 模塊的通訊程序
GPRS 模塊與處理器的通信是通過串口完成的, 處理器向GPRS 模塊發(fā)送AT 指令以及數(shù)據(jù)。GPRS 模塊連接網(wǎng)絡(luò)后利用TCP/U DP 協(xié)議與調(diào)度中心服務(wù)器進(jìn)行無(wú)線通信。
3. 2 服務(wù)器軟件通訊模塊設(shè)計(jì)
服務(wù)器程序運(yùn)用VC+ + 6. 0 為開發(fā)平臺(tái), 服務(wù)器程序通訊模塊首先定義多組Socket 與其地址結(jié)構(gòu)sockaddr_in, 然后根據(jù)需要調(diào)用通訊函數(shù)完成節(jié)點(diǎn)間通訊。
WSA DAT A wsaDat a; / / 根據(jù)版本通知操作系統(tǒng), 啟用相應(yīng)版本的DLL 庫(kù)
/ / 地址結(jié)構(gòu)賦值:
serv. sin_addr. s_addr= h tonl( INADDR_ANY) ;
serv. sin_family= AF_INET ;
serv. sin_por t= htons( 8030) ; / / 取端口號(hào)為8030
addlen= sizeof( serv) ;
sock_T = socket( AF_INET , SOCK_ST REAM, 0) ;
sock_U= socket(A F_IN ET, SOCK_DGRAM, 0) ;
bind ( sock _ U , ( struct sockaddr * ) & srv, s izeof(srv) ) ; / / 綁定地址與端口
listen( sock_T , 500) ; / / 監(jiān)聽T CP 端口
accept( dlg-> sock_T, ( sockaddr* ) & ( dlg??> serv) ,& ( dlg-> addlen) ) ; / / 接受連接請(qǐng)求
AfxBeginT hread(& t hread, 0) ; / / 啟動(dòng)監(jiān)聽及數(shù)據(jù)傳輸線程
線程中調(diào)用recv( ) 函數(shù)和send( ) 函數(shù), 完成數(shù)據(jù)收發(fā)任務(wù)。
4? 實(shí) 驗(yàn)
設(shè)置車載機(jī)目標(biāo)服務(wù)器IP 地址和端口號(hào)后加電, 車載機(jī)通過GPRS 網(wǎng)絡(luò)向遠(yuǎn)程服務(wù)器發(fā)送連接請(qǐng)求, 服務(wù)器收到連接請(qǐng)求后, 建立連接并根據(jù)SIM 卡號(hào)和車載機(jī)編號(hào)識(shí)別車輛, 按照一定格式打包車輛GPS 并信息定時(shí)回傳, 服務(wù)器將數(shù)據(jù)存入數(shù)據(jù)庫(kù)完成數(shù)據(jù)采集, 實(shí)驗(yàn)結(jié)果如下:
圖3 為車載終端通過TCP 協(xié)議A SCII 碼通道回傳的一條定位信息, 此通道數(shù)據(jù)傳輸穩(wěn)定且不需要對(duì)數(shù)據(jù)解碼, 耗費(fèi)流量較大。
?
圖3? TCP 協(xié)議ASCI I 通道回傳信息
圖4 為車載終端通過TCP 協(xié)議二進(jìn)制編碼通道回傳的一條定位信息, 二進(jìn)制解碼后為以“ $ ”開頭的定位信息。此通道傳輸穩(wěn)定, 需要對(duì)二進(jìn)制數(shù)據(jù)解碼, 流量相對(duì)較小。
?
圖4? TCP 協(xié)議ASCI I 通道回傳信息
圖5 為車載終端通過UDP 協(xié)議二進(jìn)制編碼通道回傳的一條定位信息。此通道為不可靠傳輸, 二進(jìn)制數(shù)據(jù)需要解碼, 相對(duì)于T CP 協(xié)議回傳包簡(jiǎn)化了包頭, 節(jié)省流量, 在系統(tǒng)中為主用數(shù)據(jù)傳輸通道, 用于定時(shí)( 此處設(shè)置30S) 回傳數(shù)據(jù)。
?
圖5? TCP 協(xié)議ASCII 通道回傳信息
服務(wù)終端調(diào)出GPS 回傳數(shù)據(jù)并與GIS 系統(tǒng)結(jié)合, 完成車輛信息的分析, 為車輛提供定位、監(jiān)控、管理服務(wù)。圖6 為監(jiān)控終端對(duì)采集的數(shù)據(jù)進(jìn)行分析的監(jiān)控結(jié)果。
?
圖6? TCP 協(xié)議ASCII 通道回傳信息
5? 結(jié)束語(yǔ)
本文設(shè)計(jì)與實(shí)驗(yàn)基于GPS 和GPRS 的嵌入式車輛監(jiān)控系統(tǒng)的整個(gè)通訊方式及流程, 可以穩(wěn)定、低成本并且相對(duì)實(shí)時(shí)的完成車載終端的定位信息回傳任務(wù), 從而有效的為車輛提供車輛信息的監(jiān)控管理、信息記錄、車輛導(dǎo)航、調(diào)度以及防盜等功能。21 世紀(jì)是通信網(wǎng)絡(luò)技術(shù)、嵌入式技術(shù)成熟運(yùn)用的時(shí)代, 移動(dòng)通信技術(shù)發(fā)展到第三代, 基于GPRS 網(wǎng)絡(luò)與Internet 網(wǎng)絡(luò)結(jié)合將會(huì)有更好的應(yīng)用前景。
評(píng)論
查看更多