首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >校验和自制通信协议

校验和自制通信协议
EN

Stack Overflow用户
提问于 2019-05-23 00:59:13
回答 1查看 0关注 0票数 0

我必须实现一个通过I 2 C 运行的通信协议,并用于两个分布式微控制器的board2board通信。为了确保数据完整性,我想在通信协议中添加一个校验和,并认为像CRC-8或CRC-16这样的东西应该适合,但遗憾的是我没有粘合剂,我应该使用哪个标准来确定最佳算法并且在下一步,最佳设置(如CRC的情况下的多项式的值)。

我的协议非常简单,只定义了一个32位读取和一个32位写入命令:

  • I 2 C Master Read命令:
    • 请求(I 2 C WR):2字节内存索引+校验和
    • 响应(I 2 C RD):4字节数据+校验和

  • I 2 C主写命令:
    • 请求(I 2 C WR):2字节内存索引+ 4字节数据+校验和

我在论坛帖子上看到,CRC长度取决于应该验证的数据大小,因此CRC-8可以充分验证CRC-16的2 8%8(= 32位)和2 16%8(= 8KiB)数据。如果这是真的,CRC-8应该足够了,但我不知道这个陈述是否正确......

有人可以帮助我,我如何确定我的协议的最佳校验和算法?

EN

回答 1

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档