格式错误CAN通信中的一种错误类型,它发生在数据帧或远程帧的结构不符合CAN协议标准时。通过前面的文章 《CAN通信之错误帧(一)》,相信大家对格式错误已经有了一定的概念,下面我们就对格式错误进行实例解析,相信通过以下内容,格式错误对大家便不再是模糊概念了。若有讲解错误的地方也欢迎大家指出,共同进步。
目录
1、格式错误之实例
假设有一个CAN网络,包含连个节点:节点A和节点B。节点A正在向节点B发送一个数据帧。
1.1、数据帧结构
数据帧由多个不同字段组成,包括帧起始、仲裁场、控制场、数据场、CRC场、ACK场和帧结束。
每个字段都有特定的格式和长度要求,例如,控制场应该包含特定数量的位。
1.2、格式错误的发生
节点A开始发送数据帧,但在构建控制场时发生了错误,导致控制场的长度不是标准规定的6位。
节点B在接收数据帧时,检测到控制场的长度不符合CAN协议的规定,
1.3、错误检测与响应
节点B识别出控制场的格式错误,会立即停止接收当前帧。
节点B随后会发送一个错误标志(6个连续的显性位)来通知网络中的其他节点出现了错误。
错误标志后,节点B发送一个错误界定符(8个连续的隐性位)来标志错误帧的结束。
1.3、发生错误后的处理
节点A和节点B的错误计数器会增加,以记录发生的错误。
如果错误计数器超过了预设的阈值,节点可能会进入错误被动状态或关闭总线。
2、导致错误的原因
2.1、发送节点的软件错误
在构建数据帧时,软件未能正确设置字段的长度或内容
2.2、硬件故障
发送节点的硬件可能在处理数据帧时出现故障,导致帧格式不正确
2.3、协议配置错误
节点可能被错误地配置位使用非标准的帧格式
3、总结
格式错误可能导致通信的中断(错误标志的发送会中断当前的数据传输)、网络性能下降(频繁的格式错误会导致网络性能下降,因为节点需要重新发送数据帧)以及节点状态变化(错误计数器的增加可能会导致节点进入错误被动状态或关闭总线,进一步影响网络通信)。CAN通信通过立即检测并响应格式错误,才能够保持较高的通信可靠性和数据完整性。