黃曉林 曹玉華 朱濤 周紹鵬


摘要:針對汽車故障在線診斷管理效率低的問題,構建基于“互聯網+”的汽車在線故障監測診斷平臺。用戶端以單片機為核心,基于ELM327模塊、ESP8266WiFi模塊實現汽車故障和行駛信息在線監測診斷。網絡端以OneNET云平臺為基礎,注冊服務器為上位機,實現汽車故障和行駛信息的物聯網管理。文中詳細介紹了系統組成、工作流程,ELM327模塊和ESP8266WiFi模塊的接口與編程、串口電平轉換模塊和電源模塊等電路設計,以及系統軟件框架、ELM327與車載OBD互聯應用、ESP8266與OneNET的互聯應用中的軟件設計流程和參數設置方式,測試結果表明,系統達到設計要求,這為“互聯網+”的測控應用提供了一種新方案。
關鍵詞:OBDII;OBDII;ESP8266WiFi模塊;OneNET云平臺;汽車故障數據管理
中圖分類號: TP273? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)25-0260-03
Abstract: Aiming at solving the problem of low efficiency of online fault diagnosis and management of automobile faults, an online fault monitoring and diagnosis platform based on "Internet +" is constructed. The user terminal takes microcontroller as the core, and realizes online fault diagnosis and diagnosis of vehicle fault and driving information based on ELM327 module and ESP8266WiFi module. The network side is based on the OneNET cloud platform, and the registration server is a host computer to realize the Internet of Things management of vehicle breakdown and driving information. The paper introduces system details, system flow, ELM327 module and ESP8266WiFi module interface and programming, serial electrical level conversion module and power module circuit design, as well as system software framework, ELM327 and vehicle OBD interconnection application, the software design process and parameter setting methods in the software of ESP8266 and OneNET interconnection application, provides a new solution for the measurement and control application of "Internet +".
Key words: OBDII;ELM327 module;ESP8266WiFi module;OneNET cloud platform;vehicle fault data management.
在汽車故障診斷領域,車輛在線故障診斷系統(on-board diagnostics,OBD)已經非常普及,是美國汽車工程師協會(SAE)制定的汽車行業標準,我國于2005年頒布GB18352.3-2005等五項標準中明確規定所有汽車必須裝備OBD系統,OBD作為強制性要求首次出現在我國的法規標準中。車載OBD接口支持8種數據通信協議[4],OBD信息讀取終端通常要配置專用的接口分別匹配各個通信協議與汽車OBD接口對接,這極大地限制了OBD接口的應用。
文獻[1]的方案實現車載OBD直接與手機通信,通過手機與公網通信,手機既是終端,又是中繼站,該方案有三個方面的不足需要完善,一是手機的數據存儲容量不足,二是手機作為中繼站工作速度不夠,三是只與OBD端口的CAN協議通信,不能與OBD端口的其他協議通信,這三個不足會影響該系統的應用效率,文獻[6]也采用同樣的方案,具有相同的不足。本文針對車載OBD在線故障診斷系統工作效率問題,設計與車載OBD-II端口的雙向通信接口,實現覆蓋OBD-II端口的全部8種數據通信協議的在線通信,通過OneNET物聯網開放云平臺,設計與互聯網的雙向通信接口,實現故障診斷信息與互聯網的在線高速、大容量數據通信與存儲。構建基于“互聯網+”的汽車在線故障監控診斷平臺的設計方案,實現網上監測汽車行駛狀態,網上實時診斷汽車故障,通過手機APP查詢汽車運行實時數據和故障信息,實現智能化、網絡化汽車故障在線檢測監控診斷平臺物聯網管理模式。
1 平臺系統組成及工作原理
基于“互聯網+”的汽車在線故障監控診斷系統結構如圖1所示,由用戶端和網絡端兩部分組成。其中用戶端是以STC15W4K32S2單片機為控制器,由OBD連接器ELM327模塊、WIFI無線上網ESP8266模塊和電源管理系統等組成。ELM327是ELM公司生產的專用集成電路模塊,實現與車載OBD-II端口的連接和通信,ELM327連接器的汽車信息輸入端口的引腳通過少量電路連接車載OBD-II接口插座[3],由車載OBD-II接口16號引腳為模塊供電,ELM327連接器與車載OBD交互信息后,從數據收發口RXD、TXD與單片機接口通信,單片機接收ELM327信號后,經過信息處理,通過WIFI無線上網ESP8266模塊鏈接OneNET互聯網云平臺。ESP8266是樂鑫公司生產無線WiFi集成電路,實現無線WiFi與互聯網的接口鏈接 [8],實現無線WiFi上網的功能,廣泛應用于物聯網設計與應用。網絡端由OneNET、具備公網IP服務器上位機、郵件服務和手機等組成。
OneNET是中國移動通信公司推出的專業物聯網開放云平臺,接受各類終端設備迅速接入互聯網絡,為用戶提供可靠的開放的云服務,實現用戶端與互聯網之間的數據傳輸、數據存儲、數據管理等完整的網絡交互流程[9]。
用戶端STC15W4K32S2單片機通過ELM327連接器模塊采集汽車運行狀態和故障代碼等信息數據,經過信息處理后,通過EPS8266無線WiFi上網功能與網絡端OneNET云平臺建立互聯網鏈接,上傳數據到OneNET,或者接收網絡端服務器通過OneNET云平臺發布的操作命令。OneNET云平臺的接收郵箱具有設置觸發的功能,由觸發接收郵箱與公網服務器通信。設置好接收郵箱的觸發控制位后,當接收采集到用戶端上傳的數據滿足觸發條件時,OneNET云平臺通過郵件的方式發送到接收郵箱,進行主動提醒,也可通過http post消息的形式發送給設置好的公網服務器,由服務器進行信息管理。
2 硬件系統的設計
硬件系統的設計主要包括用戶端的硬件接口設計和網絡端服務器的配置。
2.1 STC15W4K32S2單片機與ELM327的接口設計
基于“互聯網+”的汽車在線故障監控診斷平臺系統的用戶端以STC15W4K32S4單片機為控制器。STC公司生產的STC15W4K32S2單片機具有寬電壓、低功耗特性和高速、超強的抗干擾能力,其內部集成高精度RC時鐘,無須外接晶振電路,只需要在固化應用程序時設置即可。用戶端STC15W4K32S2單片機設置時鐘為11.0592MHz。STC15W4K32S2內部主要部件包括8路高速10位A/D轉換,8路10位PWM和2組獨立的異步串行通信接口。STC15W4K32S2單片機的2組獨立的異步串行通信接口符合本系統2路串行通信接口需要,其中一路串口通信端口與ELM327接口,另一路串口通信端口與ESP8266接口。
ELM327目前最新的車載OBD-II通用汽車診斷信息通信接口模塊,車載OBD-II系統對車輛行駛過程中狀態及各類故障信息通過OBD-II接口與ELM327進行雙向通信,實時監測和診斷的主要信息數據包括發動機負荷值、燃油系統狀態、短期燃油情況、冷卻液溫度、發動機轉速(RPM)、車速、進氣歧管壓力、噴油提前時間、進氣溫度、空氣氣流速度、進氣閥絕對位置、燃油壓力、燃油消耗量監測以及各類故障診斷編碼等內容。ELM327模塊支持OBD-II端口的(SAE)8種數據通信協議。ELM327模塊只需很少的外部輔助電路即可實現與車載OBD-II端口的接口,可自動識別所有OBD通信協議,自動進行協議選擇切換。MAX232模塊實現STC15W4K32S2單片機5V電平與ELM327模塊12V電平之間的轉換和串行數據通信接口功能,ELM327通過 MAX232模塊實現STC15W4K32S2單片機接口如圖2所示。
2.2 STC15W4K32S2單片機與ESP8266的接口設計
配置ESP8266串口、由MAX232實現WiFi模塊ESP8266串口電平轉換、電平匹配后與STC15W4K32S2單片機串口實現收發雙向通信接口。當ESP8266模塊中CH-PD處于低電平時,使得內部供電模塊處于關閉狀態,當CH-PD處于高電平時是正常的供電工作狀態,需將ESP8266模塊的CH-PD引腳和VCC相連。用戶端的STC15W4K32S2單片機RXD和TXD串口端引腳是通過MAX232模塊來實現與無線WiFi模塊ESP8266的接口設計。MAX232模塊實現單片機5V電平與無線WiFi模塊ESP8266的3.3V電平之間的電平轉換,也實現單片機與無線WiFi模塊ESP8266之間的信息通信接口,STC15W4K32S2單片機通過MAX232實現與無線WiFi模塊ESP8266之間的數據通信接口如圖2所示。
3 軟件系統總體框架設計
基于“互聯網+”的汽車在線故障監控診斷平臺的軟件系統總體結構包括用戶端軟件和網絡端軟件。其中,用戶端軟件包括選擇診斷模式、OBD通信、診斷主程序、網絡通信等。網絡端軟件包括主控程序、數據分析處理程序、網絡通信和數據庫、診斷信息管理程序。軟件系統總體框架如圖3所示。
用戶端網絡通信程序是通過無線WiFi模塊ESP8266的編程與OneNET互聯網云開放平臺實現網絡鏈接通信,包括WiFi模塊ESP8266初始化設置和與OneNET云平臺初始激活、鑒權等設置。用戶端在接入OneNET平臺前,先在OneNET注冊用戶賬戶,3個步驟。
第一步:在用戶賬戶下創建產品。
第二步:在產品中創建設備。
第三步:為設備新增數據流。
為實現汽車故障在線監測的功能,在OneNET平臺上置服務器作為網絡端上位機進行操作。
4 網絡端初始化及其主控程序設計
網絡端服務器上位機在與互聯網公網OneNET云平臺之間進行通信、接收推送消息時,需要具備互聯網公網IP,這可以從www.vuitr.com申請一臺服務器作為網絡端上位機實現與OneNET通信,其中,服務器上位機采用Debian操作系統。網絡端服務器上位機的初始化程序設計4個步驟。
第一步:創建共享內存,用于不同進程間的通信。
第二步:開啟接收進程,監聽端口2323,接收OneNET的推送消息,提取相關內容存入共享內存中。
第三步:開啟發送進程,監聽端口10000,不斷接收用戶端ESP8266輪詢消息,發送汽車運行監測命令、發送汽車故障診斷模式命令。
第四步:While(1){Sleep(1)}。
網絡端服務器上位機主控程序與用戶端STC15W4K32S2單片機進行信息交互后,向用戶端發布車型及診斷模式命令,網絡端服務器上位機界面顯示對OBD系統的控制信息,包括該車車型、行駛狀態參數、該車型的診斷模式,如傳感器數據的讀取和清除、故障碼的讀取和清除、特殊對象的在線監測、凍結幀的讀取和清除等操作,通過互聯網通信對用戶端STC15W4K32S2單片機發出不同的命令,同時從用戶端STC15W4K32S2單片機獲取診斷后監測數據并實施數據管理。根據用戶端STC15W4K32S2單片機返回的監測數據或者故障碼經整理分析后,存入網絡端數據庫。網絡端采用SQL Server數據庫進行數據存儲和管理,數據庫設置有用戶登錄表和車輛行駛數據表及車輛信息表等三個表。網絡端服務器上位機查看、查詢數據庫的數據以圖表式文本的形式發送用戶(手機),通過發送和讀取顯示實現動態管理。
5 用戶端程序設計
用戶端的程序設計主要包括對用戶端系統中各模塊電路的初始化、故障診斷與行駛狀態數據采集、數據打包上傳等工作。STC15W4K32S2單片機首先完成WiFi模塊ESP8266的通信波特率為115200和ELM327模塊的通信波特率為38400等2個串口初始化設置。然后分別對ELM327進行初始化和對ESP8266進行初始化、然后向ESP8266WiFi模塊發送AT指令、使WiFi模塊ESP8266創建好與OneNET云平臺互聯網的服務鏈接。其中,STC15W4K32S2單片機對ESP8266設置有5個步驟。
第一步:熱點參數設置。
第二步:連接無線網絡。
第三步:尋找服務器IP。
第四步:連接服務器。
第五步:WiFi信號轉串口信號的透明傳輸狀態。
當STC15W4K32S2單片機通過ESP8266收到上位機的命令信號后,對信號進行判斷,根據信號的不同類型產生相應的操作,控制ELM327對車載OBD執行汽車運行狀態和汽車故障數據采集及接收分類管理,并將接收執行的信息通過ESP8266打包返回給遠程網絡端上位機。
用戶端ELM327與車載OBD-II系統之間的通信交互是通過請求和應答2步進行的。
第一步:用戶端ELM327向車載OBD-II接口發出一個請求。
第二步:車載OBD-II接口經車載OBD-II系統內部通信總線傳送給汽車中央ECU,中央ECU通過解析請求信號后生成應答信息,然后通過OBD-II接口向ELM327發回應答信號。
5.1 用戶端通過ELM327向車載OBD-II接收、發送命令操作
用戶端通過ELM327向車載OBD-II接收、發送命令,2個步驟操作。
第一步:用戶端STC15W4K32S2單片機控制接ESP8266收發互聯網服務器(手機)等上位機監測命令信息。
第二步:用戶端STC15W4K32S2單片機解析互聯網服務器上位機發布監測命令信息后,按照操作命令、當前車型及OBD-II接口通信協議和OBD-II工作模式等4部分生成串口操作命令,如測量冷卻液溫度的操作命令和發動機轉速的操作命令分別為“0105”和“010c”等。單片機通過ELM327與車載OBD-II進行應答通信,由ELM327發送操作命令數據請求給車載OBD-II系統。
5.2 用戶端向網絡端上位機傳遞監測信息
用戶端STC15W4K32S2單片機通過ELM327與OBD-II的應答通信方式將網絡端服務器上位機的診斷模式命令發送給車載OBD-II。同時,ELM327將OBD-II返回的應答數據發送給用戶端STC15W4K32S2單片機,單片機通過ESP8266鏈接OneNET云平臺上傳網絡端互聯網服務器上位機。
6 結束語
實驗室實驗調試表明,基于“互聯網+”的汽車故障在線監測診斷管理平臺系統,通過ELM327、ESP8266和OneNET云平臺實現汽車故障在線監測診斷管理聯入互聯網絡,實現了汽車故障和行駛信息在線監測診斷的物聯網統一管理,提高了汽車故障在線監測診斷管理層次。汽車故障在線監測診斷管理系統可設置多級加密功能,定義訪問權限,增強系統的保密性和安全性,基于“互聯網+”的汽車故障在線監測診斷平臺是新一代的具有智能化、網絡化的管理系統,應用范圍廣,包括實時故障診斷、實時行駛監測、行駛信息記錄、遠程提醒控制、碰撞提醒等應用,本系統稍加改造即可實現“互聯網+”的汽車運輸物流管理、智能交通管理等應用。同時,也為“互聯網+”的測控應用提供一種新方案。
參考文獻:
[1] 屠雨,張鳳登,單冰華.基于汽車OBD車聯網的設計與實現[J].電子測量技術,2016,39(8):32-36.
[2] 趙彥,許常青,鄧小龍,等.基于OneNet云平臺的智慧平安校園遠程監控系統[J].電訊技術,2018(09):1103-1107.
[3] ELM Electronics.ELM327 OBD to RS232 Interpreter Datasheet[S].2006,1-43.
[4] Niazi MAK,Nayyar A,Raza A,Aivan AU,Ali MH,Rashid N,Iqbal J.Development of an On-Board Diagnostic(OBD) kit for troubleshooting of compliant vehicles[A].Emerging Technologies(ICET).2013 IEEE 9th International Conference on [C].Islamabad:IEEE,2013:1-4.
【通聯編輯:唐一東】