APP下载

基于ISO15765的整车诊断程序软件设计研究

2024-08-15刘海云

时代汽车 2024年13期

摘 要:为了确保交付到用户手中的汽车安全质量达标,EOL诊断测试必不可少。目前,市面上很多的车企都使用的是ISO14230协议,是基于K线检测的。但是因为诊断系统完全独立于汽车内部CAN网络系统,这使得汽车的成本上升,汽车内部网络也变得更加复杂。所以本文采用基于ISO15765协议设计的EOL整车诊断程序能够利用目前大部分车辆的CAN总线,使用现成的汽车CAN总线做检测,这样就能够减少车辆的成本,并且提高汽车CAN总线的负载。本文提出的基于ISO15765的整车诊断程序经过测试代码运行正常,可以满足EOL的基本功能,可以为整车诊断测试提供建议。

关键词:CAN总线 ISO15765 诊断程序

随着汽车行业的日益发达,车辆上的电子设备也愈来愈多,人们对车辆的舒适、安全的需求愈来愈高。为了确保交付到用户手中的汽车安全质量达标,EOL诊断测试必不可少。本文基于ISO15765协议设计了一套EOL诊断程序。ISO15765以ISO14229—1所定义的服务为基准,规范了基于CAN总线的诊断业务(UDS on CAN),包含了网络管理、网络定时、应用层定时等详细内容,使该协议的适用范围和操作性更强[2]。通过采用CAN总线通道对汽车控制器网络进行故障诊断,可以为故障诊断技术在车辆的电控系统中产生广泛应用提供了有利条件。ISO15765协议顺应着现代汽车网络总线技术的发展趋势,并逐渐被更多的车企所采用。

1 总体设计方案

通过上文的分析,此次设计的整车诊断程序主要可以实现读取数据功能和设置命令功能。为了实现这两部分功能,首先需要对诊断的结构进行设计,然后对网络协议方面进行设计。

如图1所示,本文选用的是客户端(诊断设备)与服务器(ECU)在同一个网络,客户端与服务器直接相连的诊断结构[3]。当诊断设备与ECU在同一个车载网络中时,诊断设备与ECU直接相连,系统功能设计及车载终端诊断软件各功能模块之间的关系与参数传递如图所示。本文主要介绍诊断功能模块软件方面的设计。

EOL软件主要包括读取数据和设置终端参数两方面功能。由于诊断协议的实施涉及诊断设备与被诊断网络ECU之间的诊断通信,因此,诊断协议的设计涵盖了诊断设备软件的设计和被诊断ECU的设计。在系统功能设计中,诊断设备的诊断协议实现即为车载终端诊断软件协议的实现。

如图2所示,将ISO15765协议映射成OSI架构,ISO15765规定的服务要划分为三个部分:ISO15765—3定义的诊断服务对应着应用层,ISO15765—2定义的网络层服务对应着网络层,以及ISO11898—1定义的CAN通信服务对应着数据链路层间的数据传输。应用层业务必须符合ISO14229—1和ISO15031—5等国际诊断协议,并且ISO15765—3协议也要和国家标准以及为汽车厂商所定制的规范相一致。网络层能够独立于物理层实现,而且只用于通用车载诊断(OBD)的物理层,对于其他应用领域,如ISO15765协议能够使用到所有CAN物理层。

在设计诊断软件诊断协议时,考虑了诊断协议中否定响应的可能情况,在与被诊断ECU进行诊断通信发生否定响应状况时,上位机会给以否定响应种类和原因的提示。此处以安全访问服务的诊断协议实现执行流程为例,见图3所示。

ECU进行非默认模式会话请求,然后,进行安全等级选择并请求种子,根据接收到的种子及安全访问算法发送密钥,收到ECU正定响应后则ECU被解锁。

诊断协议的核心实施是在诊断装置与被诊断网络ECU之间进行诊断信息的交流。因此,诊断协议的设计包括对诊断装置程序和被诊断ECU的诊断协议进行开发。同时,在系统功能设计中,诊断设备的诊断协议实现即是诊断应用协议的执行。

2 诊断功能模块设计与实现

诊断功能模块主要包括读取数据功能和设置终端参数两项功能模块。程序中CAN.c和CAN.h为ISO15765协议部分。Basic_logic为时钟函数。EOL诊断相关的代码在eol.c和eol.h中,所有代码在main中执行。Usart_debug代码部分的代码主要功能为使用usart3作为调试输出串口并进行串口通信。(图4)

本文的诊断结构设计选用的是诊断设备与被诊断ECU在同一个网络,无需直接连接网关客户端与服务器。诊断上位机与被诊断ECU连接到同一网络,形成了车载网络诊断系统。(图5)

汽车下线检测时,EOL工具首先会对车载终端进行在线测试,通过在线测试来了解车载终端是不是已经在线。本文所用的终端是北斗终端,此处为双通道通讯,通道1为CAN1,或称为PCAN,波特率为250kbps,通道2为CAN2,或称为DCAN,波特率为500kbps。此程序中,报文间的间隔不超过50ms。应答超时为200ms,也就是说EOL发送命令后,终端必须在200ms内反馈。在确定车载终端在线后,即开始进行故障检测,分别检测GPS/北斗定位模块,GPS/北斗定位天线,通讯模块等是否能正常工作。

当更换终端时,ECU可能是绑定状态,新终端未绑定。此时需要新终端发送不控制命令,判断ECU是否正常反馈,反馈正常ECU绑定,终端自动进入绑定模式。如果反馈错误,则不再绑定。该程序的流程图如图6所示。

当EOL发送命令后,会读取设备的绑定状态。若为绑定状态,则反馈给EOL失败01;若为未绑定状态,则会直接发心跳到ECU,若ECU心跳反馈失败,则反馈给EOL失败02,若ECU心跳反馈成功,则设备进入绑定状态,开启正常的循环心跳,反馈给EOL成功00。此处同样报文间的间隔不超过50ms。应答超时为200ms,也就是说EOL发送命令后,终端必须在200ms内反馈。通用错误反馈为02 7F XX 00 00 00 00 00,XX为错误原因。

在诊断中典型故障有发动机超速。发动机超速是指发动机的速度达到了所允许的速度的最大值以外。因此在设置终端参数的时候可以设置发动机超速门限来保护发动机。

设置发动机转速超速门限命令ID为2E11,Byte类型字节(高字节在前,低字节在后)。转速超速门限最高可以配置到5000,高于5000 则返回错误应答。转速超速门限不可为零,如果为0,则返回错误应答。

如果ACC接通后,可以读取P文件号,则按照P文件号来重新配置转速超速门限,并保存,如果不能提取P文件号,则按照掉电保存的参数来判断转速超速。如果提取的转速超过5500转,则判断为异常转速,不触发转速超速报警。如果掉电保存的转速超速门限超过5000,则将转速超速门限赋值为2600。

3 EOL功能测试结果

进行EOL功能测试时,默认终端在线、ECU反馈心跳正常,并设置了各状态的默认值。EOL发送请求数据的命令,终端进行回复,其中对于多帧数据还需要等待EOL发送流控帧再进行回复。数据信息统一存储在结构体vehicle_data中。若接收的数据与正确反馈的数据一致,则代码测试正常,可以满足EOL基本功能。

读取GPRS工作状态测试结果如图7所示,以读取GPRS工作状态为例,PC软件端发送请求代码02 01 04 00 00 00 00,请求代码基于ISO15765协议发送到被诊断网络后,被诊断的ECU回复反馈代码03 01 04 01 00 00 00 00。之后车载终端解析报文,在显示屏中显示GPRS工作正常。

但由于在ISO15765协议定义中,报文最大字节数为8个字节,但实际情况中可能8个字节无法显示全部数据,这时就需要在ECU回复首帧后,再发送一个流控制帧,随后ECU会将剩下的报文发送过来。此处以读取设备的版本号为例,PC软件端发送请求代码02 01 07 00 00 00 00,请求代码基于ISO15765协议发送到被诊断网络后,被诊断的ECU反馈首帧代码10 11 01 07 41 42 43 44,随后我们需要发送流控制帧30 00 32 00 00 00 00 00。之后ECU便会将剩余的报文都发送到车载终端,在车载终端解析报文后,在显示屏中显示设备的版本号。

特定工具对某一数据发送设置信息,终端成功接收信息后反馈,并将数据存储在结构体函数termin_para中。测试过程与读取数据功能测试过程类似,若接收的数据与前文中正确反馈的数据一致,则代码测试正常,可以满足EOL基本功能。

同步时间测试结果如图9所示,以同步时间为例发送命令07 2E 0B 18 01 09 10 07后。当PC软件端将代码请求发送到卫星模块ECU后,ECU便会通过卫星将时间反馈给车载终端。车载终端便可更新时间。若卫星无授时功能,则会将PC软件端的时间同步到车载终端。

4 结论

本次文开发了一套基于ISO15765协议的EOL整车线下诊断程序。利用目前大部分车辆的CAN总线,使用现成的汽车CAN总线做检测,采用客户端与服务器直接相连的诊断结构,对诊断功能模块进行设计,既利于减少车辆的成本,又可以提高汽车CAN总线的负载。最后对程序进行了测试,结果表明:本文提出的基于ISO15765的整车诊断程序经过测试代码运行正常,可以满足EOL的基本功能。该系统性能稳定,可靠性高,性能稳定,具有良好的适用性,在今后的市场中有着广阔的发展空间。

课题名称:车用永磁同步电机耦合故障机理及智能诊断方法研究(课题编号:Y2022002)。

参考文献:

[1]王玮,杨法松.CAN诊断协议在生产线EOL系统中的应用[J].汽车实用技术,2016,8(60):187-189.

[2]张慧忠.基于整车控制器的纯电动汽车故障诊断系统开发[D].湖南大学,2016.

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

[4]周红英,陶龙龙.基于ISO15765CAN总线诊断测试方法研究[J].汽车实用技术,2016,(10):140-142.DOI:10.16638/j.cnki.1671-7988.2016.10.045.

[5]李亚运.电动汽车VCU诊断系统的研究与设计[D].天津:河北工业大学,2017.

[6]宁天枫.北斗/GPS双模定位的轻型电动物流车远程监控终端研制[D].北京:中国科学技术大学,2016.

[7]裴军伟,韩可强,丁健,等.基于EOL的下线诊断写配置系统开发[J].设计研究,2019,01(12):30-32.

[8]李亚运,孙耀杰.基于ISO15765的电动汽车诊断系统设计[J].计算机测量与控制,2017,25(1):24-31.

[9]鲍李俊,朱志峰,姚勇,等.基于CAN协议的汽车ECU刷写的诊断程序设计[J].电声技术,2020,44(1):93-96.

[10]Sun Y, Shen J,Yang Z. A Security Reinforcement Technology of Telematics Box Based on Secure Element[C].ICA3PP, GUANG ZHOU, 2018.ICA3APP, GUANG ZHOU:Springer Nature Switzerland AG,2018:101-116.

[11]Matej K, Patrik B. Realization of communication via the CAN bus [C].13th International Scientific Conference, Slovak,2019. Elsevier B.V. Slovak:ScienceDirect,2019:332-337.