CRC校验码设计PPT课件_第1页
CRC校验码设计PPT课件_第2页
CRC校验码设计PPT课件_第3页
CRC校验码设计PPT课件_第4页
CRC校验码设计PPT课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CRCCRC校验码设校验码设计计中科大软件学院2014-8-29第1页/共23页CRC产生背景在数字通信系统中可靠与快速往往是矛盾的。如在数字通信系统中可靠与快速往往是矛盾的。如何合理地解决可靠与速度这一对矛盾呢?何合理地解决可靠与速度这一对矛盾呢? 可靠性快速性可靠性可靠性快速性快速性第2页/共23页 纠错码:在每一个发送的数据块中包含足够的冗余信息,以便接收方可以推断出被发送的数据中肯定有哪些内容。 检错码:包含一些冗余信息,但是这些信息只能让接收方推断出发生了错误,但推断不出发生了哪个错误,然后接收方可以请求重传。CRC产生背景第3页/共23页多项式编码 多项式编码(polynomial

2、 codepolynomial code),也称为CRC(cyclic redundancy checkCRC(cyclic redundancy check,循环冗余校验码) ),多项式编码的思想是:将位串看成是系数为0或1的多项式。CRC校验保护的单位是数据块。数据块的大小根据实际情况而定。每一个数据块均被看作是一个二进制多项式,即所有系数均为二进制(即1或0)的多项式。 当使用多项式编码时,发送方和接受方必须预先商定一个生成多项式(generator polynomialgenerator polynomial)G(x)。生成多项式的最高位和最低位必须为1。第4页/共23页CRC应用CR

3、CCRC的主要的主要特点特点检错能力检错能力极强极强开销很小开销很小易于实现易于实现1.1. ARJ,LHA,ZIPARJ,LHA,ZIP等等压缩软件采用的压缩软件采用的是是CRC-32CRC-32;2.2. GIF,TIFFGIF,TIFF等图等图像存储格式;像存储格式;3.3. 所有链路层或网所有链路层或网络接口层协议中,络接口层协议中,例如例如HDLCHDLC、DDCMPDDCMP等众多领等众多领域。域。应用范围广应用范围广第5页/共23页CRC原理第6页/共23页CRCCRC校验和计算法1.1.若生成多项式若生成多项式 G(x) G(x) 为为 r r 阶阶( (即即r r1 1位位串

4、位位串) ),原帧为原帧为 m m 位,位, 其多项式为其多项式为 M(x)M(x),则在原帧后,则在原帧后面添加面添加 r r 个个 0 0,即循环左移,即循环左移r r位,帧成为位,帧成为 m+r m+r 位,位,相应多项式成为相应多项式成为 x xr rM(x); M(x); 2.2.按模按模2 2除法用除法用 G(x)G(x)对应的位串去除对应于对应的位串去除对应于 x xr r M(x) M(x) 的位串的位串, , 得余数得余数 R(x)R(x);3.3.按模按模2 2减法减法( (即模即模2 2加加) )从对应于从对应于 xr M(x) xr M(x) 的位串的位串中减去中减去(

5、 (加上加上) )余数余数 R(x),R(x),结果即传送的带校验和结果即传送的带校验和的帧多项式的帧多项式T(x)T(x)。 T(x) = xT(x) = xr rM(x) + R(x)M(x) + R(x)第7页/共23页CRC验证发送方接收方设设 x xr r M(x) M(x) 除以除以 G(x) G(x) 的商和余数分别为的商和余数分别为 Q(x) Q(x) 和和 R(x)R(x)。则有。则有: : x xr rM(x) = G(x) Q(x) + R(x)M(x) = G(x) Q(x) + R(x)即:即:接收方收到带接收方收到带CRCCRC校验和的校验和的帧多项式帧多项式T(x

6、) = xT(x) = xr r M(x) + M(x) + R(x)R(x)。由于模由于模2 2加减相当于异或运算加减相当于异或运算, ,于是接收方模于是接收方模2 2除后商除后商Q(x),Q(x),余数余数0.0.得证!得证!第8页/共23页举一个例子(1 1)发送数据)发送数据110011110011;(2 2)生成多项式)生成多项式G(x)= xG(x)= x4 4 + x+ x3 3 + 1 + 1;(3 3)将要发送的数据系列)将要发送的数据系列左移左移4 4位,新的序列为位,新的序列为 11001100001100110000;(4 4)按模)按模2 2算法,将生成算法,将生成的

7、新序列除以生成多项式的新序列除以生成多项式序列;序列;(5 5)将余数多项式比特序)将余数多项式比特序列加到新的序列中即得发列加到新的序列中即得发送端传送序列。送端传送序列。下面下面。 1 0 0 0 0 11 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 01 0 0 1 1 1 0 0 1 1100111001第9页/共23页接收方校验方案方案二:提取接方案二:提取接收到序列的信息收到序列的信息码元,重复发送码元,重复发送方的操作方的操作xrM(x) ,再除以生成多项再除以生成多项式式G(x),G(x),如果余数如果余数R R(x) = R(x

8、),(x) = R(x),则则证明传输正确。证明传输正确。方案一:直接方案一:直接用接收到的序用接收到的序列除以生成多列除以生成多项式项式G(x),G(x),如如果余数果余数R R(x) (x) = 0,= 0,则证明传则证明传输正确。输正确。接收方接收方校验方案校验方案第10页/共23页生成多项式 G(x) 的国际标准第11页/共23页差错检测差错检测 循环冗余校验码(CRC,Cyclic Redundancy check) 编码对于一个码长为n,信息码元为k位的循环码(n,k),其构成形式为:12knk+1 k+2n位信息码元k位校验码元r位第12页/共23页差错检测差错检测 循环冗余校验

9、码(CRC,Cyclic Redundancy check) 若生成多项式 G(x) 为 r 阶(即r1位位串),原帧为 m 位, 其多项式为 M(x),则在原帧后面添加 r 个 0,即循环左移r位,帧成为 m+r 位,相应多项式成为 xrM(x); 按模2除法用 G(x)对应的位串去除对应于 xr M(x) 的位串, 得余数 R(x); 按模2减法(即模2加)从对应于 xr M(x) 的位串中减去(加上)余数 R(x),结果即传送的带校验和的帧多项式T(x)。第13页/共23页 例m(x) = x9 + x8 + x6 + x4 + x3 + x + 1, k = 10 10011(模二除)

10、 商数:1100001010 余数:1110 r(x) = x3 + x2 + x + 0所需的循环编码C(x)为C(x) = xnm(x) + r(x) = 1101011011,1110设编码的信息码元为1101011011(1)假设 G(x) = x4 + x + 1 系数形成的位串为10011 则将m(x) x4 余数取4位(2) x4m(x) = 1101011011,0000另一个例子第14页/共23页 多项式除法1 1 0 1 0 1 1 0 1 1,0 0 0 01 0 0 1 11 0 0 1 11 0 0 1 11 0 0 1 11 0 1 1 01 0 0 1 11 0

11、1 0 01 0 0 1 11 1 1 0 1 1 0 0 0 0 1 0 1 0商数被除数 m(x)余数 r(x)除数 P(x) 10011另一个例子第15页/共23页模模2 2运算运算模2加法运算定义为:(对应于逻辑异或)000 011 101 110例如010100110110,列竖式计算: 0 1 0 1 0 0 1 1 0 1 1 0异或计算为: 11 =0 00=0 10=1 01=1多项式的算术运算采用代数域理论的规则,加法没进位,减法没借位,加法和减法都等同于异或。第16页/共23页模模2 2运算运算模2减法运算定义为:(对应于逻辑异或)000 011 101 110例如011

12、000110101,列竖式计算: 0 1 1 0 0 0 1 1 0 1 0 1异或计算为: 11 =0 00=0 10=1 01=1第17页/共23页模模2 2运算运算模2乘法运算定义为:000 010 100 111例如1011101100111,列竖式计算: 1 0 1 1 1 0 1 1 0 1 1 0 0 0 01 0 1 1 1 0 0 1 1 1第18页/共23页模模2 2运算运算模2除法运算定义为:010 111模二除法是利用模二减求余数的,余数最高位为“1”,则商“1”,否则商“0”,每商1位则余数减少一位,直到余数位数少于除数位数。 1 1 1 0 1 0 1 11 1 0

13、 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0第19页/共23页位运算按位与运算 按位与运算符&是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。 例如: 9&5可写算式如下: 00001001 (9的二进制补码) & 00000101 (5的二进制补码) 00000001 可见 9&5=1。 按位或运算按位或运算符“ | ” 是双目运算符。其功能是参与运算的两数各对应的二进位相或。

14、只要对应的二个二进位有一个为 1时,结果位就为1。参与运算的两个数均以补码出现。 例如: 9|5可写算式如下: 00001001 | 00000101 00001101 (十进制为13)可见9|5=13 求反运算符为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。 例如 9的运算为: 第20页/共23页位运算按位异或运算按位异或运算符 “ ” 是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为 1。参与运算数仍以补码出现,例如95可写成算式如下: 00001001 00000101 00001100 (十进制为12) 左移运算左移运算符“ ” 是双目运算符。其功能把 “ ” 左边的运算数的各二进位全部左移若干位,由 “ ” 右边的数指定移动的位数,高位丢弃,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论