基于安卓智能手机的车载诊断系统实现
2015-01-29百合提努尔
百合提努尔
【摘要】本文主要研究了基于安卓智能手机的汽车诊断系统的实现,通过对帕萨特B5示教板进行实际测试验证了对诊断数据的处理和管理的有效性,并实现了汽车故障代码的读取及汽车实时数据的监控。
【关键词】汽车诊断 OBD-Ⅱ 蓝牙 安卓智能手机
【摘要】 In this paper study on the implementation of Android-based smart phones automotive diagnostic system, through PassatB5 teaching board actual test the validity of the diagnostic data processing and management, and to achieved the car fault codereader and vehicle real-time data monitoring.
【关键词】 Vehicle Diagnosis OBD-Ⅱ Bluetooth Android Smart Phone
一、前言
在20世纪90年代人们认识到,为了限制控制器和诊断检测仪在接口方面的维护费用,不仅要对数据传输层,而且对应用层也要进行标准化。这项标准化的工作,促进了法规的制定。尤其对于检查汽车重要废气排放的系统功能,急需一种相对统一的OBD-Ⅱ(车载诊断系统)接口。另一方面,由于全球的汽车制造商之间日益增长的合作,部分组件或整车由多个制造商共同研发和使用。但是由于这个标准化的过程太慢,导致出现许多的专种性和不兼容的个体性解决方案。
汽车的故障诊断由OBD-Ⅱ车载诊断系统收集的有关信息通过OBD-Ⅱ接口实现的。许多汽车要求使用外设来监控汽车的运行状态。本文主要研究如何利用安卓智能手机与OBD-Ⅱ连接器进行通信,并监控实时数据。
二、汽车诊断
2.1 0BD- II硬件特点及系统检测
我国已经出台相关规定,出厂新车必须配备OBD-Ⅱ系统、否则不允许上牌。装备OBD-Ⅱ的汽车具有如下基本特点:
(1)排气管上安装的氧传感器检测废气中氧的含量、也对催化转换器的净化率进行监控,同时对燃油控制进行补偿。
(2)具有32位(也有64位)处理器功能的动力传动模块,应OBD-Ⅱ的需要,增加了上万个新的标定常数。
(3)带有EEPROM的控制器,使其中的软件可重新编程,通过终端接口及外部计算机可对其重新写入新的软件。
(4)增强型的燃油蒸发系统,带有一个排气电磁阀、一个燃油箱压力传感器和一个诊断测试装置。
(5)采用数据线和16端子的连接器。
通过这些新增的硬件以及汽车上的相关传感器构成众多监测器,如失火监测器、燃油系统监测器、组合元件监测器、氧传感器监测器、EGR监测器等,对汽车运行状态进行监测。
OBD-Ⅱ系统的控制模块内有监测自适应软件,它通过上述的监测器来完成故障自诊断,当以上监测器监测到变异信号,立即点亮故障指示灯。
故障检测仪器一般分为专用检测仪和通用检测仪。一般汽车制造厂家提供专用的检测仪器,其检测诊断功能非常好,但是比较昂贵。通用的检测仪器采用标准化的代码。
2.2 0BD- lI通信协议
为了实现和汽车控制器的通信,首先应该学习汽车OBD-Ⅱ系统所使用的协议,才能和它进行自由的沟通。目前在汽车上使用的OBD协议很多,有标准的,也有非标准的。标准的有两种,一种是由国际标准组织( ISO)开发的,另一种是由美国汽车工程师协会( SAE)制定的。现在最常见的三种通信方式:
1)K线通信方式,它使用的是IS0 9141和IS014230协议,它是一种面向字符的协议,它能与每个控制器和运算器中的串行接口进行连接,根据UART(通用异步中集器和收发器)完成简单的诊断任务。
2) VPW/PWM(可变脉宽调制/脉冲宽度调制)通信方式,它使用的是SAE J1850协议,是面向比特流的A/B级协议,用于在线和离线通信。经过仔细的研究发现,其本质是关于两个在物理层和比特传输层彼此不兼容的总线系统,但是却采用共同的数据链路层。
3) CAN-BUS通信方式,它使用的是IS0 15765-4协议,它是多路访问、非破坏性、冲突检测的竞争协议。节点寻址方式在协议中没有具体规定。每个帧的标识符( ID)就表示报文,而它定义为应用中生成的传输信息。数据帧和远程帧有两种格式,即标准格式(11位ID)和扩展格式(11位的基本ID+18位的扩展ID)。
虽然各个汽车厂商通常使用三种不同的通信协议,但给定的汽车将只使用一种协议,因此诊断设备必须兼容这三种协议。OBD-Ⅱ通信协议的报头信息如表l所示。
2.3故障诊断模式
标准要求每一个传递给汽车的OBD命令或者请求必须遵循固定的格式。将要发送的第一字节(被称为模式字节)表示请求的数据类型,第二个字节(也许是第三个或者第四个字节)才说明要求的实际信息。模式字节之后紧跟的字节叫做参数标识或者PID数字字节。要使接收OBD请求的数据,首先必须OBD-Ⅱ端口写成如下格式:
在格式中XX表示请求的模式,YY表示请求的PID。例如:要想知道汽车进气温度,那么请求的模式是1、请求的PID是OF,因此给OBD-Ⅱ端口发送OlOF。不同的模式如表2所示。
三、OBD- lI蓝牙设备
蓝牙是目前汽车上最受欢迎的无线通信技术,许多车用电子产品都引入蓝牙技术,如耳机、免提电话等。本文采用ELM327蓝牙设备。ELM327是属于通用OBD解释程序接口,用于标准OBD-Ⅱ协议的汽车。解释程序以AT命令或者OBD命令进行询问的。AT命令是内部命令,主要面向ELM327。OBD命令是经网关至发动机控制单元或其他控制单元。endprint
3.1 AT命令
ELM327蓝牙设备能识别每一个“AT”开头的和(\n)结束的AT命令。如果命令能顺利调整特性,会发送“OK”来应答。有些命令以自变量的方式请求数字。这些数字一般要用成对地写成十六进制。通常与汽车通信连接之前,不要改变AT命令。
3.2 0BD-Ⅱ命令
凡是没有“AT”两个字开头的所有命令可以被认为汽车OBD命令。如果被测试的每一对字节确实是十六进制数字就会发送。OBD命令先打成数据包,然后发送给汽车各系统。许多标准请求的三个字节的报头和字节错误(检验和)与报文格式一样的。
ELM327蓝牙设备接受来自安卓手机的AT命令和OBD命令,同时它能回答AT命令,也能发送OBD命令(图1)。
如果OBD命令以控制字符结束时,ELM327蓝牙设备不时地保持重复命令和向安卓手机发送数据。在图2所示的232接口可以是串行USB或者蓝牙接口。当设备插入时,LED指示灯发光并已准备接收命令。它有一个小的内存从而保存了像正在使用的协议、查询时间等数据。
图2 0BD-Ⅱ方块图
四、安卓手机
安卓手机基本上是使用蓝牙ELM327设备进行通信。它开始发送AT命令,然后从ELM327设备接收数据并显示在屏幕上。例如,发动机转数、车速、油门和发动机负荷等数据。安卓手机用软件是JAVA程序语言设计开发的。JAVA语言是一种面向对象的高级语言。
五、汽车诊断实现
本研究用试验设备采用帕萨特B5示教板,实物元件主要包括有发动机控制单元、防抱死制动控制单元、自动变速器控制单元、曲轴位置传感器、霍尔传感器、组合仪表(网关)、OBD诊断座、点火线圈、火花塞、转向灯、舒适控制单元、左前门窗控制单元、左后门窗控制单元、右后门窗控制单元、左前门锁、右前门锁、左后门锁、右后门锁、组合开关等组成。试验模块如图3所示。控制单元由高速模块和低速模块组成。高速模块要求连续监控、低速模块要求断续监控。
图3试验模块
六、结论
(1)文中深入研究分析了OBD通信协议、OBD命令以及故障诊断模式等,尤其是故障模式对汽车实时诊断极为重要。
(2)基于安卓智能手机的车载诊断系统能对帕萨特B5示教板中一些重要的数据进行实时监测,并相关的故障信息显示在手机上。
(3)利用这种OBD-Ⅱ蓝牙设备技术,可以方便地进行汽车工作状态实时监测,方便地进行车辆的实时诊断,极大地提高了对汽车的监控、维护和管理水平。
参 考 文 献[1]胡杰,盛详政,李洪飞,曾恺,颜伏伍.基于智能手机的汽车故障诊断系统研究与开发[J].汽车技术,2011.9[2]蔡黎,代妮娜,邓明.基于OBD协议的Android平台汽车虚拟仪表设计[J].电子技术应用,2011.12[3]ELM Electronics: ELM327 0BD to RS232 InterpreLer Datasheet, [online] 2012.04.21[4]Available online: .endprint