基于“互联网+”的汽车在线故障监测诊断系统设计
2019-11-12黄晓林曹玉华朱涛周绍鹏
黄晓林 曹玉华 朱涛 周绍鹏
摘要:针对汽车故障在线诊断管理效率低的问题,构建基于“互联网+”的汽车在线故障监测诊断平台。用户端以单片机为核心,基于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.
【通联编辑:唐一东】