星载环境FPGA软件在轨重加载的一种方法
扫描二维码
随时随地手机看文章
摘要:FPGA在空间系统中已经广泛应用,为了满足系统可靠性和可扩展性的要求,实现FPGA软件的在轨重加载迫在眉睫。根据FPGA的加载配置原理,以Xilinx公司的Virtex-Ⅱ系列FPGA为实例,介绍了FPGA在轨重加载的硬件电路设计以及软件设计。经过实验室测试验证,该设计方法合理可行,满足星载环境下FPGA软件在轨编程及重加载的设计需求。
关键词:FPGA;在轨重加载;在轨编程;星载环境
0 引言
FPGA已经广泛应用于星载信号处理系统中,然而其在空间环境中的可靠性设计是一个难题。一方面,FPGA软件可能受到外部空间环境影响而产生各种问题,特别是单粒子效应造成的FPGA程序出错,其导致的后果是严重的甚至是灾难性的;另一方面,当FPGA软件本身存在设计缺陷或者由于卫星系统改变应用需求时,若能实现星载环境下FPGA软件的远程更新升级,其软件系统的生命周期便可以得到延长,同时产生的经济效益也是不可估量的。
为此,本文介绍一种星载环境下FPGA软件在轨重加载的方法,通过星上系统的1553B接口接收FPGA配置数据文件,在DSP和CPLD的控制下,灵活地实现FPGA程序的在轨编程及重加载。
1 FPGA加载原理
基于SRAM工艺的FPGA由于在掉电后配置数据丢失,因此需要在上电后对其进行加载,而配置数据被保存在外部的非易失存储器中。
Xilinx公司的Virtex-Ⅱ系列FPGA通过芯片配置管脚MODE PIN(M0,M1,M2),可以实现5种配置模式,详见表1。
上述5种模式中,JTAG边界扫描模式具有最高的优先级,其加载方式是通过专用JTAG口对FPGA进行访问。SelectMAP模式实际上就是并行模式,其加载时的数据访问位宽为8 b,加载过程与串行模式相同。主模式和从模式的区别在于时钟是由FPGA自身提供,亦或是外部提供,当FPGA主动输出时钟时即为主模式,反之即为从模式。
FPGA的配置过程如图1所示,主要由3个阶段8个步骤组成。FPGA在Slave SelectMAP模式下配置过程中使用的信号包括:PROG_B,INIT_ B,CCLK,CS_B,RDWR_B,DATA[0:7],BUSY,DONE,其时序关系如图2所示。
根据图1和图2,Slave SelelctMAP模式下,FPGA加载过程描述如下:
第1阶段:启动和初始化,分为3个步骤:
FPGA上电正常后,通过PROG_B引脚低脉冲进行FPGA异步复位,使得FPGA内部逻辑清零;PROG_B拉高后,停止外部复位,INIT_B引脚会在自动产生一个由低到高的跳变,指示FPGA内部初始化完成,可以进行数据下载;FPGA检测其专用的配置模式管脚M0~M2的电平,从而确定加载模式。
第2阶段:比特流加载,分为4个步骤。INIT_B信号变高后,不需要额外的等待时间,Virtex器件就可以立即开始数据的配置。比特流数据在外部CCLK信号上升沿按字节方式置入。其中的Synchronization(同步)、Device ID Check(检测器件ID号和配置数据中的ID号是否匹配)、Load Configuration Data(下载数据流)和CRCCheck(CRC校验)对用户是完全透明的,同步字、配置数据中ID号和CRC校验和都是在生成配置数据文件时和配置数据一起打包,嵌入在配置数据文件当中。
第3阶段:Startup启动。在成功校验CRC码位后,FPGA进入Startup状态。它是由8相状态机实现的,中间包括等待DCM锁相、DCI匹配等几个状态,最后FPGA释放外部DONE引脚,对外输出高阻态,由外部上拉高,指示FPGA加载成功。
2 硬件电路设计
本系统硬件组成原理框图见图3,主控DSP芯片选用TI公司SMQ320LC31,通过1553B接口实现与星上控制计算机的通信,FPGA选用XILINX公司VIRTEX-Ⅱ系列芯片XC2V3000,其配置芯片选用XCF32P,DSP通过CPLD实现对FPGA加载模式的控制。
图3所示的电路框图可以分为以下功能模块:配置数据接口单元、配置信号发生单元、时序状态转换、自举配置单元、FPGA功能单元,其逻辑关系如图4所示。
各功能单元的功能和性能描述如下:
(1)配置数据接口单元:该单元通过1553B接口从星上控制计算机接收FPGA配置数据。
(2)配置信号发生单元:该单元产生配置FPGA所需的配置数据和时序。
(3)状态时序转换单元:该单元一方面实现FPGA配置方式的状态切换:自举配置;另一方面将配置信号发生单元产生的信号转换成FPGA配置接口所需的信号。
(4)自举配置单元:即PROM,保存预先装好的FPGA配置数据。
(5)FPGA功能单元:即FPGA,接收来自于PROM的配置数据或者来自于DSP(经过CPLD转换)的配置数据。
该系统在实际工作过程中,通过DSP和CPLD的灵活控制,可以实现多种配置模式的切换:
(1)上电过程直接通过PROM对FPGA进行配置加载;
(2)上电过程直接通过DSP片外FLASH对FPGA进行配置加载;
(3)DSP实时接收星上控制计算机传送的配置数据,实现对FPGA的配置加载;
(4)DSP实时接收星上控制计算机传送的配置数据,将其烧写至PROM;
(5)DSP实时接收星上控制计算机传送的配置数据,将其烧写至FLASH。
3 软件设计
3.1 DSP软件设计实现
系统上电之后,DSP上电后,首先进行状态检测,判断上电时是PROM串行加载还是FLASH并行加载。然后,星上控制计算机通过1553B接口向DSP传送FPGA配置数据,并发送配置模式控制命令,DSP根据接收的命令选择配置方式,按照配置时序向CPLD的相应寄存器写配置数据以及配置控制信号。
DSP软件功能框图如图5所示,软件主要完成两个功能:功能一为完成1553B接口数据的传输,并存储到SRAM中,然后根据1553B接口的控制命令决定进行配置的方式或者转存到FLASH中;功能二为模块根据命令和FPGA配置时序产生配置信号,并输出给CPLD配置寄存器。
整个DSP软件程序包含以下几个主要函数:1553B接口数据传输和处理函数、FLASH擦除与装订函数、SelectMap配置函数和中断处理函数。软件从main函数入口开始运行,进行相应的初始化设置和配置,并开启中断,然后进入无限循环状态,等待外部中断的到来并进行相应的中断服务处理。详细软件流程图如图6所示。
3.2 CPLD软件设计实现
系统上电之后,DSP可以根据实际工作需要给出FPGA的两种加载方式:PROM串行加载、SelectMAP并行加载,两种方式均通过CPLD进行。
当进行PROM从串模式加载时,配置比特流从PROM中读取,具体加载实现流程如图7所示。
当CPLD接到DSP发送的进行SelectMAP并行加载命令时,CPLD根据DSP端口的映射进行SelectMAP并行加载,SelectMAP加载具体实现流程如图8所示。
在SelectMAP并行加载过程中,CPLD负责在DSP和FPGA之间建立一个同步接口,将DSP传送的配置数据包进行相应的处理,生成满足Select MAP加载时序的时钟、数据及控制信号,传输至FPGA,实现对FPGA的SelectMAP加载。
CPLD软件采用了一个状态机,实现接收DSP命令进行PROM从串加载或者进行SelectMAP并行加载,状态机的流程如图9所示。
3.3 加载文件格式
对FPGA进行加载的文件格式为*.bin文件,通过bitgen产生,*.bin文件只包含FPGA配置数据,不包含任何文件信息。
4 测试验证
建立测试环境,利用测试计算机(含1553B板卡及控制软件)模拟星上控制计算机,对该FPGA重加载电
路进行测试,获得如下测试结果:
(1)在DSP软件中置PROM加载状态,上电后,FPGA从PROM加载,FPGA运行状态正常;
(2)在DSP软件中置SelectMAP加载状态,上电后,DSP从FLASH中读取配置数据,通过CPLD对FPGA进行加载,FPGA运行状态正常;
(3)在DSP软件中置SelectMAP加载状态,上电后,测试计算机通过1553B将新的配置数据传输至DSP,DSP通过CPLD对FPGA进行加载,FPGA运行状态正常。
(4)上电后,测试计算机通过1553B将新的配置数据传输至DSP,DSP将配置数据烧写至FLASH或者PROM,并置加载状态,上电后能实现新配置数据的加载。
通过以上测试表明,该电路具备FPGA星载环境下的在轨重加载功能。
5 结论
本文介绍了星载环境下通过1553B接口实现FPGA在轨重加载的方法,并完成了相应的硬件电路设计实现,通过实验室测试验证,证明本文所描述的星载环境FPGA在轨重加载方法设计思想合理可行,不仅能满足星载环境下FPGA软件的更新升级,还能实现FPGA软件功能模块的自身故障修复,并且能灵活地实现卫星应用功能的领域扩展,最大限度提高卫星系统的利用率。