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