FPGA实现1553B编解码设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA实现1553B编解码设计
在对1553B总线协议进行研究后,结合EDA技术提出了基于FPGA的1553B 总线编码和解码的设计方案,包括总线控制器BC、远程终端RT,曼彻斯特编码、解码的设计方案,实现了信号的串并转换、码型转换、奇偶校验等,并最终实现了BC与RT的可靠通信,1553B信号编码和解码的设计过程都给出仿真结果和详细分析,证明有很强的纠错能力和很高的可靠性。
标签:1553B;BC;RT;FPGA
1 原理
1553B总线标准规定,每条消息最长32个字组成,所有的字分为3类:命令字、数据字和状态字。
每类字的一个字长为20位,有效信息位是16位,每个字的前3位为单字的同步头,而最后1位是奇偶校验位,有效信息(16位)及奇偶校验位在总线上以曼彻斯特码的形式进行传输,传输一位的时间为1s(即码速率1MHz)。
同步字头占3位,先正后负为命令字和状态字,先负后正为数据字。
其中16位数据位、奇校验位必须按照曼彻斯特码的形式进行传输。
曼彻斯特编码的编码方式二进制数据转化为1553B总线上传输的串行信息,并且对这些串行数据进行曼彻斯特码编码,再加上同步头和奇偶校验码便构成了总线上传输的数据。
2 曼彻斯特编解码器的设计
Verilog是一种功能强大的硬件设计语言,可用简洁的代码来进行复杂控制逻辑的设计。
为此,本文采用Verilog语言来对曼彻斯特编解码器进行描述,并用Xilinx ISE 9.2i进行编译,并进行综合,最后采用ModelSim SE 6.1f进行仿真。
2.1 解码器设计
Manchester解码从外部接收不同电压标准的信号存入到FPGA内部的FIFO 中,而后对接受到的数据进行解码,转换成二进制数据后可交由相应的逻辑模块处理,Manchester这个功能模块大概分成三部分可以完成设计:
(1)采样模块该模块检测输入数据的电平跳变,当输入数据发生由低到高或由高到低的电平跳变时,在输出端产生一周期宽度的脉冲。
(2)解码时钟频率设定为8M,因为同步头的高低电平持续时间为1.5个数据为也就是1.5个us,因此同步头检测模块采用24位字长的移位寄存器,当移位寄存器采到12个连续的“1”和12个连续的“0”后便可以认定同步头有效,并且判断出此同步头是命令字或者状态字。
相反如果移位寄存器采到12个连续的“0”和12个连续的“1”之后可以判断此同步头是数据字。
(3)在数据采样部分,由于曼彻斯特码在时钟周期的中间时刻都会有电平的跳
变,所以如果对跳变沿后面1/4个时钟周期的数据进行采样,把得到的数据进行逻辑取反,就可以得到曼彻斯特编码对应的二进制数据。
采样计数会产生使能信号,当所有的16位数据信息和校验位信息都己经被接收到之后,使能信号就会失效,终止数据采样。
16位数据会以并行数据的形式放入移位寄存器中。
曼彻斯特解码同时也实现了串行数据转换为并行数据的功能。
解码完成后进行奇偶校验,接收模块对有效序列进行奇偶校验,如果奇偶校验错误,则丢弃这个序列,同时置位消息差错位,如果奇偶校验正确,则进入地址检测部分,仿真波形图如下。
图(1)
2.2 编码器设计
曼彻斯特编码模块接收来自子系统的16位的1553B协议规定的数据(包括指令字和状态字),并以1Mps的速率对数据进行曼彻斯特编码,通过串并转换器把1帧串行数据转换成16位的并行数据,再通过添加奇偶校验标志电路添加1位奇偶校验位标志位和通过异或来进行奇偶检验并添加奇偶校验位,这个过程就是曼彻斯特编码的过程,主要有四个部分:(1)同步头生成:编码器会检测数据是否到来,然后根据数据的类型产生相应的同步头。
(2)奇偶校验位生成:编码器根据子系统输入的16位数据产生奇校验位。
(3)曼彻斯特编码生成:16位数据和奇校验位组成的17位数据被编码成曼彻斯特码型。
同步头不进行编码直接加到编码后的数据前面。
(4)移位寄存串行发送:包装完后的數据会以串行
数据的形式发送出去,所以需要移位寄存器按1MHz的时钟频率发送到总线上,仿真波形如下:
图(2)
3 结束语
目前,1553B总线协议正被越来越多的军用与民用客户所接受。
将外部信息转换成符合1553B协议数据的曼彻斯特码编码器也因此渐显其重要性。
利用可编程门阵列器件,可顺利实现这种编码功能,其高性价比有利于协议的推广应用。
参考文献
[1]胡亚平.基于FPGA的1553B总线控制器的实现[J].应用天地,2008.。