更多的资料在个人博客(www.zyx330.xyz)
CAN基础:前文-CAN基础
CAN的不足:传输速率有限、报头过长、传输数据长度有限等
CANFD特点(基于CAN的改进)
- 双速率传输
仲裁场速率保持不变
数据场速率提高2Mbps - 数据场长度增加
最多支持64bite
带宽利用率提高
CANFD与CAN的区别
- CANFD不支持远程帧
- 帧结构不同。
CANFD帧结构
CAN标准帧与CANFD标准帧对比
帧起始: 相同
仲裁场: RRS替换RTR(CANFD没有远程帧因此使用RTR替代,显性位)
控制场:
IDE=0代表标准帧(11位)
FDF用于区分CAN报文和CANFD报文。FDF=0=CAN,FDF=1=CANFD
增加res=0,保留位置0。
增加BRS,速率切换指示位,BRS=1=进行速率切换,BRS=0=不进行速率切换。
增加ESI,错误状态指示位,ESI=0=处于主动错误状态的节点,ESI=1=处于被动错误状态的节点
DLC:数据长度编码
数据场: 长度扩展为64byte
CRC校验场:
采用stuffCount+CRC序列
stuffCount:CRC场之前填充位的数量(长度为4、3位格雷码表示+1位奇偶检验位)
CRC序列:DLC<=10时,长度17位;DLC>10时,长度21位
CRC填充机制:
ACK场: 相同
EOF: 相同
CAN扩展帧与CANFD扩展帧对比
**帧起始:**相同
仲裁场:
SRR=1远程请求代替位,用于保证标准帧优先级高于扩展帧
IDE=1代表扩展帧(29位)
控制场:
FDF用于区分CAN报文和CANFD报文。FDF=0=CAN,FDF=1=CANFD
增加res=0,保留位置0。
增加BRS,速率切换指示位,BRS=1=进行速率切换,BRS=0=不进行速率切换。
增加ESI,错误状态指示位,ESI=0=处于主动错误状态的节点,ESI=1=处于被动错误状态的节点
DLC:数据长度编码
数据场: 长度扩展为64byte
CRC校验场: 同CANFD标准帧
ACK场: 相同
EOF: 相同