一种远程在线更新FPGA程序的方法
1 概述现场可编程门阵列(Field Programmable Gate Array,FPGA)器件具有高密度、低功耗、高速、高可靠性等优点,在航空航天、通信、工业控制等
方面得到了大量应用。
FPGA 的处理器分为软核和硬核,并且软核处理器具有
高度的灵活性和可配置性。
由于FPGA 器件采用的是SRAM 工艺,在断电的
情况下FPGA 内的配置数据将丢失,所以需要非易失的存储器来结合FPGA 完
成嵌入式系统的设计。
EPCS(Erasable Programmable Configurable Serial)Flash 属于串行接口Flash,具有接口简单、体积小、配置方便的特点,通常用来存储FPGA 的配置文件和NiosII 的软件可执行代码。
在经过合理的配置后,系统在
上电后就可以从EPCSFlash 中读取这些文件来启动整个系统。
为了能使系统
得到更灵活的应用,充分发挥FPGA 的灵活性、高效性,FPGA 的软硬件程序
都需要方便的更新和升级功能;而当形成产品后,通过JTAG 和NiosII IDE 工
具来联合完成对EPCS Flash 的更新烧写很不方便。
为此,本文结合Altera 公司
提供的工具,提出了一种远程在线更新FPGA 配置文件和NiosII 程序文件的方
法。
2 系统硬件结构系统硬件结构如图1 所示。
系统主要有上位机系统、FPGA 系统、EPCS Flash 三个主体部分。
上位机系统提供人机交互的部分,FPGA 系统包括NiosII 处理器、EPCS 控制器、网络及串行接口和其他外部接
口,EPCSFlash 主要用于存储FPGA 的配置文件和Nios 程序映像文件。
上位机
系统通过FPGA 集成的网络及串行接口来完成通信工作。
FPGA 采用Altera 公司的CycloneIII 系统的EP3C40F48417N 芯片。
它具有
低功耗、高集成度、易于使用的特性。
EPCS Flash 采用Altera 公司的EPCS16SI16N 芯片,它支持多种可配置的时钟源,最高支持100 MHz 的外部。