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