UDS诊断网络层ISO15765-2(CAN)
Posted 诊断协议那些事儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDS诊断网络层ISO15765-2(CAN)相关的知识,希望对你有一定的参考价值。
诊断协议那些事儿
本文为诊断协议那些事儿专栏文章,从一个 ECU 到另一个 ECU,或外部诊断设备和一个 ECU 之间的通信,不仅依赖前文介绍的诊断寻址方式,更需要关注数据的传输,依赖网络层、传输层协议去完成,特别是要传输的数据超过了单个CAN 帧的长度,则需要提供拆包、组包的方法。
关联文章:
UDS的OSI模型
ISO14229各Part介绍:第三部分:CAN实施的统一诊断服务(UDSonCAN)
诊断寻址方式
网络层协议数据单元-N_PDU
文章目录
术语
名称 | 英文 | 缩写 | 描述 |
---|---|---|---|
协议数据单元 | Protocol Data Unit | PDU | PDU是一组信息和数据的集合,表示了发送方和接收方对等实体之间传递的信息和数据 |
注:每一层都有自己的PDU(L_PDU、N_PDU、T_PDU、S_PDU、A_PDU)
对等实体(peer entities):在OSI模型中,通信发生在不同节点中的同一层实体之间,同一层的这种通信实体称为对等实体;
实体(entities):以软件、硬件或软硬件的任何组合实现的每层的活动部分称为实体;
一、网络层功能
网络层协议协议有如下功能:
①应用层诊断服务数据——CAN数据帧
②将数据从发送方传递给接收方
③多帧数据传输:发送/接收最多 4095 个字节的数据信息
④错误处理/时间管理:保证数据传输的可靠性
⑤报告发送/接收完成状态。
二、帧类型
基于CAN总线实现的UDS协议,诊断帧有两种不同的分类方式,按照寻址方式可以分为物理寻址、功能寻址,按照帧类型可以分为单帧、首帧、流控帧、连续帧。
下图为举例总线上各个ECU以及诊断设备的寻址ID:
对于帧的类型,通过需要发送的数据长度来确定。在正常寻址模式下,当数据长度小于等于7byte,则用单帧的形式发送,当数据长度大于7byte,数据需要分多帧才能发送完成,则需要使用到首帧、流控帧、连续帧,不同帧的机制如下图所示:
①单帧报文传输:
(扩展及混合地址情况下)最多发送6字节或(正常地址情况下)7 字节数据,按照 N_PDU 格式发送信息,称为单帧(SF)。
②多帧报文传输:
首帧是指发送的第一帧,目的是把前7byte数据发送给接收方,并告知接收方数据没有发完,然后接收方会回一帧流控帧,告知发送方是否可以接着发送,并且告知接收方一次最多能接收的数据量,以及发送方接下来发送的数据帧(连续帧)之间的时间间隔要求。
三、N_PCI结构
N_PCI:Network_Protocol Control Information-网络层协议控制信息
SF:SignalFrame
FF:FirstFrame
CF:ConsecutiveFrame
FC:FlowControl
N_PCIType值的定义
诊断消息流示例
四、流控帧参数
FS含义:发送方否可以继续传输消息
0 :FC.CTS(继续发送)。让发送方继续发送接下来的连续帧,表示接收方已经准备好了接收最大为BS数量的连续帧。
1 :FC.WAIT(等待)。发送方等待下一帧流控帧并重置自己的计时。一般用于接收方没有处理完上一次接收到的连续帧。
2 :FC.OVFLW(缓存溢出)。发送方打算发送的数据长度超过了接收方的储存能力。用于指示拆分数据的首帧中字节个数信息超过了接收者可存储的信息总量。
BS含义:在授权继续发送其余的 N_PDU 下,接收方允许发送方发送最大的 N_PDU 个数。
1~FF:表示发送方在发送BS数值的连续帧之后,需要等待接收方的流控帧。
0:表示不需要任何流控帧,直接发送全部数据。
STmin含义:表示发送方发送的两个连续帧之间的最小时间间隔。
00 ~ 7F单位为ms;F1 ~ F9表示0.1~0.9ms;
0表示按照发送方最快的速度发送。
五、连续帧参数
SN:连续帧的序列号
CF N_PDU 中参数 SN 用以说明连续帧的顺序。
注:
①第一个流控帧编号(SN)后的连续帧设置为 1;
②连续帧编号(SN)的值不受流控帧的影响;
③当连续帧编号(SN)到达值 15 时,它在下一个连续帧中重置为 0;
总结
以上就是今天要讲的内容,后续将针对实际项目开发过程中遇到的问题进一步深入展开,欢迎读者关注、点赞,并提供宝贵意见!
以上是关于UDS诊断网络层ISO15765-2(CAN)的主要内容,如果未能解决你的问题,请参考以下文章