当前位置:文档之家› 如何实现校验码

如何实现校验码


1.校验码的基本原理
校验码:在被校验的数据中增加一些冗余码(校验位), 使数据按某种规则编码以后,具有发现错误或同时具备指 出错误在位置并能自动纠正错误的能力的一种编码。
有效信息(k位) 校验信息(r位)
不同的校验码技术 r 的位数不同; 不同的校验码技术具有不同的检错与纠错能力; 编码和校验的复杂度不同。
1)校验模型: 2)编码规则:
有效信息(k位) 校验信息 ( 1位)
通过设置r的具体取值(0或1)使k+1位二进制序列中1的个 数为奇数或偶数,对应的编码称为奇校验/偶校验。
1011101:奇校验 / 1011100:偶校验
3.奇/偶校验
3)校验方法: 根据对校验序列中1的个数的奇偶性进行判断。

计算机组成原理第二章
知识点三:校验码技术
主讲教师:秦磊华
问题引入
受多种因素的影响,数据在处理、传输及存储过程中,
不可避免地会出现错误。如何发现并纠正这些错误?
学习建议
系统观:硬件层次的可靠性保障简化了应用程序设计; 校验码的性能影响应用程序的性能,要根据应用合理选
择校验技术。 构造观:如何实现校验码。
有效信息(k位)
校验信息 ( r 位 )
r > log2(k)
将k位有效信息表达为多项式M(x):
M(x)=Ck-1x k-1+ Ck-2x k-2+…+ Cix i+…+C1x1+C0
r 将M(x)左移r位,右边空出位补0,即变成M(x)·2 ,
选择最高次幂为r,最低次幂为0的生成多项式G(x),
思考与讨论
若计算机硬件层次不提高基本的校验技术,将 会给高层程序设计带来什么影响 ?
知识点三 回顾
为检测并纠正数据处理过程中的错误,需设置校验码;
奇/偶校验 CRC校验和海明编码具有不同的编码规则; 不同编码具有不同的码距和不同的检错与纠错能力;
不同编码具有不同的复杂度。

用多项式M(x)·2r 按模2运算法则除以生成多项式G(x), 所得余数即为校验模型中的r位校验信息。
例1 求有效信息1100的CRC码,生成多项式G(x)=1011。 解: M(x)= 1100。
r>log2(4),取r=3, M(x)·23=1100000
该信息的CRC码 :M(x)·23+R(x)=1100010
2.码距
概念:一组编码中任意两个编码之间不同位数的最小值 称为码距。用于评价校验码的检错与纠错能力; 四位二进制编如下编码:0000、0011、0101、0110、1001、 1010、1100、1111。该编码的码距为2 ;
码距大小与对应校验码检错与纠错能力的关系如下:
如何增加码距 ?
3.奇/偶校验
3)CRC校验规则:
4)不为零的余数具有循环特性: 在该余数后补一位零,除以 生成多项式,将得到下相邻下一位出错时对应的余数 。
5)关于生成多项式的选择
5.海明校验
1)校验模型:
有效信息(k位) 校验信息 ( r 位 )
2)具有检测并纠正一位错误的海明校验码中r与k需满足: k+r ≤ 2r-1 3)编码规则: 校验位与被校验信息分组编码,编码与校验过程复杂。
P=0 则认为没有出现数据错误。 4)特点 编码和校验均非常简单,电路实现简单; 冗余信息少,仅1位校验位;

根据序列中1的个数的奇偶性进行判断,不能检测偶数 位同时出错的情况, 故给出的无错的错结论不一定可靠。
4.循环冗余校验CRC(Cyclic Redundancy Check)
1)校验模型: 2)编码规则:
相关主题