发新帖我要提问
12
返回列表
打印

说说CRC的检错能力究竟有多强

[复制链接]
楼主: goooogle
手机看帖
扫描二维码
随时随地手机跟帖
21
huangqi412| | 2009-9-24 19:08 | 只看该作者 回帖奖励 |倒序浏览
发现LS菜农

使用特权

评论回复
22
walnutcy| | 2009-9-25 07:15 | 只看该作者
LZ把春阳调动了,呵呵,

检错能力与数学无关, 数学只能推证重复率。

使用特权

评论回复
23
dengm| | 2009-9-25 15:42 | 只看该作者
对于 MCU 用CRC 8 加 SUM 8 or 16 就万分可靠了!!!!

使用特权

评论回复
24
dengm| | 2009-9-25 15:47 | 只看该作者
CRC 在串行 bits 数据传送中, 比较方便用硬件门电路实现

使用特权

评论回复
25
goooogle|  楼主 | 2009-9-25 20:36 | 只看该作者
本帖最后由 goooogle 于 2009-9-25 20:38 编辑
对于 MCU 用CRC 8 加 SUM 8 or 16 就万分可靠了!!!!
dengm 发表于 2009-9-25 15:42


数据的可靠性和使用的CPU有关系吗,比如传输10BYTE数据,没有用ARM传输要用CRC16才可靠而用MCU传输只需CRC8就可靠的说法吧.我觉得您的说法值得商榷

使用特权

评论回复
26
hotpower| | 2009-9-26 10:51 | 只看该作者
MCU中用CRC8做校验基本能保证数据传送的真实性,因为“CRC任意碰撞”是有条件约束的。

对于CRC8来说,每256个CRC编码(不是256个字节)将会产生1个CRC碰撞(不同的信息即明文得到相同的CRC结果即密文)

对于信息长度为1个字节时,只有一个CRC校验和即不会产生CRC碰撞。
对于信息长度为2个字节时,会有256个CRC校验和即会产生256个CRC碰撞。
对于信息长度为3个字节时,会有65536个CRC校验和即会产生65536个CRC碰撞。
对于信息长度为N个字节时,会有2^((N-1)*8)个CRC校验和即会产生2^((N-1)*8)个CRC碰撞。

这个结论看起来很可怕,认为CRC可能不是很可靠,实际担心是多余的,因为产生碰撞的条件是很苛刻的。

使用特权

评论回复
27
eydj2008| | 2017-2-15 09:04 | 只看该作者
mcuisp 发表于 2009-9-21 21:17
在实践中,是会遇到CRC32通过,但数据确实错误的情况。这个几率比中500万的几率要大一些,呵呵。 ...

这还和校验的数据长度有关系,越长检错能力越差,
循环冗余的。
其实我是来看,CRC16 和CRC32 检错能力差多少的?  估计没有一个数学家 说不出来   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则