CAN错帧漏检率达不到功能安全的要求v2 2019-9-2
杨福宇 yfy812@163.com
错帧漏检是指帧内发生了错误但是没有被协议的所有检错机制查出来。这样的帧就被接收节点收下,就会引起应用使用错误数据,导致功能性错误或失效。
CAN的主要查错机制是CRC检验,在CAN 中CRC校验失效的2个原因是:
○1.由于填充位规则的非对称执行,收发帧的有效数据位产生了错位,在进行CRC计算时相当于引入了大量的错,错的数目超过了CAN的CRC的检验能力(HD=6),造成CAN的错帧漏检率很高。
○2.CAN的CRC多项式支持的数据字(word code)的长度不够,只有112位,不能把可能的填充位都包括进去。例如CAN扩展帧的8字节数据的data word 最少长度为39+64=103,最多可以有103/4=25个填充位,data word多达128位。所以不得不把填充位剔除在外,无法加以改进。
图2是发生填充位机制不对称执行的情况
图2A中第3位传送中出了错,发送节点在第5位见到5个连续相同位时添加了填充位,但是接收节点在第5位处没有见到5个连续相同位,所以它认为这里不应有填充位,它把发送节点添加的填充位作为信息位收下。图2B中也是第3位发生了传送错,发送节点没有添加填充位,而接收节点由于第3位的错而见到5个连续相同位,所以它把发送的第6位作为填充位删去了。
于是,在有填充位不对