<一>奇偶校验码

奇偶校验码的实现原理非常简单。分为水平奇偶校验,垂直奇偶校验和水平垂直偶校验。

  1. 水平奇偶校验

水平奇偶校验以一个字节为一个校验单位。在每个字节的尾部加上一个校验位,构成带有校验位的码组,使得码组中‘1’的个数为偶数个(偶校验) 或奇数个(奇检验)。进行数据传送时,把整个检验码发送出去。比如有两个字节分别是 10110110 和 11101110,它们的奇校验码分别对应为 101101100和 111011101,使这两个码组中‘1’的个数为奇数个。

接收端在收到信号后,对每个码组检查其‘1’的个数,如果‘1’的个数为奇数(奇校验)或偶数(偶校验)就认为收到的数据正确,否则认为该码组有错,要求发送方重传。

显然,奇偶校验只能检测出码组中有奇数个位出错的情况,如果正好有偶数位(2 位、4 位、6 位等),奇偶校验是无能为力的。

  1. 垂直奇偶校验

垂直奇偶校验是在整个数据段所有字节的某一位上进行奇偶校验,如表2—1 所示,该数据段由 8 个字节组成,垂直奇偶校验分别对所有字节的第 0 位、1 位⋯⋯7 位进行。该表中是进行奇校验。

表 2 — 1 垂直奇偶校验

位 7

位 6

位 5

位 4

位 3

位 2

位 1

位 0

字节 1

1

0

1

1

0

1

1

0

字节 2

1

1

0

1

0

0

1

1

字节 3

1

1

1

0

0

1

0

0

字节 4

0

0

0

0

1

0

0

0

字节 5

1

1

0

1

0

0

0

1

字节 6

0

1

0

1

1

0

1

0

字节 7

0

0

1

1

1

1

1

0

字节 8

1

0

0

1

0

0

0

1

校验字节

0

1

0

1

0

0

1

0

表 2 — 2 水平垂直奇校验

字 节

位 8

位 7

位 6

位 5

位 4

位 3

位 2

位 1

水平校验位

字节 1

1

0

1

1

0

1

0

1

0

字节 2

1

1

1

1

1

1

1

1

1

字节 3

0

0

1

0

1

1

0

1

1

字节 4

1

1

1

0

0

0

1

1

0

字节 5

0

0

0

0

0

0

0

1

0

字节 6

1

1

0

0

1

1

0

0

1

字节 7

1

0

1

0

1

1

0

1

0

字节 8

0

1

0

0

1

1

1

0

1

垂直校验位

0

1

0

1

0

1

0

1

1
  1. 水平垂直奇偶检验

它是水平奇偶校验和垂直奇偶校验的综合,即对每个字节进行校验,又在垂直方向对所有字节的某一位进行校验,因此又称为矩阵码。表 2—2 是水平垂直奇偶检验(奇校验)的示意。矩阵码既可以检测出奇数个错,也能检测出偶数个错。