CN108037943B - 一种基于nios ii的fpga在线升级方法 - Google Patents

一种基于nios ii的fpga在线升级方法 Download PDF

Info

Publication number
CN108037943B
CN108037943B CN201711298839.8A CN201711298839A CN108037943B CN 108037943 B CN108037943 B CN 108037943B CN 201711298839 A CN201711298839 A CN 201711298839A CN 108037943 B CN108037943 B CN 108037943B
Authority
CN
China
Prior art keywords
fpga
data
nios
configuration
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711298839.8A
Other languages
English (en)
Other versions
CN108037943A (zh
Inventor
陈建国
李金全
王绍新
赵兰保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hwa Create Technology Corp ltd
Original Assignee
Hwa Create Technology Corp ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hwa Create Technology Corp ltd filed Critical Hwa Create Technology Corp ltd
Priority to CN201711298839.8A priority Critical patent/CN108037943B/zh
Publication of CN108037943A publication Critical patent/CN108037943A/zh
Application granted granted Critical
Publication of CN108037943B publication Critical patent/CN108037943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及FPGA芯片领域,公开了一种基于NIOS II的FPGA在线升级方法,使FPGA在线在AS配置模式下无需借助外部控制器芯片即可对FPGA进行重配置。本发明FPGA内部嵌入NIOS II处理器的IP核作为控制器,并集成外部串口、网口;系统上电或复位时,NIOS II处理器启动定时器,关闭看门狗程序,若在限定的时间内NIOS II处理器没有从串口或网口接收到数据,则从配置FLASH芯片读取FPGA配置文件据,进入用户模式;若接收到数据,且接收到的数据为升级数据,则将升级数据写入配置FLASH芯片,升级数据接收、写入完毕后启动看门狗程序,触发系统复位,完成FPGA的在线升级。本发明适用于FPGA配置。

Description

一种基于NIOS II的FPGA在线升级方法
技术领域
本发明涉及FPGA芯片领域,特别涉及一种基于NIOS II的FPGA在线升级方法。
背景技术
FPGA具有灵活可编程的特点,可作为专用卫星导航芯片原型设计的开发平台。基于SRAM 工艺的FPGA在掉电后配置数据会丢失,需要增加一个外部配置FLASH芯片用于保存FPGA配置数据,比如EPCS64,EPCQ256等。上电后,需从配置FLASH芯片读取配置数据流并加载到 FPGA,FPGA才能正常运行。
现有常用的FPGA配置方式有:主动串行模式(AS)和被动串行模式(PS),AS模式下FPGA 提供配置时钟信号DCLK,PS模式下其它器件向FPGA提供配置时钟信号DCLK。AS配置模式框图1所示。
AS模式下首次启动需通过FPGA的JTAG口将FPGA配置文件烧录到配置flash芯片中,烧录完毕后断电。下次上电时FPGA主动从配置flash芯片中读到配置数据,完成启动。PS配置模式框图如图2所示。
PS模式下首次启动需通过控制器的JTAG将FPGA配置文件烧录到flash芯片中,后续可通过控制器的串口、网口等外部接口对flash芯片进行烧录,更新FPGA配置文件,烧录完毕后断电。下次上电时控制器从flash芯片中读取FPGA配置数据,并按照一定的时序发送给 FPGA,FPGA接收完毕后完成启动。
现有AS配置模式每次FPGA升级时都需要连接FPGA的JTAG口,而将FPGA集成到整个系统中后,系统对外接口通常不会预留JTAG口,升级时需进行拆卸,费时费力。现有PS配置模式可通过串口、网口等系统对外接口对FPGA进行重配置,解决了AS模式下升级不方便的问题。但目前FPGA期间密度越来越大,配置数据也越来越大,达几十兆甚至上百兆比特,需要多片flash芯片才能存储这些配置数据,造成复杂性增加和额外的硬件成本,例如FLASH芯片和控制器芯片成本。
发明内容
本发明要解决的技术问题是:提供一种基于NIOS II的FPGA在线升级方法,使FPGA在线在AS配置模式下无需借助外部控制器芯片即可对FPGA进行重配置。
为解决上述问题,本发明采用的技术方案是:一种基于NIOS II的FPGA在线升级方法,包括如下步骤:
FPGA内部嵌入NIOS II处理器的IP核作为控制器,并集成串口、网口;系统上电或复位时,NIOS II处理器启动定时器,关闭看门狗程序,若在限定的时间内NIOS II处理器没有从串口或网口接收到数据,则从配置FLASH芯片读取FPGA配置文件据,进入用户模式;若接收到数据,且接收到的数据为升级数据,则将升级数据写入配置FLASH芯片,升级数据接收、写入完毕后启动看门狗程序,触发系统复位,完成FPGA的在线升级。
进一步的,还包括:将配置FLASH芯片分为至少4个区域,4个区域分别为区域1、区域 2、区域3以及区域4,区域1用于存储FPGA二级启动程序的配置文件,区域2用于存储FPGA配置文件1,区域3用于存储1FPGA配置文件2,区域4用于存储用户数据。
进一步的,所述FPGA二级启动程序为工厂模式程序。
进一步的,系统上电或复位时,若在限定的时间内NIOS II处理器没有从串口或网口接收到数据,则从配置FLASH芯片读取FPGA配置文件1,进入用户模式1;若接收到数据,且接收到的数据为切换用户模式的指令数据,则从配置FLASH芯片读取FPGA配置文件2,进入用户模式2。
本发明的有益效果是:本发明采用AS配置模式,但结合了PS配置模式的优点,在单片 FPGA内部嵌入NIOS II处理器IP核作为控制器,并集成串口、网口等外设,无需借助外部控制器芯片即可对FPGA进行重配置。NIOS II开发环境集成了配置flash芯片的驱动,避免了PS模式下flash驱动程序开发的麻烦,同时在本发明的配置模式下,配置flash芯片即可存储FPGA配置文件,也可存储用户数据,充分利用了flash的存储空间。
附图说明
图1为AS配置模式框图。
图2为AS配置模式框图。
图3为实施例中FPGA和配置FLASH芯片的连接框图。
图4为实施例中FPGA在线升级方法的流程图。
图5为实施例的结构功能框图。
图中编号:1-4分别为配置FLASH芯片的四个存储区域。
具体实施方式
实施例提供一种基于NIOS II的FPGA在线升级方法,实施例FPGA内部嵌入NIOS II处理器的IP核作为控制器,并集成串口、网口等外设;FPGA采用二级loader的形式启动、升级,如图3所示,FPGA将配置FLASH芯片分为四个存储区域,四个存储区域分别为区域1、 2、3以及4。区域1存储FPGA二级loader程序(工厂模式程序)的配置文件,区域2存储 FPGA配置文件1,区域3存储FPGA配置文件2,区域4存储用户数据。FPGA在线升级的步骤如图4所示:系统上电或复位时,NIOS II处理器启动定时器,关闭看门狗程序;若在限定的时间内NIOS II处理器没有从串口或网口接收到数据,则从配置FLASH芯片的区域2读取 FPGA配置文件1,进入用户模式1;若接收到数据,且接收到的数据为切换用户模式的指令数据,则从配置FLASH芯片的区域3读取FPGA配置文件2,进入用户模式2;若接收到数据,且接收到的数据为升级数据,则将升级数据写入区域2或者区域3,升级数据接收、写入完毕后启动看门狗程序,触发系统复位,完成FPGA的在线升级。
工厂模式程序(loader程序)和用户模式程序(app应用程序)可分开设计,用户模式程序根据应用场合会有所不同,但工厂模式可以通用,方便移植。FPGA工厂模式主要功能是在线升级FPGA应用程序、引导应用程序启动。这些功能主要靠QUANTUS II集成开发环境自带的 FLASH控制器IP和REMOTE_UPDATE IP来实现,建立loader程序的QUARTUS II工程时,配置模式需选为”Remote”。
工厂模式程序在一片FPGA上集成了NIOS II CPU及其外设,功能框图5所示。上电或系统复位时,NIOS II CPU启动定时器TIMER0,关闭看门狗TIMER1。若在限定的时间内NIOS II CPU没有从串口UART模块或网口ETHERNET模块接收到数据,则通过REMOTE-UPDATE模块触发FPGA从配置FLASH芯片读取配置数据,进入用户模式;若接收到升级数据,则通过FLASH 控制器模块将升级数据写入配置FLASH芯片,接收完毕后启动看门狗TIMER1,触发系统复位,重新从工厂模式引导到用户模式,完成FPGA的在线升级。
在具体操作时,为达到上述方法,我可以按照以下方式进行设计:
1.在FPGA开发环境中建立工厂模式工程,编译后生成sof文件,转换为JIC下载文件。
2.通过FPGA的JTAG口将JIC文件烧录到配置FLASH中,烧录完成后掉电。
3.在FPGA开发环境中建立用户模式工程,编译后生成sof文件,转换为RPD配置文件。
4.串口定时发送升级命令到FPGA,系统上电,FPGA进入工厂模式。
5.通过超级终端发送RPD配置文件到FPGA,发送完成后系统自动重启,完成升级。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (2)

1.一种基于NIOS II的FPGA在线升级方法,其特征在于,包括步骤:FPGA内部嵌入NIOSII处理器的IP核作为控制器,并集成串口、网口;将配置FLASH芯片分为至少4个区域,4个区域分别为区域1、区域2、区域3以及区域4,区域1用于存储FPGA二级启动程序的配置文件,区域2用于存储FPGA配置文件1,区域3用于存储FPGA配置文件2,区域4用于存储用户数据;
系统上电或复位时,NIOS II处理器启动定时器,关闭看门狗程序,若在限定的时间内NIOS II处理器没有从串口或网口接收到数据,则从配置FLASH芯片读取FPGA配置文件1,进入用户模式1;若接收到数据,且接收到的数据为切换用户模式的指令数据,则从配置FLASH芯片读取FPGA配置文件2,进入用户模式2;若接收到数据,且接收到的数据为升级数据,则将升级数据写入区域2或者区域3,升级数据接收、写入完毕后启动看门狗程序,触发系统复位,完成FPGA的在线升级。
2.如权利要求1所述的一种基于NIOS II的FPGA在线升级方法,其特征在于,所述FPGA二级启动程序为工厂模式程序。
CN201711298839.8A 2017-12-08 2017-12-08 一种基于nios ii的fpga在线升级方法 Active CN108037943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711298839.8A CN108037943B (zh) 2017-12-08 2017-12-08 一种基于nios ii的fpga在线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711298839.8A CN108037943B (zh) 2017-12-08 2017-12-08 一种基于nios ii的fpga在线升级方法

Publications (2)

Publication Number Publication Date
CN108037943A CN108037943A (zh) 2018-05-15
CN108037943B true CN108037943B (zh) 2021-11-09

Family

ID=62101836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711298839.8A Active CN108037943B (zh) 2017-12-08 2017-12-08 一种基于nios ii的fpga在线升级方法

Country Status (1)

Country Link
CN (1) CN108037943B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874424A (zh) * 2018-06-21 2018-11-23 大唐电信(成都)信息技术有限公司 基于串口协议的fpga安全在线升级方法
CN109828238B (zh) * 2019-02-18 2021-03-02 航天南湖电子信息技术股份有限公司 一种时序/增益控制设备
CN111142916B (zh) * 2019-12-16 2023-09-26 杭州迪普科技股份有限公司 快闪存储器的配置装置及方法
CN111090447A (zh) * 2019-12-23 2020-05-01 杭州和利时自动化有限公司 一种io模块的固件更新方法及相关装置
CN112148341B (zh) * 2020-10-29 2023-11-21 合肥埃科光电科技股份有限公司 一种基于NiosII软核的FPGA在线升级方法
CN112835603A (zh) * 2021-02-20 2021-05-25 山东英信计算机技术有限公司 一种基于WebServer的FPGA远程升级装置及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615030A (zh) * 2009-01-09 2009-12-30 西安邮电学院 一种嵌入式系统测试用的数据采集器
CN102968095A (zh) * 2012-09-11 2013-03-13 上海航天测控通信研究所 一种支持远程加载的分布式波束控制装置
CN103019779A (zh) * 2012-11-30 2013-04-03 北京遥测技术研究所 一种fpga/dsp嵌入式系统的程序更新方法
CN104407878A (zh) * 2014-10-20 2015-03-11 北京航天发射技术研究所 C6000数字信号处理器在线升级方法
CN106020860A (zh) * 2016-05-04 2016-10-12 桥弘数控科技(上海)有限公司 一种fpga的更新方法、装置及系统
CN106775869A (zh) * 2016-12-16 2017-05-31 四川九洲电器集团有限责任公司 一种加载方法及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719808B1 (en) * 2010-01-27 2014-05-06 Altera Corporation Method and apparatus for using object files to provide reliable program operation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615030A (zh) * 2009-01-09 2009-12-30 西安邮电学院 一种嵌入式系统测试用的数据采集器
CN102968095A (zh) * 2012-09-11 2013-03-13 上海航天测控通信研究所 一种支持远程加载的分布式波束控制装置
CN103019779A (zh) * 2012-11-30 2013-04-03 北京遥测技术研究所 一种fpga/dsp嵌入式系统的程序更新方法
CN104407878A (zh) * 2014-10-20 2015-03-11 北京航天发射技术研究所 C6000数字信号处理器在线升级方法
CN106020860A (zh) * 2016-05-04 2016-10-12 桥弘数控科技(上海)有限公司 一种fpga的更新方法、装置及系统
CN106775869A (zh) * 2016-12-16 2017-05-31 四川九洲电器集团有限责任公司 一种加载方法及终端设备

Also Published As

Publication number Publication date
CN108037943A (zh) 2018-05-15

Similar Documents

Publication Publication Date Title
CN108037943B (zh) 一种基于nios ii的fpga在线升级方法
EP2442205B1 (en) Method and apparatus for managing power from a sequestered partition of a processing system
EP1938200B1 (en) Initialization of flash storage via an embedded controller
CN109656593B (zh) 基于zynq芯片实现fpga程序远程升级的方法
CN107479913A (zh) 一种fpga配置多启动低资源占用更新方法及实施系统
CN102467209B (zh) 退出低功耗模式时的调试器恢复
AU9725998A (en) Robot device
CN102609286A (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
US20190235858A1 (en) Apparatus and method for configuring or updating programmable logic device
CN102609287A (zh) 一种通过cpu远程更新fpga的装置及其方法
CN103777972A (zh) 基于现场可编程门阵列的系统、配置方法以及升级方法
CN103761088A (zh) 一种适用于arm架构移动设备的多操作系统切换方法
CN103970565A (zh) 一种服务器系统中fpga多途径下载配置实现方法
CN104123154A (zh) 用于升级启动模式的自动进入装置和方法
CN104657161A (zh) 移动终端固件更新方法及装置
CN101556547A (zh) 一种安全远程升级嵌入式Linux内核的方法及系统
CN101620542B (zh) 一种超声成像设备软件数据的兼容更新方法
CN101169729A (zh) 嵌入式系统及其更新应用程序的方法
CN101930373B (zh) 一种片上系统启动的方法和装置
CN104050006A (zh) 一种fpga的更新系统及其更新方法
WO2020118719A1 (zh) 无人飞行器的固件升级方法、固件升级装置、控制装置、无人飞行器及介质
CN102609273A (zh) 一种机器人及其软件升级的方法和系统
CN116560688A (zh) 用于域控制器的软件更新方法
CN201000625Y (zh) 一种现场可编程门阵列在线配置的装置
CN108073412B (zh) 一种基于wifi的fpga无线升级和智能加载的装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant