微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 1553B总线中曼彻斯特编解码器的设计

1553B总线中曼彻斯特编解码器的设计

时间:04-11 来源:互联网 点击:

0 引言
曼彻斯特码是一种总线数据传输双极性码。在数字信号基带传输中,通过这种信道编码技术可使传送数据同时携带时钟信息,故也称其为自同步曼彻斯特码。在信道传输中曼彻斯特码有很好的抗干扰能力。接收端可以将分离出的时钟用于解码,从而简化了解码过程。
针对曼彻斯特码特点,可采用位同步方法提取时钟,常采用滤波法和数字锁相环法。滤波法采用的窄带滤波器不适合数字电路使用。数字锁相环法通过比较接收码元和本地码元为定时时钟的相位来添加扣除时钟脉冲,以达到调整相位的目的,但电路实现过于复杂。本文提出的时钟分离电路比数字锁相环简单,而且提取出来的时钟可以准确地采样到曼彻斯特码信号。

1 曼彻斯特码
曼彻斯特码是一种广泛用于以太网、短距离无线通信、航空电子综合系统中总线数据传输的双极性码。它的每个码元中点都存在一个电平跳变,1信号为一个从1到0的负跳变;0信号为一个从0到1的正跳变。由于曼彻斯特码在频谱中存在很强的定式分量,解码时可将分离出的时钟用来解码。另一方面,1553B传输电缆呈容性负载特性,所以在信号传输中,直流和低频分量将受到很大的衰减。曼彻斯特码频谱中不存在直流分量,而且低频分量也大大减小,很适合在1553B电缆中传输。
MIL-STD-1553B协议中采用的曼彻斯特码数据格式如图1所示。

同步头:占三位码元长度。命令字或状态字同步头的前1.5倍码元长度为高电平;后1.5倍码元长度为低电平,数据字同步头刚好相反。同步头用于区分字的类型以及标识字传输开始。
数据:16位数据位。图中bit3为数据最高位,依次递减,bit18为数据最低位。
奇偶校验位:这里采用奇校验。将16位数据按位同或的结果作为奇校验位。

2 曼彻斯特编码器的设计
由于曼彻斯特码的每个码元在其中心存在电平跳变,所以编码器的发送时钟频率至少应选择信息传输速率的2倍频。
通常编码器的实现方式有2种,基于移位寄存器,或者数据选择器。移位寄存器型编码器需要在编码开始后将同步头位、数据位、奇偶校验位通过字符格式编排器编排成一个并行数据,然后在发送时钟的控制下串行移位输出;数据选择器型编码器需要在编码开始后启动一个计数器,在计数器的控制下分别送出同步头、数据位、奇偶效验位。本文的编码器采用后者,其结构框图如图2所示。


2.1 编码过程
编码过程如下:
(1)检测编码周期是否开始,编码周期开始后将同步头类型、16位并行数据存储到内部寄存器中,与此同时计数器cnt开始计数。
(2)在计数器cnt的控制下通过码型生成器发出同步头、数据位、奇偶校验位。
(3)在当前字的曼彻斯特码发送完成后回到过程(1)等待发送下一个字
2.2 端口说明
rst_n为异步复位信号;clk为系统时钟,频率为信息传输速率的12倍;enc_trigger(输入,高有效)的编码开始的触发信号;enc_csw(输
入,高有效)表示要发送的字为命令字或状态字;enc_dw(输入,高有效)表示要发送的字为数据字;enc_data(输入)表示16位要发送的并行数据;tx_data_p(输出)表示发出的曼彻斯特原码;tx_data_n(输出)表示发出的曼彻斯特反码。
2.3 子模块说明
(1)6分频电路
将系统时钟6分频输出占空比为1/6的编码时钟使能信号enc_clk_en,该信号的频率为信息传输速率的2倍,其他3个模块只有在采样到该信号高电平后才会触发。在复杂时序电路设计中通过引入时钟使能信号可减少设计中的时钟信号,提高电路的可靠性。
(2)保持寄存器
在enc_clk_en有效且采样到enc_trigger为1时,将enc_csw,enc_dw,enc_data存入内部寄存器csw_reg,dw_reg,data_reg中。
(3)计数器
在enc_clk_en有效时采样到enc_trigger为1时,将计数使能信号置为1,并在其控制下开始计数,计数范围为0~39。
(4)码型生成器
码型生成器通过对16位并行数据data_reg做同或运算产生奇偶校验结果。在计数器cnt的控制下发送出曼彻斯特码。发送过程如下(以tx_data_p说明):
cnt(0~5):根据同步头类型,依次发送111000(csw_reg有效)或000111(dw_reg有效)。
cnt(6~37):发送数据位,在码元前半个周期发送原码,后半个周期发出反码。
cnt(38~39):发送奇偶校验位,计数到38时,发送奇偶校验位原码,39时发送其反码。

3 曼彻斯特解码器的设计
解码器需要将收到的曼彻斯特码解码,得出16位并行数据,并给出各种校验结果。本文设计的解码器逻辑结构如图3所示。


3.1 解码过程
(1)同步头检测,当检测到同步头后触发整个解码过程开始,并给出同步头类型。
(2)检测到同步头后,计数器cnt开始计数,在cnt的控制下进行解码。包括码型转换与移位操作,同步头类型输出、曼彻斯特码型校验、奇偶校验、字连续性校验等。
(3)当码的串并转换以及各种校验都完成后,给出并行数据和校验结果信号,在cnt的控制下最终给出数据有效信号data_ready。协议模块可在该信号有效(高电平)时检测其他校验信号,并决定是否取走并行数据。
3.2 端口说明
rst_n为异步复位信号;clk为系统时钟,频率是信息传输速率的12倍;rx_data(输入)为收到的曼彻斯特原码;data_ready(输出,高有效)为数据有效信号,该信号有效期间可检测其他校验输出信号,若数据有效可取走16位并行数据;csw(输出,高有效)为收到字类型为命令字或状态字;dw(输出,高有效)表示收到字类型为数据字;data(输出)表示解码输出的16位并行数据;parity_right(输出,高有效)为奇偶校验结果;manchester_right(输出,高有效)为曼彻斯特码型校验结果;word_continue(输出,高有效)为字连续性校验结果,有效时表示当前收到的字与上一次收到字之间是连续的。
3.3 子模块说明
(1)时钟分离模块
时钟分离模块如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top