CN112148341B - 一种基于NiosII软核的FPGA在线升级方法 - Google Patents
一种基于NiosII软核的FPGA在线升级方法 Download PDFInfo
- Publication number
- CN112148341B CN112148341B CN202011183991.3A CN202011183991A CN112148341B CN 112148341 B CN112148341 B CN 112148341B CN 202011183991 A CN202011183991 A CN 202011183991A CN 112148341 B CN112148341 B CN 112148341B
- Authority
- CN
- China
- Prior art keywords
- fpga
- nios
- mirror image
- starting
- soft core
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000004891 communication Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于NiosII软核的FPGA在线升级方法,其步骤是,1、FPGA上运行NiosII软核,用于响应在线升级指令,并读写存储器;2、在存储器中存储两组镜像,启动镜像和工作镜像,3、FPGA上电后载入启动镜像,然后尝试切换到工作镜像,若切换失败则回到启动镜像;两组镜像都能在线升级。本发明能实现方便、稳定的FPGA在线升级功能,并在升级过程中发生意外时,能保证设备能够启动,并重新升级,另外本发明无需增加其他硬件模块,从而降低了成本和设备尺寸限制。
Description
技术领域
本发明涉及电子技术领域,具体的说是一种基于Nios II软核的FPGA在线升级方法,并应用产品为使用Intel FPGA并带有外部通信接口的设备。
背景技术
在工业领域经常使用FPGA(现场可编程门阵列)来实现数据采集、数据处理、数据传输等功能。FPGA通用的固件升级方法是通过FPGA下载器连接JTAG接口来完成的,但是设备通常不会将JTAG接口曝露在外。在一些不方便拆机的情况下,无法通过JTAG接口升级FPGA固件。
FPGA在线升级目前已有多种方案。一种方案是基于MCU和模拟开关,通过MCU控制模拟开关,将FPGA的配置FLASH与MCU引脚相连,实现了通过MCU读写FPGA的配置FLASH。然后再通过串口、USB等外部接口,将FPGA固件发送到MCU,并写入FPGA配置FLASH。另一种方案是使用Intel FPGA并制作两个镜像,一个是启动镜像,集成了嵌入式软核处理器Nios II,用于在线升级,另一个是正常工作镜像。FPGA启动时在Nios II中等待升级指令,若有升级指令,则进入升级状态,通过Intel FPGA的FLASH控制器IP核更新FPGA固件,若等待超时,则加载正常工作镜像。
上述方案中,通过MCU实现FPGA固件升级缺点是增加了硬件成本和电路板尺寸。
第二种方案只能在单独的在线升级程序中更新FPGA固件,限制了在线升级的灵活性,设备启动时需要等待在线更新指令超时,增加了设备启动时间。在FPGA固件更新的过程中,若发生传输错误、中途突然掉电等情况,可能导致设备固件损坏无法启动。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种基于Nios II软核的FPGA在线升级方法,以期能实现方便、稳定的FPGA在线升级功能,并在升级过程中发生意外时,能保证设备能够启动,并重新升级。
本发明为达到上述发明目的,采用如下技术方案:
本发明一种基于Nios II软核的FPGA在线升级方法的特点是应用于由计算机,通信接口,FPGA和FLASH存储器所组成的装置中,并包括如下步骤:
步骤一、FPGA上电初始化,载入FLASH存储器中的FPGA启动镜像;
步骤二、所述FPGA启动镜像尝试载入FLASH存储器中的FPGA工作镜像,若载入成功,则执行步骤三至步骤五,若载入失败,则使能Nios II软核载入Nios II启动镜像,并等待接收指令,执行步骤四和步骤五;
步骤三、所述FPGA工作镜像使能Nios II软核,并利用看门狗定时器开始计时,Nios II软核载入Nios II工作镜像,若载入成功,则向FPGA发送信号,使得看门狗定时器停止计时,并等待接收指令;
若载入失败,则触发看门狗定时器的超时事件,使得FPGA重新回到所述FPGA启动镜像,并使能Nios II软核,载入Nios II工作镜像,等待接收指令;
步骤四、计算机通过所述通信接口向FPGA发送升级指令和升级数据,所述Nios II软核响应升级指令,并将所述升级数据写入到FLASH存储器中的对应位置;
步骤五、所述Nios II软核控制FPGA重新启动。
本发明所述的基于Nios II软核的FPGA在线升级方法的特点也在于:所述FLASH存储器中存储区域包括:FPGA启动镜像、Nios II启动镜像、FPGA工作镜像、Nios II工作镜像;
所述存储区域是根据FPGA配置文件大小以及Nios II软核的镜像大小定义的固定位置;
令所述FPGA启动镜像存储区域的起始地址为FLASH存储器的零地址。
所述升级指令包括:升级数据类型、升级数据长度和升级数据结束命令;
所述升级数据类型包括:FPGA工作镜像、Nios II工作镜像。
与现有技术相比,本发明的有益效果在于:
1、本发明通过从设备通信接口实现了FPGA固件升级而解决了在一些不方便拆机的情况下,无法通过JTAG接口连接到FPGA的问题。
2、本发明的关键点是双镜像设计以及启动流程,包括设备首先载入FPGA启动镜像,然后切换到FPGA工作镜像,以及判断FPGA工作镜像和Nios II工作镜像是否成功启动。
3、本发明设计了双镜像结构,两组镜像都支持固件更新。与现有技术中的第二种方案相比,设备启动时不需要等待更新指令,降低了启动延迟,而且用户可以随时随地更新固件,还可方便地批量更新固件,不需要重新启动设备以进入更新状态。
4、本发明通过对FPGA工作镜像和Nios II工作镜像启动状态的判断,避免了设备无法启动的问题。更新固件只能对FPGA工作镜像和Nios II工作镜像区域进行读写,确保了FPGA启动镜像和Nios II启动镜像保持完好,并在设备启动失败后自动回到FPGA启动镜像。
5、本发明可以在现有设备上实现,无需增加其他硬件模块,从而降低了成本和设备尺寸限制。
附图说明
图1为本发明方法适用的系统硬件框图;
图2为本发明FLASH存储内容图;
图3为本发明FPGA启动流程图。
具体实施方式
下面结合附图及具体实施示例对本发明进行详细描述,不能理解为对本发明的限制。
本实施例中,一种基于Nios II的FPGA在线升级的方法,是应用于由计算机,通信接口,FPGA和FLASH存储器所组成的装置中,并包括如下步骤:
步骤一、FPGA上电初始化,载入FLASH存储器中的FPGA启动镜像;
步骤二、FPGA启动镜像尝试载入FLASH存储器中的FPGA工作镜像,若载入成功,则继续执行步骤三至步骤五,若载入失败,则使能Nios II软核载入Nios II启动镜像,并等待接收指令,执行步骤四和步骤五;
步骤三、FPGA工作镜像使能Nios II软核,并通过看门狗定时器开始计时,Nios II软核载入Nios II工作镜像,若载入成功,则向FPGA发送信号,停止看门狗定时器,并等待接收指令;
若载入失败,则触发看门狗定时器的超时事件,FPGA重新回到FPGA启动镜像,并使能Nios II软核,载入Nios II工作镜像,等待接收指令;
步骤四、计算机通过通信接口向FPGA发送升级指令和升级数据,Nios II软核响应升级指令,将升级数据写入到FLASH存储器中的对应位置;其中,升级指令包括:升级数据类型、升级数据长度和升级结束命令;升级数据类型包括:FPGA工作镜像、Nios II工作镜像;
步骤五、Nios II软核控制FPGA重新启动,载入FLASH存储器中的启动镜像。
FLASH存储器中存储区域包括:FPGA启动镜像、Nios II启动镜像、FPGA工作镜像、Nios II工作镜像、用户数据,各个存储区域是根据FPGA配置文件大小和Nios II软核的镜像大小定义的固定位置,其中,FPGA启动镜像存储区域的起始地址为FLASH存储器的零地址。
实施例:如图1所示,设备采用Intel FPGA,连接了FLASH存储器芯片用于FPGA配置,外部提供了通信接口,用于发送命令和数据传输,实施例中采用串口作为通信接口。
作为一个实施例,在FPGA上实现了Nios II片上系统,包括Nios II软核处理器、片上存储器、UART串口模块、EPCQController模块,其中,EPCQController模块用于读写FLASH存储器。另外FPGA上还添加了RemoteUpdate模块,用于控制FPGA载入FLASH存储器中的其他镜像,以及获取镜像载入状态。
如图2所示,存储器中存储了两组镜像,每组镜像包含一个FPGA固件和一个NiosII固件,其中一、三两个固件为启动镜像,分别称为FPGA启动镜像和Nios II启动镜像,二、四两个固件为工作镜像,分别称为FPGA工作镜像和Nios II工作镜像。实施例使用的FPGA镜像文件大小约为1MB,Nios II固件大小约为100KB,设计FLASH存储器空间给每个FPGA镜像2.5MB,Nios II固件镜像192KB,剩余空间用于存储用户数据。
FPGA启动流程如图3所示,分为如下步骤:
1、FPGA上电自动载入FPGA启动镜像。
3、判断RemoteUpdate模块状态,如果状态正常,则载入到FPGA工作镜像,如果状态错误,则载入Nios II启动镜像。
4、若载入FPGA工作镜像成功,则继续载入Nios II工作镜像,若载入FPGA工作镜像失败,则回到FPGA启动镜像。
5、若Nios II工作镜像启动失败,则回到FPGA启动镜像,若成功,则设备正常运行。
启动镜像和工作镜像都有同样的在线更新功能,在线更新功能只能用于更新FPGA工作镜像或Nios II工作镜像,FPGA启动镜像和Nios II启动镜像是在出厂时通过内部JTAG接口写入。在线更新具体流程如下:
1、计算机通过串口发送在线升级命令,指定升级FPGA工作镜像或Nios II工作镜像。
2、计算机通过串口发送升级数据,Nios II将升级数据写入对应镜像存储区域。
3、计算机通过串口发送升级结束命令,FPGA切换到FPGA启动镜像,然后载入新的FPGA工作镜像。
本发明与通信接口的类型无关,对于USB、以太网等接口,同样适用于本发明,只要在FPGA中实现对应数据收发功能,并接入到Nios II片上总线即可。
Claims (3)
1.一种基于Nios II软核的FPGA在线升级方法,其特征是应用于由计算机,通信接口,FPGA和FLASH存储器所组成的装置中,并包括如下步骤:
步骤一、FPGA上电初始化,载入FLASH存储器中的FPGA启动镜像;
步骤二、所述FPGA启动镜像尝试载入FLASH存储器中的FPGA工作镜像,若载入成功,则执行步骤三至步骤五,若载入失败,则使能Nios II软核载入Nios II启动镜像,并等待接收指令,执行步骤四和步骤五;
步骤三、所述FPGA工作镜像使能Nios II软核,并利用看门狗定时器开始计时,Nios II软核载入Nios II工作镜像,若载入成功,则向FPGA发送信号,使得看门狗定时器停止计时,并等待接收指令;
若载入失败,则触发看门狗定时器的超时事件,使得FPGA重新回到所述FPGA启动镜像,并使能Nios II软核,载入Nios II工作镜像,等待接收指令;
步骤四、计算机通过所述通信接口向FPGA发送升级指令和升级数据,所述Nios II软核响应升级指令,并将所述升级数据写入到FLASH存储器中的对应位置;
步骤五、所述Nios II软核控制FPGA重新启动。
2.根据权利要求1所述的基于Nios II软核的FPGA在线升级方法,其特征在于:所述FLASH存储器中存储区域包括:FPGA启动镜像、Nios II启动镜像、FPGA工作镜像、Nios II工作镜像;
所述存储区域是根据FPGA配置文件大小以及Nios II软核的镜像大小定义的固定位置;
令所述FPGA启动镜像存储区域的起始地址为FLASH存储器的零地址。
3.根据权利要求1所述的基于Nios II软核的FPGA在线升级方法,其特征在于:所述升级指令包括:升级数据类型、升级数据长度和升级数据结束命令;
所述升级数据类型包括:FPGA工作镜像、Nios II工作镜像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183991.3A CN112148341B (zh) | 2020-10-29 | 2020-10-29 | 一种基于NiosII软核的FPGA在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183991.3A CN112148341B (zh) | 2020-10-29 | 2020-10-29 | 一种基于NiosII软核的FPGA在线升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148341A CN112148341A (zh) | 2020-12-29 |
CN112148341B true CN112148341B (zh) | 2023-11-21 |
Family
ID=73953575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011183991.3A Active CN112148341B (zh) | 2020-10-29 | 2020-10-29 | 一种基于NiosII软核的FPGA在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148341B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835603A (zh) * | 2021-02-20 | 2021-05-25 | 山东英信计算机技术有限公司 | 一种基于WebServer的FPGA远程升级装置及方法 |
CN113703803B (zh) * | 2021-07-29 | 2023-12-12 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | 基于fpga的远程升级系统、方法及介质 |
CN114443175B (zh) * | 2022-04-11 | 2022-06-24 | 天津讯联科技有限公司 | 一种用于弹载fpga在线升级的启动配置方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010097514A1 (en) * | 2009-02-27 | 2010-09-02 | Valtion Teknillinen Tutkimuskeskus | A method for secure remote reconfiguration of the programmable low-cost fpga hardware |
CN102999363A (zh) * | 2012-11-30 | 2013-03-27 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的启动方法 |
CN103019779A (zh) * | 2012-11-30 | 2013-04-03 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的程序更新方法 |
CN105320531A (zh) * | 2014-07-15 | 2016-02-10 | 北京自动化控制设备研究所 | 一种基于MicroBlaze软核的FPGA软件在线升级方法 |
CN106598650A (zh) * | 2016-11-25 | 2017-04-26 | 积成电子股份有限公司 | 基于光纤通信的fpga程序在线升级的装置及方法 |
CN107273170A (zh) * | 2017-07-03 | 2017-10-20 | 西南交通大学 | 一种SoPC程序远程更新系统及方法 |
CN108037943A (zh) * | 2017-12-08 | 2018-05-15 | 成都华力创通科技有限公司 | 一种基于nios ii的fpga在线升级方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
-
2020
- 2020-10-29 CN CN202011183991.3A patent/CN112148341B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010097514A1 (en) * | 2009-02-27 | 2010-09-02 | Valtion Teknillinen Tutkimuskeskus | A method for secure remote reconfiguration of the programmable low-cost fpga hardware |
CN102999363A (zh) * | 2012-11-30 | 2013-03-27 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的启动方法 |
CN103019779A (zh) * | 2012-11-30 | 2013-04-03 | 北京遥测技术研究所 | 一种fpga/dsp嵌入式系统的程序更新方法 |
CN105320531A (zh) * | 2014-07-15 | 2016-02-10 | 北京自动化控制设备研究所 | 一种基于MicroBlaze软核的FPGA软件在线升级方法 |
CN106598650A (zh) * | 2016-11-25 | 2017-04-26 | 积成电子股份有限公司 | 基于光纤通信的fpga程序在线升级的装置及方法 |
CN107273170A (zh) * | 2017-07-03 | 2017-10-20 | 西南交通大学 | 一种SoPC程序远程更新系统及方法 |
CN108037943A (zh) * | 2017-12-08 | 2018-05-15 | 成都华力创通科技有限公司 | 一种基于nios ii的fpga在线升级方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
Non-Patent Citations (4)
Title |
---|
A framework for secure remote updating of bitstream on runtime reconfigurable embedded platforms;Tran Thanh等;《2012 Fourth International Conference on Communications and Electronics (ICCE)》;471-476 * |
Upgrading of the EAST Distributed Synchronization and Timing System;Yichun Wu等;《IEEE Transactions on Nuclear Science》;第57卷(第3期);1522-1527 * |
利用UART对FPGA进行升级的方法;常亮等;《吉林大学学报(信息科学版)》;286-290 * |
基于NiosⅡ多片FPGA远程更新设计与实现;张伏;《数字技术与应用》;163-164 * |
Also Published As
Publication number | Publication date |
---|---|
CN112148341A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148341B (zh) | 一种基于NiosII软核的FPGA在线升级方法 | |
CN101329632B (zh) | 一种使用boot启动cpu的方法与装置 | |
CN100361118C (zh) | 一种多cpu系统及其控制方法 | |
US20140379969A1 (en) | Memory channel connected non-volatile memory | |
US8832359B2 (en) | In-vehicle apparatus | |
CN103345407B (zh) | 控制电路、连通控制器、连通控制方法及主板 | |
US7908417B2 (en) | Motherboard system, storage device for booting up thereof and connector | |
CN101017441A (zh) | 一种电子设备、电子设备的启动方法及bios升级方法 | |
US20120151231A1 (en) | Power supply switching device, a power supply switching device control method and a power supply control program | |
US11829220B2 (en) | Power management circuit, chip and upgrade method therefor, and server | |
GB2463809A (en) | Peripheral device operation method, peripheral device and host | |
CN113127402A (zh) | 一种spi访问控制方法、系统、计算设备及存储介质 | |
CN114661368B (zh) | 一种芯片及其启动方法 | |
CN111966626B (zh) | 一种基于espi总线的服务器启动装置和方法 | |
CN115904512A (zh) | 基于cpld实现嵌入式系统高可靠启动的方法 | |
TWI823253B (zh) | 計算系統、由電腦執行的方法以及電腦程式產品 | |
US9026838B2 (en) | Computer system, host-bus-adaptor control method, and program thereof | |
US7945919B2 (en) | Information processing apparatus and device controller driving/controlling method | |
CN112948315B (zh) | 存储区域共享方法、存储介质及电子设备 | |
US9870161B2 (en) | Computation processing device and control method thereof | |
CN211827190U (zh) | 微处理器的低功耗电路和电路系统 | |
CN112199230A (zh) | 一种支持多核系统异常处理的存储控制器 | |
US20150089088A1 (en) | Interface controller, external electronic device, and external electronic device control method | |
CN219143450U (zh) | 一种基于嵌入式ec的存储介质切换电路、系统及终端设备 | |
CN220829661U (zh) | 一种基板管理控制器 |
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 | ||
CB02 | Change of applicant information |
Address after: 230088 Building 1, yizhi science and Technology Industrial Park, 388 Yanzihe Road, high tech Zone, Hefei City, Anhui Province Applicant after: Hefei Eko Photoelectric Technology Co.,Ltd. Address before: 230088 Building 1, yizhi science and Technology Industrial Park, 388 Yanzihe Road, high tech Zone, Hefei City, Anhui Province Applicant before: HEFEI ITEK PHOTOELECTRICS TECHNOLOGY CO.,LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |