劉易鑫,劉會(huì)衡
(湖北文理學(xué)院 物理與電子工程學(xué)院,湖北襄陽,441053)
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,汽車數(shù)量不斷增多,汽車事故發(fā)生率日益增加,攀升的事故發(fā)生率也逐漸成了限制汽車行業(yè)可持續(xù)發(fā)展的重要因素[1]。因此汽車的行駛安全也成了行業(yè)和社會(huì)關(guān)注的焦點(diǎn)[2]。在現(xiàn)代車輛管理中,結(jié)合移動(dòng)互聯(lián)網(wǎng)與GPS 等技術(shù),通過智能車載設(shè)備的運(yùn)用,可以實(shí)現(xiàn)對(duì)車輛智能化的實(shí)時(shí)追蹤和管理,達(dá)到車輛監(jiān)控的目的。實(shí)時(shí)、便捷的車輛監(jiān)控系統(tǒng)不僅可以提高車輛的動(dòng)態(tài)管理效率,而且具備報(bào)警功能,進(jìn)而能夠提升汽車在行駛期間的安全系數(shù),同時(shí)可以降低因汽車故障造成的財(cái)產(chǎn)損失和人員傷亡。因此,本文設(shè)計(jì)了一種車輛實(shí)時(shí)監(jiān)控系統(tǒng),通過GPS 定位模塊和車載傳感器可以采集車輛行駛的狀態(tài)數(shù)據(jù),并通過藍(lán)牙將數(shù)據(jù)傳給近端,如車輛用戶的手機(jī);同時(shí)還可通過4G無線通信模塊將數(shù)據(jù)傳送給云端的服務(wù)器,進(jìn)而實(shí)現(xiàn)車輛行駛狀態(tài)的遠(yuǎn)程監(jiān)控功能,方便管理者監(jiān)控各車輛行駛數(shù)據(jù)。
車輛遠(yuǎn)程監(jiān)控系統(tǒng)總體框架如圖1 所示。該系統(tǒng)主要由汽車數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、車載診斷(on board diagnostics, OBD)模塊、藍(lán)牙模塊、通信模塊以及遠(yuǎn)程監(jiān)控平臺(tái)構(gòu)成。其中,數(shù)據(jù)采集和處理模塊負(fù)責(zé)收集和處理車輛的數(shù)據(jù),再通過藍(lán)牙模塊實(shí)現(xiàn)手機(jī)端的實(shí)時(shí)監(jiān)控,并通過通信模塊與遠(yuǎn)程管理平臺(tái)進(jìn)行信息交互,實(shí)現(xiàn)遠(yuǎn)程人機(jī)互動(dòng)。此外,遠(yuǎn)程監(jiān)控平臺(tái)還可把收到的數(shù)據(jù)做分類存入數(shù)據(jù)庫,以達(dá)到對(duì)所有車輛的一體化管理、監(jiān)控和報(bào)警功能。其中OBD 模塊使用藍(lán)牙通信協(xié)議模塊進(jìn)行數(shù)據(jù)傳輸;防盜模塊采用ZigBee 技術(shù),將ZigBee 模塊安裝在汽車的窗戶和門上以獲取門窗的開關(guān)數(shù)據(jù);GPS 定位模塊主要利用北斗衛(wèi)星實(shí)現(xiàn)車輛的位置信息采集。
圖1 系統(tǒng)總體框架圖
車輛實(shí)時(shí)監(jiān)控系統(tǒng)的基本原理如圖2 所示。該系統(tǒng)以STM32 單片機(jī)為主控芯片,由OBD 協(xié)議轉(zhuǎn)換模塊(ELM327)、GPS 模塊、4G 通信模塊、藍(lán)牙模塊、電源模塊及Flash 數(shù)據(jù)緩存模塊組成。
圖2 車輛遠(yuǎn)程監(jiān)控系統(tǒng)原理框圖
如圖3 所示,OBD 協(xié)議轉(zhuǎn)換模塊利用了ELM327 芯片,將OBD 協(xié)議數(shù)據(jù)轉(zhuǎn)換成RS232 輸出,從而準(zhǔn)確地把車輛信息傳送到CPU[3]。
圖3 ELM327 電路圖
目前 OBD 系統(tǒng)的標(biāo)準(zhǔn)由國際標(biāo)準(zhǔn)化組織(ISO)頒布的 OBD-II 標(biāo)準(zhǔn)推動(dòng),OBD-II 標(biāo)準(zhǔn)規(guī)定了故障碼的格式、數(shù)據(jù)的通信協(xié)議等,以確保不同品牌和型號(hào)的車輛都能使用相同的診斷工具。本設(shè)計(jì)中,OBD-II 協(xié)議是汽車電子控制單元(Electronic Control Unit,ECU)與車載終端通信的基礎(chǔ)[4]。車載設(shè)備利用多個(gè)外置傳感器獲取數(shù)據(jù),借助ECU 進(jìn)行處理,并利用CAN 總線進(jìn)行信息傳輸。CAN 總線還用于輪胎壓力監(jiān)測系統(tǒng)、GPS、安全帶警示設(shè)備及車速監(jiān)控器等各種信息的傳輸。
NEO-6M 模塊屬于GPS定位模塊中的一種,它以TTL 電平作為輸出方式,可通過串行接口與監(jiān)控系統(tǒng)連接,并能對(duì)不同參數(shù)的串口進(jìn)行設(shè)置。該模塊不僅有著高效和低能耗的優(yōu)點(diǎn),同時(shí)還具有較好的兼容性[5]。該GPS 定位模塊的電路如圖4所示。
圖4 GPS 定位模塊電路圖
本設(shè)計(jì)采用的是 HC-05 藍(lán)牙模塊,其電路如圖5 所示,它主要由藍(lán)牙芯片和外部電路組成。藍(lán)牙芯片是模塊核心部件,它負(fù)責(zé)處理藍(lán)牙通信的各種協(xié)議。HC-05 是一款符合藍(lán)牙2.0 規(guī)格的串行通信模塊,它有能力通過串行端口與微控制器交互,從而實(shí)現(xiàn)微控制器與藍(lán)牙設(shè)備之間的無線數(shù)據(jù)傳輸。此外,HC-05 藍(lán)牙模塊采用了藍(lán)牙從機(jī)模式,可以與主機(jī)設(shè)備(如手機(jī)、電腦等)進(jìn)行藍(lán)牙通信。當(dāng)藍(lán)牙模塊接收到藍(lán)牙信號(hào)后,便以串口的形式向主控芯片發(fā)送消息。
圖5 藍(lán)牙模塊電路圖
電源模塊采用的芯片是ME6210A30PG。ME6210 系列屬于線性調(diào)壓器類別,特征為低靜止和低耗損,能應(yīng)對(duì)最高18V 的工作電壓。特別是ME6210A30PG 型號(hào),它的輸出電路能夠釋放出高達(dá)500mA的電流,其穩(wěn)定的輸出電壓為3.3V,并且能夠有效地為各個(gè)模塊供電,詳細(xì)電路設(shè)計(jì)如圖6 所示。
圖6 電源電路圖
本文所設(shè)計(jì)的車輛遠(yuǎn)程監(jiān)控系統(tǒng)軟件,基于 OBD 協(xié)議,主要分為 OBD 終端監(jiān)控程序和監(jiān)測界面設(shè)計(jì)兩部分。OBD終端監(jiān)測程序通過運(yùn)用定位模塊和車輛數(shù)據(jù)收集模塊,獲取車輛位置的經(jīng)緯度信息。此后,它會(huì)與手機(jī)和云端服務(wù)器建立聯(lián)系,向手機(jī)和遠(yuǎn)程管理平臺(tái)傳送數(shù)據(jù)。在數(shù)據(jù)上傳至手機(jī)和遠(yuǎn)程管理平臺(tái)之前,車載終端會(huì)遵照預(yù)先設(shè)置的數(shù)據(jù)規(guī)格格式化和包裝數(shù)據(jù),然后通過使用 JT/T808 協(xié)議將其發(fā)送至服務(wù)器。一旦手機(jī)和遠(yuǎn)程管理平臺(tái)接收數(shù)據(jù),會(huì)開始對(duì)數(shù)據(jù)的解析工作。最終通過手機(jī)APP 和Web 網(wǎng)頁端來呈現(xiàn)車輛運(yùn)行數(shù)據(jù)信息,軟件整體流程如圖7 所示。
圖7 軟件整體流程圖
本文所設(shè)計(jì)系統(tǒng)利用 EST327 協(xié)議轉(zhuǎn)換芯片實(shí)現(xiàn)與汽車ECU 的交流,借由 JT/T808 協(xié)議使車載終端與控制平臺(tái)進(jìn)行通信。在OBD 監(jiān)控系統(tǒng)的程序中,首先是對(duì)系統(tǒng) I/O 接口、傳輸功能以及應(yīng)用功能的初始化;然后用 AT 命令進(jìn)行對(duì) EST327的讀取與寫入,讀完車輛內(nèi)部 ECU 的實(shí)時(shí)數(shù)據(jù)后,將其轉(zhuǎn)化為統(tǒng)一的 OBD 數(shù)據(jù),再通過CAN 總線方式將其發(fā)送至車輛各個(gè)ECU, 并在此過程中對(duì)數(shù)據(jù)進(jìn)行是否正常的判斷。如果數(shù)據(jù)正常,就將其上傳至服務(wù)器;假如數(shù)據(jù)出現(xiàn)異常,就解析異常數(shù)據(jù)的錯(cuò)誤編碼,產(chǎn)生錯(cuò)誤編碼儲(chǔ)存后上傳至服務(wù)器。其程序流程如圖8 所示。
圖8 OBD 檢測程序流程圖
車載終端與本地手機(jī)和遠(yuǎn)程監(jiān)控平臺(tái)的通信標(biāo)準(zhǔn)由交通部發(fā)布的 JT/T808 協(xié)議設(shè)定,它基于TCP 或UDP 進(jìn)行數(shù)據(jù)傳輸,且每個(gè)數(shù)據(jù)包都包含標(biāo)志位、消息頭、消息體和校驗(yàn)碼。為了使系統(tǒng)數(shù)據(jù)近距離傳輸時(shí)更加高效安全,手機(jī)數(shù)據(jù)通過藍(lán)牙模塊進(jìn)行傳輸。藍(lán)牙模塊會(huì)整理收到的數(shù)據(jù),并以數(shù)據(jù)包的方式將其發(fā)送到手機(jī)。手機(jī)接收數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理和保存,同時(shí)立即將接收到的數(shù)據(jù)進(jìn)行顯示。這樣用戶就可以隨時(shí)登錄手機(jī)APP 數(shù)據(jù)管理平臺(tái)實(shí)時(shí)了解當(dāng)前汽車的狀態(tài)以及位置等相關(guān)信息。
藍(lán)牙模塊程序設(shè)計(jì)流圖如圖9 所示。為了讓系統(tǒng)的藍(lán)牙模塊能夠無阻礙地傳輸數(shù)據(jù),首先必須對(duì)藍(lán)牙模塊進(jìn)行初始化,緊接著啟動(dòng)主控制單元。接下來,主設(shè)備會(huì)開始搜尋周圍的藍(lán)牙設(shè)備,一旦找到相關(guān)設(shè)備,會(huì)立即釋放構(gòu)建連接的命令以便建立起鏈接。鏈接成功后,就可以開始數(shù)據(jù)傳遞。此類通信完成后,主設(shè)備和配套設(shè)備都能發(fā)布切斷連接的命令。在搜尋周邊藍(lán)牙設(shè)備的過程中,可能會(huì)無法獲取查詢結(jié)果,因此上述步驟僅為常規(guī)模式的流程。如果在發(fā)送任何一次指令包時(shí),接收到錯(cuò)誤的事件包,那么這條指令就需要不斷地重復(fù)發(fā)送,直到成功為止。
圖9 藍(lán)牙模塊數(shù)據(jù)傳輸流程圖
遠(yuǎn)程監(jiān)控平臺(tái)的數(shù)據(jù)傳輸則主要通過4G 無線模塊實(shí)現(xiàn)。其他模塊向4G 無線通信模塊發(fā)送的所有數(shù)據(jù),在向遠(yuǎn)程監(jiān)控管理平臺(tái)發(fā)送前都需要經(jīng)過JT/T808 協(xié)議進(jìn)行定義封裝,然后經(jīng)由TCP/IP 協(xié)議,最終到達(dá)遠(yuǎn)程監(jiān)控管理平臺(tái)。由于遠(yuǎn)程監(jiān)控管理平臺(tái)接收到的數(shù)據(jù)信息是由JT/T808 協(xié)議封裝過的,所以其他模塊對(duì)接收到的數(shù)據(jù)要經(jīng)由JT/T808 協(xié)議解析才能最終返回結(jié)果。
所設(shè)計(jì)的車輛實(shí)時(shí)監(jiān)控系統(tǒng)如圖10 所示。通過將整個(gè)OBD 檢測裝置連接到車輛的DLC 接口,啟動(dòng)小車,就能獲取相關(guān)的車輛數(shù)據(jù)。
圖10 系統(tǒng)實(shí)物測試數(shù)據(jù)圖
測試過程中,近端車輛使用用戶的手機(jī)會(huì)收到車輛行駛的實(shí)時(shí)數(shù)據(jù),并通過設(shè)計(jì)手機(jī)端APP 界面進(jìn)行數(shù)據(jù)顯示,如圖11 所示,可以正常顯示車輛的剩余油量、續(xù)駛里程、總里程、油壓、門鎖開關(guān)等基本信息,同時(shí)通過車況查詢、車輛定位等菜單還可進(jìn)一步顯示車輛的其他行駛數(shù)據(jù)。
圖11 近端手機(jī)APP 人機(jī)交互界面
在遠(yuǎn)程的云端服務(wù)器,也可同步接收到車輛的實(shí)時(shí)行駛數(shù)據(jù),如圖12 所示。這里選擇的是阿里云服務(wù)器,從圖中看出,遠(yuǎn)端可以同樣監(jiān)測到車輛的燃油狀況、車輛速度、汽車胎壓等各種車輛狀態(tài)信息。
圖12 遠(yuǎn)程Web 人機(jī)交互界面
本文采用模塊化設(shè)計(jì),提出了一種基于STM32 單片機(jī)的車輛實(shí)時(shí)監(jiān)控系統(tǒng),通過建立硬件電路,監(jiān)測與收集車輛引擎ECU 相關(guān)的參數(shù),成功地將信息實(shí)時(shí)發(fā)送至手機(jī)和服務(wù)器。該系統(tǒng)可以有效地獲取車輛信息和故障代碼,通過手機(jī)APP 或網(wǎng)頁端查看動(dòng)態(tài)數(shù)據(jù),實(shí)現(xiàn)了對(duì)車輛的實(shí)時(shí)監(jiān)控和故障檢測,為車主提供了車輛引擎健康狀況和汽車維護(hù)需求的數(shù)據(jù)依據(jù),滿足了系統(tǒng)設(shè)計(jì)的終極目標(biāo)。