基于FPGA的1553B通信模块的设计
时间:11-09
来源:互联网
点击:
MIL-STD-1553总线是美国国防部制定的一种具有可确定性且传输可靠的数据总线,被广泛应用于军用飞机、军用车辆以及舰载等领域中。目前,1553B总线接口模块的实现主要有2种方式:一种是采用专用的协议芯片(如DDC公司的BU-61580、HOLT公司的HI-6110等);另一种是采用FPGA与CPU结合实现1553B的协议模块。
本系统采用后一种方式,硬件上采用PowerPC芯片PPC405EP与Xilinx的FPGA芯片XC3S200为系统的核心芯片,使用VHDL语言实现1553B的总线协议。与采用专用的协议芯片实现1553总线接口的方法相比,该方案的成本很低,也很容易根据需要进行功能扩展,使用灵活。
1 1553总线分析
在MIL-STD-1553总线上有总线控制器、远程终端和监视器3种设备。其中,最重要的是总线控制器(BC-Bus Controller),总线上的任何操作都是由BC发起的(通过发不同的命令控制总线上的数据传输);远程终端(RT-Remote Terminal)接收BC的命令,并按命令进行相应数据传输;总线监视器(BM-Bus Monitor)对总线上的数据进行接收和存储。
1553B总线上数据的交互是基于消息机制的。该标准定义了10种消息传输格式,而这10种传输格式都采用前述的3种字类型,总线上的数据传输就是采用这10种消息传输格式中的一种。其传输过程如下:BC通过总线发送某种命令字,所有的RT接收该命令字,并将命令字中的地址域与自己的地址相比较,相同则接收该命令字;随后,RT对命令字进行解析,根据命令完成相应的操作(接收数据字、发送数据字、同步、自检等)。这些操作都会产生相应的状态字发送给BC。BC通过状态字来判断RT是否工作正常。如果RT接收到的命令字中的终端地址是广播地址,则所有的RT都接收该命令,但都不返回状态字给BC。
2 系统设计
2.1 系统结构
系统结构如图1所示。1553B的协议处理以及编解码都由FPGA实现。在同一电路上集成BC、BM和R/T功能,可以通过软件设置来选择所需的功能。同时,其综合了通信和测试功能,既能够检测出各种可能出现的错误,又能根据测试要求产生各种错误。
CPU芯片采用AMCC公司的PowerPC405EP。该芯片不仅包括一个高性能的RISC处理器内核,还有SDRAM控制器、PCI总线接口、以太网接口、外部ROM和周边资源控制及串行口、IIC接口、通用I/O口等,支持DMA功能。
系统中的PXI接口是用PowerPC405EP的PCI接口与外部的开关电路扩展实现的。CPU通过EBC总线与1553模块通信,其接口电路由FPGA实现。图1所示接口电路主要完成通道选择、数据环回等功能。
2.2 总体方案
1553B总线协议由硬件和软件配合实现。整体设计思路是:硬件和软件采用中断和查询2种方式,通过一个共享的数据Buffer进行信息交互。下面介绍系统整体数据收发流程。本系统的软硬件功能就是根据该流程进行分工和实现的。
2.2.1 数据发送流程
上层软件以数据结构的形式将控制和数据信息传输给硬件逻辑电路,硬件电路自动地将数据按照控制信息发送到1553B总线上。CPU向硬件逻辑发送数据时,首先应检测上次的发送是否已经结束。具体方法是:读通道状态寄存器发送完成位,如果有效,表示上次发送已经结束了。只有检测到上次发送结束了,才能进行数据的发送操作。硬件电路在将数据发送完之后,会产生中断请求。软件根据中断请求去查询状态寄存器,决定下一步的操作。传输流程简述如下:
(1)CPU向数据发送FIFO写入1个指令字/状态字和错误控制信息;
(2)CPU向通道控制寄存器写入发送使能信号;
(3)CPU向数据发送FIFO写入0~32次数据和错误控制信息;
(4)硬件逻辑检测到发送使能信号;
(5)硬件逻辑自动将存储在FIFO中的数据顺序取出;
(6)硬件逻辑根据错误控制信息对数据进行相应处理后将数据发送到1553B总线上;
(7)硬件逻辑在发送消息结束2 μs后,置发送完成状态位,并产生中断信号。
2.2.2 数据接收流程
硬件逻辑接收到1553B总线上的数据后,对该数据进行错误检测,并将相应的状态信息和数据组合起来一起存入到接收FIFO中。当接收FIFO达到一定容量后,便向CPU产生中断信号。CPU对FIFO进行读操作,将数据和状态取出。接收步骤如下:
(1)硬件逻辑接收总线上的数据;
(2)硬件逻辑对数据进行错误检测,产生状态信息;
(3)硬件逻辑将数据和状态信息写入接收FIFO中;
(4)当接收FIFO达到一定容量时便产生中断信号;
(5)CPU响应外部中断;
(6)CPU对FIFO进行读操作,将状态信息和数据取走;
(7)CPU对状态信息进行解析,决定对数据的处理。
3 总线编解码的FPG
本系统采用后一种方式,硬件上采用PowerPC芯片PPC405EP与Xilinx的FPGA芯片XC3S200为系统的核心芯片,使用VHDL语言实现1553B的总线协议。与采用专用的协议芯片实现1553总线接口的方法相比,该方案的成本很低,也很容易根据需要进行功能扩展,使用灵活。
1 1553总线分析
在MIL-STD-1553总线上有总线控制器、远程终端和监视器3种设备。其中,最重要的是总线控制器(BC-Bus Controller),总线上的任何操作都是由BC发起的(通过发不同的命令控制总线上的数据传输);远程终端(RT-Remote Terminal)接收BC的命令,并按命令进行相应数据传输;总线监视器(BM-Bus Monitor)对总线上的数据进行接收和存储。
1553B总线上数据的交互是基于消息机制的。该标准定义了10种消息传输格式,而这10种传输格式都采用前述的3种字类型,总线上的数据传输就是采用这10种消息传输格式中的一种。其传输过程如下:BC通过总线发送某种命令字,所有的RT接收该命令字,并将命令字中的地址域与自己的地址相比较,相同则接收该命令字;随后,RT对命令字进行解析,根据命令完成相应的操作(接收数据字、发送数据字、同步、自检等)。这些操作都会产生相应的状态字发送给BC。BC通过状态字来判断RT是否工作正常。如果RT接收到的命令字中的终端地址是广播地址,则所有的RT都接收该命令,但都不返回状态字给BC。
2 系统设计
2.1 系统结构
系统结构如图1所示。1553B的协议处理以及编解码都由FPGA实现。在同一电路上集成BC、BM和R/T功能,可以通过软件设置来选择所需的功能。同时,其综合了通信和测试功能,既能够检测出各种可能出现的错误,又能根据测试要求产生各种错误。
CPU芯片采用AMCC公司的PowerPC405EP。该芯片不仅包括一个高性能的RISC处理器内核,还有SDRAM控制器、PCI总线接口、以太网接口、外部ROM和周边资源控制及串行口、IIC接口、通用I/O口等,支持DMA功能。
系统中的PXI接口是用PowerPC405EP的PCI接口与外部的开关电路扩展实现的。CPU通过EBC总线与1553模块通信,其接口电路由FPGA实现。图1所示接口电路主要完成通道选择、数据环回等功能。
2.2 总体方案
1553B总线协议由硬件和软件配合实现。整体设计思路是:硬件和软件采用中断和查询2种方式,通过一个共享的数据Buffer进行信息交互。下面介绍系统整体数据收发流程。本系统的软硬件功能就是根据该流程进行分工和实现的。
2.2.1 数据发送流程
上层软件以数据结构的形式将控制和数据信息传输给硬件逻辑电路,硬件电路自动地将数据按照控制信息发送到1553B总线上。CPU向硬件逻辑发送数据时,首先应检测上次的发送是否已经结束。具体方法是:读通道状态寄存器发送完成位,如果有效,表示上次发送已经结束了。只有检测到上次发送结束了,才能进行数据的发送操作。硬件电路在将数据发送完之后,会产生中断请求。软件根据中断请求去查询状态寄存器,决定下一步的操作。传输流程简述如下:
(1)CPU向数据发送FIFO写入1个指令字/状态字和错误控制信息;
(2)CPU向通道控制寄存器写入发送使能信号;
(3)CPU向数据发送FIFO写入0~32次数据和错误控制信息;
(4)硬件逻辑检测到发送使能信号;
(5)硬件逻辑自动将存储在FIFO中的数据顺序取出;
(6)硬件逻辑根据错误控制信息对数据进行相应处理后将数据发送到1553B总线上;
(7)硬件逻辑在发送消息结束2 μs后,置发送完成状态位,并产生中断信号。
2.2.2 数据接收流程
硬件逻辑接收到1553B总线上的数据后,对该数据进行错误检测,并将相应的状态信息和数据组合起来一起存入到接收FIFO中。当接收FIFO达到一定容量后,便向CPU产生中断信号。CPU对FIFO进行读操作,将数据和状态取出。接收步骤如下:
(1)硬件逻辑接收总线上的数据;
(2)硬件逻辑对数据进行错误检测,产生状态信息;
(3)硬件逻辑将数据和状态信息写入接收FIFO中;
(4)当接收FIFO达到一定容量时便产生中断信号;
(5)CPU响应外部中断;
(6)CPU对FIFO进行读操作,将状态信息和数据取走;
(7)CPU对状态信息进行解析,决定对数据的处理。
3 总线编解码的FPG
总线 FPGA Xilinx VHDL 电路 PXI 编码器 嵌入式 收发器 仿真 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- FPGA 重复配置和测试的实现(08-14)
- 经I/O优化的FPGA(04-23)
- 基于Actel FPGA的PWM IP的应用(09-17)