我必须实现一个通过I 2 C 运行的通信协议,并用于两个分布式微控制器的board2board通信。为了确保数据完整性,我想在通信协议中添加一个校验和,并认为像CRC-8或CRC-16这样的东西应该适合,但遗憾的是我没有粘合剂,我应该使用哪个标准来确定最佳算法并且在下一步,最佳设置(如CRC的情况下的多项式的值)。
我的协议非常简单,只定义了一个32位读取和一个32位写入命令:
我在论坛帖子上看到,CRC长度取决于应该验证的数据大小,因此CRC-8可以充分验证CRC-16的2 8%8(= 32位)和2 16%8(= 8KiB)数据。如果这是真的,CRC-8应该足够了,但我不知道这个陈述是否正确......
有人可以帮助我,我如何确定我的协议的最佳校验和算法?
发布于 2019-05-23 10:09:15
根据该表,最佳CRC多项式最佳拟合CRC取决于数据大小和汉明距离。汉明距离越远,CRC处理的数据就越少。如果HD包含在范围内,您将必须预测(尽可能多)。
但是,我不明白你的陈述:x power y mod z = x ^ y - (x ^ y / z * z)= 2 ^ 8 - (2 ^ 8/8 * 8)= 0
https://stackoverflow.com/questions/-100009049
复制相似问题