首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的1553B总线接口板设计

基于FPGA的1553B总线接口板设计

 0 引言  目前国内对1553B总线接口板的设计一般基于DDC公司BU-61580协议芯片完成,但只能完成协议处理部分,应用时还需外围的存贮器和微处理器等辅助芯片。故采用现场可编程门阵列(FPGA)实现整个接口板核心的设计。
  1 系统总体架构
  1553B总线信号进入接口板后,首先通过隔离变压器进行电平转化,使之匹配后面收发器的工作电压。收发器再把电平转化后1553B差分信号转化为可识别的TTL电平。但此时的信号仍然是曼彻斯特Ⅱ型码,故需经解码和串并转换,同时完成数据字的同步、数据、曼彻斯特码错误的检出、奇偶检测和位/字计数等,处理后的数据串并转换后存入内存再对其进行相关的协议处理。发送数据时,将终端接收的数据暂存于内存中,等待发送命令。一旦收到发送命令,即发送数据并通过并串转换后进行曼彻斯特编码且调制解调后发送到1553B的双余度总线上。如图1。
[img][/img]
  2 系统硬件构成及其实现
  信号调制解调用隔离变压器和收发器,分别采用的是HOLT公司PM-DB2725EX和HI-1570芯片。而从曼彻斯特编解码后的部分都可在一片FPGA芯片内实现,选定Altera公司Cyclone系列的EP1C12作为主芯片。其中FPGA与总线间接口部分的电路如图2。
[img][/img]
  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串行数据的转换;②终端地址产生和校验模块:终端地址由子系统的拨码开关设定,即读取拨码开关的电平值并产生相应的地址奇校验位后存贮到内存的终端地址寄存器中,并初始化状态字。编写以上各模块代码时,状态机跳转的条件原来是检测电平值,但在仿真过程中发现有时检测不到或多次检测到从而导致状态机误操作,改用如下跳变沿检测后问题得到解决,对应代码为:
[img][/img]
  其原理为:将需检测的信号不断地通过2个D触发器连续锁存2次,当检测到2次锁存的值符合跳变沿条件时才执行动作如图3。采用该检测方式后程序仿真不出现类似不稳定问题,但同时也造成1个时钟周期的额外延时。
  3.6 仿真及FPGA实现
  以上各功能模块采用Verilog编写,内存则调用QuartusII宏模块。整个程
返回列表