我正在考虑设计一个低级无线电通信协议,并试图决定使用哪种校验和/crc。硬件提供CRC-8;除了数据有效载荷之外,每个包还具有6字节的开销。设计目标之一是最小化传输开销。对于某些类型的数据,CRC-8应该足够了,因为对于其他类型的数据,需要补充CRC-8以避免接受错误数据。
如果我使用单字节补充,那么使用与硬件CRC-8不同的多项式的CRC8,与算术校验和相比,与其他校验和相比有什么利弊?如果是两个字节的补充呢?CRC-16是一个好的选择吗,或者考虑到CRC-8的存在,其他的东西会更好吗?
发布于 2011-11-22 12:20:44
2004年,芝加哥大学的菲利普·库普曼发表了一篇关于选择最合适的CRC的论文,http://www.ece.cmu.edu/~koopman/crc/index.html。
本文描述了一种适用于嵌入式网络应用的多项式选择过程,并提出了一组具有良好通用性的多项式。除了先前公布的13个多项式之外,一组35个新的多项式为3到16位的CRC提供了良好的性能,数据字长可达2048位。
这篇论文应该会帮助你分析8位CRC实际上有多有效,以及从另外8位中你将获得多大的保护。不久前,它帮助我在FPGA之间的自定义协议中决定了4位CRC和4位包头。
https://stackoverflow.com/questions/7974082
复制相似问题