赵参,王小龙,郝国锋
(中科芯集成电路有限公司,江苏无锡 214072)
在航空航天、工业控制、雷达等领域,以现场可编程门阵列(FPGA)+数字信号处理器(DSP)设计的设备使用的非常广泛,这些设备通常需要不断地更新完善系统软件[1]。对于大型系统有多个设备和机箱的情况下,通过JTAG 接口连接仿真器的方式进行更新系统软件,不仅耗时耗力,而且有一定的风险,因此不利于设备的维护和管理[2]。
文中设计了基于MicroBlaze 软核的远程更新系统,把多个设备和PC 机通过交换机连接在同一个网络中,上位机设定设备对应的IP 地址,可以对相应的设备程序进行更新,通过更改不同的IP 地址,可以对多个设备进行更新,这样可以完成对整个系统的更新[3]。通过远程更新的方式,使得FPGA 和DSP 更新程序的方式更加便捷,有效提高效率。
远程更新系统的主要组成如图1 所示,系统主要包括上位机、PHY、FPGA、DSP 和FLASH。上位机通过网络连接到PHY,PHY 芯片连接到FPGA,FPGA通过SPI 接口下发更新应用程序的数据到FLASH,FLASH 用于存储FPGA 的应用程序。另外,FPGA 通过UART 和DSP 进行数据交互,把DSP 的应用程序存储到DSP 片内的FLASH 中[4-5]。

图1 硬件系统结构框图
FPGA 的远程更新功能采用了QuickBoot 的方法,通过快速、健壮的配置方法和高效的基于HDL系统编程设计的互补组合,将编程方法与基于特殊配置头的特殊配置方法集成在一起,实现了可靠的远程更新功能[6-7]。FPGA 的程序加载运行是通过读取FLASH 中的数据进行的,FLASH 包括3 个部分:Header、golden bitstream area 和update bitstream area。Header 包括关键开关字和热启动跳转序列。……