用FPGA实现Nios II嵌入式系统配置技术
时间:09-28
来源:互联网
点击:
现场可编程门阵列(FPGA,Field Programmable Gate Array)是一种高密度可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置进芯片内部的静态配置数据存储器(SRAM )来实现的,具有可重复编程性,可以灵活实现各种逻辑功能。由于FPGA器件采用的是SRAM 工艺,在断电的情况下FPGA内的配置数据将丢失。所以,在典型的采用FPGA器件的电子系统中通常将FPGA 的配置数据存放于其兼容的SPROM 中,上电时由控制电路将SPROM中的配置数据装入FPGA器件中。但是通常的SPROM价格昂贵,且是一次性,不利于FPGA程序的更新,所以有必要分析FPGA 的配置原理,采用廉价、能重复使用的方式配置FPGA。
本文主要根据Altera公司手册及以前的经验,设计和完成了一种新的FPGA配置文件下载更新的方法。其主要原理是在每次启动系统时,由配置控制器从Flash中读出FPGA配置文件,再下载到FPGA中以完成器件的配置功能。当系统需要升级更新FPGA配置文件时,可通过网络或者由主机通过JTAG(Joint Test Action Group)接口(未联网时)将配置文件发送给基于Nios II处理器的嵌入式系统中,由Nios II处理器更新系统中的Flash。当Flash内容更新后,系统就可实现在加电时由配置控制器自动将配置文件下载到FPGA中。而配置控制器是采用复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device),主要功能是实现并串转换。这样在不需要任何硬件动作和专业软件的情况下,只需要进行常规软件操作就可以更新FPGA的配置文件。不仅节约了成本,还有效地缩小了系统体积,有利于以后系统工程的升级更新。
1 基于Nios II的嵌入式系统简介
Nios II是Altera公司在第一代软核处理器Nios的基础上于2004年5月为其FPGA产品配套开发的软核CPU。Nios II是一种采用流水线技术、单指令流的基于RISC技术的通用嵌入式软核处理器、哈佛体系结构,地址、数据、指令均为32位,最高性能可达到200DMIPS (Dhrystones MIPS)。Nios II系统中的外设具有可配置性,用户可根据实际应用来裁剪,并且Nios II处理器有很好的自定义指令支持,大部分指令均可以在一个时钟周期内完成,这也是可配置处理器的优势所在。Nios II在逻辑功能上是32位的精简指令集CPU;而在实现方式上,它是在FPGA上通过编程方式实现的,这也是与传统的CPU一个根本差别。Nios II的总线方式也采用了一种简单的总线体系结构——Avalon总线。该软核CPU为可编程片上系统SOPC给用户提供了一套综合解决方案,它可以与用户自定义逻辑结合构成SOC系统,并下载到Altera的FPGA 芯片中,使得FPGA在嵌入式系统领域的地位越来越重要。
基于Nios II的嵌入式系统主要实现了绞线式列车总线(WTB,Wire Train Bus) 网络节点机的功能,该系统是基于SOPC技术,首先定制Nios II的嵌入式CPU、必要的外部和相关配置的芯片,然后按照WTB标准和Nios II特有的Avalon总线接口设计并通过VHDL实现MAU的功能,由Nios II来控制WTB网络通信功能。基于Nios II嵌入式软核WTB网络节点机硬件体系结构主要由FPGA、Flash nemory、SSRAM Memory、MAX7000配置控制器等硬件组成。FPGA 采用Altera公司的Cyclone系列的EP1C6Q240C8,使用Altera公司的MAX7000系列的EPM7256配置控制器完成对EP1C6Q240C8的配置,基于Nios II的嵌入式系统的原理图如图1所示。
其中图中的JTAG2表明有2个JTAG接口,一个用来在线配置调试,一个用来下载更新配置文件。
2 FPGA 器件的配置方式
FPGA的配置方式分为主动方式(AS,Active Serial)、被动方式(PS,Passive Serial)和JTAG方式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,由PLD器件引导配置操作过程,它控制着外部存储器和初始化过程,自动将配置数据从相应的外存储器读入到SRAM 中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。
下面对基于ICR(In-Circuit Reconfigurability)FPGA器件的配置方式进行详细分析:
(1) 主动串行方式(AS,Active Serial):主要使用EPC配置器件,适应用低速设备的配置;
(2) 被动串行方式(PS,Passive Seria1):使用配置控制器的串行接口;
(3) 被动并行同步方式(PPS,Passive Parallel Synchronous):使用配置控制器的并行同步接口;
(4) 被动并行异步方式(PPA,Passive Parallel Asynchronous):使用配置控制器的并行异步接口;
(5) 边界扫描方式(JTAG,Joint Test Action Group):使用JTAG下载电缆。
基于AS方式配置使用EPC配置器件进行配置时,首先将配置文件从计算机下载到EPC配置器件中去,然后由EPC配置器件控制配置时序对FPGA进行配置。EPC配置器件有一次可编程和可擦写编程型两种:一次可编程型芯片只能写入一次,不适于开发阶段反复调试、修改及产品的方便升级;可擦除编程型价格昂贵,且容量有限,对于容量较大的可编程逻辑器件,需要多片配置芯片组成菊花链进行配置,增加了系统设计的难度。
使用PS、PPS、PPA方式配置时,配置文件事先是以二进制形式保存在系统ROM 中,然后通过配置控制器将配置数据送进FPGA中。PS是通过串行方式送到FPGA中,PPS是以并行方式送给FPGA。FPGA在其内部将并行数据转换成串行数据,该数据转换时需要外部配置时钟的驱动。比较PS和PPS,所用的配置时间几乎相同,而PS的接口方式比较简单,所以嵌入式系统中通常选择PS方式配置FPGA。使用PPA方式配置数据时,配置控制器将配置数据以并行方式送给FPGA,然后在FPGA内部进行数据串行化处理。与PPS不一样的地方是串行化处理时不需要配置外部时钟的驱动,但接口更复杂,工程中很少使用。
边界扫描方式需要连接计算机,无法在现场使用,嵌入式系统中很少采用这种方式。
通过上述的分析,在嵌入式系统中要使用FPGA时,可以采用专用EPC配置器件、PS、PPS、PPA和CPLD配置器件,但是PS、PPS、PPA比专用EPC配置更具成本和体积优势。在PS、PPS、PPA中,PS又是最优的通信方式。所以在嵌入式系统中,选择利用CPLD配置器件的PS被动串行方式来配置FPGA最为合适。
而本文正是利用CPLD配置控制器基于PS方式进行FPGA配置的新方法,在每次启动系统时,由配置控制器从Flash中读出FPGA配置文件的数据信息,再下载到FPGA中以完成器件的配置功能。当系统需要升级更新FPGA配置文件时,可通过网络或者由主机通过JTAG接口(未联网时)将配置文件发送给基于Nios II处理器的嵌入式系统中,由Nios II处理器更新系统中的Flash。当Flash内容更新后,系统就可实现在加电时由CPLD配置控制器自动将配置文件下载到FPGA中。这样在不需要任何硬件动作和专业软件的情况下,只需要进行常规软件操作就可以更新FPGA的配置文件。CPLD配置控制器主要是在配置FPGA时将FLASH存放的配置文件中的并行数据转化为串行数据,实现系统的加电自运行。
本文主要根据Altera公司手册及以前的经验,设计和完成了一种新的FPGA配置文件下载更新的方法。其主要原理是在每次启动系统时,由配置控制器从Flash中读出FPGA配置文件,再下载到FPGA中以完成器件的配置功能。当系统需要升级更新FPGA配置文件时,可通过网络或者由主机通过JTAG(Joint Test Action Group)接口(未联网时)将配置文件发送给基于Nios II处理器的嵌入式系统中,由Nios II处理器更新系统中的Flash。当Flash内容更新后,系统就可实现在加电时由配置控制器自动将配置文件下载到FPGA中。而配置控制器是采用复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device),主要功能是实现并串转换。这样在不需要任何硬件动作和专业软件的情况下,只需要进行常规软件操作就可以更新FPGA的配置文件。不仅节约了成本,还有效地缩小了系统体积,有利于以后系统工程的升级更新。
1 基于Nios II的嵌入式系统简介
Nios II是Altera公司在第一代软核处理器Nios的基础上于2004年5月为其FPGA产品配套开发的软核CPU。Nios II是一种采用流水线技术、单指令流的基于RISC技术的通用嵌入式软核处理器、哈佛体系结构,地址、数据、指令均为32位,最高性能可达到200DMIPS (Dhrystones MIPS)。Nios II系统中的外设具有可配置性,用户可根据实际应用来裁剪,并且Nios II处理器有很好的自定义指令支持,大部分指令均可以在一个时钟周期内完成,这也是可配置处理器的优势所在。Nios II在逻辑功能上是32位的精简指令集CPU;而在实现方式上,它是在FPGA上通过编程方式实现的,这也是与传统的CPU一个根本差别。Nios II的总线方式也采用了一种简单的总线体系结构——Avalon总线。该软核CPU为可编程片上系统SOPC给用户提供了一套综合解决方案,它可以与用户自定义逻辑结合构成SOC系统,并下载到Altera的FPGA 芯片中,使得FPGA在嵌入式系统领域的地位越来越重要。
基于Nios II的嵌入式系统主要实现了绞线式列车总线(WTB,Wire Train Bus) 网络节点机的功能,该系统是基于SOPC技术,首先定制Nios II的嵌入式CPU、必要的外部和相关配置的芯片,然后按照WTB标准和Nios II特有的Avalon总线接口设计并通过VHDL实现MAU的功能,由Nios II来控制WTB网络通信功能。基于Nios II嵌入式软核WTB网络节点机硬件体系结构主要由FPGA、Flash nemory、SSRAM Memory、MAX7000配置控制器等硬件组成。FPGA 采用Altera公司的Cyclone系列的EP1C6Q240C8,使用Altera公司的MAX7000系列的EPM7256配置控制器完成对EP1C6Q240C8的配置,基于Nios II的嵌入式系统的原理图如图1所示。
其中图中的JTAG2表明有2个JTAG接口,一个用来在线配置调试,一个用来下载更新配置文件。
2 FPGA 器件的配置方式
FPGA的配置方式分为主动方式(AS,Active Serial)、被动方式(PS,Passive Serial)和JTAG方式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,由PLD器件引导配置操作过程,它控制着外部存储器和初始化过程,自动将配置数据从相应的外存储器读入到SRAM 中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。
下面对基于ICR(In-Circuit Reconfigurability)FPGA器件的配置方式进行详细分析:
(1) 主动串行方式(AS,Active Serial):主要使用EPC配置器件,适应用低速设备的配置;
(2) 被动串行方式(PS,Passive Seria1):使用配置控制器的串行接口;
(3) 被动并行同步方式(PPS,Passive Parallel Synchronous):使用配置控制器的并行同步接口;
(4) 被动并行异步方式(PPA,Passive Parallel Asynchronous):使用配置控制器的并行异步接口;
(5) 边界扫描方式(JTAG,Joint Test Action Group):使用JTAG下载电缆。
基于AS方式配置使用EPC配置器件进行配置时,首先将配置文件从计算机下载到EPC配置器件中去,然后由EPC配置器件控制配置时序对FPGA进行配置。EPC配置器件有一次可编程和可擦写编程型两种:一次可编程型芯片只能写入一次,不适于开发阶段反复调试、修改及产品的方便升级;可擦除编程型价格昂贵,且容量有限,对于容量较大的可编程逻辑器件,需要多片配置芯片组成菊花链进行配置,增加了系统设计的难度。
使用PS、PPS、PPA方式配置时,配置文件事先是以二进制形式保存在系统ROM 中,然后通过配置控制器将配置数据送进FPGA中。PS是通过串行方式送到FPGA中,PPS是以并行方式送给FPGA。FPGA在其内部将并行数据转换成串行数据,该数据转换时需要外部配置时钟的驱动。比较PS和PPS,所用的配置时间几乎相同,而PS的接口方式比较简单,所以嵌入式系统中通常选择PS方式配置FPGA。使用PPA方式配置数据时,配置控制器将配置数据以并行方式送给FPGA,然后在FPGA内部进行数据串行化处理。与PPS不一样的地方是串行化处理时不需要配置外部时钟的驱动,但接口更复杂,工程中很少使用。
边界扫描方式需要连接计算机,无法在现场使用,嵌入式系统中很少采用这种方式。
通过上述的分析,在嵌入式系统中要使用FPGA时,可以采用专用EPC配置器件、PS、PPS、PPA和CPLD配置器件,但是PS、PPS、PPA比专用EPC配置更具成本和体积优势。在PS、PPS、PPA中,PS又是最优的通信方式。所以在嵌入式系统中,选择利用CPLD配置器件的PS被动串行方式来配置FPGA最为合适。
而本文正是利用CPLD配置控制器基于PS方式进行FPGA配置的新方法,在每次启动系统时,由配置控制器从Flash中读出FPGA配置文件的数据信息,再下载到FPGA中以完成器件的配置功能。当系统需要升级更新FPGA配置文件时,可通过网络或者由主机通过JTAG接口(未联网时)将配置文件发送给基于Nios II处理器的嵌入式系统中,由Nios II处理器更新系统中的Flash。当Flash内容更新后,系统就可实现在加电时由CPLD配置控制器自动将配置文件下载到FPGA中。这样在不需要任何硬件动作和专业软件的情况下,只需要进行常规软件操作就可以更新FPGA的配置文件。CPLD配置控制器主要是在配置FPGA时将FLASH存放的配置文件中的并行数据转化为串行数据,实现系统的加电自运行。
FPGA 电子 电路 Altera 嵌入式 CPLD MIPS 总线 VHDL 集成电路 Quartus 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)