打印

赛灵思Spartan-3AN FPGA在弹上信息处理机中的应用

[复制链接]
960|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GoldSunMonkey|  楼主 | 2012-12-10 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

信息处理机(图1)用于完成导弹上多路遥测信息的采集、处理、组包发送。主要功能包括高速1553B总线的数据收发 、422接口设备的数据加载与检测、多路数据融合和数据接收、处理、组包发送的功能。其中,总线数据和其他422接口送来的数据同时进行并行处理;各路输入信息按预定格式进行融合与输出;数据输出速率以高速同步422口的帧同步脉冲为源,如果高速同步422口异常不影响总线数据和其它422口的数据融合与输出功能。在CPU发生异常或总线数据异常时不影响其它422口数据的融合与输出功能;能够对从总线上接收的数据进行二次筛选、组包,并发送往总线,供其它设备接收。

系统设计



信息处理机

相关帖子

沙发
GoldSunMonkey|  楼主 | 2012-12-10 21:28 | 只看该作者

CPU选择

  4M 1553B总线数据的采集,由4M总线智能通讯接口管理,经CPU接收、组包,再回到4M总线,发送至FPGA进行采集。CPU选择Atmel公司的AT91FR40162S, 内部自带256KB的SRAM和容量为2M x 8b FLASH存储器,主频最高可达75MHz。该ARM的等待电路由硬件等待逻辑产生,在FPGA内部实现。ARM外部中断源主要有:4M 1553B通讯控制器中断;20ms缓冲区切换中断。其中,4M 1553B通讯控制器中断信号经过FPGA整形后送入ARM。20ms缓冲区切换中断提供给FPGA内部各个同步、异步通讯IP组帧状态机用于缓冲区切换。

3路输入数字量接口

  3路输入数字量,码速率分别为:1.28Mbps、115.2Kbps、38.4Kbps的数据流,数据流在FPGA内部经过串并转换将接收的数据存储在数据缓冲区A和数据缓冲区B中,再经过状态控制机来控制数据的不断更新。

  同步422接口输出

  采用两路单向RS422同步串行通讯接口,差分传输,一路为串行数据,一路为时钟数据 ,采用双线制传输。输出码速率2.56Mbps,15位加扰。

  FPGA设计

  当3 路输入数字量的数据流和4M的1553数据在20ms的时间内传输时,所需的内存约为10KB。

  缓冲区存储切换有2种方式:

  1)当1.28M的同步串行接口接收的数据个数达到64x100时切换;

  2)由内部的20ms定时器切换。

  因此当ARM异常后,能够确保除4M总线数据之外的其它通道正常输出。当1.28M的同步串行接口异常后,FPGA内的状态机自动切换到内部的20ms定时器进行切换。FPGA设计及IP核通过SPARTAN3AN集成开发环境进行仿真验证。

  FPGA选用Xilinx公司的SPARTAN3AN系列的XC3S700AN-4FG484,电压1.2~3.3V,电流50mA~2A,主频最高达70MHz以上。

  地面单元测试仪的设计

  单元测试仪(图2)主要完成对信息处理机各种功能和参数的测试,模拟产生弹上机的所有输入信号,并测试其所有输出信号,可用于信息处理机的生产调试、出厂测试和外厂维修。

  单元测试仪由便携式工控机内插相应PCI板卡和相应软件程序组成,PCI板卡为1块COM通讯测试板卡,其主要实现和弹上高速内总线4Mbps(或以上)1553B总线接口,在软件的控制下,向弹上发送各种测试命令、并接收弹上机的测试结果。


图2 地面单元测试仪框图

使用特权

评论回复
板凳
GoldSunMonkey|  楼主 | 2012-12-10 21:28 | 只看该作者

 系统实现

  信息处理机的系统工作流程见图3,具体包括:

  (1)上电复位及初始化

  上电后,FPGA和ARM同时复位,进行初始化过程,其中FPGA初始化中, FPGA内部寄存器和逻辑状态的初始值、内部缓冲区数据清零依靠复位信号来完成,其中的“FPGA参数设定”由监控程序负责执行或由FPGA使用缺省参数完成。

  如果上电或复位时出现问题,FPGA使用缺省参数自动初始化所有参数并自动进行后续工作。

  (2)20ms缓冲区切换信号同步

  完成初始化后,FPGA内部的“20ms缓冲区切换信号”生成逻辑,自动执行和“1.28M同步输入串口”的同步过程,同步过程中不向外发送任何数据,一旦同步后,会给出同步锁定信号Sync Locked=“1”,所有通道的数据采集工作均开始,进入遥测信息接收过程。

  (3)遥测信息接收

  通道的数据采集都以FPGA内部产生的“20ms缓冲区切换信号SwitchBuf”为20ms周期标志进行缓冲区的切换(双端口),分别为A,B两个缓冲区。

  1.28M通道在20ms内应完成32x100=3200 Bytes的数据接收。并根据字计数器反转当前的SwitchBuf信号。

  4M 1553B通道应由ARM完成4M 1553B总线遥测数据的接收、过滤、打包,形成20ms内约1500 Bytes的遥测数据包填入分配给它的包缓冲区,由FPGA自动生成对应的包长度信息放入一个包长度FIFO中。此后,ARM重新开始下一20ms数据接收工作,,如此反复循环下去。组帧状态机(MFSTM)在组帧过程中,一旦发现包长度FIFO不空,就从包缓冲区FIFO中读取对应长度的数据包,按照规定格式和位置填入数据融合表。


图3 信息处理机工作流程

  38.4K异步串行输入通道由FPGA的UART IP核完成串行输入数据的接收,IP核根据字间隔是否超过2个字的接收时间来判断是否完成一帧的接收,原理和1553总线数据的接收相同。

  115.2K异步串行输入通道由FPGA的UART IP核完成串行输入数据的接收.缓冲区由一个FIFO组成。组帧状态机会随时查询该FIFO空满状态,若不空,则就开始连续的读取过程,每间隔200μs从FIFO中读取一个数据并按照规定格式和位置填入数据融合表,直到该FIFO的数据取完为止,若为空,则新帧对应通道的位置数据填零。


使用特权

评论回复
地板
GoldSunMonkey|  楼主 | 2012-12-10 21:28 | 只看该作者

(4)组帧

  组帧工作即遥测数据的数据融合,将各路遥测信息按照给定的数据融合格式组织成一个完整的100帧(1帧200us,100帧20ms)格式进行发送,该功能由设计在FPGA内部“组帧状态机(MFSTM)IP”完成。

  (5)数据融合表

  上电复位后,组帧状态机MFSTM等待同步锁定信号Sync Locked=“1”后开始工作,并根据20ms缓冲区切换信号SwitchBuf进行周期性的切换。按照数据融合表设计好的顺序依次访问1.28M同步输入串口缓冲区、4M 1553B总线数据缓冲区、115.2K异步输入串口缓冲区、38.4K异步输入串口缓冲区等等,并读取指定数量的数据依次填入本次20ms的数据融合表中,重复100次,从而完成表中1~100行数据的填写。数据融合表的数据结构设计成FIFO, 使用FIFO可以平衡快速的组帧状态机和慢速的发送状态机之间的速度差异,使发送的数据流保持在2.56Mbps的波特率之下,持续发送。
(6)发送

  数据融合表的发送则由“发送状态机(SendSTM) IP”完成。它以数据融合表FIFO、2.56M发送时钟为输入,一旦启动就不再停止。发送状态机首先查询数据融合表FIFO, 若FIFO为空,则等待;若FIFO不空,则以2.56M/8的固定时钟频率持续读取数据融合表FIFO的数据,再送入“15段加扰器”进行加扰,加扰后的数据和时钟经RS-422驱动电路转化为RS-422差分形式发送给加密器,即2.56M输出。

  (7)1.28M同步输入串口故障检测

  FPGA中的故障检测单元(FDU)负责检测1.28M同步输入串口的输入信号是否正常。当故障检测单元FDU发现1.28M同步输入串口产生的SwitchBuf信号的周期和晶振产生的20ms时钟周期误差超过△T(如±2ms),则认为1.28M同步输入串口故障,立即将SwitchBuf信号切换到由晶振分频产生的20ms时钟上。


使用特权

评论回复
5
GoldSunMonkey|  楼主 | 2012-12-10 21:28 | 只看该作者

  系统仿真

  以下为相关软件对系统主要功能进行的仿真:


图4 ISE编译后得出的FPGA资源利用情况

图5 数据融合表的仿真结果

数据融合表的结构为100行,64列,第1-32列为高速同步接口数据,第33-50列为总线数据,第51、52列分别为115.2K、38.4K接口数据,还有少量模拟量数据、全帧计数、同步码组等。



图6 数据融合表输入及输出的对比
  

  由于组帧速度远比读出速度快,所以分两个图显示。


图7 2.56M发送数据

    结语

  用FPGA代替常规处理器实现多路数据的采集、融合并实时发送,利用FPGA丰富的可编程逻辑资源和内部存储器进行逻辑设计,大大减少了外围元器件种类和数量,提高了系统的处理和I/O带宽。

  同时,FPGA在航天领域的应用也推动了可编程技术的发展。
参考文献:
  [1] Spartan-3AN FPGA Family Data Sheet. Xilinx公司,DS557, 2007
  [2] 孙航.Xilinx可编程逻辑器件的高级应用与设计技巧.北京电子工业出版社, 2009
  [3] 刘蕴才. 遥测遥控系统(第一版)北京:国防工业出版社, 2000
  [4] 薛小刚等.EDA先锋工作室.Xilinx ISE 9.X FPGA/CPLD设计指南. 人民邮电出版社, 2007
  [5] 刘明业等.集成电路/计算机硬件描述语言VHDL高级教程.清华大学出版社, 2003


使用特权

评论回复
6
gaochy1126| | 2012-12-10 23:38 | 只看该作者
猴哥,需要详细讲解呀

使用特权

评论回复
7
jakfens| | 2012-12-11 14:19 | 只看该作者
这个牛 我喜欢 军工啊

使用特权

评论回复
8
xjsxjtu| | 2012-12-11 20:05 | 只看该作者
jakfens 发表于 2012-12-11 14:19
这个牛 我喜欢 军工啊

我喜欢姑娘。哈哈

使用特权

评论回复
9
jakfens| | 2012-12-11 20:47 | 只看该作者

使用特权

评论回复
10
GoldSunMonkey|  楼主 | 2012-12-11 20:48 | 只看该作者
上面的除了我都是流氓;P

使用特权

评论回复
11
gaochy1126| | 2012-12-12 00:46 | 只看该作者
GoldSunMonkey 发表于 2012-12-11 20:48
上面的除了我都是流氓

还得除了俺呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:                     2014, 追逐梦想

264

主题

17215

帖子

523

粉丝