趙耕云, 王佳, 李萬敏, 朱有地
(蘭州工業(yè)學(xué)院 汽車工程學(xué)院, 甘肅 蘭州 730050)
為了遠程監(jiān)控和管理行駛的汽車,保障車輛安全行駛,基于無線移動網(wǎng)絡(luò)的汽車遠程監(jiān)控系統(tǒng)成為車聯(lián)網(wǎng)研究領(lǐng)域的一個熱點。第二代車載診斷系統(tǒng)OBDⅡ(On-Board DiagnosticsⅡ)主要用于檢測與排放有關(guān)的汽車狀態(tài)參數(shù)和故障信息。目前中國很多高校在積極研發(fā)基于OBDⅡ和無線網(wǎng)絡(luò)技術(shù)的汽車遠程監(jiān)控系統(tǒng),實現(xiàn)對汽車行駛狀態(tài)參數(shù)的實時監(jiān)控。也有高校研發(fā)基于全球定位系統(tǒng)(GPS)或北斗定位系統(tǒng)的汽車遠程監(jiān)控系統(tǒng)。該文設(shè)計一套結(jié)合OBDⅡ、GPS和百度地圖的汽車遠程監(jiān)控系統(tǒng),實現(xiàn)車輛行駛狀態(tài)參數(shù)、位置和行駛軌跡的遠程監(jiān)控。
如圖1所示,汽車遠程監(jiān)控系統(tǒng)分為車載數(shù)據(jù)采集系統(tǒng)和監(jiān)控中心兩部分。車載數(shù)據(jù)采集系統(tǒng)主要包括單片機、OBDⅡ診斷模塊、GPRS/GPS模塊及緊急停車模塊。單片機串行口1與OBDⅡ診斷模塊相連接,OBDⅡ診斷模塊與汽車ECU通信,讀取車輛狀態(tài)信息。單片機串行口0與GPRS/GPS模塊相連接,通過該模塊的GPS功能獲取車輛所在位置的GPS經(jīng)緯度信息,并將采集的車輛運行狀態(tài)信息和GPS經(jīng)緯度信息通過GPRS網(wǎng)絡(luò)發(fā)送到Internet網(wǎng)絡(luò)。監(jiān)控中心運行在PC端,主要對接收到的汽車狀態(tài)數(shù)據(jù)進行圖形化顯示和數(shù)據(jù)存儲。此外,監(jiān)控中心還能將監(jiān)管人員的控制命令發(fā)送到下位機,控制車輛緊急停車。
圖1 汽車遠程監(jiān)控系統(tǒng)總體結(jié)構(gòu)
車載數(shù)據(jù)采集系統(tǒng)選用恩智浦KEAZ128單片機作為主控制器。該單片機基于48 MHz主頻的32位ARM Cortex-M0+處理器,集成了128 kb FLASH及16 kb RAM,具有3個UART串行口,是飛思卡爾Kinetis EA系列中功能最全、規(guī)格最高的一款產(chǎn)品,適合面向汽車網(wǎng)絡(luò)的應(yīng)用設(shè)計。主控制器負責(zé)將汽車狀態(tài)數(shù)據(jù)和經(jīng)緯度數(shù)據(jù)解析處理后通過GPRS網(wǎng)絡(luò)發(fā)送到公網(wǎng)。
車載數(shù)據(jù)采集系統(tǒng)的硬件主要包括GPRS/GPS電路和OBDⅡ診斷模塊。GPRS/GPS模塊選用圖2所示SIM808模塊,它是一個四頻段GSM/GPRS模塊,結(jié)合GPS衛(wèi)星導(dǎo)航技術(shù),支持中國移動2G、3G、4G網(wǎng)絡(luò)。SIM808模塊的GPRS數(shù)據(jù)下行傳輸速率最大為85.6 kb/s,上行傳輸速率最大為86.5 kb/s,GPS水平精度小于2.5 m,滿足系統(tǒng)設(shè)計要求。KEAZ128單片機通過串行口0與該模塊的RXD、TXD引腳相連進行信息交互。
圖2 SIM808模塊
OBDⅡ診斷模塊以STM32F103C8T6單片機作為控制器、TJA1050作為CAN收發(fā)器,有標(biāo)準(zhǔn)的16針OBDⅡ診斷接口。STM32F103C8T6單片機的程序中寫有符合ISO-15765協(xié)議的標(biāo)準(zhǔn)函數(shù),KEAZ128單片機通過串行口向OBDⅡ診斷模塊(其電路見圖3)發(fā)送AT+XXX指令,即可從該串行口接收到車輛ECU響應(yīng)的數(shù)據(jù)流。
圖3 OBDⅡ診斷模塊電路圖
緊急停車模塊選用HK4100F繼電器,將繼電器常閉觸點串聯(lián)在發(fā)動機各缸點火信號線上,電路改造相對簡單。試驗車輛選用長城哈弗H6,該車采用四缸獨立點火方式,需要四路繼電器控制四路點火信號線。KEAZ128單片機的PB4、PB5、PB6、PB7引腳輸出高電平信號控制繼電器常閉觸點斷開,遠程控制緊急停車。
車載數(shù)據(jù)采集系統(tǒng)將采集的汽車發(fā)動機轉(zhuǎn)速、冷卻液溫度及位置數(shù)據(jù)通過GPRS網(wǎng)絡(luò)采用TCP協(xié)議發(fā)送到公網(wǎng),同時從公網(wǎng)接收控制指令,若收到緊急停車指令,則發(fā)出控制信息,切斷汽車點火系統(tǒng)的點火信號。如果TCP傳輸數(shù)據(jù)的客戶端和服務(wù)端都處于空閑狀態(tài)達到一定時間,網(wǎng)絡(luò)運營商的網(wǎng)關(guān)會自動斷開通信鏈路,使車載數(shù)據(jù)采集系統(tǒng)與監(jiān)控中心無法通信。為避免這種不利情況,在車載數(shù)據(jù)采集系統(tǒng)發(fā)送數(shù)據(jù)時,每隔10 s發(fā)送心跳包數(shù)據(jù)“OK”,監(jiān)控中心收到心跳包數(shù)據(jù)后回應(yīng)心跳包數(shù)據(jù)“KO”,以此來保持通信鏈路的連接。當(dāng)車載數(shù)據(jù)采集系統(tǒng)不能收到來自監(jiān)控中心返回的心跳包數(shù)據(jù)“KO”時,則認為通信鏈路已斷開,重新啟動TCP連接,建立通信鏈路。車載數(shù)據(jù)采集系統(tǒng)的程序流程見圖4。
圖4 車載數(shù)據(jù)采集系統(tǒng)的程序流程
2.2.1 GPS報文的讀取和解析
KEAZ128單片機通過串行口0向SIM808發(fā)送“AT+CGNSINF”指令,獲取GPS導(dǎo)航信息,并將其存儲在定義的串行口接收數(shù)據(jù)緩沖區(qū)中。SIM808模塊GPS定位成功后,向單片機發(fā)送位置報文信息。位置報文信息格式為:+CGNSINF:〈GNSS run status〉,〈Fix status〉, 〈UTC date & Time〉,〈Latitude〉,〈Longitude〉,〈MSL Altitude〉,〈Speed Over Ground〉,〈Course Over Ground〉,〈FixMode〉,〈Reserved1〉,〈HDOP〉,〈PDOP〉,〈VDOP〉,〈Reserved2〉,〈GNSS Satellites in View〉,〈GNSS Satellites Used〉,〈GLONASS Satellites Used〉,〈Reserved3〉,〈C/N0 max〉,〈HPA〉,〈VPA〉。其中Latitude為緯度,Longitude為經(jīng)度。將報文信息按“,”分割,解析出經(jīng)緯度數(shù)據(jù),并將數(shù)據(jù)賦給相應(yīng)變量。
2.2.2 OBDⅡ診斷模塊通信設(shè)計
OBDⅡ診斷模塊是主控制器KEAZ128與車輛ECU之間通信的橋梁,通過接收來自主控制器KEAZ128的AT指令,解析后與車輛ECU通信,獲取所需車輛工況參數(shù)的數(shù)據(jù)流,并將該數(shù)據(jù)流通過串行口發(fā)送到主控制器KEAZ128,獲得車輛狀態(tài)信息。經(jīng)測試,試驗車輛采用的OBDⅡ診斷協(xié)議為ISO 15765-4協(xié)議。主控制器KEAZ128通過串行口1向OBDⅡ診斷模塊發(fā)送AT指令,相關(guān)指令見表1。單片機首先發(fā)送500 kb/s標(biāo)準(zhǔn)CAN協(xié)議激活指令,建立汽車ECU與OBDⅡ診斷模塊的數(shù)據(jù)鏈路,再發(fā)送“AT+DS041,DS048”指令,從單片機串行口1緩沖區(qū)接收發(fā)動機轉(zhuǎn)速和冷卻液溫度數(shù)據(jù)流。
表1 OBDⅡ診斷模塊部分AT指令
2.2.3 數(shù)據(jù)ID編號設(shè)計
為便于識別數(shù)據(jù)類別,車載數(shù)據(jù)采集系統(tǒng)將采集的車輛數(shù)據(jù)按類別給予ID編號(見表2)。KEAZ128單片機將ID編號和對應(yīng)的數(shù)值整合成一維數(shù)組,ID在前,數(shù)值在后,每次只發(fā)送一組數(shù)據(jù),通過SIM808模塊的GPRS功能發(fā)送到公網(wǎng)。采用ID編號,不僅能減少單次發(fā)送數(shù)據(jù)量,而且便于上位機根據(jù)ID編號解析數(shù)據(jù),有利于后續(xù)系統(tǒng)升級,為增加監(jiān)控數(shù)據(jù)留下空間。
表2 數(shù)據(jù)類別ID編號
采用LabVIEW軟件設(shè)計汽車遠程監(jiān)控系統(tǒng)上位機,進行發(fā)動機轉(zhuǎn)速、冷卻液溫度、車輛地理位置的數(shù)據(jù)顯示及存儲。
TCP/IP協(xié)議是Internet最基本的協(xié)議,是由不同層次上的多個協(xié)議組合而成的協(xié)議族。TCP傳輸控制協(xié)議是一種面向連接的基于字節(jié)流的傳輸層通信協(xié)議。采用LabVIEW自帶的TCP操作函數(shù)建立TCP服務(wù)器,該服務(wù)器主要由一個TCP發(fā)送循環(huán)和一個TCP接收循環(huán)組成。車載數(shù)據(jù)采集系統(tǒng)根據(jù)TCP服務(wù)器所在主機的IP地址和端口號發(fā)出連接請求,服務(wù)器與車載數(shù)據(jù)采集系統(tǒng)建立連接后通過TCP讀寫函數(shù)進行數(shù)據(jù)通信。如圖5所示,按下“緊急停車”按鈕控件,發(fā)送循環(huán)將“緊急停車”的控制命令“+IPD,9:!stopcar*”通過公網(wǎng)發(fā)送給車載數(shù)據(jù)采集系統(tǒng),對車輛進行遠程控制。
圖5 TCP發(fā)送循環(huán)
接收循環(huán)讀取從公網(wǎng)傳來的車輛狀態(tài)數(shù)據(jù),通過ID判斷數(shù)據(jù)類別,將各類別數(shù)據(jù)分別處理后傳遞給相應(yīng)控件進行顯示,并將該數(shù)據(jù)連同當(dāng)前時間保存在相應(yīng)excel文件中(見圖6、圖7)。汽車GPS緯度數(shù)據(jù)傳遞給局部變量“WGS-84緯度”,經(jīng)度數(shù)據(jù)傳遞給局部變量“WGS-84經(jīng)度”(見圖8、圖9),為調(diào)用百度地圖顯示車輛位置和行駛軌跡作好數(shù)據(jù)準(zhǔn)備。接收到心跳包“OK”時,控制工作指示燈閃爍,同時返回心跳包“KO”。
圖6 TCP接收循環(huán)(接收并存儲冷卻液溫度數(shù)據(jù))
圖7 TCP接收循環(huán)(接收并存儲發(fā)動機轉(zhuǎn)速數(shù)據(jù))
圖8 TCP接收循環(huán)(接收并存儲緯度數(shù)據(jù))
圖9 TCP接收循環(huán)(接收并存儲經(jīng)度數(shù)據(jù))
遠程監(jiān)控系統(tǒng)采用百度地圖進行車輛定位顯示,通過創(chuàng)建WebBrowser ActiveX控件,調(diào)用百度地圖靜態(tài)圖API,在WebBrowser控件的URL地址中輸入標(biāo)準(zhǔn)的HTTP請求,HTTP請求中包含百度地圖API的網(wǎng)址參數(shù),從而實現(xiàn)地圖創(chuàng)建,將百度地圖以圖片形式顯示在LabVIEW前面板中。每次采集的經(jīng)緯度值轉(zhuǎn)換成字符串后通過反饋節(jié)點連接成路徑字符串,作為網(wǎng)址的paths參數(shù),在百度地圖上畫出車輛的行駛軌跡。圖10為LabVIEW調(diào)用百度地圖程序框圖。
圖10 調(diào)用百度地圖程序框圖
由于GPS采用的是WGS-84坐標(biāo)系,百度地圖采用的是BD-09百度坐標(biāo)偏移標(biāo)準(zhǔn),需進行坐標(biāo)系轉(zhuǎn)換。在程序框圖中調(diào)用“坐標(biāo)系轉(zhuǎn)換子VI”,將WGS-84坐標(biāo)系轉(zhuǎn)換為百度地圖BD-09坐標(biāo)。
最終設(shè)計完成的汽車遠程監(jiān)控系統(tǒng)前面板見圖11。
圖11 汽車遠程監(jiān)控系統(tǒng)前面板
在蘭州工業(yè)學(xué)院南校區(qū)進行汽車遠程監(jiān)控系統(tǒng)實車試驗,試驗車輛為長城哈弗H6。熱車后開始試驗,試驗車輛以低擋位低速行駛一圈用時約87 s。在百度地圖上繪制的行車軌跡和最后停車位置見圖12。
圖12 試驗車輛行駛軌跡
監(jiān)控中心在該時段內(nèi)共采集到試驗車輛冷卻液溫度與發(fā)動機轉(zhuǎn)速數(shù)據(jù)各31組,存儲在excel表格中(見圖13)。
A列為存儲時間,如20210205032748.50 指的是2021年2月5日15:27′48.50″;左圖B列為冷卻液溫度(℃),右圖B列為發(fā)動機轉(zhuǎn)速(r/min)
經(jīng)過多次測試,遠程監(jiān)控系統(tǒng)工作穩(wěn)定,車輛的冷卻液溫度和發(fā)動機轉(zhuǎn)速監(jiān)控數(shù)據(jù)準(zhǔn)確;在百度地圖上形成的軌跡基本符合試驗車輛的實際行駛路線;監(jiān)控中心向試驗車輛發(fā)送停車指令后,車載數(shù)據(jù)采集系統(tǒng)能切斷車輛的點火信號線,使車輛熄火。
設(shè)計針對汽車狀態(tài)參數(shù)和位置的遠程監(jiān)控系統(tǒng),采用OBDⅡ診斷模塊讀取車輛狀態(tài)參數(shù),選用SIM808模塊采集車輛經(jīng)緯度數(shù)據(jù),設(shè)計KEAZ128單片機程序,將所采集的數(shù)據(jù)通過GPRS網(wǎng)絡(luò)發(fā)送到監(jiān)控中心。設(shè)計基于LabVIEW的監(jiān)控中心,調(diào)用百度地圖,將車輛的實時位置和行駛軌跡標(biāo)注在百度地圖上。系統(tǒng)長時間運行結(jié)果表明:該監(jiān)控系統(tǒng)運行穩(wěn)定,能實時監(jiān)控車輛工況參數(shù),監(jiān)控數(shù)據(jù)準(zhǔn)確,定位基本準(zhǔn)確,在地圖上形成的軌跡能較真實地反映車輛實際行駛路線,能遠程控制車輛熄火。