曼彻斯特编码笔记
曼彻斯特编码
简述
曼彻斯特编码也称为相位编码,是一种同步时钟编码技术。通过电平的高低转换来表示“0”或“1”,每一位的中间有一个跳变的动作,这个动作既作时钟信号,又作数据信号,但因为每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2,其编码效率为50%。
常用于局域网传输和物联网传输中,例如传感器、蓝牙数据等。

NRZ 编码(不归零码)
NRZ 编码是我们最常见的编码之一,表示方式是:
- 正电平表示 1
- 低电平表示 0
它与 RZ 码的区别就是它不归零,即一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用。

曼彻斯特编码
曼彻斯特编码有两种表示方法:
第一种是 G. E. Thomas, Andrew S. Tanenbaum 在1949年提出的:
位中间电平 从低到高 跳变表示"0";
位中间电平 从高到低 跳变表示"1"。
此规则得到的编码表如下:
编码 原数据 0101 (0x5)
00
1001 (0x9)
10
0110 (0x6)
01
1010 (0xA)
11
第二种是 IEEE 802.4 (令牌总线) 和低速版的 IEEE 802.3 (以太网) 中规定:
位中间电平 从低到高 跳变表示"1";
位中间电平 从高到低 跳变表示"0"。
此规则得到的编码表如下:
编码 原数据 0101 (0x5)
11
1001 (0x9)
01
0110 (0x6)
10
1010 (0xA)
00

在实际应用中,若无特殊说明,曼彻斯特码的编码规则均采用第二种约定。
差分曼彻斯特编码
差分曼彻斯特编码的表示方式如下:
- 初信号与标准曼彻斯特编码用一样的规则
- 初信号之后的信号,如果发生了跳变(改变信号极性)则表示 0;如果未发生跳变(未改变信号极性)则表示 1
