Fork me on GitHub

CAN协议:数据帧、远程帧、拓展帧、标准帧、错误帧、帧间隔的再理解

数据帧:传输负责“安全及校验”“网络管理”“功能数据”的报文;RTR=0时为数据帧;

远程帧(遥控帧):请求其它节点发出与本遥控帧具有相同ID号的数据帧,遥控的目的仅仅是请求,为保证数据的传输因此优先级低于数据帧;RTR=1时为遥控帧;

拓展帧:解决CAN标准帧的11位标识符不够用的情况,因此扩展帧的优先级总是低于标准帧;IDE=1是扩展帧,因此数据帧(遥控帧)也分拓展和标准(不拓展)两种情况。

错误帧:反馈错误状态,vector的测试工具针对这几种帧的error code也有专门的定义,常见的ack测试中error code=0x1fa,(int)(0x1fa>>6)=7;

帧间隔:隔离数据帧(或者遥控帧)的,节点为被动错误状态时帧间隔为11位隐形,借此主动放弃总线的占有权。另注意过载帧和错误帧的前面不能插入帧间隔。

补充:为什莫can协议要设置RTR、IDE、SRR位、RSS位呢?

RTR位:RTR  ?远程帧 :数据帧,降低远程帧的优先级

IDE位:IDE  ?拓展帧 :标准帧,通过直接拓展帧ID的长度间接用SRR和IDE共同至1的方式,降低拓展帧的优先级。并且SRR在前,RRS在后的安排也可辅助这个猜想。

文章更新记录:

20230226 更新RRS与SRR和BRS的描述错误问题,信息对比表格对比不恰当,进行剔除。

posted @ 2022-07-29 15:21  张一默  阅读(4851)  评论(0编辑  收藏  举报