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

时间:2011-04-11来源:网络
cnt_clk2是一个6进制计数器,当计数到1时通过比较器给出同步置位脉冲set,它将对clk2_en同步置1。
(2)同步头识别模块
该模块始终检测同步头,并给出同步头类型。检测方法如下,在采样到时钟使能信号clk2_en有效时,将rx_data_reg_2存入移位寄存器sync_reg[9:0]中,当检测到sync_reg[5:0]为“111000”或“000111”时,给出同步头有效信号sync_1,用于触发计数器和码型转换移位模块工作。
(3)计数模块
计数器cnt是一个40进制计数器,在cnt的控制下完成整个解码过程。当收到同步头有效信号sync_1时,将计数器使能信号cnt_enb置为有效(高电平),并在其控制下开始计数。
(4)码型转换与移位电路
该模块在移位使能信号data_sample有效,且采样到采样使能信号clk2_en时,将rx_data_reg_2移入一个17位寄存器data_reg[16:O]中,移位完成后,将得到一个16位并行数据data_reg[16:1]和一个奇偶校验位data_reg[0]。
(5)校验模块
该电路将检测并输出同步头类型、奇偶校验结果、曼彻斯特码检测结果、字连续性检测结果。
同步头类型检测:当cnt计数到3时,将同步头检测结果sync_csw和syn_dw分别寄存输出给csw和dw。
奇偶校验:将17位并行数据data_reg[16:O]按位同或后在cnt计数到33时将效验结果输出给parity_right。
曼彻斯特码型的有效性校验:对16位曼彻斯特码和1位奇偶校验码的码型进行检测。当收到同步头有效信号sync_1时将mangchester_rig-ht信号置为1,之后将每个码元曼彻斯特检测结果与mangchester_right做与运算,再寄存输出到mangchester_right。当中间某个码元曼彻斯特码出错时,mangchester_right将变为0,并在之后的检测中一直保持为0,直到收到下一个字的sync_1信号。
字连续性检测:若前一个字与当前字连续,则在前一个字cnt计数到39时,当前字的同步头有效信号sync_1应为高电平,若不连续,sync _1为低电平。所以在cnt=39时将sync_1寄存输出给word_continue可表征字的连续性。
(6)数据有效输出模块
当所有校验和移位都完成时,在cnt为34~38之间输出数据有效信号data_ready。

4 仿真及FPGA实现
在TESTBENCH中将编码器曼彻斯特码的输出直接连到解码器曼彻斯特码的输入端。图6为正确曼彻斯特码的时序仿真波形图,传输速率为10 Mb/s,系统时钟为120 MHz。图6的上半部分为编码器信号波形,下半部分为解码器信号波形。发送消息为连续的4个字:第1个为命令字,后3个为数据字。


为了全面验证设计功能,需要注入不同类型的错误来检测解码器的查错能力。其中,包括同步头类型错,曼彻斯特码型错,奇偶校验错,字不连续错等。测试过程完全按照GJB5186相关要求进行。
该设计在XlLINX公司Spartan3E系列的XC3S500E型号FPGA上进行了实现。当编解码器时钟约束为7 ns时,编码器最高跑到143 MHz,解码器最高到157 MHz。

5 结语
根据曼彻斯特码型特点,设计出一种符合MIL-STD-1553B协议的曼彻斯特编解码器,并兼容1 Mb/s和10 Mb/s两种传输速率的协议。该设计通过了GJB5186规定的测试点验证,实验结果证明所设计的曼彻斯特编解码器具有高速、高可靠性的特点。

1 2 3 4

关键词: 1553B 总线 曼彻斯特 编解码器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版