关键字:FPGA 1553B总线
MIL-STD-1553 总线是美国20 世纪80 年代制定的第一个军用数据总线标准, 它是一种串行的数据总线。
该总线标准自制定后广泛应用于军用飞机、车辆、船舶中, 并鉴于其高可靠性和灵活性, 逐渐应用在许多其他机动平台上。
1553B 是一种时分制指令/响应式多路传输数据总线, 总线上的所有消息传输都由总线控制器发起, 远程终端对发出的指令应给予回答( 响应) 并执行相关操作。
这种方式非常适合集中控制的分布式处理系统。1553B总线通信系统是由总线控制器、远程终端、总线监控器三部分组成。一个通信总线上最多可以挂32 个远程终端, 传输介质采用屏蔽双绞线, 对噪声等干扰有很好的抑制能力。1553B 总线的数据传输率为1 Mb/s ,在一次消息传输中最多可以传送32 个字, 所有单次传输的时间较短, 具有很好的实时性。
在MIL-STD-1553 总线通信系统中, 总线接口板是系统的关键部分, 其中核心部分的接口电路是总线应用中的主要制约因素。在1553B 总线得到广泛应用的今天, 国内应用1553B 总线协议的通信模块的解决方案多采取基于进口1553B 总线协议芯片来开展相关设计, 如UT 公司的UTl553B 协议芯片、DDC 公司的高级协议处理芯片BU-61580 等, 虽然这些芯片能够完成协议功能, 但价格昂贵、灵活性差, 这些弱点在一定程度上限制了设计能力, 因此提出一种新的基于嵌入式方法实现的1553B 数据总线接口逻辑。
1 系统总体设计方案
本文采用Xilinx 公司的FPGA 芯片作为协议处理核心器件, 选用TI 公司的TMS320C5510 作为主处理器负责接收FPGA 处理过的数据和调度FPGA 的具体操作。
总体方案的系统结构如图1 所示。
1.1 模拟收发部分电路设计
由于1553B 总线上传输的是双极性的差分信号, 主处理器不能直接接收来自总线上的数据, 所以需要信号调制解调及电平转换电路。
电平转换部分一方面将总线上传输的电平信号转换成标准的CMOS 电平供处理器使用, 另一方面将处理器发出的CMOS 信号变成总线标准进行传输。模拟收发器部分简单地说就是将单极性曼彻斯特编码和双极性曼彻斯特编码相互转换。本文采用HOLT 公司的HI -1567PSI , 它是一款专门为MIL-STD-1553 开发的模拟收发器, 供电电压为3.3 V, 通过隔离变压器连接到总线上。HI-1567PSI 是双通道收发器结构, 因此要有两个隔离变压器与其相连接。
1.2 总线接口的数字通信部分
数字通信部分是1553B 总线接口模块的核心, 完成协议数据的收发处理, 由可编程逻辑器件Virtex 系列芯片和DSP 芯片组成。FPGA 芯片在模块中起到1553B 通道的作用, 接收总线上送来的数据并根据协议进行处理之后送给处理器。FPGA 模块中开辟了足够空间的FIFO存储处理后的数据, 当达到一定数量后, 主处理器采用中断的方式读取FIFO 中的数据。在本文的设计中, 为了便于观察实验结果, 将DSP 接收到的数据送到串口上进行显示。同样地,DSP 将要发送的数据送到FPGA 开辟的另一个FIFO 中, 当每个数据编码结束后通过状态机程序产生FIFO 信号的时钟读取下一个数据进行编码,所以这里的FIFO 采用的是异步的工作方式。
2 核心模块功能分析
总线接口模块最主要的部分是FPGA 实现的功能,其总体功能如图2 所示。
FPGA 中最重要的部分是发送器和接收器, 现将这两部分的工作过程做简要分析。
2.1 数字发送器
(1)DSP 将要发送的数据依次送到发送FIFO 中进行存储, 硬件将根据状态机运行情况产生FIFO 读时钟读取数据并送到同步头产生器。
(2)根据要发送的是状态/命令字或数据字在同步头产生器中加上相应的同步头, 若是状态/命令字则在有效数据前加上3 个二进制位, 先正后负, 正负电平各占1.5 bit , 数据字则相反。
(3) 奇偶校验器通过将有效数据位的各位进行异或即可实现。
(4 ) 硬件将经过奇偶校验器的数据送到曼彻斯特编码器进行编码, 编码器的实现相对较简单。编码时钟采用2 MHz , 有效数据位和奇偶校验位都采用曼彻斯特码的形式发送, 加上同步头共40 bit 二进制位, 使用2 MHz的时钟发送到1553B 数据总线上。
在数字发送部分控制状态机是保证时序的关键所在, 状态机不仅控制发送FIFO 的时钟, 同时也有效地输出编码的触发信号。状态机的状态转移如图3 所示。
2.2 数字接收器
(1)FPGA 将经过模拟电路后的单极性曼彻斯特码送到同步头检测器, 提取同步头后进行奇偶校验, 然后再送到解码器。
(2) 解码器采用8 MHz 的时钟进行采样, 由于曼彻斯特编码在时钟的中间时刻有电平的跳变, 所以在采样到跳变沿的下一个时钟将采样到的数据取反就得到二进制码。同时, 当计数器计数到132 时对一个有效数据字解码结束产生使能信号停止采样, 将17 bit 二进制数放到移位寄存器中实现串并转换。
(3) 解码器在解码完一个数据后会产生接收FIFO的时钟信号, 将数据送到接收FIFO 中, 当FIFO 中达到可编程满设定的数据后便产生中断信号, 通知DSP 将数据读走。
3 功能仿真及试验结果分析
在研究分析了1553B 总线接口模块的功能及系统设计后, 在实验室经过PCB 设计投产了两块板卡, 搭建了实验平台并进行功能验证。由于实验室条件有限,功能验证的设计流程是将发送模块DSP 发送的数据经过FPGA 处理, 得到曼彻斯特编码, 并经过模拟收发器、耦合变压器后连接到接收模块的输入端, 信号经过模拟电路部分送到FPGA 解码后送给DSP 处理。
在总线接口模块中, 曼彻斯特编解码是实现功能的核心部分, 所以编码数据和解码数据是进行功能验证时观察的重点。为了观察曼彻斯特编解码是否正确, 这里采用Xilinx 的Chip Scope 逻辑分析仪观察数据,serial_data 是发送模块经过编码部分处理后的串行数据,rx_dword 是接收模块中经过解码部分得到的16 bit 数据, 对比这两个数据的波形是否满足曼彻斯特编码标准即可验证设计的准确性, 用Chip Scope 捕捉到的波形如图4 所示。
从上面的波形图中可以看到, busy 信号在编码的过程中一直为高电平, 在编码结束后的一个编码时钟周期内为低电平。rx_dval 信号在解码结束的一个解码时钟周期内为高电平, 说明此时解码结束, 接收到的数据rx_dword 为5 678,对比发送的数据和编码数据serial_data,说明编解码均正确。
同时, 为了观察DSP 发送的数据与接收模块DSP 接收的数据是否正确, 提高测试数据的直观性, 在这里加上串口调试助手, 通过RS232 总线传输接收数据, 于PC机平台上运行串口调试助手观察接收数据。
在分析了1553B 总线接口模块的功能后介绍了总线接口部分的FPGA 系统设计, 在搭建的平台上进行了功能验证, 实验过程中获得的数据表明了论文中设计的接口模块的功能达到了预期目标要求。