新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 一种远程在线更新FPGA程序的方法

一种远程在线更新FPGA程序的方法

作者:时间:2012-02-22来源:网络收藏

1 概述
现场可编程门阵列(Field Programmable Gate Array,)器件具有高密度、低功耗、高速、高可靠性等优点,在航空航天、通信、工业控制等方面得到了大量应用。的处理器分为软核和硬核,并且软核处理器具有高度的灵活性和可配置性。
由于器件采用的是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集成的网络及串行接口来完成通信工作。

本文引用地址:http://www.eepw.com.cn/article/190734.htm

a.jpg


FPGA采用Altera公司的CycloneIII系统的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多种可配置的时钟源,最高支持100 MHz的外部时钟源,具有16 Mb的存储空间,足够满足一般的FPGA配置文件和Nios程序文件的存储需要。

3 更新程序处理流程
更新FPGA的配置文件和NiosII的应用程序的流程如图2所示。

b.jpg


把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并编程为一个可以直接执行的、包含FPGA配置文件和NiosII程序文件的二进制BIN文件。然后把该文件通过X-modem协议由上位机系统传输给NiosII的应用程序。NiosII的应用程序接收到完整的BIN文件后,把该BIN文件写入到EPCS Flash中。最后,Nios II的应用程序停止看门狗,程序重新启动,即完成了FPGA的在线更新程序的过程。

4 合并程序文件
Nios II的启动要经历两个过程:
①FPGA器件本身的配置过程。如果内部逻辑中使用了NiosII,则配置完成的FPGA中包含有NiosII软核CPU。
②NiosII本身的应用过程。一旦FPGA配置成功后,NiosII就被逻辑中的复位电路复位,从reset地址开始执行代码。
Nios II IDE将FPGA的配置文件(.sof文件)和应用程序(.elf文件)转成flash格式文件,转换后的flash格式文件是一种S-Record格式数据,包含如下区域:type>length>address>data>checksum>。各字段的意思分别如下:type>表示记录的类型;length>表示数据的长度;address>表示数据写入的起始地址,该字段的长度取决于type>的取值;data>表示存储的数据;checknum>表示校验位。

fpga相关文章:fpga是什么



上一页 1 2 3 下一页

关键词: FPGA 远程 程序 方法

评论


相关推荐

技术专区

关闭