打印
[无线通信]

请教什么时候用CRC8 什么时候用CRC16 什么时候用CRC32

[复制链接]
16361|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tom_2_2|  楼主 | 2016-5-30 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
个人感觉好像和发送的数据位数有关,比如发送1字节好像应该用CRC8合适。如果我连续发送4字节数据+CRC8 这时通信可以保证32位数据有1位错误也能揪出来吗?
另外看到WINRAR软件对一个很大的文件压缩后,后面会跟着CRC32校验码,这个校验码可以完全保证我文件无错误吗?如果不能检错,岂不是用了错误的文件也不知道

相关帖子

沙发
wingis| | 2016-5-30 14:38 | 只看该作者
我觉得这个跟数据包长短没关系,不知道你是用在什么场合,如果信噪比低的地方最好是CRC32或者更强的检验算法。 无论什么校验算法都有出错的机率。比如CRC16的出错机率就是1/65536。  加长同步字,加数据包特征检测,甚至多数据包联合校验都是可以的。

使用特权

评论回复
板凳
aozima| | 2016-5-30 15:09 | 只看该作者
每个算法都有一定的概率,而且在文件长度一样的情况下,想发生CRC碰撞,需要非常多位的数据全部出错且撞大运才行。
所以确保长度的情况下,可以认为CRC能保证数据完整无误。

使用特权

评论回复
地板
tom_2_2|  楼主 | 2016-5-30 20:00 | 只看该作者
以前不知在哪里看到好像说 1字节数据+CRC8可以100%检验出数据当中1bit的错误,如果同时出现2bit错误或者同时更多bit的错误话就达不到100%检错了(**可能有的偏差,但是意思就是大概这样)。
我这里就想知道如果100%检错出1bit错误的话那么CRC8,CRC16,CRC32分别可以同时控制多少字节数据呢?
如果100%检错出2bit错误的话那么CRC8,CRC16,CRC32分别可以同时控制多少字节数据呢?
........................3bit............................................................................................
可能这样问不是专业,随着错误数增多要达到100%检错在理论上说不定也是不可能的,我这里就想大概定量知道一下各种情况不管是100%检错还是只有百分之九十几也好,目的是想在实际使用中我发送一批数据尽量选用低阶的CRC,或者已知用CRC多少的情况下安排最大的数据字节数发送,好充分发掘CRC的检错能力。

使用特权

评论回复
5
blc220| | 2016-6-11 22:34 | 只看该作者
不在乎信息长度,也可以用md5,或者前向纠错码

使用特权

评论回复
6
chunyang| | 2016-6-14 21:24 | 只看该作者
这个跟要求的校验严格性有关,一般用CRC16即可。

使用特权

评论回复
7
hotpower| | 2016-6-21 15:33 | 只看该作者
http://www.21ic.com/tools/HotWC3_V1.22.html

使用特权

评论回复
8
eydj2008| | 2021-12-21 13:39 | 只看该作者
循环冗余校验  估计 要用数学的方法才能说明这个问题  
CRC8用代码生成数据,  一会儿就穷举出 一样的CRC8结果出来 ,N多不同的字符串 都能生成一样的CRC8来

使用特权

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

本版积分规则

40

主题

319

帖子

1

粉丝