纵向冗余校验计算方法_CRC循环冗余码检错.pdfVIP

  • 1
  • 0
  • 约3.33千字
  • 约 3页
  • 2022-11-08 发布于上海
  • 举报

纵向冗余校验计算方法_CRC循环冗余码检错.pdf

纵向冗余校验计算⽅法_CRC 循环冗余码检错 传输检错⽅案 奇偶校验能够检测出信息传输过程中的部分误码(奇数位误码能检出,偶数位误码不能检出),同时,它不能纠错。在发现错误后,只能要 求重发。但由于其实现简单,仍得到了⼴泛使⽤。有些检错⽅法,具有⾃动纠错能⼒。如循环冗余码(CRC)检错等 。 奇偶校验码( PCC) 根据被传输的⼀组⼆进制代码的数位中“1”的个数是奇数或偶数来进⾏校验。采⽤奇数的称为奇校验,反之,称为偶校验。采⽤何种校验 是事先规定好的。通常专门设置⼀个奇偶校验位,⽤它使这组代码中“1”的个数为奇数或偶数。若⽤奇校验,则当接收端收到这组代码 时,校验“1”的个数是否为奇数,从⽽确定传输代码的正确性。 校验⽅法 奇校验:就是让原有数据序列中(包括你要加上的⼀位)1的个 数为奇数 1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。 偶校验:就是让原有数据序列 中(包括你要加上的⼀位)1的个数为偶数 1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了 ⽔平奇偶校验码 对每⼀个数据的编码添加校验位,使信息位与校验位处于同⼀⾏.⽔平奇偶校验码 垂直奇偶校验码 把数据分成若⼲组,⼀组数据排成⼀⾏,再加⼀⾏校验码. 针对每⼀⾏列采⽤ 奇校验 或 偶校验 例: 有32位数直奇偶校验码 11001100 ⽔平垂直奇偶校验码 同时⽤⽔平校验和垂直校验⽔平垂直奇偶校验码 汉明校验码 汉明码也是利⽤奇偶性来校验数据的,它是⼀种多重奇偶校验检错系统,它通过在数据位之间插⼊k个校验位,来扩⼤码距,从⽽实现检错和纠 错. 海明码是⼀种多重(复式)奇偶检错系统。它将信息⽤逻辑形式编码,以便能够检错和纠错。⽤在海明码中的全部传输码字是由原来的信息和 附加的奇偶校验位组成的。每⼀个这种奇偶位被编在传输码字的特定位置上。 循环冗余校验码( CRC) 奇偶校验码(PCC)只能校验⼀位错误,循环冗余校验码(CRC)的检错能⼒更强,可以检出多位错误。 基本原理 CRC校验根本思想就是先在要发送的帧后⾯附加⼀个数(这个就是⽤来校验的校验码,要注意,这⾥的数是⼆进制序列),⽣成基本原理 ⼀个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所⽣成的新帧能与发送端和接收端共同选定的某个特定数整除(这⾥不是 直接采⽤⼆进制除法,⽽是采⽤⼀种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采⽤“模2除法”)这个选定 做了“去余”处理 除数。因为在发送端发送数据帧之前就已通过附加⼀个数, (也就已经能整除了),所以结果应该是没有余数。如果有余 数,则表明该帧在传输过程中出现了差错。 具体来说,CRC校验原理就是以下⼏个步骤: (1)先选择(可以随机选择,也可按标准选择,具体在后⾯介绍)⼀个⽤于在接收端进⾏校验时,对接收的帧进⾏除法运算的除数(是⼆ 进制⽐较特串,通常是以多项⽅式表⽰,所以CRC⼜称多项式编码⽅法,这个多项式也称之为“⽣成多项式”)。 (2)看所选定的除数⼆进制位数(假设为k位),然后在要发送的数据帧(假设为m位)后⾯加上k-1位“0”,然后以这个加了k-1 个“0“的新帧(⼀共是m+k-1位)以“模2除法”⽅式除以上⾯这个除数,所得到的余数(也是⼆进制的⽐特串)就是该帧的CRC校验 码,也称之为FCS(帧校验序列)。但要注意的是,余数的位数⼀定要是⽐除数位数只能少⼀位,哪怕前⾯位是0,甚⾄是全为0(附带好 整除时)也都不能省略 (3)再把这个校验码附加在原数据帧(就是m位的帧,注意不是在后⾯形成的m+k-1位的帧)后⾯,构建⼀个新帧发送到接收端,最后在 接收端再把这个新帧以“模2除法”⽅式除以前⾯选择的除数,如果没有余数,则表明该帧在传输过程中没出错,否则出现了差错 从上⾯可以看出,CRC校验中有两个关键点:⼀是要预先确定⼀个发送端和接收端都⽤来作为除数的⼆进制⽐特串(或多项式);⼆是把原 始帧与上⾯选定的除进⾏⼆进制除法运算,计算出FCS。前者可以随机选择,也可按国际上通⾏的标准选择,但最⾼位和最低位必须均 为“1”,如在IBM的SDLC(同步数据链路控制)规程中使⽤的CRC-16(也就是这

文档评论(0)

1亿VIP精品文档

相关文档