admin管理员组

文章数量:1567750

2024年6月18日发(作者:)

基于CANFD网络的UDS诊断开发测试

摘要:汽车作为机电一体化设备,正朝着智能化、网络化的方向快速发展,

汽车网络的发展也越来越快。其中,CAN总线是应用最广泛的汽车总线,近几十

年来市场份额不断增加。但是由于CAN协议的特性,最多只能达到500kbit/s,

限制了网络通信速度的进一步提高。这种情况催生了CANFD(数据速率灵活的CAN)

的出现,它是一种基于CAN总线物理设备的可变速率CAN通信方式。介绍了基于

CANFD网络的通用UDS诊断协议的实现,相关测试功能的开发,以及在测试台上

对通信诊断功能的验证。

关键词:CANFD;UDS;软件开发;台架测试

引言

违约协定的发展始于1980年代。对于前者,通常使用k1电缆(ISO9141和

ISO14230)对私家车进行故障诊断。为了在诊断系统中使用CAN总线来提高诊断

期间的通信率,欧洲汽车制造商于2000年制定了一项使用CAN总线作为物理层

的节点通信诊断标准。

一、CANFD总线特性

CANFD是博什2012年推出的基于CAN总线旧物理层的高速通信技术。CANFD

功能允许以可变速度传输某些数据,而不会对物理设备的硬件要求产生重大影响。

与其他总线相比,CAN总线在CAN总线网络上的吞吐量高达5 mbit,因此可以在

现有can总线物理设备上运行,从而降低了硬件升级成本,并使其适应当前繁忙

的can总线物理设备方案,这是该过程的一个重要竞争对手。

二、故障诊断方法设计

开放系统互连(OSI)协议基于开放系统互连(OSI)模型,是一种分层结构,包

括物理层、数据链路层、网络层、会议层和应用层。诊断通信、数据传输存储、

错误代码记录、数据管理和下载功能可在节点协议诊断级别之间使用。在应用程

序层使用节点诊断协议的服务。例如:Session Control(0X10)、Read Data By

Identifier(0X22)、ECU Reset(0X11)、Read DTC Information(0X19)、Write

Data By Identifier(0X2E)和Communication Control(0X28),用于在复合电源

系统的不同状态下扩展错误代码,同时将相应的错误代码与相应的节点诊断协议

相匹配。UDS协议在各级有明确的分工,网络层可以快速实现帧数据传输,特别

是灵活地处理多数据包报文数据重构,在多帧报文数据传输过程中,应用层不干

扰数据的解压缩和重组,保持正确诊断协议具有良好的可移植性,可以复盖整个

故障诊断测试功能,可以通过会话控制模式对ECU系统进行正向反向测试,可以

使用相应的指令访问系统控制单元,如果得到正向响应,可以通过分析响应消息

来判断当前系统的故障信息如果您得到相反的答案,则必须分析命令是否正确或

诊断环境是否符合要求。建立复杂电力系统故障代码表后,可通过各节点下的语

句读取相应的故障信息。满足诊断条件后,可以读取每个DTC的状态信息。可以

从DTC以外的字节信息中获取更具体的故障信息,例如,在电力电池平衡故障的

情况下,DTC解决字节可以准确定位压力差过大的单个主体的位置信息,从而提

高故障排除的效率和准确性。

三、基于CAN的UDS诊断协议

《can议定书》是bosch 1986年提出的。can的高性能和可靠性现已得到市

场的认可,并广泛用于车辆、船舶、医疗设备和工业设备等行业。对于商用车辆,

can通信是车辆网络中最重要的部分。can控制器使用两条线路之间的电位差来

确定总线的电位差,并根据电位差将信息传递给所有总线控制器。随着电气控制

技术的不断发展,商用车辆使用的控制器数量不断增加,通信技术能够很好地解

决各控制器之间的信息传输问题。因此,许多车辆制造商已经在使用基于can的

诊断协议。后端工作人员通过“test(测试)”访问can总线上的控制器,以获取

相应的信息。uds协议是一种问答协议,用于测试将所需内容发送到控制器的方

式,控制器对当前测试状态作出响应。对于您的参数,有两种寻址方法:物理寻

址和功能寻址。如果需要访问总线上标识的任何控制器,则可以配置消息id。将

所需的控制器地址设置为设备地址。当test使用此id进行查询时,只有匹配的

控制器会响应,这称为物理地址。如果需要同时访问can网络中的多个控制器,

并且必须将设备地址配置为广播地址,则总线上的所有控制器都将通过物理地址

进行响应。此时,test可以选择继续使用功能寻址来发送信息,或根据收到的响

应id通过物理地址进行精确访问。

四、诊断协议栈的开发

模块化设计在开发协议堆栈时,必须确保网络层按照协议标准运行才能使协

议堆栈有效。一个有效的网络层主要包括:a .正常工作的上层和下层之间的服务

原语言;b .正确匹配上下级数据;正确处理异常情况;满足同步参数的要求:

c .单帧和多帧传输正常,格式和数据有效。协议堆栈主要由4个主要模块组成,

a .网络层接口模块;b .数据接收和重组模块;c .例外处理单元;d .时间管理

模块。数据处理模块(分段和重组) :传送较低级别的数据时,网络层负责分段和

重新排列发送和接受的数据,在此过程中,需要使用数据存储缓冲区临时存储要

处理的数据。缓冲区大约有两种配置方案,第一种是两个缓冲区(接收和发送),

分别用于处理接收(用于重组)和发送(用于分段)的数据。第二种方法是设置一个

在接收和发送时同时使用的缓冲区。

五、诊断协议栈网络层接口模块的控制逻辑

必须首先通过KL15打开系统电源,协议堆栈将自动确定系统是否已启动。

否则,在成功发送或接收诊断数据之前,必须先配置相关参数。与ISO14230不

同,发送和接收有两个处理函数,并且这两个函数的控制逻辑有两个执行状态:

等待状态和状态根据ISO15765-2协议,网络层提供的四种服务接口类型为

N_t(应用层请求网络层传输数据)、N_m(网络层通

知应用层请求的服务已运行/失败)。 n _ usdata _ ff .指示(网络层会通知应

用层开始接受分段信息)和n _ USDA .指示(网络层会通知应用层接收应用层的单

帧(分段)信息已完成/失败)。

六、台架测试验证

测试方案

检测系统在为某类车辆建立的测试平台上进行验证。网络拓扑如图9所示。

其中一些ECU模块支持CANFD通信诊断。测试和检测设备的顶部计算机通过VCI

卡连接到板载DLC端口。DLC端口定义物理介质(如支持CAN总线的消息发送端),

用作整个车辆系统的外部通信介质,并且所有物理信号都收集在车辆的中心网关

上。诊断消息通过中心网关模块发送到相应的CANFD模块。1)诊断程序使用

SID0x22命令读取cantid : 94 da 58f 1,其中DID是0x 0 CD。标识具有0x03

的单个CANFD映像,并封装具有0x55填充的3字节诊断语句。(2)模块反馈时,

由于数据量大,首先给出第一帧反馈,识别为0x10,识别为0xED传输的数据总

长度为237。对SID 0x22+0x40=0x62、echo 0x xf0 CD开头的数据和某些DID数

据信息给予肯定响应。3)诊断系统发送0x300000流量控制帧,FS为0x00接受连

续帧,STmin0x00标识为缺省时间间隔。4)连续图像的第1帧由0x21标识,后跟

DID数据的内容。5)连续图像的第2帧由0x22标识,后跟DID数据的内容。6)连

续图像的第3帧由0x23标识,后跟DID数据的内容。虽然在连续的图3中传输

237字节的所有数据不需要64字节的数据量,但由于CANFD数据字段的大小是固

定的且可选的,因此64字节数据字段的多个部分填充0x00以形成CANFD数据的

完整图像。

结束语

总之,本文开发了一种基于汽车电子产品测试特性的CAN总线通信测试/诊

断工具。此测试工具不依赖计算机,成本低、易于使用且可高度扩展。同时,设

备具有自定义特性,可以根据检测到的设备的测试/诊断需求文档自定义特定于

测试设备的测试/诊断工具,从而实现检测到的设备的测试/诊断需求文档中定义

的所有节点协议诊断功能。

参考文献

[1]王璐杰,张凤登,刘鲁平,等.CANFD总线报文响应时间研究[J].软件导

刊,2020,19(1):256-261.

[2]黄丽芳.UDS诊断服务在车载ECU中的应用分析[J].汽车电器,2012(6):

60-63.

[3]李泽亚,刘泽响,王瑞晓.CANFD总线自动发送延迟补偿方法研究[J].微

电子学与计算机,2020,37(11):61-65.

[4]罗峰,胡强,刘宇.基于CAN-FD总线的车载网络安全通信[J].同济大学

学报(自然科学版),2019,47(3):386-391.

[5]王勇,侯冬冬,王知学,等.基于CAN总线的嵌入式汽车电子测试系统

[J].电子设计工程,2011,19(01):36-38.

本文标签: 诊断总线协议使用数据