【发布时间】:2011-03-07 11:57:41
【问题描述】:
如果我有一定数量的字节要串行传输,我如何确定使用哪个 CRC(CRC8、CRC16 等,基本上是多少位 CRC?)并且错误检测百分比仍然很高?有公式吗?
【问题讨论】:
标签: crc
如果我有一定数量的字节要串行传输,我如何确定使用哪个 CRC(CRC8、CRC16 等,基本上是多少位 CRC?)并且错误检测百分比仍然很高?有公式吗?
【问题讨论】:
标签: crc
要回答这个问题,您需要知道您频道的bit error rate,这只能凭经验确定。然后,一旦您获得了测量的 BER,您就必须确定什么检测率对于您的目的而言“足够高”。
例如,发送每条消息 5 次即使在非常嘈杂的通道上也可以为您提供相当不错的检测,但它确实会降低您的吞吐量。但是,如果您要向深空探测器发送命令,则可能需要这种冗余。
【讨论】:
从 CRC 长度的角度来看,正常统计数据适用。对于 CRC 的位宽,您有 1/(2^n) 出现误报的机会。所以对于 8 位 CRC,你有 1/255 的机会,等等。
但是,选择的多项式也会产生很大的影响。数学高度依赖于传输的数据,并不是一个简单的答案。
您应该评估的不仅仅是 CRC,具体取决于您的通信机制(具有 turbo 码等系统的 FEC 非常有用和常见)。
【讨论】: