- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第29卷 第8期 甘肃科技 Vol29 No8
2013年4月 GansuScienceandTechnology Apr 2013
循环冗余校验在单片机通信中的C语言的实现
张晓渝
(兰州理工大学,甘肃 兰州730000)
摘 要:介绍了循环冗余校验(CRC-CycleRedundancyCode)的原理以及用二进制无借位除法计算生成多项式为
CRC-16的CRC校验的方法,并给出了当发送一个字节和多个字节时的CRC校验C语言编程和流程图。循环冗余
校验是提高数字传输可靠性的一种有效的方法。
关键词:循环冗余校验;CRC;C语言;二进制除法
中图分类号:TP368TN911
31 26 23 22 16 12 11
在单片机数据通信过程中,数据信号完全暴露 CRC-32=x +x +x +x +x +x +x +
在环境中,在传输过程中产生误码是不可避免的。 10 8 7 5 4 2
x +x+x+x+x+x+x+1
由软件实现差错检测具有经济实用、方便可靠、不增 (4)
加硬件开销等优点。通常所用的差错检测法有:奇 采用式(2)作为生成多项式。
偶校验法、行列冗余校验法等。这些方法都是在数 12 CRC校验的数学模型
据信息后面增加冗余位,使冗余码与数据信息一起 CRC校验就是在传输数据信息后面用 CRC余
发送出去,并在接受端对收到的数据信息进行处理, 数码作为校验码。在这个过程中最为关键的是余数
将结果与接收到的校验码进行比较。如果相同,传 码的生成。余数码是由传输数据序列左移k位(k
输正确;否则认为传输错误。但是这些方法的冗余 是余数码的位数),然后用模2除法除以生成多项
位仅能反映行与列的奇数位情况,对于行或列的偶 式序列所得的余数。其数学模型为:
数位错误不敏感,判漏的几率很高。而循环冗余校 设传输数据序列为 n位,用多项式表示为
验对奇数位错误和偶数位错误的发现率为 100%, G(x)。生成多项式P(x)为k+1位。
对于其他突发性错误的发现率为999%。因此,循 k
1)首先将传输数据左移k位,即G(x)乘以X
环冗余校验法在单片机数据通信中具有广泛的应 作为被除数,其中k为余码的位数。
用。 k
2)将乘得的结果 X ·G(x)用生成多项式 P
(x)去除。
1 CRC校验法的原理和数学模型 3)忽略其商,仅将所得余数 C(x)取出,则 C
11 CRC校验的原理 (x)的系数对应的二进制序列就是要求的余数码
CRC校验法也是在数据信息后增加冗余位。 (即BCC)。
但在这种方式中,将所传数据看成是高次多项式,也 由以上过程可知:
称为位序列多项式 G(
文档评论(0)