系列文章目录
文章目录
前言
随着智能汽车行业的蓬勃发展,现在很多车厂对于车辆的安全机制越来越重视,很多厂商都成立了自己的安全团队,而Checksum和Counter是其中的一种安全机制。
测试过CAN或者ETH网络的同学,在CAN Msg或者ETH PDU中经常会看到Checksum这个参数。提到Checksum,就必须要说明一下CRC校验
在整车CAN网络通信中,信号会出现衰减,同时伴随着整车环境的电磁信号干扰,无法保证信号从发送端到接收端的一致性。为此,在CAN网络协议中,通过15位的CRC校验码对报文帧的数据进行校验计算。
Checksum与CRC效验的区别
CRC校验:循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
通过CRC概念可以得知,CRC存放在CRC场,而Checksum存放在数据场之中,一般在数据场的第一个字节或者最后一个字节。
CRC校验是为了保证数据从一个CAN收发器发送到另外一个收发器的信号完整性,而数据场中Checksum校验算法是为了校验数据被正确的打包与解包,并且Checksum算法是可以自行制定的,计算规则的灵活度高。
与CRC场固定的校验算法不同,Checksum校验算法由ECU控制器开发供应商自行制定,参考循环冗余校验的计算方式。
Checksu