基于GPS+CDMA的物流車輛監(jiān)控終端的設(shè)計
3.3 CDMA無線網(wǎng)絡(luò)通信程序
終端通過CDMA網(wǎng)絡(luò)接入Internet后,無線網(wǎng)絡(luò)通信程序?qū)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/終端">終端解析的GPS數(shù)據(jù)通過Intemet上傳到監(jiān)控中心。本終端軟件設(shè)計采用流格式套接字進行網(wǎng)絡(luò)通信,對應(yīng)于TCP/IP協(xié)議中面向連接的TCP協(xié)議。網(wǎng)絡(luò)數(shù)據(jù)傳輸程序采用客戶機/服務(wù)器機制編程,終端(客戶機)進程由用戶操縱;而監(jiān)控中心(服務(wù)器)進程則駐留在主機上連續(xù)運行,等待終端連接請求進入。
監(jiān)控中心的網(wǎng)絡(luò)通信程序流程如下:1)用socket()函數(shù)創(chuàng)建套接口,并給套接口地址結(jié)構(gòu)賦值;2)用bind()函數(shù)使套接口與本地IP地址、端*綁定,選用靜態(tài)IP地址;3)用listen()函數(shù)在該套接口上*連接請求;4)用accept()函數(shù)接收終端連接請求,產(chǎn)生新的套接口及描述字并與終端連接,利用新的套接字發(fā)送和接收數(shù)據(jù);5)用fork()函數(shù)派生新的子進程與終端通信,父進程繼續(xù)*其他請求。這樣就可避免一個終端與監(jiān)控中心建立連接后,監(jiān)控中心不能再與其他終端通信的問題。
終端的TCP程序流程如下:1)用socket()創(chuàng)建本地套接口,給監(jiān)控中心套接口地址結(jié)構(gòu)賦值;2)用connect()函數(shù)使本地套接口向監(jiān)控中心套接口主動發(fā)出建立連接請求,經(jīng)三次握手建立TCP連接;3)若連接建立成功,則用send()和recv()函數(shù)與監(jiān)控中心通信;4)通信結(jié)束,用close()關(guān)閉套接口。
3.4 終端GPS串口程序
軟件開發(fā)工具采用EVC(embedded visual C++),EVC是Windows CE上的主流開發(fā)工具,封裝了網(wǎng)絡(luò)底層通訊、COM互操作、RAPI等。EVC支持MFC類庫的子集,使Win32平臺上的VC程序可以方便地移植到WinCE平臺上。
終端GPS串口程序主要完成兩個功能:接收GPS數(shù)據(jù)和解析GPS數(shù)據(jù)。GPS模塊輸出遵循NMEA-0183標準。程序流程如下:
1)使用OpenPort()函數(shù)打開串口,該函數(shù)使用創(chuàng)建文件函數(shù)CreatFile()打開串口2,以獲取串口2的操作句柄m_hComm;
2)如果串口2打開成功,則讀取當(dāng)前串口的設(shè)置,即通過GetCommState()讀取串口參數(shù)結(jié)構(gòu)體DCB變量;
3)用SetCommState()對串口2進行相應(yīng)的設(shè)置:如設(shè)置波特率為4 800 b/s,8位數(shù)據(jù)位,無奇偶校驗,1位停止位,無數(shù)據(jù)流控制;
4)按位讀取數(shù)據(jù),判斷幀起始是否為$GPRMC,若為$GPRMC則從中提取時間、經(jīng)度、緯度、速度等信息并存入相應(yīng)結(jié)構(gòu)體;判斷幀起始是否為$GPGGA,若為$GPGGA則從第9字段提取海拔高度并存入相應(yīng)結(jié)構(gòu)體;判斷幀起始是否為$GPGSV,若為$GPGSV則從中提取有效衛(wèi)星數(shù)目、有效衛(wèi)星編號等信息并存入相應(yīng)結(jié)構(gòu)體;
5)用SetWindowText()在LCD上顯示接收到的GPS數(shù)據(jù)和解析后的GPS信息;
6)最后,在需要時用ClosePort()函數(shù)關(guān)閉串口2。該函數(shù)使用CloseHandh()關(guān)閉串口2的句柄m_hComm。
4 運行結(jié)果
本文所設(shè)計的終端軟件運行結(jié)果如圖5所示。終端GPS數(shù)據(jù)顯示包括UTC時間、經(jīng)緯度、星歷、方向、海拔等。實現(xiàn)了全面地、直觀地顯示GPS數(shù)據(jù)的功能,具有友好的人機界面風(fēng)格。其中圖5(a)中可以對GPS串口進行配置,以及顯示接收到的原始NEMA-0183語句。圖5(b)中的經(jīng)緯度是在天津市北辰區(qū)河北工業(yè)大學(xué)新校區(qū)測得的,精確到秒級,經(jīng)度為東經(jīng)117°41’34.4”,緯度為北緯39°37’6.2”。測試時間是2010年6月6日,下午16點24分22秒。
圖5 終端GPS數(shù)據(jù)顯示界面
測試表明,終端軟件能平穩(wěn)地運行在嵌入式WinCE 5.0系統(tǒng)上,具有良好的實時性和準確性。
另外,終端通過CDMA無線通信網(wǎng)絡(luò)實時地將GPS定位數(shù)據(jù)傳給監(jiān)控中心,監(jiān)控中心的電子地圖上即實時顯示終端的地理位置。經(jīng)測試,終端的實際位置與電子地圖上的位置完全符合,并且具有良好的實時性,數(shù)據(jù)刷新時間小于3 s,GPS位置漂移值小于20 m。
5 結(jié)束語
針對我國物流行業(yè)快速發(fā)展的背景,本文對基于GPS和CDMA的物流車輛監(jiān)控終端進行了軟硬件設(shè)計。實現(xiàn)了對物流車輛的遠程監(jiān)控和實時調(diào)度。相比傳統(tǒng)的車載終端,本設(shè)計采用32位ARM處理器,具有更快的處理速度、更大的存儲空間、更直觀的界面顯示等優(yōu)點。尤其在GPS數(shù)據(jù)無線傳輸方面采用了CDMA無線通信技術(shù),比傳統(tǒng)GPRS技術(shù)更適用于長距離、大數(shù)據(jù)量、實時性要求非常高的車載終端領(lǐng)域。隨著3G移動通信系統(tǒng)的發(fā)展,采用CDMA網(wǎng)絡(luò)的GPS終端更易于向3G網(wǎng)絡(luò)平滑過渡,會有更廣闊的應(yīng)用前景。
cdma相關(guān)文章:cdma原理
評論