找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3332|回复: 4
打印 上一主题 下一主题
收起左侧

帮助理解CRC校验原理及应用的经典文章(共31页PDF)

[复制链接]
跳转到指定楼层
楼主
帮助理解CRC原理及应用的经典文章。

一、  CRC 原理
计算CRC的过程,就是用一个特殊的“除法”,来得到余数,这个余数就是CRC。
它不是真正的算术上的除法!过程和算术除法过程一样,只是加减运算变成了XOR(异或)运算!

算术上的除法:
120÷9=13 余 3,120是被除数,9是除数,13是商,3是余数。念作120除以9,或者9除120,或者9去除120! (除法的过程就不写了)
这个除法计算机当然会做,但是做起来很麻烦,因为减法有借位,很耗时间和指令!
所以,计算CRC也是除法,但是用XOR来代替减法,这就简单多了!

CRC 的除法:
120÷9=14 余 6,商、余数和算术除法不一定相同! !因为除法用的是XOR,而不是真正的减法。 以二进制模拟这个计算过程:

接收端收到1111110,用它除以1001,计算得余数为000,就说明收到的数据正确。 所以原始数据后面要先扩展出3位0,以容纳CRC值!
会发现,在上面的除法过程中,这3位0,能保证所有的4个数据位在除法时都能够被处理到!不然做一次除法就到结果了,那是不对的。这个概念后面要用到。
所以,实际上,数据是1111,CRC是110。
对于除数1001,我们叫它生成多项式,即生成项,或POLY,即g(x)。
数据1111根据POLY1001,计算得到CRC110。
如果POLY不是1001,而是1011,那得到的CRC也是不同的!
所以生成项不同,得到的CRC也不同。要预先定义好POLY,发送端和接收端要用一样的POLY!



完整的pdf格式文档51黑下载地址(共31页):
CRC32、CRC16、CRC原理和算法.pdf (173.04 KB, 下载次数: 92)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:366409 发表于 2018-7-6 16:50 | 只看该作者
很好的文章谢谢
回复

使用道具 举报

板凳
ID:95821 发表于 2018-7-6 21:37 | 只看该作者
學習了
回复

使用道具 举报

地板
ID:95821 发表于 2018-7-6 22:13 | 只看该作者
文檔內的字型比較奇怪,數字都是粗体
回复

使用道具 举报

5#
ID:621513 发表于 2019-11-11 14:00 | 只看该作者
很好的文章谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表