李 棟,張治中,鄧炳光
(重慶郵電大學 通信網(wǎng)測試工程研究中心,重慶 400065)
?
基于GPS/3G物流運輸車數(shù)據(jù)采集終端的設計
李 棟,張治中,鄧炳光
(重慶郵電大學 通信網(wǎng)測試工程研究中心,重慶 400065)
針對物流行業(yè)對運輸車輛高質量的管理需求,結合GPS全球定位、3G無線通信、溫度傳感器、數(shù)據(jù)處理等相關技術,設計了一款應用于物流運輸車的數(shù)據(jù)采集終端。實測表明,該終端能準確測量出剎車溫度、經(jīng)緯度、車速、定位模式等相關參數(shù),并能實現(xiàn)實時數(shù)據(jù)上傳、VoIP網(wǎng)絡電話和實時通信等功能,在物流行業(yè)中得到了良好的應用。
數(shù)據(jù)采集終端;GPS;3G;VoIP
隨著我國物流行業(yè)的飛速發(fā)展,物流企業(yè)對物流運輸車在路上的車輛行車狀態(tài)問題和最優(yōu)路線規(guī)劃問題越來越重視。物流企業(yè)對車輛在行駛過程中的有效監(jiān)控成為了目前亟待解決的問題之一。同時,隨著汽車電子技術和移動通信技術的飛速發(fā)展,移動互聯(lián)網(wǎng)的載體——物流車輛車載終端已成為研究熱點[1]。車載終端在運輸車遠程行駛過程中為后臺控制中心人員及時提供運輸車輛行車狀態(tài)信息提供了重要的保障。目前市場上物流監(jiān)控類的產(chǎn)品大多功能比較單一,只是利用GPS對車輛進行定位,或者只能將監(jiān)控數(shù)據(jù)保存在本地而不能及時將監(jiān)控信息傳回監(jiān)控中心[2],行業(yè)內(nèi)采用的物流車載終端集中在定位和數(shù)據(jù)回傳,功能較單一,缺乏可視化操作[3],軟件的功能簡單,可移植性差,計算速度不夠快,機器的功能不豐富[4],難以滿足物流企業(yè)對遠程物流運輸車輛的監(jiān)控需求。移動車輛從網(wǎng)絡到另一個網(wǎng)絡時,很難保持無處不在的連接性和可接受的質量保證服務[5]。如何提高對行車狀態(tài)數(shù)據(jù)獲取的實時性和準確性變得更加重要。
基于以上問題,本文提出并設計一款以ARM處理器為基礎、Linux為內(nèi)核的數(shù)據(jù)采集終端。本文的主要工作由以下兩部分組成,第一,終端采集數(shù)據(jù),經(jīng)過處理后,再通過3G無線網(wǎng)絡傳輸至后臺監(jiān)控中心,然后在后臺Web服務器端的地圖上顯示車輛的運動軌跡,并且可以查詢車輛的經(jīng)緯度、車速、剎車溫度等車輛信息。第二,在此基礎上開發(fā)了一款應用于終端上的VoIP網(wǎng)絡電話,同時利用網(wǎng)絡編程在終端上實現(xiàn)TCP客戶/服務器通信模塊。終端在聯(lián)網(wǎng)狀態(tài)時可實時接收后臺發(fā)送的語音廣播和消息廣播,中心監(jiān)控系統(tǒng)可以對車輛進行實時監(jiān)控和交互,提高交通管理的能力,并確保車輛運行安全[6],并同時提高管理部門的運輸生產(chǎn)組織水平、提高車隊調度效率,同時對監(jiān)督駕駛員超速行車、監(jiān)控車輛行蹤等具有重要的作用[7]。
1.1 系統(tǒng)功能介紹
物流車載終端監(jiān)控管理系統(tǒng)由多個車輛數(shù)據(jù)采集終端和后臺管理系統(tǒng)組成,各個車輛數(shù)據(jù)采集終端可以對各自物流運輸車輛的經(jīng)緯度、車速、剎車溫度等行車狀態(tài)信息進行采集,并進行相應的數(shù)據(jù)處理。同時,測量的數(shù)據(jù)經(jīng)3G無線通信網(wǎng)絡發(fā)送到后臺管理系統(tǒng),后臺服務器端對接收到的數(shù)據(jù)進行解析、保存、顯示等處理。
終端創(chuàng)新性地融合了GPS高精度定位技術、溫度傳感器技術、數(shù)據(jù)處理技術、3G無線通信技術,在此基礎上實現(xiàn)對行車狀態(tài)信息的本地顯示、采集和上傳,并開發(fā)一款應用于終端VoIP網(wǎng)絡電話,利用Qt開發(fā)的網(wǎng)絡程序實現(xiàn)了后臺服務器與終端之間的實時通信功能。通過設置相應的預警值,當車速和剎車溫度超過設置的預警值在終端實時報警并上報至系統(tǒng)。
1.2 系統(tǒng)總體設計
數(shù)據(jù)采集終端的主要目標是精確采集GPS模塊和溫度傳感網(wǎng)絡的原始數(shù)據(jù),將原始信息通過正則表達式或者按協(xié)議解析出所需數(shù)據(jù),同時將數(shù)據(jù)在本地終端界面顯示,最后將獲取的數(shù)據(jù)按協(xié)議打包后通過UDP協(xié)議上傳至后臺服務器端,在此基礎上實現(xiàn)基于PJSIP庫的VoIP網(wǎng)絡電話,并且實現(xiàn)接受服務器端發(fā)來的語音廣播和消息廣播。數(shù)據(jù)采集終端的系統(tǒng)總體設計如圖1所示。
圖1 系統(tǒng)總體框架圖
整個系統(tǒng)由采集終端和后臺管理系統(tǒng)組成,采集終端主要包括GPS模塊、溫度傳感器網(wǎng)絡、顯示和交互模塊、3G模塊、音頻模塊、電源模塊。GPS模塊和溫度傳感器網(wǎng)絡用于采集底層的數(shù)據(jù)上傳到應用層,顯示交互模塊用于在本地終端顯示采集的數(shù)據(jù)以及人機交互,3G模塊主要目的是將數(shù)據(jù)上傳至后臺以及終端與后臺之間實時通信,音頻模塊則主要用于VoIP網(wǎng)絡電話、語音廣播和超速語音警報。
采集終端主要采用AM335X芯片,該芯片處理速度快、體積小、兼容性好、軟件支持豐富、可擴展性強。AM335X內(nèi)部有32 kbyte的L1高速緩存,256 kbyte的L2高速緩存,通過串口將數(shù)據(jù)上傳,支持移動雙倍速率同步動態(tài)隨機存儲器DDR3,支持通用存儲器SRAM用來存儲采集的數(shù)據(jù),系統(tǒng)的各模塊相互配合,并發(fā)運行,有利于提高系統(tǒng)運行效率。系統(tǒng)硬件設計框架如圖2所示。
圖2 系統(tǒng)硬件設計框圖
整個終端軟件部分的主要功能包括數(shù)據(jù)采集上傳、數(shù)據(jù)顯示、VoIP網(wǎng)絡電話,附加功能包括通信模塊相關的語音消息和文字消息等,系統(tǒng)設置界面的屏幕背光設置、日歷顯示、采集器配置、發(fā)送數(shù)據(jù)包信息等。在嵌入式操作系統(tǒng)中,Linux操作系統(tǒng)因具有精簡的內(nèi)核以及優(yōu)異的性能[8]得到了廣泛關注,因此,選用Linux操作系統(tǒng)作為終端的軟件開發(fā)平臺,在此平臺基礎上選用Qt為應用軟件圖形界面的開發(fā),可移植性好, 擴展性強。由于采集的數(shù)據(jù)量較多,運行任務較大,整個軟件采用模塊化結構程序設計,各個模塊根據(jù)各自不同的功能進行編寫和調試,當各模塊分別調試滿足終端的功能需求后,再將其組合起來成為整個終端所用的應用軟件。軟件系統(tǒng)設計框圖如圖3所示。
圖3 系統(tǒng)軟件設計框圖
終端的應用軟件設計主要由數(shù)據(jù)采集上傳模塊、數(shù)據(jù)顯示模塊、VoIP網(wǎng)絡電話、實時通信模塊和系統(tǒng)設置模塊5部分組成。
3.1 數(shù)據(jù)采集上傳模塊
上傳數(shù)據(jù)從GPS模塊和溫度傳感器處獲取。終端上電后,GPS模塊在每個固定周期內(nèi)通過串口自動向主機上報GPS數(shù)據(jù),GPS數(shù)據(jù)包括了6種輸出語句,本終端主要需要GNRMC,GNGGA,GNGSA這3種輸出語句。從GNRMC輸出語句獲取標準定位時間、定位狀態(tài)、
經(jīng)緯度、南北半球指示器、東西半球指示器、對地速度和對地方向,從GNGGA輸出語句獲取衛(wèi)星定位數(shù)量,從GNGSA輸出語句獲取衛(wèi)星定位狀態(tài)、水平精度稀釋值HDOP等行車信息。溫度探頭上電后,終端根據(jù)通信協(xié)議往RS-485串口輪流向各個探頭發(fā)送讀取溫度數(shù)據(jù),探頭在收到終端的讀取溫度命令后根據(jù)協(xié)議上傳自身的溫度數(shù)據(jù),終端根據(jù)協(xié)議解析出溫度數(shù)據(jù)。
程序首先實現(xiàn)管理串口基類SerialPortManager,再將管理GPS數(shù)據(jù)GpsSerialPort類和管理溫度數(shù)據(jù)的TemperatureSerialPort類繼承至基類。進程中開啟一個線程管理GpsSerialPort對象,串口定時讀取GPS數(shù)據(jù)后用正則表達式匹配提取所需的信息后,將提取的信息用信號槽發(fā)送至CarStatus對象。進程中再開啟一個線程管理TemperatureSerialPort對象,串口讀取數(shù)據(jù)后,將溫度探頭的地址溫度數(shù)據(jù)綁定,按協(xié)議解析出各溫度探頭的數(shù)據(jù),確保數(shù)據(jù)解析正確,將數(shù)據(jù)用信號槽發(fā)送至CarStatus對象,如圖4所示。
圖4 數(shù)據(jù)采集模塊工作流程圖
在CarStatus對象中將各個數(shù)據(jù)根據(jù)控制中心與終端之間制定的數(shù)據(jù)上傳協(xié)議分別填充至協(xié)議格式中,通過UDP協(xié)議經(jīng)3G通信網(wǎng)絡上傳至后臺管理系統(tǒng),后臺服務器端根據(jù)協(xié)議解析數(shù)據(jù)、保存、制表以供后臺工作人員查詢。數(shù)據(jù)上傳協(xié)議如圖5所示。
圖5 數(shù)據(jù)上傳協(xié)議
物流車輛在行駛過程中由于信號不穩(wěn)定,需要AT指令來檢測當前信號的強度,采用信號強度來控制發(fā)包的速度,當信號強度大于80時,每5 s發(fā)送1個包;信號強度大于40小于80時,每5 s發(fā)送2個包;信號強度小于40時,每5 s發(fā)送3個包。使用這種方式控制發(fā)包頻率可在網(wǎng)絡環(huán)境較差的地區(qū)減少數(shù)據(jù)包丟失率。
3.2 數(shù)據(jù)顯示模塊
司機無法直接獲知剎車溫度、車速和經(jīng)緯度,可以采用Qt編寫行車狀態(tài)界面通過觸摸屏顯示車輛信息,界面顯示數(shù)據(jù)主要包括剎車溫度、車速、經(jīng)緯度,數(shù)據(jù)采集模塊采集到行車狀態(tài)數(shù)據(jù)后在Qt編寫的行車狀態(tài)界面進行本地顯示,剎車溫度與經(jīng)緯度超過預警值時,將數(shù)據(jù)字體變顏色提示司機行車數(shù)據(jù)異常,同時向底層系統(tǒng)發(fā)送信號,發(fā)出語音警告。
3.3 VoIP網(wǎng)絡電話模塊
傳統(tǒng)的車載終端缺少獨立的即時通信模塊,終端與后臺之間無法直接進行通信。針對此問題,在終端上開發(fā)實現(xiàn)一款VoIP網(wǎng)絡電話,有利于終端與后臺之間消息的即時傳遞。通過使用開源的PJSIP協(xié)議棧,并調用其中的庫函數(shù)來進行二次開發(fā)完成項目需求。PJSIP是一個用C語言實現(xiàn)的基于標準協(xié)議如SIP,SDP,RTP,STUN,TURN和ICE的免費開源多媒體通信庫。它結合了信令協(xié)議(SIP)、豐富的多媒體框架和NAT穿越功能轉化為高層次的API,幾乎適用于任何類型的系統(tǒng),包括臺式機、嵌入式系統(tǒng)、手機。PJSIP結構緊湊,功能豐富。它支持音頻、視頻、在線狀態(tài)和即時消息,并擁有大量的開發(fā)文檔。在移動設備上抽象系統(tǒng)相關的功能,在許多情況下,能夠利用該設備的本地多媒體功能[9-10]。PJSIP靜態(tài)庫布局如圖6所示。
圖6 PJSIP靜態(tài)庫布局
PJSIP協(xié)議棧提供的庫為實現(xiàn)網(wǎng)絡電話提供了非常全面的支持,使用交叉編譯,將PJSIP庫和音頻庫編譯到開發(fā)板的固定路徑上,為應用程序提供支持。采用面向對象的思想,將PJSIP所需的函數(shù)封裝成類,來完成VoIP網(wǎng)絡電話客戶端的實現(xiàn)。VoIP客戶端主要由初始化、注冊、撥號、掛斷這4部分組成,下面主要介紹在嵌入式Qt上實現(xiàn)網(wǎng)絡電話這4個部分的主要調用的函數(shù)和部分細節(jié)。
初始化部分實現(xiàn)流程如下,首先用pjsua_create()函數(shù)創(chuàng)建pjsua,接著注冊on_incoming_call(),on_call_media_state(),on_call_state()這3個回調函數(shù),配置由pjsua_config定義的參數(shù)cfg,用pjsua_logging_config_default(&log_cfg)綁定由pjsua_logging_config定義log_cfg,由pjsua_init(cfg,log_cfg,NULL)完成pjsua的初始化。然后用pjsua_transport_config定義一個cfg變量,cfg.port設置通信端口為5060,調用pjsua_transport_create (PJSIP_TRANSPORT_UDP, &cfg, NULL)函數(shù)為pjsua添加UDP傳輸,配置完以上參數(shù)后最后調用pjsua_start()函數(shù)開始pjsua。
注冊部分實現(xiàn)流程如下,先由 pjsua_acc_config 定義的cfg變量進行相關參數(shù)的設置,調用pj_ansi_snprintf(reg_uri,PJSIP_MAX_URL_SIZE,"sip:%s",domain),pjsua_acc_add(&cfg, PJ_TRUE, &g_acc_id)等函數(shù)來實現(xiàn)對客戶端往服務器的注冊。
撥號部分主要實現(xiàn)流程如下:先取出已在文件系統(tǒng)中寫好的服務器地址和客戶端注冊信息,再調用pj_ansi_snprintf(),pjsua_acc_add(),pjsua_verify_url(),pjsua_call_make_call()等函數(shù)來完成對VoIP的撥號功能。
掛斷部分只需調用pjsua_call_hangup_all()函數(shù)來實現(xiàn)斷開回話,釋放已占用的資源,結束雙方的通信。
上述4個部分的完成可實現(xiàn)VoIP客戶端撥號、接聽和掛斷的功能,但由于NAT(網(wǎng)絡地址轉換) 阻斷了SIP的通信,因此如果要實現(xiàn)VoIP在公網(wǎng)上的通信,需要解決端口映射問題。對此,本文首先在云服務器通過RTP代理的安裝和配置,在云服務器配置opensips服務器來實現(xiàn)對NAT的穿透。然后在數(shù)據(jù)庫中添加VoIP客戶端的用戶名和密碼,接著在客戶端撥號前完成向opensips服務器的注冊,最后撥號實現(xiàn)客戶端與后臺之間的語音通信,系統(tǒng)工作的框圖如圖7所示。
圖7 VoIP工作框圖
3.4 實時通信模塊
當后臺有消息需要同時通知駕駛室司機時,可通過語音廣播和消息廣播將信息同時發(fā)送到多臺終端。Qt 把網(wǎng)絡編程有關的數(shù)據(jù)結構和函數(shù)封裝成類,使軟件開發(fā)過程變得簡潔、高效,可重用性較好,用戶使用非常方便[11]。本終端在Linux 環(huán)境下利用Qt封裝好的網(wǎng)絡編程相關的類,構建客戶端,實現(xiàn)與后臺的通信。TCP協(xié)議是一個面向連接的傳輸層協(xié)議,為用戶進程提供可靠的全雙工通信。通常情況下,由于終端與服務器通信用的是同一條TCP連接,對于應用程序來說,TCP傳輸?shù)氖且淮止?jié)流,在通信傳輸過程中需要設置相應的標志位來區(qū)分語音傳輸和文字傳輸。TCP客戶端/服務器通信流程圖如圖8所示。
圖8 TCP客戶端/服務器流程圖
在雙方數(shù)據(jù)傳輸前,服務器端首先開啟監(jiān)聽,設置監(jiān)聽地址與端口號,然后終端建立一個TCP連接到遠程的服務器,若連接失敗則用控制重連算法來進行失敗重連,連接成功后雙方建立通信。經(jīng)過實測,雙方建立連接后,終端接收服務器發(fā)送過來的語音后會自動播放,滿足實時通信的需求。
3.5 系統(tǒng)設置模塊
在實際測試中發(fā)現(xiàn)物流運輸車經(jīng)常是在晚上行車,司機對于液晶屏發(fā)出的亮光比較敏感,可系統(tǒng)設置模塊,設置數(shù)據(jù)采集終端屏幕亮度,同時在此模塊中添加采集器ID選擇、恢復出廠設置、在線更新軟件等功能,便于實際應用。
經(jīng)過實際測試數(shù)據(jù)結果顯示,終端可對車輛行車信息正確采集,其精確度能控制在有效范圍之內(nèi):車速±4 km/h,經(jīng)緯度±20 m,剎車溫度±5 ℃,行車信息傳輸至后臺服務器進行解析保存更新,便于人員對數(shù)據(jù)進行查看。經(jīng)過實際測試,VoIP客戶端可以正常地在opensips服務器注冊,注冊成功后進行撥號,客戶端與后臺之間能進行實時語音通信,語音質量良好,VoIP網(wǎng)絡電話音質清晰,滿足實際的需求。終端界面實際效果圖如圖9所示。
圖9 終端界面實際效果圖(截圖)
終端在云服務器注冊成功后雙方可進行電話通信,圖10顯示了終端注冊成功后的信息。
圖10 用戶注冊成功后臺顯示的信息(截圖)
數(shù)據(jù)采集終端是物流車輛監(jiān)控管理系統(tǒng)的重要組成部分,同時也是駕駛員與后臺控制中心人員進行實時通信的主要設備。本文主要介紹了終端的軟件設計部分,包括行車數(shù)據(jù)采集、上傳和顯示,VoIP網(wǎng)絡電話,實時通信模塊等。該終端目前能有效滿足物流行業(yè)對運輸車的管理需求,提高對物流車輛的管理效率,對物流車輛車載終端的發(fā)展提供了實踐支持和參考價值。同時,車載導航是終端的重要組成部分,對物流運輸行業(yè)有十分重要的意義,終端的下一步工作是在現(xiàn)在的基礎上實現(xiàn)地圖導航功能,進一步滿足運輸車輛的實際需求。
[1] 何維,張彥會,粟騰超,等.基于GPS/GPRS/RFID物流車載終端的設計[J]. 廣西工學院學報,2014,25(4):59-63.
[2] 陳征.基于物聯(lián)網(wǎng)的物流監(jiān)控車載終端設計[D].天津:天津大學, 2012.
[3] 林蓁蓁,李慶,梁艷菊,等.一種可用于危險品運輸?shù)闹悄苘囕d終端設計與實現(xiàn)[J].微計算機應用,2011,32(10):27-32.
[4] XU J,LI Y K,ZHOU R Y,et al. Based on embedded intelligent vehicle system[C]// Proc. 2010 International Conference on Computer and Communication Technologies in Agriculture Engineering. [S.l.]:IEEE,2010:49-52.
[5] TRIKI B, REKHIS S, BOUDRIGA N. Secure and QoS-aware SIP handover for VoIP communication in vehicular adhoc networks[C]//Proc. Wireless Communications and Mobile Computing Conference. [S.l.]:IEEE,2011:695-700.
[6] ZHAO S P,TIAN M,ZHANG S F, et al. Control information and data processing of vehicle based on global position system[J]. Journal of networks,2013,8(5) :1175-1182.
[7] 何小衛(wèi),王愛華,馬躍.基于GPRS的GPS車載終端通信技術研究[J].計算機應用, 2008,28(11):2952-2954.
[8] 邱曉暉.基于ARM9的嵌入式Linux系統(tǒng)移植與驅動開發(fā)[D].南京:南京郵電大學, 2013.
[9] WEI L F,WANG Q H,REN H W. Software design of embedded video telephone based on PJSIP stack[C]// International Conference on Hybrid Intelligent Systems. [S.l.]:IEEE,2009: 231-234.
[10] ZHANG R S,WANG X Y,YANG X H,et al. On the billing vulnerabilities of SIP-based VoIP systems[J]. Computer networks,2010,54(11) :1837-1847.
[11] 黃翩,張瓊,祝婷.基于Qt的一個服務器多個客戶端的TCP通信[J].電子科技,2015,28(3):76-78.
李 棟(1992— ),碩士生,主研通信網(wǎng)測試技術;
張治中(1972— ),博士生導師,主要研究方向為第三代移動通信測試技術、寬帶信息網(wǎng)絡、NGN 網(wǎng)絡等;
鄧炳光(1978— ),副教授,主要研究方向為通信網(wǎng)與測試技術。
責任編輯:閆雯雯
Design of data acquisition terminal for GPS/3G-based logistics truck
LI Dong, ZHANG Zhizhong,DENG Bingguang
(CommunicationNetworksTestingTechnologyEngineeringResearchCenter,ChongqingUniversityofPostandTelecommunications,Chongqing400065,China)
In order to satisfy the demand of high quality management of transportation vehicles in the logistics industry, combined GPS global positioning, 3G wireless communications, temperature sensors, data processing and other related technologies, data collection terminal used in logistics trucks is designed. The terminal can accurately measure the brake temperature, latitude and longitude, speed, positioning mode and other relevant parameters, as well as real-time data upload, VoIP network phone and real-time communication capabilities other functions, the terminal obtain a good application in the logistics industry.
data collection terminals; GPS; 3G; VoIP
李棟,張治中,鄧炳光. 基于GPS/3G物流運輸車數(shù)據(jù)采集終端的設計[J].電視技術,2016,40(12):40-45. LI D, ZHANG Z Z,DENG B G. Design of data acquisition terminal for GPS/3G-based logistics truck[J]. Video engineering,2016,40(12):40-45.
TN919
A
10.16280/j.videoe.2016.12.008
重慶高校創(chuàng)新團隊項目(KJTD201312);中青年科技創(chuàng)新領軍人才項目;百名工程技術高端人才項目
2016-05-10