![839fabc61d9dd251e3ce4cf2591689d1.png](https://i-blog.csdnimg.cn/blog_migrate/8dc8024167c918da717be1616ce05759.jpeg)
本文分享CAN / CAN FD在TP层传输规则详解,因为是从个人角度解读协议,有不精准之处,希望指出。
CAN/CAN FD总线TP层映射到OSI计算机七层模型是在第三层和第四层:
![bae523413237cd39cf9a8e4877355c71.png](https://i-blog.csdnimg.cn/blog_migrate/a6f70961c2a2a2d2982b22c316ea4df9.jpeg)
对应CAN Frame数据域可携带的数据帧长度如下定义:
![f3dbb791711d474bfc0b075e082d6652.png](https://i-blog.csdnimg.cn/blog_migrate/6c49dcd064dee6c14e81798f9801e3ba.jpeg)
其中CAN ID标识这具体ECU的识别号,长度有11位和29位之分,具体看OEM在诊断需求规范中定义。数据库携带数据长度看是Classical CAN还是CAN FD。前者数据域长度是8 bytes。CAN FD数据域长度看OEM需求,范围在8 bytes---64 bytes,当然长度也不是任意选取,可参看如下表格: