曼彻斯特编码(Manchester)是在通讯领域中一种常见的编码方式, 其优点是:编码简单,解码简单,抗干扰能力比较强, 在串行通讯领域, 无线遥控领域都有很多应用。 缺点是只有带宽 50% 左右的 编码效率。
相关参考文章:
曼彻斯特码(Manchester)包括 曼彻斯特编码和解码两个部分。 曼彻斯特码也通常被叫做 曼码 。曼码的编码原理非常简单,一般会包括:
1)每一个bit 上都有电平的翻转(0,1 都会产生边沿)
2)在组成包时会使用相关的包头和包尾作为整个包的定位(包头,包围的信息中可以不产生电平反转(边沿), 例如:‘NH’, ‘NH’。以区分当前的数据是包头,包尾,而不是正常的0,1 数据)。
这里我们以mvb 协议为例 (其他的曼码形式上与mvb 基本相同,包头,包尾定义可能有所不同),介绍一下曼码的编码方式。
位编码
‘1’ 编码:
第一个半个BT单元时,使用一个高电平对 “1” 进行编码;之后,在第二个半个BT时,使用一个低电平进行编码。
‘0’编码:
第一个半个BT时,使用一个低电平对 “0” 进行编码;之后,在第二个半个BT单元时,使用一个高电平进行编码。

本文中BT 代表的一个bit 所需要的的通讯时间,在mvb 协议中1BT 是 1.5M 比特率,0.5BT 是 3M比特率。其他协议中,BT 是有所不同的,只要符合用户当前使用的协议即可。
非数据符号
非数据符号 NH 和 NL 应用储存单元编码,具体内容如下方图 29 所示:
a) 一个高电平应对一个 “NH” 进行编码。
b) 一个低电平应对一个 “NL” 进行编码。

起始定界符
主帧(master 发送数据)应由一个被称作主帧起始定界符的起始定界符开始,包含以下次序:
{起始位、”NH”、”NL”、”0″、”NH、”NL”、”0″、”0″、”0″},如图 30 所示。

从帧(slave 发送数据)应由一个被称作从帧起始定界符的起始定界符开始,包含以下次序:
{起始位、”1″、”1″、”1″、”NL”、”NH”、”1″、”NL”、”NH”},如图 31 所示。

终止定界符
主帧或是从帧发送一个终止定界符:
a) 当数据发送完时,附加一个 “NL” 符号
b) 当数据发送完时,依次附加一个 “NL” 符号和一个 “NH” 符号.
a,b 这两种情况时根据不同介质的传输方式,来使用a,或者b 作为终止定界符(mvb 协议)。

起始位,和终止定界符在不同的通讯协议中有所不同,以上讲述的是mvb 通讯协议,如果用户使用其他的通讯协议,可以自行更改,只要符合用户的相关协议即可。
完整帧(包)的定义
发送一个完整的有效帧应包含:
a) 一个起始定界符;和后面的
b) 包含符号 “0” 和 “1” 的 Frame Data(帧数据 可能会有很多bit);和后面的
c) 一个终止定界符 。
示例 一个带有 16 位有用数据(Frame Data)的典型有效帧已显示在图 33 中

至于起始定界符之前, 终止定界符之后的数据(电平) ,以及包与包 之间的时间间隔,可以参考各个协议的相关规则。
一个有效帧(包) 包括: 起始定界符+数据 + 终止定界符 。