- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C51 实现单片机 CRC快速算法
王天宇
(胜利油田运输总公司公交广告公司, 山东东营,257075)
摘要: 本文介绍了CRC 的基本原理和计算方法,给出了利用C51 实现单片机CRC 的快速算法
关键字:CRC ;C51;单片机;快速算法
Wang Tianyu
Abstract : Basic principle and calculating were introduced, and a rapid algorithm
of CRC in sigle-chip microcomputer by C51 was presented.
Subject words: CRC;C51;sigle-chip microcomputer;rapid algorithm
A Rapid Algorithm of CRC by C51
1 概述
解决差错的方法有两种。一种方法是让每块信息包含足够的冗余信息,以使检错时能推
断出哪一位出错了,然后对错误加以纠正;另一种方法是每块信息仅包含足以使检错时能推
断出是否有错的冗余信息,但不能确定错在哪一位,所以只能检错,纠错需要采用其它办法,
通常是请求重写有差错部分的信息。前一种通常称为纠错码,后一种通常称为检错码。纠错
码实现起来较复杂,常采用检错码。CRC 校验是应用最广泛的一种检错码。
循环冗余校验 (CRC- Cycle Redundancy Code)是一种强有力的错误检测技术,能检测
一位错、双位错、所有奇数个错、所有长度小于或等于所用的生成多项式长度的错误,对于
采用 16 次生成多项式的 CRC 检测,17位以上的检错率为 99.997%。在LAN、MODEM 等数字信
息传送技术和 ARJ、PKZIP 等数据压缩解压缩技术中,CRC 被广泛采用作为校验手段,效果
显著。在这里用作 RAM、EEROM 的自检。
2 CRC校验的基本原理
CRC校验原理实际上就是在一个K位二进制数据序列之后附加一个 r 位二进制校验码序
列,从而构成一个总长为 n=K+r 位的二进制序列,例如,K 位二进制数据序列 D =
[d d d d ],r 位二进制校验码 R=[r r r r ],所得到的这个 n 位二进制
p-1 p-2 1 0 r-1 r-2 1 0
序列就是 N=[d d d d r r r r ]; 附加在数据序列之后的这个校验码 R
p-1 p-2 1 0 r-1 r-2 1 0
与数据序列 D 的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位
或某些位发生错误,这种特定关系就会被破坏,因此,通过检查这一关系,就可以实现对数
据正确性的校验。
CRC 校验采用多项式编码,一个二进制位串可以用一个系数为 0 和1 的单变量多项式来
表示。例如可表示为 1X7 6 5 4 3 2 1 0
+0X +0X +1X +0X +0X +0X +1X 。设有一个 K位的信息位串,
对应于多项式 K(X),那么它的 CRC 码的计算方法是:用一个事先约定的 r 次的生成多项式
G(X)作除数,把在信息位串尾添上 r个 0 所构成的新位串对应的多项式 Xr K(X)作为被除数,
两者作模 2 除法,最后得到的 r 位余数就是 K(X)的 CRC 码。将这 r 位 CRC 码附加在所需写
入或修改的 K 位信息位串的尾部构成一个 K+r 位的二进制序列 M 一并写入或修改(校验码
的计算和编写在所需的 RAM 数据写入或修改时进行),如式(1)所示;在校验时,用同样的
生成多项式 G(X)直接去除,若除尽,说明数据传输正确,把接收到的 K+r 位的二进制序列
去掉尾部 r 位,如式(2)所示即得所需的 K 位数据信息;若不能除尽,则说明一定有传
文档评论(0)