汽车UDS诊断协议学习(一)

一:基于CAN协议的UDS协议网络分层模型。

和标准OSI七层网络模型不同,CAN网络分层模型大体为四层

基于CAN通讯协议的UDS诊断协议在此基础上引入了更上层的模型

二:UDS诊断协议实录

三:UDS数据格式

N_PDU(network protocol data unit),即网络层协议数据单元,相关协议规范参考 ISO 15765-2

PDU主要为三大部:地址、协议信息、数据区。

1:UDS节点中的地址

上图是一段实际应用中的报文,7C1、741分别是ECU和TEST节点的地址节点地址,需要注意的是,地址不同于CAN协议中的ID。

UDS诊断协议中,节点地址有物理地址和网络地址,,当诊断仪使用功能寻址,在总线上进行广播式报文发送时,用的就是网络地址,网络地址不是特定唯一的,网络寻找是一对多的通讯。当诊断仪使用物理寻址时,用的是物理地址,物理地址是唯一的,物理寻址也是点对点的通讯方式。

所以,UDS诊断中,ECU一般有三个地址,其中两个是接受诊断仪的地址,一个物理地址,一个功能地址,剩下的一个就是ECU自己使用向外发送报文的物理地址。

2:UDS协议中的PCI协议

UDS报文中,报文一般分为两种类型,单帧报文和多帧报文。单帧多帧这些信息即在PCI信息中,一般在报文帧的第一个字节中。

单帧:

单帧消息只包含一个N PCI,即单帧。它们适用于较小的诊断消息,可以在单个CAN帧中传输完整的诊断数据。

如报文实录中的第一个字节0X02,对应PCI信息为单帧,且该帧数据长度为2,即后面的0X27、0X11。

多帧:

多帧消息分为三种不同的N _PCI类型,包括首帧、流控制帧和连续帧。这些消息用于传输较大的诊断数据,需要分成多个CAN帧来传输。

首帧:

首帧是多帧传输发送的第一帧报文。

 0X 10 0B,对应PCI协议解析就是,该帧是首帧,且数据长度为176(0XB0)

连续帧:

连续帧是多帧传输中最多发送的报文。

0X21对应PCI信息中的,该帧为连续帧且是第二帧连续帧(由于前面发完首帧,首帧不包含SN信息,所以首帧后面第一帧的连续帧SN=1,如果数据够长SN循环一遍后会从0重新开始计数)

流控帧:

流控帧是多帧传输过程中界定多帧传输时间格式等信息的报文,其中一般不含真正的数据信息。

对于流控帧(FC),它有三个区域:FS,BS,STmin。FS表示的是流控状态参数。例如0表示的是继续发送,1表示的是等待,2表示溢出。BS表示的是块的大小,即发送端一次性能只够发送多少个连续帧。要注意的是,BS表示的是在发送端没有接受到流控信号时,能够发生的的数目。而当BS为0则表示,在数据传输的时,接收端不再发送流控帧了。发送端应当连续不断的发送数据。STmin表示的是两个连续帧的时间间隔。

实录报文中的0X30 00 00,表示发送端可以一直连续发送连续帧。STmin=0表示对于时间间隔没有要求。

后续继续更新各详细服务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值