APP下载

通用型汽车故障诊断仪在iOS平台上的设计

2016-07-19黄智宇苏小龙

计算机应用与软件 2016年6期
关键词:诊断仪报文蓝牙

黄智宇 苏小龙 李 锐

(重庆邮电大学自动化学院 重庆 400065)



通用型汽车故障诊断仪在iOS平台上的设计

黄智宇苏小龙李锐

(重庆邮电大学自动化学院重庆 400065)

摘要针对目前汽车故障诊断设备通常需要单独硬件支持并且扩展性、便携性较差等问题,在如今智能手机日益普及的环境下,通过分析车载CAN网络诊断协议ISO15765以及UDS统一诊断服务,提出建立可跨平台与车系的诊断数据库。设计蓝牙通信模块并在此基础上基于iOS平台开发汽车故障诊断软件,实现便携式的汽车故障诊断。通过在实验平台上的测试结果表明,所设计的汽车故障诊断仪能够准确诊断和解析汽车ECU中的故障,实现不需要额外硬件成本仅利用移动终端完成的汽车故障诊断与定位。

关键词故障诊断UDS服务iOS平台

0引言

随着汽车电子技术的发展,CAN总线在车载网络的普遍应用,基于CAN总线的汽车网络诊断协议ISO15765已经成为多数汽车厂商所采用的标准诊断协议。但是因其协议的新颖与复杂性,目前国内在基于ISO15765的车载网络诊断技术尚不成熟[1]。目前主流的汽车故障诊断工具通常在单片机或FPGA上开发而成,导致现在的汽车诊断设备通常受扩展性及便携性的限制,对其使用仅限专业汽车维修人员。随着移动终端的不断发展,智能手机已经成为人们日常生活中的基本工具。iOS系统作为领先的移动端操作系统,具有良好的用户体验,友好的开发环境,较大的市场占有率,并且其在汽车终端系统的发展更具生态友好性。2014年,苹果公司发布了车载操作系统CarPl-ay,使得iOS设备与汽车无缝连接,开发基于iOS的汽车应用更具前瞻性,未来有更多车系支持该车载系统后便可直接安装应用至车载终端进行故障诊断。本文通过对汽车诊断协议ISO-15765的分析与研究,结合UDS统一诊断服务以及设计的蓝牙转CAN转接板,在iOS平台上开发出汽车故障诊断仪。诊断仪具有通用性,可以应用到所有支持标准诊断协议ISO15765的汽车中。用户可以借助装有本软件的iOS设备既可实时了解汽车出现的故障,方便对故障进行排查,并作针对性的保养。

1车载诊断协议研究

ISO15765诊断协议于2001年发布,以OSI七层模型为基础,基于CAN总线制定了统一的诊断流程与服务标准。CAN总线可以满足电动车多节点,信号传输量大的特点[2]。在ISO-15765的通信模型中,诊断协议体系分为四层:分别为应用层、网络层、数据链路层和物理层[3]。其中,数据链路层根据ISO-11898-1标准定义遵循CAN通信协议,网络层根据ISO15765-2定义,应用层根据ISO14229-1和ISO15765-3标准中诊断服务的内容定义,并兼容了一些汽车厂商规范中定义的诊断服务,具有测试、检测、监控、诊断管理等功能。ISO15765的通信模型如图1所示,诊断仪根据应用层中定义的诊断服务发送相应的服务请求报文。当网络层接收到来自应用层消息后,根据定义中的分包、组包、位填充和时间控制等步骤,对消息流进行传输控制。根据传输数据的长度可分为单帧传输和多帧传输,数据链路层通过把网络层传来的诊断报文,经过修改打包成能够在CAN总线上进行传输的CAN报文。

图1 ISO15765通信模型

2诊断仪系统框架设计

诊断仪的核心功能是获取与解析汽车故障。汽车故障是指由于汽车零件本身或零件之间的配合状态发生异常变化导致汽车不能正常工作的现象[4]。汽车故障主要由于零部件之间的相互作用,从而引起零部件受力、发热、变形、磨损、腐蚀等,使汽车在整个寿命期内,故障率由低变高[5]。汽车发生故障时,首先要定位汽车的哪一个部件出现故障,以电动汽车为例,电动汽车主要有六大部件,分别是:发电机控制装置(GCU)、整车控制系统(HCU)、电机控制器(IPU)、DCDC、电动车充电器(CEM)和电池控制单元(BCU)。在定位出汽车的哪一部件出现故障后,根据该部件各个零部件的运行状态参数判断出是什么原因导致故障的产生,最后通过相应的维护方法使汽车故障排除。系统旨在通过开发一种基于iOS移动设备的汽车故障诊断软件使得用户可以方便地获取汽车出现的故障,同时维修人员可以快速定位并作出维修决策。具体需要实现以下几个需求:

1) 构建诊断数据库;

2) 完成蓝牙通信模块的设计;

3) 开发基于iOS平台的汽车故障诊断软件。

2.1系统整体方案

本文所述汽车故障诊断系统主要由蓝牙通信模块以及iOS上的诊断仪应用软硬件两部分组成。软件部分诊断仪应用又分为以XML文件构建的数据库模块、基于ISO15765的应用层协议解析模块以及UI模块,系统框架如图2所示。

诊断系统中自底向上分别是汽车内部网络、蓝牙通信模块、以及iOS设备。汽车内部网络中汽车的各ECU部件能够在汽车出现故障时对相应的故障信息进行诊断与存储。蓝牙通信模块作为中介设备用于iOS设备与汽车CAN网络的通信。iOS诊断仪中的XML数据库存储了各车厂相应的故障信息,通过获取到的汽车ECU中的故障信息并进行解析后在数据库中进行匹配,最后将结果通过人机界面提示给用户。

2.2系统设计

(1) 诊断数据库的构建

为了实现汽车故障诊断仪的通用性,构建数据库时采用可扩展标记语言XML来构建。XML表示的信息独立于平台,可在任何应用与平台上读写,完成各独立系统间的信息交换[6]。通过将各合作车厂提供的故障码与故障信息对应的故障代码表,以及包含数据标示符、数据流描述、数据换算公式及单位的数据流信息说明表,结合相应的车型构建XML诊断数据。数据库存放在应用沙盒目录下,由于iOS的沙盒机制,应用程序位于文件系统的严格限制部分,其他应用程序无法访问以保证数据库的安全。

(2) 蓝牙通信模块的设计

由于目前的汽车诊断设备通常是通过数据线直接接入汽车OBD接口,导致诊断仪便携性较差。通过分析目前的短距离通信网络蓝牙与WiFi后,充分考虑到汽车环境下的可行性与iOS设备的支持后,本文采用蓝牙通信技术。基于最新蓝牙4.0BLE协议,开发出用于协助iOS设备与汽车网络通信的设备蓝牙转CAN模块。蓝牙通信模块使用的MCU是STM32F103C8T6,采用SN65HVD230作为CAN收发器,MAX232作为RS232电平转换器,蓝牙模块采用CC2540,串口波特率设定为115 200bps,CAN接口的波特率设定为250kbps, 系统工作频率设定为72MHz。蓝牙通信模块工作流程为:利用蓝牙模块与iOS设备的蓝牙进行通信;当接收到iOS设备发送的蓝牙报文时,主控制器将接收的数据转换成CAN报文并通过CAN通信模块发送给汽车CAN网络上的各ECU;当接收到汽车ECU响应的CAN报文时,将接收的数据转换成蓝牙报文并通过蓝牙模块发送给移动终端。基于此,iOS设备就可以利用蓝牙转CAN设备实现与汽车内各ECU间接通信,以实现对汽车各部件的故障诊断功能。系统硬件设计结构框图如图3所示。

图3 蓝牙通信模块硬件结构图

(3) 诊断功能设计

本文在CAN总线UDS诊断标准ISO15765的基础上,设计出诊断仪的以下几个功能,分别是:读取全部故障码、读取当前故障码、读取历史故障码、清除故障码、读取版本信息、读取动态数据流、写入车辆识别码。

图4 诊断服务流程图

在UDS诊断服务中规定,SID(ServiceIdentifier)=0x19的服务为读取DTC(DiagnosticTroubleCode)信息诊断服务。诊断仪可以通过该诊断服务读取车辆内所有服务器或一组服务器存储的DTC信息[7]。以读取全部故障码为例,阐述该诊断服务实现过程:依据SID:0x19服务对应的子功能0x0A,由客户端(诊断仪)向ECU发送请求报文,ECU返回响应报文。客户端通过该响应报文判断ECU是否仍有连续帧返回。若有则发送流控制帧以请求ECU继续返回连续帧;若无则表明ECU已无响应报文,客户端接收完响应报文后,诊断仪需要从响应报文中提取出DTC和DTC的状态。根据读取到的DTC与XML数据库中的故障信息进行查询与匹配,解析出每个DTC对应的解释,并显示在诊断仪的人机交互界面中。诊断仪完成一次诊断服务过程如图4所示。

3iOS平台上汽车故障诊断软件的开发

iOS系统自出现以来因其简单易用的界面、令人惊叹的功能,以及超强的稳定性,赢得了市场的青睐[8]。同时考虑到目前市场上汽车诊断仪基本需要单独购买额外的硬件,开销昂贵,并且智能手机已经作为日常生活中的主要工具,因此本文基于iOS平台使用Xcode开发iOS平台上汽车故障诊断仪。iOS诊断仪基于以下几个功能开发:(1) 连接配对蓝牙通信;(2) 故障码的解析与匹配算法设计;(3) 诊断仪整体界面设计。其中蓝牙通信功能采用iOSSDK提供的CoreBluetooth框架开发,iOS设备作为主设备,蓝牙通信模块作为从设备。首先从设备会广播自身的信息,包括其UUID以及相应的服务,主设备收到从设备的广播并与之发起连接后既完成蓝牙的配对连接,蓝牙报文的传输通过主设备对从设备特定的服务的特征写和读来完成。故障码的解析与匹配算法用于从ECU中读取出数据后对具体的故障码进行解析并匹配XML诊断数据库。具体的算法流程如图5所示,诊断设备首先通过执行读取故障码功能,将ECU响应的故障码存放到故障码链表中。再从数据库中找到对应该车厂ECU的故障信息匹配XML文件,利用XML解析器从文件中解析出所有故障码和中、英文故障信息并存放到故障信息匹配链表中。完成上述步骤之后,依次将故障码链表中的故障码逐条读取,接着从故障匹配信息链表中查找是否有相同的故障码。若找到相同故障码,则将该条故障码对应的中、英文故障信息解析出来并显示在人机交互界面从而指导维修人员;若未能找到相同的故障码,则提示相应的错误。如此循环执行,直到将故障码链表中所有故障码的故障信息解析出来。

图5 故障码解析与匹配流程图

4系统分析与测试

4.1系统分析

本文设计的汽车故障诊断系统主要由蓝牙通信模块以及iOS上的诊断仪应用软硬件两部分组成。其中蓝牙通信模块采用蓝牙4.0BLE模块,相对传统蓝牙模块其功耗更低,更符合汽车这样特殊环境下的实际需求。蓝牙通信模块传输延迟在3ms左右,最大传输距离可达100米,满足日常需求。

iOS上的诊断仪基于MVC模式开发,分离模型、视图与控制器通过面向对象分析将故障解析与匹配算法抽象成一个API,每一次对于ECU的数据处理仅需要调用该API即可完成。同时作为诊断仪的核心部分,故障解析与匹配算法被高度抽象后极大地方便了单元测试,通过大量的测试用例实验,使得软件的可靠性大大提高。

4.2系统测试

本文设计的故障诊断仪主要实现汽车故障信息获取与解析功能,并以友好的用户界面提示用户,指导维修人员快速定位故障并完成汽车维修工作。本文基于iOS平台开发,因此测试平台主要包括装有诊断仪软件的iOS移动终端、蓝牙通信模块以及汽车ECU部件。在诊断系统开发和测试期间,本文基于长安新能源研究所提供的长安奔奔电动车部件BCU来进行验证,测试平台实物连接如图6所示,其中蓝牙通信模块接入车身CAN网络,并由ECU直接供电。

图6 系统测试平台实物图

测试步骤如下,选用iPhone4S作为测试设备,将通信模块接入CAN网络后使BCU上电,待蓝牙模块指示灯指示正常后使用iOS设备配对连接蓝牙模块。成功配对后分别测试读取全部故障码、读取当前故障码、读取历史故障码、清除故障码、读取版本信息、读取动态数据流、写入车辆识别码功能。图7 所示为读取全部故障码及读取动态数据流的结果。

图7 故障码与动态数据流

通过对汽车BCU、HCU部件进行联调,针对诊断过程中可能出现的丢帧、差错帧、无响应等情况分别进行相应的单元测试。测试用例均通过测试,结果符合预期要求,所有测试的诊断功能均能实现。同时针对移动设备内存有限的情况下对应用进行了压力测试,测试结果表明在持续使用各诊断功能的情况下,应用所占内存保持在10MB左右,程序能良好地运行。

5结语

本文通过对汽车诊断协议ISO15765以及UDS统一诊断服务的研究,充分利用了XML平台无关性的特点,构建了汽车故障XML数据库,使得其能同时应用到其他操作系统,并设计了用于移动设备与车身CAN网络通信的蓝牙通信模块。在此基础上开发出iOS汽车故障诊断软件,软件采用MVC框架设计,进行了多轮重构,Bug修复以及版本适配,能够适配最新的iOS8系统。最后搭建了诊断测试平台,并对各功能模块分别进行了单元测试同时对系统进行黑盒测试。测试结果表明,各功能模块均正常工作,系统整体运行正常,具有可靠性与稳定性。本文设计的汽车故障仪实现了一种低成本、方便灵活的汽车诊断工具。

参考文献

[1] 李锐,王晶莹,姚燕,等.基于ISO15765的车载CAN网络诊断设计[J].计算机工程,2012,38(4):35-39.

[2] 钱三平,黄少堂.混合电动汽车CAN网络系统设计及应用[J].汽车工程学报,2014,4(2):109-115.

[3]XuAD,LiuLL,SongY.ResearchandDevelopmentofVehicleFaultDiagnosticProtocolISO15765[C]//ProceedingsoftheInternationalConferenceonTransportation,Mechanical,andElectricalEngineering,2011:1241-1245.

[4] 蔡浩.汽车故障诊断系统的设计和开发[D].上海:上海交通大学,2009.

[5] 刘占峰,林丽华.汽车故障诊断与检测技术[M].北京:北京大学出版社,2008.

[6] 黄智宇,陈倍新,冯辉宗,等.一种基于XML的汽车ECU故障诊断信息匹配方法:中国,201210504280.0[P].2013-03-20.

[7]HuangJK,NanJR,ChaiZ,etal.AnalysisofUDSDiagnosticServiceAppliedonVehicleECU[J].AppliedMechanicsandMaterials,2013,437:779-782.

[8]LiuY,LiF,GuoL,etal.EffectivelyminimizingredundantInternetstreamingtraffictoiOSdevices[C]//ProceedingsoftheInternationalConferenceonComputerCommunications,2013:250-254.

DESIGNING UNIVERSAL VEHICLE FAULT DIAGNOSIS INSTRUMENTONiOSPLATFORM

Huang ZhiyuSu XiaolongLi Rui

(School of Automation,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)

AbstractConsidering the problems that current vehicle fault diagnosis instruments usually need to be supported by sole hardware, and have poorer scalability and portability, etc., we put forward to establish the cross-platform and car series diagnoses database under the environment of increasing popularity of smartphone and by analysing the vehicular CAN network diagnosis protocol ISO15765 and UDS (uniform diagnostic services). We also designed the Bluetooth communication module, and on this basis we developed the vehicle fault diagnosis software based on iOS platform, implemented the portable vehicle fault diagnosis. It was demonstrated through the results of test on experimental platform that the designed vehicle fault diagnosis instrument could accurately diagnose and resolve the faults in car’s ECU, and achieved the vehicle fault diagnosis and positioning without extra hardware cost by only using mobile terminals.

KeywordsFault diagnosisUDSiOS platform

收稿日期:2014-11-15。黄智宇,副教授,主研领域:电动车电机控制技术。苏小龙,硕士生。李锐,教授。

中图分类号TP3

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.06.024

猜你喜欢

诊断仪报文蓝牙
基于J1939 协议多包报文的时序研究及应用
蓝牙音箱的直线之美
日立EUB 8500E彩色超声诊断仪的维修与升级
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
ATS与列车通信报文分析
李剑锋:用技术进步促进诊断仪在汽车维修中的应用