在SENT协议中,共使用了两种CRC校验,在Fast Channel以及Slow Channel的Short Serial Message中,使用的是4-bit CRC;在Slow Channel 的Enhance Serial Message中,使用的是6-bit CRC

图1 Fast Channel 帧格式

图2 Slow Channel的Short Serial Message

图3 Slow Channel 的Enhance Serial Message

协议及不少手册中,都给出了4-bit CRC的计算实例。,是以查找表的方式实现的。

表中内容由以一个nibble(4 bit)为并行单位,计算而得的结果,手册中说明,计算初始值为“0101”

对于6-bit CRC,查找表为

64_crc_table =

{0,25,50,43,61,36,15,22,35,58,17,8,30,7,44,53,31,6,45,52,34,59,16,9,60,37,14,23,1,24,51,42,62,39,12,21,3,26,49,40,29,4,47,54,32,57,18,11,33,56,19,10,28,5,46,55,2,27,48,41,63,38,13,20},初始值为21

那么,若要使用串行计算或使用在线的CRC校验,如何配置才能正确实现SENT中的CRC计算呢?

对于4-bit CRC,按照如下配置(已经过验证): 

生成多项式: D      初始值:3   结果异或值:0 

对于6-bit CRC ,按照如下配置:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐