Menu Close

曼彻斯特编码介绍

曼彻斯特编码(Manchester)是在通讯领域中一种常见的编码方式, 其优点是:编码简单,解码简单,抗干扰能力比较强, 在串行通讯领域, 无线遥控领域都有很多应用。 缺点是只有带宽 50% 左右的 编码效率。

相关参考文章:

曼彻斯特解码介绍

曼彻斯特编码-参考代码(Verilog)

曼彻斯特解码-参考代码(Verilog)

 

曼彻斯特码(Manchester)包括 曼彻斯特编码和解码两个部分。 曼彻斯特码也通常被叫做 曼码 。曼码的编码原理非常简单,一般会包括:

1)每一个bit 上都有电平的翻转(0,1 都会产生边沿)

2)在组成包时会使用相关的包头和包尾作为整个包的定位(包头,包围的信息中可以不产生电平反转(边沿), 例如:‘NH’, ‘NH’。以区分当前的数据是包头,包尾,而不是正常的0,1 数据)。

这里我们以mvb 协议为例 (其他的曼码形式上与mvb 基本相同,包头,包尾定义可能有所不同),介绍一下曼码的编码方式。

位编码

‘1’ 编码:

第一个半个BT单元时,使用一个高电平对 “1” 进行编码;之后,在第二个半个BT时,使用一个低电平进行编码。

‘0’编码:

第一个半个BT时,使用一个低电平对 “0” 进行编码;之后,在第二个半个BT单元时,使用一个高电平进行编码。

%title插图%num

本文中BT 代表的一个bit 所需要的的通讯时间,在mvb 协议中1BT 是 1.5M 比特率,0.5BT 是 3M比特率。其他协议中,BT 是有所不同的,只要符合用户当前使用的协议即可。

非数据符号

非数据符号 NH 和 NL 应用储存单元编码,具体内容如下方图 29 所示:

a) 一个高电平应对一个 “NH” 进行编码。

b) 一个低电平应对一个 “NL” 进行编码。

%title插图%num

起始定界符

主帧(master 发送数据)应由一个被称作主帧起始定界符的起始定界符开始,包含以下次序:

{起始位、”NH”、”NL”、”0″、”NH、”NL”、”0″、”0″、”0″},如图 30 所示。

%title插图%num

从帧(slave 发送数据)应由一个被称作从帧起始定界符的起始定界符开始,包含以下次序:

{起始位、”1″、”1″、”1″、”NL”、”NH”、”1″、”NL”、”NH”},如图 31 所示。

%title插图%num

终止定界符

主帧或是从帧发送一个终止定界符:

a) 当数据发送完时,附加一个 “NL” 符号

b) 当数据发送完时,依次附加一个 “NL” 符号和一个 “NH” 符号.

a,b 这两种情况时根据不同介质的传输方式,来使用a,或者b 作为终止定界符(mvb 协议)。

%title插图%num

起始位,和终止定界符在不同的通讯协议中有所不同,以上讲述的是mvb 通讯协议,如果用户使用其他的通讯协议,可以自行更改,只要符合用户的相关协议即可。

 

完整帧(包)的定义

发送一个完整的有效帧应包含:

a) 一个起始定界符;和后面的
b) 包含符号 “0” 和 “1” 的 Frame Data(帧数据 可能会有很多bit);和后面的
c) 一个终止定界符 。

示例 一个带有 16 位有用数据(Frame Data)的典型有效帧已显示在图 33 中

%title插图%num

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

一个有效帧(包) 包括: 起始定界符+数据 + 终止定界符 。

 

Posted in FPGA, FPGA, IP开发, RISC-V, RISC-V IPcore设计, Verilog, Verilog, 开发语言, 教材与教案, 文章

发表评论

相关链接