陈召全
(中航华东光电有限公司特种显示技术国家工程实验室,安徽芜湖 241002)
目前主流的FPGA 均是基于SRAM 编程的,当系统掉电后,编程信息全部丢失[1-2]。所以,需要在FPGA 的外围采用非易失性器件Flash、EEPROM 来存储代码,在系统上电的时候,将编程信息读入FPGA 内部,形成特定功能的电路。在FPGA 调试过程中可以采用JTAG 方式下载程序,系统调试完成,在产品出厂前需要下载配置代码到非易失性器件中。在产品联试或者使用中出现问题,或者用户功能升级时,都需要重新升级非易失性器件中的代码[3]。此时就需要打开产品的外壳,如果产品是作为部件安装在用户的系统中,就需要将用户的相关设备先拆除。这种操作还会带来一系列的问题,尤其是特种设备,其使用环境特殊,要么人员不能靠近,要么拆卸困难,要么保密的原因不能开箱。在这些情况下,就要通过在线的方式将代码烧写进非易失性器件,避免开箱操作。文中为了解决此问题,提出了一种FPGA 在线升级解决方案,同时考虑到加载过程中可能断电,或者其他原因引起加载中断。如果不加以保护的话,会导致原始数据丢失,FPGA 无法启动,就不得不开箱重新烧写,因此提出了双主程序分区的方法,能有效地解决这个问题,提升了可靠性。
文中在一款机载显示模块中实现FPGA 在线升级功能,以提升产品的维护性和可靠性。产品中采用Xilinx 的Artix-7 系列FPGA,采用主动SPI 方式对FPGA 进行配置,对应的SPI Flash 型号为N25Q064A。产品对外的通信方式为RS422[4-5],通过此接口接收主机信号,进行亮度调节、信号参数调整、发送系统工作状态等信息。……