张志鹏,陈博凯,杜浪东,马全海
基于OBD接口和Android平台的重型汽车车载诊断系统
张志鹏,陈博凯,杜浪东,马全海
(陕西重型汽车有限公司,陕西 西安 710200)
随着物流行业的发展,重型汽车的需求量不断增长。对重型汽车运行状态的诊断也显得尤为重要。文章利用OBD接口,基于Android平台,对数据进行分析,诊断车辆故障。为车辆的维护工作,提供有利的保障。
Android;诊断;CAN;OBD接口
基于OBD接口和Android平台的重型汽车车载诊断系统是目前主流车厂打造自身产品生态圈的重要一部分,更是车联网平台,大数据挖掘用户需求的重要一环。
常规诊断仪体积大、价格昂贵,通用性差,且不宜长时间连接在总线上,本诊断工具旨在通过市场上通用的OBD诊断仪,将车辆CAN总线上的数据发送至手机APP,通过APP对CAN数据的解析,提供故障诊断、车辆状态信息。手机体积小,又能随时观察车辆状态,利于排除异常,提高车辆使用寿命。
该诊断系统还能对自主开发的控制器进行应用程序更新。在线获取加密程序文件(hex文件加密),在手机中解密并通过WiFi将数据发送到CAN总线,通过Bootloader协议下载程序,完成程序功能的更新。
该系统的整体架构由重型汽车,OBD诊断仪,Android智能手机3大部分组成,各部分之间的逻辑关系如图1所示。
OBD诊断仪直接通过车辆的16针诊断接头安装在汽车上,手机APP就可以通过WIFI与OBD诊断仪建立WIFI通道,从而与车辆进行数据通信。手机APP通过对接收到的数据进行分析和处理,从而获得相应的参数信息,并同时在手机端进行实时显示。
图1 系统各部分逻辑关系
考虑到系统实时性好,实用性强,运行流畅的设计原则,本系统由重型汽车,OBD诊断仪,Android智能手机三部分组成,如下图所示。
图2 系统组成图
主要功能点如下:
(1)数据检测功能:显示发动机,变速器,车身模块等的关键信息。
(2)故障诊断功能:显示发动机,变速器,车身模块等的故障信息。
(3)虚拟仪表功能:显示发动机转速,车速,里程等关键数据。
(4)AD检测功能:显示车身模块的故障数据触发阈值。
(5)辅助工具功能:计算百米脉冲,以及对发动机,ABS的故障闪码查询和对整车电控系统的故障码查询。
(6)数据标定功能:修改标定信息,权限解锁等。
(7)胎压检测功能:对胎压充放系统进行检测。
(8)数据流导出功能:对CAN总线上的数据进行记录导出功能。
(9)模块仪表数据在线更新功能:对相应程序升级换代。
(10)维修保养手册功能:当车辆出现故障,可自动定位到相应维修结点,指导维修保养。
为实现本文所述系统及功能,开发了一款基于Android移动终端软件,并在Android6.0系统的手机上进行测试。Android端显示的数据是OBD诊断仪通过WIFI传过来的,点击界面上的连接WIFI按钮对周围可连接的设备进行扫描,并选择进行连接。
后台逻辑的搭建主要用到了Service后台和Activity活动。
(1)Service是运行在后台且不和用户交互的组件。每个Service必须在manifest中通过
(2)Activity对用户来说即是一个交互的界面,多个activity之间可以通过Intent通信,每个Activity必须在manifest中通过
(3)该系统采用MVC的架构,把基于OBD接口和Android平台的重型汽车车载诊断系统分为了VIEW,MODEL,CONTROL三层,如下图所示。
图3 系统结构图
(4)VIEW层:该层是距离用户最近的一层,用于显示解析CAN报文的处理结果,提供用户和系统连接的纽带。
(5)MODEL层:该层采用特有的面向对象接口编程,根据程序的需求自己创建对象,为开发人员节省了大量的工作,实现低耦合的特点。
(6)CONTROL层:通过对sqlite进行轻量化的对象封装,开发人员使用面向对象思想来对sqlite数据库进行操作,简化对sqlite数据库的操作。
本系统按照上述设计,针对重型汽车车载诊断的需求,搭建汽车,OBD诊断仪,Android智能手机组成的诊断系统,进行开发。目前,基于OBD接口和Android平台的重型汽车车载诊断系统经过大量的测试和调试,已经成功实现业务运行。
基于OBD接口和Android平台的重型汽车车载诊断系统,在Android端实时采集和显示重型汽车的运行数据。通过实时诊断,随时监测汽车的状况,可以及时发现出现故障的部件并给出维修建议。从而确保了乘客和车辆的安全,降低了维修成本。
(1)Android端车辆数据显示模块展示:该模块的作用在于以列表的界面来直观的显示车辆运行过程中的实时信息,实时行车数据流中带有实时车速,发动机油温,变速器输出轴转速,发动机故障码等实时行车数据,如下图所示。
图4 数据显示效果图
图5 数据标定效果图
(2)Android端车辆数据标定模块展示:该模块的作用在于方便计算行车百米脉冲数,并通过WIFI发送标定值。如图5所示。
(3)Android端车辆自主控制器程序更新模块展示:该模块的作用在于手机中解析hex二进制文件并通过OBD诊断仪将解析后的数据发送到CAN总线,通过Bootloader协议下载程序,完成程序功能的更新,如下图所示。
图6 程序更新效果图
基于OBD接口和Android平台的重型汽车车载诊断系统不仅能对汽车行驶的实时数据通过OBD诊断仪与汽车通信进行数据采集,而且能对采集到的实时数据在Android端进行实时高效的显示,通过实时诊断,随时监测汽车的状况,可以及时发现出现故障的部件并给出维修建议。从而确保了乘客和车辆的安全,降低了维修成本。对于主流车厂打造自身产品生态圈,车联网平台,和大数据挖掘用户需求有着重要意义。
[1] 张怀坤,苑红晓.汽车故障远程诊断系统的设计和研究[C].全国测控、计量、仪器仪表学术年会,2010.
[2] 胡杰,盛祥政,李洪飞,等.基于智能手机的汽车故障诊断系统研究与开发[J].汽车技术,2011(9):4-10.
[3] 曾锐利,肖云魁,周建新等.汽车远程故障诊断与维修系统研究[J].电子测量技术,2009,32(7):129-131.
[4] 鲍健.汽车故障诊断技术的现状与发展趋势[J].科技资讯,2012, 29(5):110-111.
Heavy Vehicle In-Vehicle Diagnosis System Based on OBD Interface and Android Platform
Zhang Zhipeng, Cheng Bokai, Du Langdong, Ma Quanhai
( Shaanxi Heavy Duty Automobile Co. Ltd, Shaanxi Xi'an 710200 )
With the development of the logistics industry, the demand for heavy-duty vehicles continues to grow. The diagnosis of the operating status of heavy-duty vehicles is also particularly important. The article uses the OBD interface to analyze data and diagnose vehicle faults based on the Android platform. It can provide a favorable guarantee for the mainte -nance work of the vehicle.
Android; Diagnosis; CAN; OBD interface
10.16638/j.cnki.1671-7988.2019.10.060
U472
A
1671-7988(2019)10-176-03
U472
A
1671-7988(2019)10-176-03
张志鹏(1990-),男,工程师,就职于陕西重型汽车有限公司汽车工程研究院军品研究所,从事于军用车辆产品设计开发相关研究工作。