CN111208753A - 一种基于arm的fpga启动及在线升级方法 - Google Patents

一种基于arm的fpga启动及在线升级方法 Download PDF

Info

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
Application number
CN201911345608.7A
Other languages
English (en)
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.)
Xi'an Xutong Electronic Technology Corp
Original Assignee
Xi'an Xutong Electronic Technology Corp
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 Xi'an Xutong Electronic Technology Corp filed Critical Xi'an Xutong Electronic Technology Corp
Priority to CN201911345608.7A priority Critical patent/CN111208753A/zh
Publication of CN111208753A publication Critical patent/CN111208753A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller

Abstract

一种基于ARM的FPGA启动及在线升级方法,属于FPGA现场可编程门阵列应用技术领域,其特征在于,在系统上电时,根据FPGA模块从串起动配置模式,ARM控制模块通过FLASH存储模块不断的读取FPGA配置数据,通过配置管脚将数据发送给FPGA模块,实现FPGA的启动配置。在FPGA启动正常工作后,ARM控制模块接收上位机在线升级软件发送的FPGA升级程序,通过FLASH存储模块写入存储器中,实现FPGA的在线升级。该方法实现带有FPGA系统的产品启动及在线升级,本发明所述方法实现简单,方便,且大大提高了产品维护升级效率,降低了产品维护成本。

Description

一种基于ARM的FPGA启动及在线升级方法
技术领域
本发明属于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从串模式下配置管脚说明如下:
Figure BDA0002333260610000041
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在线升级。
CN201911345608.7A 2019-12-24 2019-12-24 一种基于arm的fpga启动及在线升级方法 Withdrawn CN111208753A (zh)

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)

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

* Cited by examiner, † Cited by third party
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系统在线升级方法

Patent Citations (9)

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

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