原创 (多图) 基于FPGA的1553B总线接口板设计

2015-3-24 13:52 1149 14 14 分类: FPGA/CPLD

  0         引言

  目前国内对1553B总线接口板的设计一般基于DDC公司BU-61580协议芯片完成,但只能完成协议处理部分,应用时还需外围的存贮器和微处理器等辅助芯片。故采用现场可编程门阵列(FPGA)实现整个接口板核心的设计。

  1         系统总体架构

  1553B总线信号进入接口板后,首先通过隔离变压器进行电平转化,使之匹配后面收发器的工作电压。收发器再把电平转化后1553B差分信号转化为可识别的TTL电平。但此时的信号仍然是曼彻斯特Ⅱ型码,故需经解码和串并转换,同时完成数据字的同步、数据、曼彻斯特码错误的检出、奇偶检测和位/字计数等,处理后的数据串并转换后存入内存再对其进行相关的协议处理。发送数据时,将终端接收的数据暂存于内存中,等待发送命令。一旦收到发送命令,即发送数据并通过并串转换后进行曼彻斯特编码且调制解调后发送到1553B的双余度总线上。如图1。

系统结构方框图

  2         系统硬件构成及其实现

  信号调制解调用隔离变压器和收发器,分别采用的是HOLT公司PM-DB2725EX和HI-1570芯片。而从曼彻斯特编解码后的部分都可在一片FPGA芯片内实现,选定Altera公司Cyclone系列的EP1C12作为主芯片。其中FPGA与总线间接口部分的电路如图2。

FPGA与总线间接口部分的电路

  3         FPGA内部的模块构成及实现

  FPGA片内的实现,通过Verilog程序和调用QuartusII软件内部宏模块完成,可分为双冗余曼彻斯特II编解码及串并转换、总线传输逻辑、终端协议和消息处理、内存及控制器和子系统等模块。

  3.1  双冗余曼彻斯特II编解码及串并转换模块

  该模块实现曼彻斯特码的编解码,串并转换后同总线传输逻辑模块进行通信。原始数据采样采用16M时钟频率。

  3.2  总线传输逻辑模块

  该模块对上一模块的16位并行数据按1553B协议定义进行分解、存储,并给协议模块响应信号及对其命令执行,发出相应状态字和数据字。

  3.3  内存及控制器模块

  用作系统寄存器和与下级子系统进行数据交换的数据存贮区,以响应其它各模块可能存在的寄存器和数据访问,该模块由以下3个子模块组成:

  DPSRAM模块:为Quartus软件宏模块altsyncram的实例化调用,在物理上为FPGA芯片片内SRAM的调用。实例化调用后为双端口可同时读写的同步SRAM内存,以满足总线传输逻辑,协议处理模块,初始化自检模块之一和子系统模块可能同时存在的访问请求。

  RAM_Control模块:为上一模块DPSRAM的内存控制器,根据上游(user_interface模块)信号产生符合DPSRAM时序的读写使能,地址,数据和读写确认信号。

  user_interface模块:解决多端口输入不能直接线与和定向输出从DPSRAM读取的数据的问题。

  3.4  终端协议和消息处理模块

  该模块解析接收到的命令并通知总线传输模块做出相应的响应。可分为以下4个子模块:①read模块完成指令字的读取;②protocol模块完成指令字分析和协议的处理;③write模块根据protocol模块解析命令后发过来的指令完成对应状态字的修改;④choose模块将对read和write两个模块发给ram的命令和地址进行选通。

  3.5  子系统模块

  子系统含收发、终端地址产生和校验等模块。①收发模块:完成存贮器16位的并行数据和2400bit串行数据的转换;②终端地址产生和校验模块:终端地址由子系统的拨码开关设定,即读取拨码开关的电平值并产生相应的地址奇校验位后存贮到内存的终端地址寄存器中,并初始化状态字。编写以上各模块代码时,状态机跳转的条件原来是检测电平值,但在仿真过程中发现有时检测不到或多次检测到从而导致状态机误操作,改用如下跳变沿检测后问题得到解决,对应代码为:

对应代码

  其原理为:将需检测的信号不断地通过2个D触发器连续锁存2次,当检测到2次锁存的值符合跳变沿条件时才执行动作如图3。采用该检测方式后程序仿真不出现类似不稳定问题,但同时也造成1个时钟周期的额外延时。

  3.6  仿真及FPGA实现

  以上各功能模块采用Verilog编写,内存则调用QuartusII宏模块。整个程 序的功能仿真,综合布线和最后的时序仿真均用ALTERA公司的QuartusII完成。各模块综合后在QuartusII中编译后生成symbol如图4。

各模块综合后在QuartusII中编译后生成symbol如图4

  图5为某型号调谐滤波器与1553总线通信的消息仿真波形。其中:RT地址设定为00101,即图4中拨码开关pat4~pat0的电平值,子地址为00001。复位后第1条消息为RT不发送数据请求时发送矢量字模式命令及其响应,状态字所带的数据字为&H0000,该命令循环发送至RT直到有请求第3条消息的情况;第2条消息为RT接收1个数据字命令及其响应;第3条是当RT有发送数据请求时的发送矢量字及其响应,状态字所带的数据字为&H0001;第4条是RT发送两个数据字命令及其响应;第5条是带数据字的同步模式命令及其响应。

某型号调谐滤波器与1553总线通信的消息仿真波形

  由仿真波形可见,该系统基本满足该滤波器的应用,为进一步验证其实际应用和其他协议,将其下载至FPGA中进行测试。FPGA内部是基于SRAM结构的,因此需要1片配置芯片固化其内部结构,故采用JTAG模式和主动串行模式(AS)2种配置模式。调试时使用JTAG模式直接将逻辑写入FPGA内部,调试好后再用AS模式将程序写入配置芯片EPCS4中,经测试通过。

  4         结语

  基于FPGA技术的总线接口板设计,已通过某军用飞机的测试,实现1553总线和子系统的通讯。将FPGA技术应用于1553B总线接口,设计成本降低,设计周期缩短,系统的集成度提高,扩展能力增强,具有重要的现实意义和应用前景。

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条