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的描述错误问题,信息对比表格对比不恰当,进行剔除。
本文来自博客园,作者:{张一默},转载请注明原文链接:https://www.cnblogs.com/YiMo9929/p/16532382.html