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 系统设计, 在搭建的平台上进行了功能验证, 实验过程中获得的数据表明了论文中设计的接口模块的功能达到了预期目标要求。