CN112148341A - 一种基于NiosII软核的FPGA在线升级方法 - Google Patents

一种基于NiosII软核的FPGA在线升级方法 Download PDF

Info

Publication number
CN112148341A
CN112148341A CN202011183991.3A CN202011183991A CN112148341A CN 112148341 A CN112148341 A CN 112148341A CN 202011183991 A CN202011183991 A CN 202011183991A CN 112148341 A CN112148341 A CN 112148341A
Authority
CN
China
Prior art keywords
fpga
nios
mirror image
soft core
starting
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.)
Granted
Application number
CN202011183991.3A
Other languages
English (en)
Other versions
CN112148341B (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.)
Hefei Itek Photoelectrics Technology Co ltd
Original Assignee
Hefei Itek Photoelectrics Technology Co 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 Hefei Itek Photoelectrics Technology Co ltd filed Critical Hefei Itek Photoelectrics Technology Co ltd
Priority to CN202011183991.3A priority Critical patent/CN112148341B/zh
Publication of CN112148341A publication Critical patent/CN112148341A/zh
Application granted granted Critical
Publication of CN112148341B publication Critical patent/CN112148341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

一种基于NiosII软核的FPGA在线升级方法
技术领域
本发明涉及电子技术领域,具体的说是一种基于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工作镜像。
CN202011183991.3A 2020-10-29 2020-10-29 一种基于NiosII软核的FPGA在线升级方法 Active CN112148341B (zh)

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 true CN112148341A (zh) 2020-12-29
CN112148341B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835603A (zh) * 2021-02-20 2021-05-25 山东英信计算机技术有限公司 一种基于WebServer的FPGA远程升级装置及方法
CN113703803A (zh) * 2021-07-29 2021-11-26 上海微波技术研究所(中国电子科技集团公司第五十研究所) 基于fpga的远程升级系统、方法及介质
CN114443175A (zh) * 2022-04-11 2022-05-06 天津讯联科技有限公司 一种用于弹载fpga在线升级的启动配置方法

Citations (8)

* Cited by examiner, † Cited by third party
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远程升级方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
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 (6)

* Cited by examiner, † Cited by third party
Title
TRAN THANH等: "A framework for secure remote updating of bitstream on runtime reconfigurable embedded platforms", 《2012 FOURTH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND ELECTRONICS (ICCE)》, pages 471 - 476 *
YICHUN WU等: "Upgrading of the EAST Distributed Synchronization and Timing System", 《IEEE TRANSACTIONS ON NUCLEAR SCIENCE》, vol. 57, no. 3, pages 1522 - 1527, XP011311579 *
常亮等: "利用UART对FPGA进行升级的方法", 《吉林大学学报(信息科学版)》, pages 286 - 290 *
张伏: "基于NiosⅡ多片FPGA远程更新设计与实现", 《数字技术与应用》, pages 163 - 164 *
新浪深圳科技频道: "何绪金:FPGA双镜像备份升级方法", pages 1 - 4, Retrieved from the Internet <URL:https://www.sohu.com/a/150718792_215212> *
课课家教育: "一种基于EPCS Flash的远程在线更新FPGA程序方法", pages 1 - 7, Retrieved from the Internet <URL:http://www.kokojia.com/article/20593.html> *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835603A (zh) * 2021-02-20 2021-05-25 山东英信计算机技术有限公司 一种基于WebServer的FPGA远程升级装置及方法
CN113703803A (zh) * 2021-07-29 2021-11-26 上海微波技术研究所(中国电子科技集团公司第五十研究所) 基于fpga的远程升级系统、方法及介质
CN113703803B (zh) * 2021-07-29 2023-12-12 上海微波技术研究所(中国电子科技集团公司第五十研究所) 基于fpga的远程升级系统、方法及介质
CN114443175A (zh) * 2022-04-11 2022-05-06 天津讯联科技有限公司 一种用于弹载fpga在线升级的启动配置方法

Also Published As

Publication number Publication date
CN112148341B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
CN112148341B (zh) 一种基于NiosII软核的FPGA在线升级方法
CN100474247C (zh) 在计算机服务器系统中更新固件的方法
US20120151231A1 (en) Power supply switching device, a power supply switching device control method and a power supply control program
CN101373433A (zh) 更新bios的方法以及使用该方法的电脑与系统
US11829220B2 (en) Power management circuit, chip and upgrade method therefor, and server
CN103345407A (zh) 控制电路、连通控制器、连通控制方法及主板
CN114661368B (zh) 一种芯片及其启动方法
CN108062234B (zh) 一种通过mailbox协议实现服务器主机访问BMC FLASH的系统及方法
CN113127402A (zh) 一种spi访问控制方法、系统、计算设备及存储介质
CN105468390B (zh) Boot在线升级装置及方法
US7281150B1 (en) Methods and apparatus for controlling operation of a data storage system
CN103475514A (zh) 无bmc的节点、集群系统及bios修复和升级方法
RU2600101C1 (ru) Управляющий модуль узла и способ обновления встроенного программного обеспечения для этого управляющего модуля
CN115952122A (zh) I2c设备热插拔方法、系统、设备、介质及产品
JP2002543521A (ja) 自動的にモジュールをコンピュータシステムに再び組み込む方法および装置
US9870161B2 (en) Computation processing device and control method thereof
JPS63104167A (ja) ブ−トプロセツサ決定方式
CN111176902A (zh) 一种使用BMC Flash备份Controller Device韧体的装置和方法
CN219143450U (zh) 一种基于嵌入式ec的存储介质切换电路、系统及终端设备
CN213751050U (zh) 一种双核芯片
CN220829661U (zh) 一种基板管理控制器
CN112883384B (zh) 一种强鲁棒性的嵌入式计算机引导加载程序的保护方法
CN113867835B (zh) 用于dsp动态加载的装置及方法
CN113703816B (zh) 服务器装置及其避免韧体无法再次更新之方法
CN112115000B (zh) 系统部件电源的远端重置方法、系统及bmc远端设备

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
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.

GR01 Patent grant
GR01 Patent grant