一、设计要求
掌握奇偶校验基本原理和特性,能在 Logisim 中实现偶校验编码电路和检错电路。
二、方案设计
校验码是用于提升数据在时间(存储)和空间两个维度上的传输可靠性的机制,其主要原理是在被校验数据(原始数据)中引入部分冗余信息(校验数据),使得最终的校验码(原始数据十校验数据)符合某种规则,当校验码中某些位发生错误时(原始数据、校验数据都有可能发生错误),会破坏预定规则,从而使得错误可以被检测,甚至可以被纠正。校验码在生活中有很多的应用,如身份证号、银行卡号、商品条形码和 ISBN 号等。
奇偶校验是一种常见的简单校验方法,其编码规则是引人 1位校验位使得最终的校验码中数字 1的个数保持奇偶性。奇校验约定的编码规则是让整个校验码(包含原始数据和校验位)中1的个数为奇数,而偶校验约定的编码规则是让整个校验码中 1的个数为偶数,设被校验信息 D=D1,D2,…,Dn, 校验位为 P,偶校验时 P的逻辑表达式为:
P=D1⊕D2⊕D3⊕⋯⊕Dn
最终生成的校验码为 D1,D2,…,Dn,P,接收方收到发送方传输的编码后,利用如下公式生成检错码 G:
G=D1⊕D2⊕D3⊕⋯⊕Dn⊕P
若 G=1,则表示接收的信息一定有错,数据应丢弃。若 G=0,则表示传送没有出错,严格地说,是没有出现奇数位错。奇偶校验能够检测出任意奇数位的错误,但无法检测偶数位的错误,奇偶校验无法纠错,但其结构简单,编码效率高,当能通过辅助手段确认出错位置时,还可以实现数据纠错,所以在内存数据校验、磁盘阵列条带数据校验中还普遍使用。
三、实验步骤
(1)设计 16 位数据编码的偶校验编码电路
引入异或门,将其输入引脚数改为16,进行连线,如图1.1。
图 1.1
(2)设计 17 位偶校验编码的检错电路
引入异或门,将其输入引脚数改为17,进行连线,校验位存放在最高位,如图1.2。
图 1.2
(3)偶校验传输测试
在偶校验传输测试电路中,测试偶校验编解码电路功能实现是否正确,并观察数据传输过程中何时会出现误报情况,分析偶校验传输的性能。如图1.3
图 1.3
四、故障与调试
(1)
故障:未将文档中的国标转区位码完善,导致偶校验传输测试电路不能运行。
调试:将国标转区位码完善后,再将偶校验传输测试电路进行电路仿真。
(2)
故障:检验位p1的连线错误,不能将两个节点连接到一起。如图2.1
图 2.1
调试:分开连线,如图2.2。
图 2.2
五、测试与分析
(1)传输过程中没有错误,左右两边的字相同,“检错位”不亮灯,“数据正确”亮绿灯。
(2)有奇数个错误,“检错位”亮红灯。
(3)有偶数个错误,偶校验无法检测出偶数个错误,“误报”亮绿灯。
六、实验思考
(1)完成电路后,仔细观察传输过程,是否有发生错误两边显示的汉字内容却一样的情况?为什么会出现这种情况?
答:有,传输过程中没有发生位错误,或者发生的错误被误认为是正确的数据,校验位没有发挥作用。
(2)如果发生偶数个错误,检错位的值是多少?奇偶校验是否具有纠错功能?
答:是0,奇偶检验没有纠错功能。
(3) Windows 系统中可以利用多个磁盘构建磁盘阵列,以提升存储容量和性能,但多个磁盘构建的存储系统会带来可靠性的降低,通常采用引人一个奇偶校验盘的形式解决,当损坏一块硬盘时,系统仍然可以工作,此时为什么奇偶校验可以工作呢?
答:这是由RAID5的校验机制决定的。RAID5和RAID4一样,数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
(4)内存条也可以采用奇偶校验,发现错误如何处理呢?
答:可以进入CMOS设置,将内存Parity奇偶校验选项关掉,即设置为Disabled。