CAN (Controller Area Network) 网络除了数据帧、远程帧和错误帧外,还有一种称为“过载帧”(Overload Frame)的特殊帧类型。超载帧用于告知网络上的其他节点,某个节点因为内部处理延迟而未能处理即将到来的数据。这样的情况可能发生在节点接收消息缓冲区满或者CPU过载时。
超载帧的帧结构与错误帧类似,并且没有数据字段。它由以下几个部分组成:
-
超载标志(Overload Flag):
- 由六个相同的位组成,都是主动电平(通常为低电平,即CAN协议中的逻辑0)。
-
超载分隔符(Overload Delimiter):
- 跟在超载标志后面,由八个隐性电平的位组成(通常为高电平,即CAN协议中的逻辑1)。
-
超载标志之间的间隔:
- 在超载帧之间必须至少有一个插入时间的间隔,该间隔为隐性位(逻辑1)。超载帧不可连续发送,必须通过这种方式间隔开来。
-
帧结束(Interframe Space):
- 每个CAN帧(包括超载帧)后都会有一个帧结束间隔,由三个位时间的隐性位组成,在这个时间段内,不允许任何节点开始传输新的帧。
值得注意的是,超载帧并不是数据通信的正常部分,而是一种用于控制节点处理能力的机制。如果在CAN网络中频繁观察到超载帧,表示网络存在问题,比如节点处理能力不足,应当进行诊断和优化。