错误检测(2)奇偶校验

之前的实验中 通过按按钮启动两个板子,由于clock不同步产生了问题,于是我们接入了clock信号使信号保持同步,

但是即使这样,由于磁场影响或者其他原因,传输的数据仍然可能出现错误:

 

 

 

怎么来进行错误检测呢,

 

1.可以说一共有104个bits

 

 

所以103 或者110个都是有错误的

 

2.可以说47%的bit都是1:

 

3.可以说最多有6个zero:

 

 

4.可以说有49个1:

(可是,如果1个字节里面1消失了 另个里面1存在了,其实也还是49个1

 

 

parity n.奇偶性

 

奇数个1

 

…using a single bit)

 

D触发器

(能通过触发储存一比特数据

 

然后把output接到input上:

 

然后再插个xor门:

 

走一下:

然后发现这个东东发奇数个1 ,就是输出1,发偶数个1就输出0

 

插上东西跑一下:

(灯会根据传送字节中的奇偶最终保持亮暗

 

 

现在我们希望能再receiver这边也检查出parity 如果parity不一样,那就是有错

 

跑一次:

 

(跑通了

 

(这次就有错了,中间没有逗号

 

定义一下Parity

 

最后再多传1bit,如果奇数个,就传1 最后整体是偶数个

如果偶数个就传0 ,最后整体还是偶数个

 

最后就是 

 

(如果灯亮了就说明出错了

 

 

到这里基本结束了,

但是以上都是在考虑1个bit改变的情况

如果两个bit同时变了呢 最后反映出的结果似乎是没有错

所以不够perfect

我们可以给每个字节后面都进行parity计算

这样就检测出一个字节的错误了

但是就算这样也有一个字节中出错的可能

 

 

所以我们可以每4bits 每2bits来检测

 

trade off

 

 

以后介绍其他的更复杂的错误检测方法

 

 

??

 

posted @ 2019-01-06 23:09  hh9515  阅读(585)  评论(0编辑  收藏  举报