填充错误是CAN通信中的一种错误类型,它发生在数据帧或远程帧的位流中。通过前面的文章 《CAN通信之错误帧(一)》,相信大家对填充错误已经有了一定的概念,下面我们就对填充错误进行实例解析,相信通过以下内容,填充错误对大家便不再是模糊概念了。若有讲解错误的地方也欢迎大家指出,共同进步。
目录
1、填充错误之实例
假设有一个CAN网络,包含两个节点:节点A和节点B。节点A正在向节点B发送一个数据帧。
1.1、数据帧结构及填充概念
数据帧由帧起始、仲裁场、控制场、数据场、CRC场、ACK场和帧结束组成。为了满足CAN协议的位填充规则,数据场中的位序列在发送时必须至少有一个显性位(逻辑“0”)来分隔连续的5个隐性位(逻辑“1”)。这是为了避免在接收端误解帧的结束。
1.2、填充错误的发生
节点A开始发送数据帧,数据场包含一系列位。在数据场中,节点A发送了一串连续的6个隐性位,这就违反位填充规则。
1.3、错误检测与响应
节点B在接收数据帧时,检测到连续的6个隐性位,就会意识到这违反了填充规则。当节点B识别出是一个填充错误时,会立即停止接收当前帧。节点B随后会发送一个错误标志(6个连续显性位)来通知网络中的其他节点出现了错误。错误标志发送之后,节点B发送一个错误界定符(8个连续的隐性位)来标志错误帧的结束。
1.4、发生错误后的处理
节点A和节点B中的错误计数器会增加,以记录发生的错误。如果错误计数器超过了预定的阈值,节点可能会进入错误被动状态或关闭总线。
2、导致错误的原因
2.1、硬件故障
发送节点的硬件可能在传输过程中出现故障,导致位填充规则被违反。
2.2、外部干扰
虽然外部干扰通常会导致位错误,但在某些情况下,它也可能导致位填充规则被违反。
2.3、网络负载过重
当网络上的通信量过大,超出了网络的处理能力时,可能会导致数据传输错误,包括填充错误。
2.4、协议错误
如果网络上的设备没有正确地遵守CAN协议,例如错误地实现了位填充算法,也可能导致填充错误。
2.5、软件配置错误
不当的软件配置,如错误的过滤器设置、错误的帧格式或位定时设置,都可能导致填充错误。
2.6、物理层设计问题
如果CAN网络的物理布局设计不当,例如总线太长或网络分支太多,也可能引起通信问题。
3、总结
填充错误是CAN协议中较为常见的错误类型,因为大多数CAN控制器都会自动处理位填充。然而,当这种错误发生时,CAN网络的错误检测机制能快速识别并处理,确保网络的稳定性和数据完整性。
1万+

被折叠的 条评论
为什么被折叠?



