- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CRC编码多项式生成
5.循环冗余校验法
循环冗余校验(CRC)是分组线性码的一个分支,主要用于二进制码。它使用除法和余数原理进行错误检测。
这是一种比较精确、安全的检错方法,能够以很大的可靠性识别传输错误,并且编码简单,误判概率很低,但是这种方法不能够校正错误。循环冗余校验法在通信系统中得到了广泛的应用,特别适用于传输数据经过有线或无线接口时识别错误的场合。下面重点介绍循环冗余校验法
6.CRC方法的工作原理
循环冗余校验法是一种较为复杂的校验方法,它不产生奇偶校验码,而是将整个数据块当成一个连续的二进制数据m(x),在发送时将多项式m(x)用另一个多项式(被称为生成多项式g(x))来除,然后利用余数进行校验。从代数的角度可将m(x)看成是一个多项式,即m(x)可被看作系数是0或1的多项式,一个长度为昭的数据块可以看成是xm-1到x0的m次多项式的系数序列。例如一个8位二迸制以表示为:1x7+0x6+1x5+1x4十0x3+1x2+0x+1。
在实际应用中,发送设备计算CRC校验码,并将CRC校验码附加到二进制数据m(x)上,并将其一起发送到接收设备。接收设备根据接收到的数据重新计算CRC校验码,并将计算出的CRC校验码与接收到的CRC校验码进行比较。如果两个CRC校验码不同,则表明数据通信中存在错误,请发送设备重新发送数据。该过程也可以表示为如下:发送设备将二进制数据m(x)除以生成的多项式g(x),将除法结果的剩余部分作为CRC校验码附加到数据块,并且在接收时首先使用相同的生成的多项式公式g(x)移除发送的二进制数据。如果可以尽可能多地进行除,则余数为0,表示传输正确;如果没有,则表示传输中有错误,可能需要发送方再次发送。其工作过程如图7所示。
图7循环冗余校验法的工作方法
使用循环冗余校验方法,可以检查所有单元错误和双位错误、所有奇数位错误和长度小于或等于校验位长度的所有突发错误,并且可以找到99%以上略长于校验位长度的突发错误。与水平奇偶校验和垂直奇偶校验相比,其误码率可降低1~3个数量级,因此得到了广泛的应用。
7.相关计算
CRC校验码的计算是一个循环过程。CRC校验的计算包括要计算CRC值的数据字节和所有先前数据字节的CRC值。数据块中的每个已验证字节用于计算整个数据块的CRC值。
从数学角度来看,crc校验码就是利用所谓的生成多项式g(x)去除一个多项式m(x)(数据字节)来获取的。crc校验码就是相除后所得的余项。
为了计算负数据块m(x)的CRC校验码,生成的多项式g(x)必须比多项式短,并且生成的多项式g(x)的高位和低位必须为1。CRC的基本思想是将CRC校验码添加到数据块的尾部,以便将带有CRC校验码的多项式除以生成的多项式。当接收设备接收到带有校验码的每个数据块时,将使用生成的多项式将其删除。如果有余数,则会发生数据传输错误。
计算crc校验码和带crc校验码的发送数据t{x}的算法如下:
(1) 设g(x)为r阶,在数据块m(x)的末尾加r个零,使数据块成为m+r位,则相应的多项式为XRM(x);
(2)按模2除法用对应于g(x)的位串去除对应于xrm(x)的位串。
(3) 通过模2减法从对应于XRM(x)的位字符串中减去余数(始终小于或等于1)。结果是具有要传输的循环冗余校验码的数据块,即多项式t(x)。
8.计算举例
下面说明CRC校验码和具有CRC校验码的传输数据t(x)的计算过程,如图8所示。
图8crc校验码以及发送数据t(x)的计算
假设数据块m(x)的二进制表示为1101011011,并生成多项式g(x)=X4+x+1,则g(x)的二进制表示为10011,数据块为1101011011,除数为10011,4个零相加后形成的数据块:[1**************]000,发送的数据块为11010111110。
显然,如果利用g(x)对发送数据t(x)执行新的crc计算,所得结果为零。crc校验的这种独特性质可以用来检测串行数据传输中的错误。crc校验的—大优点是识别错误的可靠性,即使有多重错误,也只需要少量的操作就可以识别。16位的crc就适用于校验4000字节长的数据块的完整性。超过此长度时,性能明显下降。射频识别系统中传输的数据块都比4000字节短,这意味着除了16位的crc以外,也可以使用12位和8位的crc。
9.通用CRC生成多项式
crc在数据通信中得到了广泛的应用。表2列出了已经成为国际标准的四种crc生成多项式,其中crc-12用于字符长度为6位的情况,其余三种则用于
文档评论(0)