第2-2数据校验码.ppt_第1页
第2-2数据校验码.ppt_第2页
第2-2数据校验码.ppt_第3页
第2-2数据校验码.ppt_第4页
第2-2数据校验码.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、08:11:06,1,第 3.6节,数据校验码,08:11:06,2,奇偶校验码的校验方法,应用场合。 循环冗余校验码(CRC)的编码、译码方法、应用场合。,奇偶校验码;循环冗余校验码。(),教学内容,掌握重点,08:11:06,3,数据校验码:是一种常用的带有发现某些错误或自动改错能力的数据编码方法。 编码系统的码距:一个编码系统中任意两个合法编码(码字)之间最少变化的二进制位数(bit),称为这个编码系统的码字的码距。 即:整个编码系统中任意两个码字的的最小距离。,一、基本理论,3.6 数据校验码,08:11:06,4,两个码字最小值为1,故这个系统的码距为1。 如果任何码字中一位或多位被

2、颠倒了,结果这个码字就不能与其它有效信息区分开。,例如 如果传送信息为001,误接收的信息为011. 会被认为是合法的码字?,如图所示的编码系统,3.6 数据校验码,08:11:06,5,码字间的最小距离可以增加到2。在这个系统中, 偶数个(2或4)差错无法发现。,为使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”.,例如 如果传送信息是1001,误收为1011,接收机发生了一个差错,但无法纠正。假定只有一个数位是错的, 可能的正确码字有哪些?,如图所示的编码系统,正确码字可以是: 1001,1111,0011或1010。,3.6 数据校验码,08:11:06,6,码距2的数据校验

3、码,开始具有检错能力;为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是3。码距越大,检错纠错能力就越强,但数据冗余也越大,编码效率低。码距的选择要取决于特定系统的参数。,3.6 数据校验码,08:11:06,7,通过函数f 对数据进行计算,以产生一种代码, 代码和数据都被存储,如果原数据字长为M位, 校验码长为K位,则实际存储的字长应为M+K位。 加进冗余码,当合法数据编码出现某些错误时, 就成为非法编码。这样,就可以通过检测编码 的合法性来达到发现错误的目的。,二、实现原理,3.6 数据校验码,08:11:06,8,当原先存储的字读出时,这个代码用于检错和纠 错,在M位数据中产生一

4、组新的K位代码,与取出 的代码进行比较: 结果一致,无差错,取出的数据位传送出去; 检测到差错,并可以纠正,数据位和纠错位一 起送入纠正器,然后产生一组正确的M位数据位; 检测到差错,但无法纠正,报告出错。,二、实现原理,3.6 数据校验码,08:11:06,9,3.6.1 奇偶校验码,一、奇偶校验码的特点 开销最小;增加二进制传输系统最小距离的简单和广泛采用的方法; 适用于并行数据传送; 码距为2,可以检测1位错误(或奇数位错误)。但不能确定是哪一位错,也不能发现偶数个位错。 常用于存储器读写检查,或ASCII字符传送过程中的检查。,08:11:06,10,二、奇偶校验码的编码方法,不管数据

5、位长度多少,校验位只有一位。 奇校验:数据位和校验位一起所含“1”的 个数为奇数。 偶校验:数据位和校验位一起所含“1”的 个数为偶数。 校验:对奇校验,如接收端收到是偶码, 表示传送有误,因此可发现一位错(奇位错)。,08:11:06,11,例 数据 奇校验的编码 偶校验的编码 00000000 100000000 000000000 01010100 001010100 101010100 01111111 001111111 101111111,08:11:06,12,三、实现原理 使码距由1增加到2。通常是为一个字节补充一个二进制位(称为校验位); 设置校验位的值为0或1,使字节的8位

6、和该校验位含有1值的个数为奇数或偶数。 进行校验时用奇校验或偶校验。依据8位的数据位中1值的个数确定校验位的值;,08:11:06,13,四、实现方式,D7 D6 D5 D4 D3 D2 D1 D0 D校,偶校验位形成 =D0D1D2D7 奇校验位形成 =NOT(D0D1D2D7) 偶校验出错 =D0D1D2D7 D校 奇校验出错=NOT(D0D1D2D7D校,奇性检测等效于所有码字的模二加, 并能够由所有码字的异或运算来确定。 奇偶校验位可由硬件电路(异或门)产生:,08:11:06,14,五、分组奇偶校验码,实际中经常采用纵横都加校验的奇偶校验位的编码系统-分组奇偶校验码(交叉奇偶校验)。

7、 某一个系统,它传输若干个长度为m位的信息。如果把这些信息都编成每组n个信息的分组,则在这些不同的信息间,也如对单个信息一样,能够作奇偶校验。 n个信息分组排列成矩形式样,以横向奇偶(HP)及纵向奇偶(VP)的形式编出奇偶校验位。,08:11:06,15,纵横奇偶校验的分组奇偶校验码,结论:分组奇偶校验码不仅能检测许多形式的错误。并且在给定的行或列中产生孤立的错误时,还可对该错误进行纠正。,例由 6 个字符的 7 位 ASCII 编码排列,再加上水平垂直奇偶校验位构成下列矩阵,求:1)X1 X2 X3 X4 ; X5 X6 X7 X8; X9 X10 X11 X12的比特分别为 _ 2)Y1

8、和 Y2 处的字符分别为 _ 和 _。,1)X1X2X3X4 = 1110;X5X6X7X8 = 1000;X9X10X11X12 = 1011 2)字符Y1的ASCII码49H,Y1即是“I”(“D”的ASCII码是44H); 字符Y2的ASCII码37H, Y2即是“7”(“3”的ASCII码是33H),“A”的ASCII码是41H “0”的ASCII码是30H,08:11:06,17,3.6.3 循环冗余校验(CRC)码,一、循环冗余校验(CRC)码的特点: CRC码可以发现并纠正信息串行读写、存储或传送过程中出现的一位、多位错误;检错能力极强; 适用于串行数据传送(磁盘、通讯) ; 在

9、磁介质存储器读写和计算机之间通信方面得到广泛应用。 开销小,易于用编码器及检测电路实现。,08:11:06,18,在K位信息码后再拼接R位的校验码,整个编码长度 为N位,因此,这种编码又叫(N,K)码。 校验码的基本原理: 发送信息用信息多项式C(X)表示, 将C(x)左移R位,则可表示成C(x)*XR,这样C(x)的右边就会空出R位,这就是校验码的位置。 通过C(x)*XR除以生成多项式G(x)得到的余数就是校验码。,编码组成:,二、循环冗余校验码基本原理,3.6.3 循环冗余校验(CRC)码,08:11:06,19,三、多项式与二进制数码的关系,多项式包括:G(x)和C(x)。 它们与二进

10、制数码的直接对应关系为: x的最高幂次对应二进制数的最高位, 以下各位对应多项式的各幂次; 有此幂次项对应1,无此幂次项对应0。 x的最高幂次为R,转换成对应的二进制数有R+1位。,3.6.3 循环冗余校验(CRC)码,例 生成多项式为G(x)=x4+x3+x+1, 可转换为二进制数码为11011。 发送信息位 1111转换为数据多项式为: C(x)=x3+x2+x+1。,08:11:06,20,常用的对应于不同码制的生成多项式,08:11:06,21,四、生成多项式,生成多项式是接受方和发送方的一个约定,也是一个二进制数,在整个传输过程中,这个数始终保持不变。 发送方:利用生成多项式对信息多

11、项式做 模2除生成校验码。 在接受方:利用生成多项式对收到的编码 多项式做模2除检测和确定错误位置。,3.6.3 循环冗余校验(CRC)码,08:11:06,22,3.6.3 循环冗余校验(CRC)码,生成多项式: 对于一个给定的(N,K)码,生成多项式G(x) 最高次幂为R= N-K ; 根据G(x)可以生成K位信息的校验码,而G(x) 叫做这个CRC码的生成多项式。,08:11:06,23,五、CRC码的编码方法,模:计量器的容量(M表示) 例4位二进制数,从0-15,再加1,记数值又为0, 故:M=24=16 模2运算:指以按位模2相加为基础的四则运算, 运算时不考虑进位和借位。 (1)

12、模2加减(按位加,可用异或逻辑实现) 0土0=0,0土11,1土01,1土10。 两个相同的数据的模2和为0。,3.6.3 循环冗余校验(CRC)码,08:11:06,24,0.1010 101,1010 0000 1010,100010,(2)模2乘 按模2加求部分积之和。,3.6.3 循环冗余校验(CRC)码,08:11:06,25,例 11110001101,1111000,010,1,0,1101,1101,0,1,0000,100,0,1,1101,1010,111,(3)模2除,1101,商=1011;余数=111,按模2减求部分余数。 每求一位商应使部分 余数减少一位。,08:1

13、1:06,26,六、CRC码的生成步骤,1、将x的最高幂次为R的生成多项式G(x) 转换成对应的R+1位二进制数。 2、将信息码左移R位,相当与对应的信息 多项式C(x)*2R 。 3、C(x)*2R/G(X)的二进制数(做模2除), 得到R位的余数。 4、将余数拼到信息码左移后空出的位置, 得到完整的CRC码。,3.6.3 循环冗余校验(CRC)码,08:11:06,27,【例】假设使用的生成多项式是G(x)=x3+x+1。 4位的原始报文为1010,求编码后的报文。,3.6.3 循环冗余校验(CRC)码,解: 1、将生成多项式G(x)转换成对应的二进制数1011。,2、生成多项式有4位(R

14、+1),要把原始报文C(x) 左移3位(R)变成1010000,3、C(X)*24G(X) = 10100001011 1001-商 011-余数(校验位),08:11:06,28,出错模式改变了C(x)(码字),只会改变表中码字内容,不改变余数与出错位的对应关系。,例已知G(x)=1011, C(x)=1010,08:11:06,29,七.纠错方法,例第一位出错,余数为001,依次补0作模2除得到余数为:010,100,0ll,反复循环。 如果循环码有1位出错,如果对余数补0用G(x)作模2除,将得到一个不为0的余数。 一个有趣的结果:各次余数将按上页图顺序循环 根据不同的余数来纠正不同的出

15、错位,当最高位变成101时(出错位移到A6),则最高位取反纠错。,3.6.3 循环冗余校验(CRC)码,08:11:06,30,结论 生成多项式应满足的条件,生成多项式的最高位和最低位必须为1。 当被传送信息(CRC码)任何一位发生错误时, 被生成多项式做模2除后应该使余数不为0。 不同位发生错误时,应该使余数不同。 对余数继续做模2除,应使余数循环。,3.6.3 循环冗余校验(CRC)码,08:11:06,31,在国际标准中,根据生成多项式G(x)的不同,CRC又可分为以下几种标准: CRC-12码: G(x)=X12+X11+X3+X2+X+1 CRC-16码: G(x)=X16+X15+

16、X2+1 CRC-CCITT码: G(x)=X16+X12+X5+1 CRC-32码: G(x)=X32+X26+X23+X22+X16+X12+X11 +X10+ X8+X7+X5+X4+X2+X+1,八、通信与网络中常用的CRC,3.6.3 循环冗余校验(CRC)码,08:11:06,32,八、通信与网络中常用的CRC,突发错误:几乎是连续发生的一串错,突发长度 就是指从出错的第一位到出错的最后一位的长度。,3.6.3 循环冗余校验(CRC)码,标准的16位生成多项式CRC-16x16+x15+x2+1 一般情况下,对r=16的情况,就能检测出所有突发长度小于等于16的突发错以及99997%的突发长度为17的突发错和99998%的突发长度大于17的突发错。,【思考题】某CRC码的生成多项式 G(x)x3+x2+1,用此生成多项式产生的冗余位,加在信息位后形成 CRC 码。若发送信息位 1111 和 1100 则它的 CRC 码分别为A和B。由于某种原因,使接收端收到了按某种规律可判断为出错的 CRC 码,例如码字C、D、和E,解: A:G(x)1101,C(x)1111 C(x)*23G(x)111100011011011余111 得到的CRC码为1111111 B:G(x)1101,C(x)1100 C(x)*23G(x)11000001

温馨提示

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

评论

0/150

提交评论