**
在此整理关于对15765-2 (网络层)协议的理解
**
参考博客:https://blog.csdn.net/shnsxz/article/details/107642294
1.15765-2 协议概述
ISO15765-2 标准主要内容是Transport protocol and network layer services,即传输层和网络层的服务,根据ISO7层模型,此层的下一层级是数据链路层和物理层,上一个层级是会话层和应用层。其存在的目的是为了解决ISO 11898协议中定义的经典CAN数据链路层与ISO14229协议中定义的应用层,彼此之间数据长度不统一的问题。经典CAN数据链路层最大能够支持8个字节,但ISO 14229并不仅仅是为了CAN总线设计的,最大容量达到4095个字节。比如VIN码是17个字节,CAN总线必然需要传递3帧才能传完VIN码,那么如何科学、快捷、安全地将多个字节通过经典CAN来进行传输,就成了一个需要解决的问题,ISO 15765-2 协议由此诞生。(这是别的博主的理解 我看挺好就复制粘贴下来了 博主链接在上面)
自己的理解: 简单概述 就是为了底层协议(ISO 11898数据链路层及物理层协议) 与上层协议(ISO14229UDS汽车诊断标准协议)的差异性 重新定制的一套协议 。 它在ISO 7 层模型上 定义为网络层协议。
2.协议构成
基于CAN的UDS诊断服务,通过network protocol data unit,即N_PDU来实现区别的数据传输
协议格式(N_PDU):N_AI + N_PCI + N_DATA
N_AI,网络地址信息,顾名思义就是代表了某个网络实体,使用物理寻址的方式区别,即CAN ID;
N_PCI,网络协议控制信息,规定了N_PDU携带的数据信息的组织形式;
N_DATA,网络数据,即N_PDU所携带的数据内容;
3.N_PDU类型
帧类型 :SF (单帧) ,FF(首帧),CF(连续帧),FC(流控帧)
长度不超过7个字节的为SF(单帧)
长度超过7个字节的为多帧 它通过FF,CF,FC来控制帧的传输。
** 对于这四种类型的数据单元是通过协议控制信息(N_PCI,Protocol Control Information)进行区分的。每一个N_PDU都只有一个N_PCI。也就是说,对于CAN诊断来说,我们完全可以通过识别每条CAN帧数据域的首个字节来确定它属于四种类型中的哪类。**
下面详细介绍4种帧类型:
每个诊断帧的第一个字节的高4bit用于描述该帧的类型。文章来源:https://www.toymoban.com/news/detail-412568.html
文章来源地址https://www.toymoban.com/news/detail-412568.html
-
SF(单帧)
用于长度不超过7个字节的诊断命令或响应。FF,CF,FC用于传输长度大于7个字节的诊断命令或响应。
第一个字节的高4bit为0, 即第一个字节为0x 则为SF, x则为SF的长度。 -
FF (首帧)
用于传输长度大于7个字节的诊断命令或响应。它是多帧数据的第一个帧,用于定义后续多帧的长度。
第一个字节的高4bit为1 低4位和第二个字节加在一起为后续多帧的长度。举例:Data:10 14 xx xx xx xx xx xx 代表后续多帧数据长度为0x014。 -
CF (连续帧)
第一个字节的高4bit为2, 低4位为SN号。 第一个流控帧的SN号为0x21 , 每个连续帧的SN号从0开始自增+1 累加到15后 下一个SN号置0。 -
FC(流控帧)
第一个字节的高4bit为3,低4位为FS(流状态),第二个字节为BS(块大小),第三个为STmin(连续帧协议数据单元发送的最小间隔时间)。
FS:指示发送网络实体是否继续信息的发送
BS:指示连续帧数据大小
STmin:指示一个连续帧发送完开始到请求下一个连续帧时的间隔时长。
到了这里,关于15765-2 协议解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!