CN111208753A - 一种基于arm的fpga启动及在线升级方法 - Google Patents
一种基于arm的fpga启动及在线升级方法 Download PDFInfo
- Publication number
- CN111208753A CN111208753A CN201911345608.7A CN201911345608A CN111208753A CN 111208753 A CN111208753 A CN 111208753A CN 201911345608 A CN201911345608 A CN 201911345608A CN 111208753 A CN111208753 A CN 111208753A
- Authority
- CN
- China
- Prior art keywords
- fpga
- control module
- arm control
- data
- upgrading
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Abstract
一种基于ARM的FPGA启动及在线升级方法,属于FPGA现场可编程门阵列应用技术领域,其特征在于,在系统上电时,根据FPGA模块从串起动配置模式,ARM控制模块通过FLASH存储模块不断的读取FPGA配置数据,通过配置管脚将数据发送给FPGA模块,实现FPGA的启动配置。在FPGA启动正常工作后,ARM控制模块接收上位机在线升级软件发送的FPGA升级程序,通过FLASH存储模块写入存储器中,实现FPGA的在线升级。该方法实现带有FPGA系统的产品启动及在线升级,本发明所述方法实现简单,方便,且大大提高了产品维护升级效率,降低了产品维护成本。
Description
技术领域
本发明属于FPGA现场可编程门阵列应用技术领域,尤其涉及一种基于ARM的FPGA启动及在线升级方法。
背景技术
FPGA即现场可编程门阵列,是在PAL、GAL等可编程器件的基础上进一步发现的产物,它是一种新型可编程逻辑器件,硬件电路的功能实现可以通过用户进行编程和配置,在电路功能升级重配置时,仅需要修改升级FPGA程序,达到产品功能更改及升级的方法。而不需要对硬件电路重新进行设计,提高了开发效率、减少了设计周期和研发成本。但是目前较多带有FPGA系统的产品无法通过产品的维护端口实现启动及在线升级,影响了FPGA使用的效率。
FPGA在正常工作时,它的配置数据存储在配置芯片SRAM中,加电时须由配置芯片将FPGA配置数据加载到FPGA,多数情况下由FPGA主动引导加载过程。
FPGA配置数据的加载模式有5种:主串模式、从串模式、主并模式、从并模式和JTAG模式。FPGA从串模式下配置管脚包括:用于输入配置时钟控制信号的CCLK、用于输入配置逻辑异步复位信号的PROG_B、用于输出FPGA初始化信号的INIT_B、用于输出FPGA配置状态信号的DONE、用于输入FPGA配置数据信号的DIN、用于输入FPGA配置模式选择信号的M[0..2]。
发明内容
本发明旨在针对带有FPGA系统但无法通过产品的维护端口实现启动及在线升级的产品,提供一种基于ARM的FPGA启动及在线升级方法。
本发明所述基于ARM的FPGA启动方法,包括上位机、ARM控制模块、FLASH存储模块、电源模块和FPGA模块;所述ARM控制模块是整个系统的核心模块,它读取FLASH存储模块中的数据,通过FPGA配置管脚发送给FPGA模块,实现FPGA启动。所述FLASH存储模块主要完成FPGA程序的写入与读取;所述电源模块为一路电路转换电路,主要完成将输入电压转换为ARM、FLASH和FPGA模块所需要的DC3.3V、DC1.5V电源;所述FPGA模块主要完成接收ARM控制模块的启动数据,实现FPGA的启动过程。
所述FPGA包括管脚CCLK、PROG_B、DIN、DONE和INIT_B;包括如下步骤:系统上电后,ARM控制模块将PROG_B输出为低电平,复位FPGA内部逻辑并重新配置内存清除状态;
复位FPGA后,将PROG_B输出为高电平;
FPGA开始清除配置内存,将INIT_B输出为低电平,ARM控制模块将PROG_B高电平保持300us后,FPGA将INIT_B输出为高电平,并采样配置模式;
当ARM控制模块采样到INIT_B为高电平后,开始向FPGA模块发送配置时钟CCLK和数据DIN;
在CCLK的上升沿,传输数据到DIN,配置过程如发生错误,则FPGA输出INIT_B为低电平;所有数据传输完成并经CRC校验无误后,FPGA输出DONE信号为高电平;
当ARM控制模块采样到DONE为高电平后,结束FPGA启动。
本发明所述基于ARM的FPGA在线升级方法,包括上位机、ARM控制模块、FLASH存储模块、电源模块和FPGA模块;在FPGA模块启动正常工作后,ARM控制模块接收上位机发送的FPGA升级程序,通过FLASH存储模块写入存储器中,实现FPGA的在线升级。所述上位机实现将开发软件编译好的FPGA升级程序发送给ARM控制模块;所述ARM控制模块是整个系统的核心模块,它读取FLASH存储模块中的数据,通过FPGA配置管脚发送给FPGA模块,同时接收上位机FPGA升级程序数据,写入到FLASH存储模块中;所述FLASH存储模块主要完成FPGA程序的写入与读取;所述电源模块为一路电路转换电路,主要完成将输入电压转换为ARM、FLASH和FPGA模块所需要的DC3.3V、DC1.5V电源。
进一步,本发明所述基于ARM的FPGA在线升级方法,包括如下步骤:系统上电后,ARM控制模块配置FPGA启动过程完成后,进入FPGA在线升级程序,循环等待上位机发送的FPGA在线升级指令;
上位机运行后,加载FPGA升级程序,并向ARM控制模块发送FPGA升级通讯指令;
ARM控制模块在收到FPGA升级通讯指令后,清除FLASH存储器所有存储数据,并回复升级准备完成数据指令;
然后,通过上位机发送开始更新指令,并向ARM控制模块逐个发送每一帧通讯数据;ARM控制模块在收到每一帧通讯数据并进行CRC校验后,回复对应帧数据接收正确的指令,并将通讯数据按顺序写入FLASH存储器中;
当CRC校验错误时,回复对应帧数据接收错误指令,上位机重新发送对应帧通讯数据;
当ARM控制模块在接收完成最后一帧数据后,回复所有数据接收正确指令,上位机停止数据发送,实现的FPGA在线升级。
本发明所述基于ARM的FPGA启动及在线升级方法,在FPGA模块启动正常工作后,ARM控制模块接收上位机发送的FPGA升级程序,通过FLASH存储模块写入存储器中,实现FPGA的在线升级,该方法实现带有FPGA系统的产品启动及在线升级,本发明所述方法实现简单,方便,且大大提高了产品维护升级效率,降低了产品维护成本。
附图说明
图1为本发明实施例所述基于ARM的FPGA启动及在线升级系统结构示意框图;
图2为本发明实施例所述ARM控制模块电路原理图;
图3为本发明实施例所述FLASH存储模块电路原理图;
图4为本发明实施例所述FPGA模块部分电路原理图;
图5为本发明实施例所述ARM控制模块配置FPGA启动流程图;
图6为本发明实施例所述ARM控制模块实现FPGA在线升级流程图;
图7为本发明实施例所述ARM控制模块内置嵌入式程序工作流程图。
具体实施方式
下面通过附图及实施例对本发明所述基于ARM的FPGA启动及在线升级方法进行详细说明。
本实施例所述基于ARM的FPGA启动及在线升级系统,如图1所示,主要包括上位机在线升级软件、ARM控制模块、FLASH存储模块、电源模块和FPGA模块。所述上位机通过内置软件实现FPGA程序的在线升级功能,可实现将Xilinx ISE开发软件编译好的FPGA升级程序(.BIN)通过在线升级接口分块发送给ARM控制模块。所述ARM控制模块是整个系统的核心模块,其原理如图2所示,它读取FLASH存储模块中的数据,通过FPGA配置管脚发送给FPGA模块,实现FPGA启动,同时接收上位机FPGA升级程序数据,写入到FLASH存储模块中。ARM控制模块内置有嵌入式程序,如图7所示系统上电后,ARM控制模块开始启动,首先完成时钟、PLL、外围接口模块等的初始化;然后,按顺序读取FLASH数据,并通过FPGA配置引脚将数据发送到FPGA,完成FPGA启动过程,FPGA启动完成后,软件处于持续等待中,等待从在线升级接口接收上位机在线升级指令及数据,校验正确后,将数据按顺序写入FLASH,完成FPGA的在线升级。ARM控制模块使用ARM架构的32位MCU微处理器。如图3所示,所述FLASH存储模块为一块SPI接口的FLASH存储器,主要完成FPGA程序的写入与读取。所述电源模块为一路电路转换电路,主要完成将输入电压转换为ARM、FLASH和FPGA等模块所需要的DC3.3V、DC1.5V电源;如图4所示,所述FPGA模块为Xilinx公司的FPGA芯片电路,主要完成接收ARM控制模块的启动数据,实现FPGA的启动过程。
FPGA配置数据的加载模式有5种:主串模式、从串模式、主并模式、从并模式和JTAG模式。其中,JTAG模式在开发调试阶段使用,其它四种模式在正常工作使用。为了实现FPGA在线升级功能,FPGA的配置数据加载模式选用从串模式,由ARM控制模块控制配置时钟(CCK)控制信号,并主导FPGA的启动过程。在本实施例中采用从串配置模式;FPGA从串模式下配置管脚说明如下:
FPGA从串模式下的配置过程有四个主要阶段:
1、清除配置内存
FPGA输出INIT_B和DONE信号为低电平,同时内存被清除。PROG_B上输入高电平给FPGA后,FPGA复们配置逻辑同时保持FPGA处理配置内存清除状态。当内存清除完毕后,FPGA输出INIT_B信号为高电平。
2、初始化
在初始化阶段,FPGA采集M[0..2]配置模式选择信号,确定起动配置模式,控制相应管脚状态,并开始配置过程。
3、载入配置数据
配置过程开始后,在CCLK的上升沿时,FPGA读取DIN信号数据,并在完成一个block后写入到内部数据寄存器(FDRI)中,并执行CRC冗余校验,重复上述过程,完成最后一位数据接收和处理。最后,执行CRC冗余校验。
如果CRC校验结果正确,设备启动阶段开始。如果CRC不正确,FPGA输出INIT_B信号为低电平,启动中止。
4、设备启动
在数据都配置完成后,FPGA控制DONE信号为高电平。FPGA启动完成,开始正常工作。
本实施例所述基于ARM的FPGA启动方法如图5所示,系统上电后,ARM控制模块将PROG_B输出为低电平,复位FPGA内部逻辑并重新配置内存清除状态,充分复位FPGA后(约100us),将PROG_B输出为高电平。
FPGA开始清除配置内存,将INIT_B输出为低电平,ARM控制模块将PROG_B高电平保持300us后,FPGA将INIT_B输出为高电平,并采样配置模式M[0..2]。
当ARM控制模块采样到INIT_B为高电平后,开始向FPGA发送配置时钟CCLK和数据DIN。在CCLK的上升沿,传输数据到DIN,配置过程如发生错误,则FPGA输出INIT_B为低电平。
所有数据传输完成并经CRC校验无误后,FPGA输出DONE信号为高电平。当ARM控制模块采样到DONE为高电平后,结束FPGA启动程序。
本实施例所述基于ARM的FPGA在线升级方法如图6所示,系统上电后,ARM控制模块配置FPGA启动过程完成后,进入FPGA在线升级程序,循环等待上位机内置软件发送的FPGA在线升级指令;
上位机内置软件运行后,加载FPGA升级程序(.BIN),确认文件大小、帧大小、帧个数后,通过在线升级接口向ARM控制模块发送FPGA升级通讯指令;ARM控制模块在收到指令后,清除FLASH存储器所有存储数据,并通过在线升级接口回复升级准备完成指令;
然后,上位机通过在线升级接口向ARM控制模块按帧大小逐个发送每一帧通讯数据;ARM控制模块在收到每一帧数据并进行CRC校验后,回复当前帧数据“接收正确”,并将数据按顺序写入FLASH存储器中;当CRC校验错误时,回复当前帧数据“接收错误”,上位机内置软件重新发送当前帧数据;当ARM控制模块在接收完成最后一帧数据后,回复所有数据“接收正确”,上位机内置软件停止数据发送,并提示FPGA在线升级完成。
Claims (3)
1.一种基于ARM的FPGA启动方法,包括上位机、ARM控制模块、FLASH存储模块、电源模块和FPGA模块;所述FPGA包括管脚CCLK、PROG_B、DIN、DONE和INIT_B;其特征在于包括如下步骤:系统上电后,ARM控制模块将PROG_B输出为低电平,复位FPGA内部逻辑并重新配置内存清除状态;
复位FPGA后,将PROG_B输出为高电平;
FPGA开始清除配置内存,将INIT_B输出为低电平,ARM控制模块将PROG_B高电平保持300us后,FPGA将INIT_B输出为高电平,并采样配置模式;
当ARM控制模块采样到INIT_B为高电平后,开始向FPGA模块发送配置时钟CCLK和数据DIN;
在CCLK的上升沿,传输数据到DIN,配置过程如发生错误,则FPGA输出INIT_B为低电平;所有数据传输完成并经CRC校验无误后,FPGA输出DONE信号为高电平;
当ARM控制模块采样到DONE为高电平后,结束FPGA启动。
2.一种基于ARM的FPGA在线升级方法,包括上位机、ARM控制模块、FLASH存储模块、电源模块和FPGA模块;其特征在于:在FPGA模块启动正常工作后,ARM控制模块接收上位机发送的FPGA升级程序,通过FLASH存储模块写入存储器中,实现FPGA的在线升级。
3.根据权利要求2所述基于ARM的FPGA在线升级方法,其特征在于包括如下步骤:系统上电后,ARM控制模块配置FPGA启动过程完成后,进入FPGA在线升级程序,循环等待上位机发送的FPGA在线升级指令;
上位机运行后,加载FPGA升级程序,并向ARM控制模块发送FPGA升级通讯指令;
ARM控制模块在收到FPGA升级通讯指令后,清除FLASH存储器所有存储数据,并回复升级准备完成数据指令;
然后,通过上位机发送开始更新指令,并向ARM控制模块逐个发送每一帧通讯数据;ARM控制模块在收到每一帧通讯数据并进行CRC校验后,回复对应帧数据接收正确的指令,并将通讯数据按顺序写入FLASH存储器中;
当CRC校验错误时,回复对应帧数据接收错误指令,上位机重新发送对应帧通讯数据;
当ARM控制模块在接收完成最后一帧数据后,回复所有数据接收正确指令,上位机停止数据发送,实现的FPGA在线升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911345608.7A CN111208753A (zh) | 2019-12-24 | 2019-12-24 | 一种基于arm的fpga启动及在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911345608.7A CN111208753A (zh) | 2019-12-24 | 2019-12-24 | 一种基于arm的fpga启动及在线升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111208753A true CN111208753A (zh) | 2020-05-29 |
Family
ID=70786401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911345608.7A Withdrawn CN111208753A (zh) | 2019-12-24 | 2019-12-24 | 一种基于arm的fpga启动及在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111208753A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703848A (zh) * | 2021-07-13 | 2021-11-26 | 中国电子科技集团公司第五十三研究所 | 面向位翻转效应的基于SoC芯片可重构柔性化控制方法 |
CN115996222A (zh) * | 2023-03-24 | 2023-04-21 | 宁波均胜新能源汽车技术有限公司 | 一种基于移动通信和蓝牙通信的车载充电桩在线升级方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030000693A (ko) * | 2001-06-26 | 2003-01-06 | 엘지전자 주식회사 | 에프피지에이 이이피롬의 무선 업그레이드 장치 및 방법 |
CN1464421A (zh) * | 2002-06-28 | 2003-12-31 | 华为技术有限公司 | 一种对现场可编程门阵列的在线加载方法 |
CN1928824A (zh) * | 2006-09-20 | 2007-03-14 | 华为技术有限公司 | 一种加载fpga目标程序的方法及系统 |
CN101211266A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 一种实现fpga自动下载和在线升级的方法 |
CN101420328A (zh) * | 2008-12-03 | 2009-04-29 | 杭州华三通信技术有限公司 | 远程升级现场可编程门阵列的系统、接口卡及方法 |
CN104572569A (zh) * | 2015-01-21 | 2015-04-29 | 江苏微锐超算科技有限公司 | 基于arm和fpga的高性能计算节点及计算方法 |
CN105095569A (zh) * | 2015-07-07 | 2015-11-25 | 北京航空航天大学 | 一种基于arm和flash的fpga重配置系统 |
CN105958995A (zh) * | 2016-04-27 | 2016-09-21 | 北京时代民芯科技有限公司 | 一种快速启动fpga的电路和方法 |
CN106909425A (zh) * | 2017-03-03 | 2017-06-30 | 中国电子科技集团公司第五十四研究所 | 一种dsp和fpga系统在线升级方法 |
-
2019
- 2019-12-24 CN CN201911345608.7A patent/CN111208753A/zh not_active Withdrawn
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030000693A (ko) * | 2001-06-26 | 2003-01-06 | 엘지전자 주식회사 | 에프피지에이 이이피롬의 무선 업그레이드 장치 및 방법 |
CN1464421A (zh) * | 2002-06-28 | 2003-12-31 | 华为技术有限公司 | 一种对现场可编程门阵列的在线加载方法 |
CN1928824A (zh) * | 2006-09-20 | 2007-03-14 | 华为技术有限公司 | 一种加载fpga目标程序的方法及系统 |
CN101211266A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 一种实现fpga自动下载和在线升级的方法 |
CN101420328A (zh) * | 2008-12-03 | 2009-04-29 | 杭州华三通信技术有限公司 | 远程升级现场可编程门阵列的系统、接口卡及方法 |
CN104572569A (zh) * | 2015-01-21 | 2015-04-29 | 江苏微锐超算科技有限公司 | 基于arm和fpga的高性能计算节点及计算方法 |
CN105095569A (zh) * | 2015-07-07 | 2015-11-25 | 北京航空航天大学 | 一种基于arm和flash的fpga重配置系统 |
CN105958995A (zh) * | 2016-04-27 | 2016-09-21 | 北京时代民芯科技有限公司 | 一种快速启动fpga的电路和方法 |
CN106909425A (zh) * | 2017-03-03 | 2017-06-30 | 中国电子科技集团公司第五十四研究所 | 一种dsp和fpga系统在线升级方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703848A (zh) * | 2021-07-13 | 2021-11-26 | 中国电子科技集团公司第五十三研究所 | 面向位翻转效应的基于SoC芯片可重构柔性化控制方法 |
CN115996222A (zh) * | 2023-03-24 | 2023-04-21 | 宁波均胜新能源汽车技术有限公司 | 一种基于移动通信和蓝牙通信的车载充电桩在线升级方法 |
CN115996222B (zh) * | 2023-03-24 | 2023-06-06 | 宁波均胜新能源汽车技术有限公司 | 一种基于移动通信和蓝牙通信的车载充电桩在线升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559053B (zh) | 一种板卡系统及通信接口卡fpga在线升级方法 | |
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 | |
CN102999350B (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
CN102609287B (zh) | 一种通过cpu远程更新fpga的装置及其方法 | |
US7793035B2 (en) | Memory system and controller | |
WO2018064885A1 (zh) | 一种对可编程逻辑器件进行配置或更新的装置和方法 | |
CN106201590B (zh) | 一种fpga配置文件加载方法和系统 | |
CN107479913A (zh) | 一种fpga配置多启动低资源占用更新方法及实施系统 | |
CN109542478A (zh) | 一种更新SPI Flash内FPGA程序的系统及方法 | |
CN111208753A (zh) | 一种基于arm的fpga启动及在线升级方法 | |
CN110209419A (zh) | 一种基于can总线的嵌入式dsp设备升级方法及装置 | |
CN107832078B (zh) | 基于dsp的fpga程序在线更新电路 | |
CN106598654B (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN105320531A (zh) | 一种基于MicroBlaze软核的FPGA软件在线升级方法 | |
CN113434162B (zh) | 远程在线更新fpga多版本程序的方法 | |
CN100498708C (zh) | 一种通过个人计算机进行固件下载的方法及装置 | |
CN101354657B (zh) | 现场可编程门阵列的加载方法及加载电路 | |
CN112667320A (zh) | 一种基于MicroBlaze的FPGA及DSP远程加载系统 | |
CN103677897A (zh) | 系统芯片及对系统芯片的烧写方法 | |
CN109992555A (zh) | 一种供多路服务器共用的管理板卡 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
US20060026462A1 (en) | Apparatus for recovering BIOS in computer system | |
CN114138360B (zh) | DSP在Flash上的多核烧写启动方法及系统 | |
CN110399328B (zh) | 一种板载图形处理器控制方法与装置 | |
CN102043754A (zh) | 一种提高星载dsp加载引导可靠性的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200529 |