CN104077166A - 基于fpga中ip核的epcs与epcq存储器在线升级方法 - Google Patents
基于fpga中ip核的epcs与epcq存储器在线升级方法 Download PDFInfo
- Publication number
- CN104077166A CN104077166A CN201410328099.8A CN201410328099A CN104077166A CN 104077166 A CN104077166 A CN 104077166A CN 201410328099 A CN201410328099 A CN 201410328099A CN 104077166 A CN104077166 A CN 104077166A
- Authority
- CN
- China
- Prior art keywords
- fpga
- epcs
- frame
- epcq
- programming
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法,用于解决现有EPCS与EPCQ存储器在线升级方法实用性差的技术问题。技术方案是通过上位机向FPGA发送EPCS/EPCQ擦除命令帧,读取FPGA烧写文件并按232串口协议一帧一帧下发给FPGA,上位机向FPGA发送Reconfig命令帧;FPGA中固化的EPCS/EPCQ远程在线升级模块负责解析上位机发送的命令帧,并根据命令将擦除指令按格式写入IP核中;FPGA中IP核接收命令后按照命令对连接FPGA的EPCS/EPCQ进行相应操作。本方法针对单片FPGA一次完成EPCS/EPCQ的在线升级,无需拆卸系统,实用性强。
Description
技术领域
本发明涉及一种EPCS与EPCQ存储器在线升级方法,特别是涉及一种基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法。
背景技术
在系统设计中,对逻辑时序的控制性要求越来越高。因此,现场可编程门阵列FPGA(Field Program Gates Array)在实际的设计中得到越来越多的应用。EPCS/EPCQ存储器具有引脚少,可在线多次擦写,断电不丢失数据的优点,通常作为FPGA的程序存储器使用。
在线升级又称在线编程,即可以在线更新EPCS/EPCQ存储器中的内容。一般来说,将FPGA的程序代码烧写入EPCS/EPCQ存储器的方法有三种:1.通过USB-Blaster等仿真器直接连接到电路板进行在线编程,但其不能脱离软件仿真环境、编程时需要打开设备外壳等因素也很难适应远程在线编程的要求,而且仿真器也额外增加了成本;2.采用专用的编程器进行离线编程,但这种方法操作复杂,且不能对EPCS/EPCQ存储器的内容进行任意的在线编程;3.采用其他FPGA或者DSP等作为CPU来对EPCS/EPCQ存储器进行在线编程。这种方法虽然可以对EPCS/EPCQ存储器远程在线升级,但是也有它本身的弊端,随着设计专用性,在很多的电路板卡上越来越多的只有一片FPGA,而没有其他的可编程器件,这样这种远程升级的方法就不再适用。
发明内容
为了克服现有EPCS与EPCQ存储器在线升级方法实用性差的不足,本发明提供一种基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法。该方法将EPCS/EPCQ远程在线升级模块固化在FPGA中,通过上位机向FPGA发送EPCS/EPCQ的擦除命令帧,读取FPGA的烧写文件并按232串口协议一帧一帧下发给FPGA,上位机向FPGA发送Reconfig命令帧;FPGA中固化的EPCS/EPCQ远程在线升级模块,负责解析上位机发送的命令帧,并根据命令将擦除指令按格式写入IP核中,或者接收到的串行的有效数据进行串并转换后按格式写入IP核中,或者根据命令将Reconfig命令按格式写入IP核中;FPGA中IP核接收写入其中的命令,按照命令对连接本片FPGA的EPCS/EPCQ进行相应的操作。本发明方法只使用单独的一片FPGA,就可以完成自身EPCS/EPCQ的在线升级,用户无需进入现场拆卸系统,实用性强。
本发明解决其技术问题所采用的技术方案是:一种基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法,其特点是包括以下步骤:
步骤一、将EPCS/EPCQ远程在线升级模块固化在FPGA中,FPGA利用编程环境生成烧写文件。
步骤二、运行上位机,上位机读取步骤一中的烧写文件,向FPGA发送EPCS/EPCQ擦除命令,并等待FPGA反馈擦除成功应答帧。
步骤三、FPGA收到EPCS/EPCQ的擦除命令后,将FPGA烧写文件长度信息寄存下来,之后开始将擦除命令按相应的格式写入ALTASMI_PARALLEL中,然后开始检查ALTASMI_PARALLEL的BUSY信号的输出,当BUSY信号变为低电平时,说明擦除成功。擦除成功后,向上位机反馈擦除成功的应答帧。
步骤四、上位机收到擦除成功应答帧后,将烧写文件中的数据按232串口协议发送一帧串行数据给FPGA,等待FPGA反馈升级完毕应答帧或下帧数据的请求帧。
步骤五、FPGA接收上位机发送的串行数据,进行串并转换,将转换后完整的本帧数据和相应的首地址全部按格式写入ALTASMI_PARALLEL中,然后ALTASMI_PARALLEL将数据写入EPCS/EPCQ中相应的地址中,完成后将BUSY信号拉低,然后FPGA将烧写的数据进行校验,校验的方法为将此帧的首地址写入ALTASMI_PARALLEL中,并给出读操作,将读出的数据与烧写的数据进行比较,一致说明烧写正确。本帧数据烧写完毕后,判断整个文件是否烧写完毕,判断方法为比较烧入EPCS/EPCQ存储器的文件长度与整个烧写文件长度是否相等,若相等则说明烧写完毕,若不相等则说明烧写未完毕。如果烧写没有完毕,则向上位机反馈下帧数据请求帧;若烧写完毕,则向上位机反馈升级完毕应答帧。
步骤六、上位机若收到下帧数据请求帧,则发送下一帧串行数据,并返回步骤五;上位机若收到升级完毕应答帧,则向FPGA发送Reconfig命令帧,FPGA接收到Reconfig命令后,将从新配置命令按格式写入ALTREMOTE_UPDATE中,然后FPGA将按照Active Serial模式从EPCS/EPCQ中加载程序。加载成功后,新版的程序会将新的版本号反馈给上位机。
步骤七、上位机接收到新程序的版本,确认无误后,远程在线升级过程完毕。
本发明的有益效果是:该方法将EPCS/EPCQ远程在线升级模块固化在FPGA中,通过上位机向FPGA发送EPCS/EPCQ的擦除命令帧,读取FPGA的烧写文件并按232串口协议一帧一帧下发给FPGA,上位机向FPGA发送Reconfig命令帧;FPGA中固化的EPCS/EPCQ远程在线升级模块,负责解析上位机发送的命令帧,并根据命令将擦除指令按格式写入IP核中,或者接收到的串行的有效数据进行串并转换后按格式写入IP核中,或者根据命令将Reconfig命令按格式写入IP核中;FPGA中IP核接收写入其中的命令,按照命令对连接本片FPGA的EPCS/EPCQ进行相应的操作。本发明方法只使用单独的一片FPGA,就可以完成自身EPCS/EPCQ的在线升级,用户无需进入现场拆卸系统,实用性强。对电路板卡来说,仅需要设计FPGA中的代码,不会影响硬件设计。即使电路板卡上仅有一片FPGA可编程芯片,也可以完全实现远程在线升级的操作,无需任何其他可编程芯片的帮助,大大减少了设计电路板卡的面积。
下面结合附图和实施例对本发明作详细说明。
附图说明
图1是本发明基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法的示意图。
图2是本发明基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法的硬件连接图。
图3是本发明基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法的流程图。
具体实施方式
参照图1-3。本发明基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法的具体步骤如下:
首先对本实施例中的芯片型号进行介绍:FPGA芯片选用的是Altera公司的EP3C120;存储器选用的是Altera公司的串行配置芯片EPCS64。
下面对远程在线升级中使用的编程环境以及IP核介绍:编程环境采用的是QuartusII8.1;ALTASMI_PARALLEL为可以直接连接访问EPCS的DATA、DCLK、nCS、ASDI连接,并且按照EPCS的访问时序进行操作控制的IP核;ALTREMOTE_UPDATE为可以进行配置FPGA加载的方式、加载时序、加载程序的地址以及加载程序时的看门狗的IP核。
步骤一:FPGA利用编程环境生成烧写文件。本实施案例中是将烧写文件生成原始配置数据Raw Programming Data(.rpd)文件。
步骤二:运行上位机,上位机读取步骤一中的烧写文件,向FPGA发送EPCS擦除命令,其中包含FPGA烧写文件长度信息,随后等待FPGA反馈擦除成功应答帧。
步骤三:FPGA收到EPCS的擦除命令后,将FPGA烧写文件长度信息寄存下来,步骤五中将利用该信息,开始将擦除命令按格式写入Active Serial MemoryInterface(ALTASMI_PARALLEL)Megafunction中,本实例中是直接给出全区擦除(Bulk_erase)命令,然后开始检查ALTASMI_PARALLEL的BUSY信号的输出,如果BUSY信号为高电平时,则继续等待直至其变为低电平,当BUSY信号变为低电平时,说明擦除成功。擦除成功后,向上位机反馈擦除成功的应答帧。
步骤四:上位机收到擦除成功应答帧后,开始发送有效数据。本实例中是将烧写文件中的数据按232串口协议发送一帧串行数据给FPGA,一帧有效的数据为256个字节,该数据刚好为EPCS一页的大小,最后一帧数据不满256个字节按实际长度发送。数据帧中还包括该帧数据在存储器中的首地址。随后等待FPGA反馈升级完毕应答帧或下帧数据的请求帧。
步骤五:FPGA接收上位机发送的串行数据,进行串并转换,将转换后完整的本帧数据(帧的实际数据长度)和相应的首地址全部按格式写入ALTASMI_PARALLEL中,然后ALTASMI_PARALLEL将数据写入EPCS中相应的地址中,随后等待BUSY信号拉低。BUSY信号拉低后说明此帧数据已经烧写完成。然后FPGA将烧写的数据进行校验,校验的方法为将此帧的首地址写入ALTASMI_PARALLEL中,并给出读操作,将读出的数据与烧写的数据进行比较,一致说明烧写正确,本实例中烧写校正错误会重新烧写此帧,烧写正确后计数器会加上当前帧的长度。本帧数据烧写完毕后,判断整个文件是否烧写完毕,本实例中是比较计数器与整个烧写文件长度是否相等,若相等则说明烧写完毕,若不相等则说明烧写未完毕。如果烧写没有完毕,则向上位机反馈下帧数据请求帧;若烧写完毕,则向上位机反馈升级完毕应答帧。
步骤六:上位机若收到下帧数据请求帧,则发送下一帧串行数据,并返回步骤五;上位机若收到升级完毕应答帧,则向FPGA发送Reconfig命令帧,此实例中,FPGA接收到Reconfig命令后,将从新配置命令按格式写入Remote System Upgrade(ALTREMOTE_UPDATE)Megafunction中,其他寄存器的设置为默认值,FPGA加载程序的地址为0地址。然后FPGA将按照Active Serial(AS)模式从EPCS中加载程序。加载成功后,新版的程序会将新的版本号反馈给上位机。本实例中新升级的程序的版本号与旧程序的版本号是不相同的。
步骤七:上位机接收到新程序的版本,确认无误后,则在上位机界面上显示“在线升级成功完成”,远程在线升级过程完毕。
研究人员采用本发明方法还对EPCS1、EPCS4、EPCS16、EPCS128、EPCQ128、EPCQ256存储器进行了远程在线升级,结果良好。
Claims (1)
1.一种基于FPGA中IP核的EPCS与EPCQ存储器在线升级方法,其特征在于包括以下步骤:
步骤一、将EPCS/EPCQ远程在线升级模块固化在FPGA中,FPGA利用编程环境生成烧写文件;
步骤二、运行上位机,上位机读取步骤一中的烧写文件,向FPGA发送EPCS/EPCQ擦除命令,并等待FPGA反馈擦除成功应答帧;
步骤三、FPGA收到EPCS/EPCQ的擦除命令后,将FPGA烧写文件长度信息寄存下来,之后开始将擦除命令按相应的格式写入ALTASMI_PARALLEL中,然后开始检查ALTASMI_PARALLEL的BUSY信号的输出,当BUSY信号变为低电平时,说明擦除成功;擦除成功后,向上位机反馈擦除成功的应答帧;
步骤四、上位机收到擦除成功应答帧后,将烧写文件中的数据按232串口协议发送一帧串行数据给FPGA,等待FPGA反馈升级完毕应答帧或下帧数据的请求帧;
步骤五、FPGA接收上位机发送的串行数据,进行串并转换,将转换后完整的本帧数据和相应的首地址全部按格式写入ALTASMI_PARALLEL中,然后ALTASMI_PARALLEL将数据写入EPCS/EPCQ中相应的地址中,完成后将BUSY信号拉低,然后FPGA将烧写的数据进行校验,校验的方法为将此帧的首地址写入ALTASMI_PARALLEL中,并给出读操作,将读出的数据与烧写的数据进行比较,一致说明烧写正确;本帧数据烧写完毕后,判断整个文件是否烧写完毕,判断方法为比较烧入EPCS/EPCQ存储器的文件长度与整个烧写文件长度是否相等,若相等则说明烧写完毕,若不相等则说明烧写未完毕;如果烧写没有完毕,则向上位机反馈下帧数据请求帧;若烧写完毕,则向上位机反馈升级完毕应答帧;
步骤六、上位机若收到下帧数据请求帧,则发送下一帧串行数据,并返回步骤五;上位机若收到升级完毕应答帧,则向FPGA发送Reconfig命令帧,FPGA接收到Reconfig命令后,将从新配置命令按格式写入ALTREMOTE_UPDATE中,然后FPGA将按照Active Serial模式从EPCS/EPCQ中加载程序;加载成功后,新版的程序会将新的版本号反馈给上位机;
步骤七、上位机接收到新程序的版本,确认无误后,远程在线升级过程完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328099.8A CN104077166B (zh) | 2014-07-10 | 2014-07-10 | 基于fpga中ip核的epcs与epcq存储器在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410328099.8A CN104077166B (zh) | 2014-07-10 | 2014-07-10 | 基于fpga中ip核的epcs与epcq存储器在线升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077166A true CN104077166A (zh) | 2014-10-01 |
CN104077166B CN104077166B (zh) | 2017-06-16 |
Family
ID=51598437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410328099.8A Active CN104077166B (zh) | 2014-07-10 | 2014-07-10 | 基于fpga中ip核的epcs与epcq存储器在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077166B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933632A (zh) * | 2017-03-13 | 2017-07-07 | 山东网聪信息科技有限公司 | 基于以太网的fpga功能在线升级方法 |
CN106990983A (zh) * | 2017-03-21 | 2017-07-28 | 北京新能源汽车股份有限公司 | 单片机烧写方法、装置、系统及单片机 |
CN109388413A (zh) * | 2017-08-03 | 2019-02-26 | 中车株洲电力机车研究所有限公司 | 一种fpga程序更新方法及系统 |
CN110737452A (zh) * | 2019-09-30 | 2020-01-31 | 清能德创电气技术(北京)有限公司 | 一种fpga固件在线升级方法及系统 |
CN112486515A (zh) * | 2020-11-29 | 2021-03-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于1K-XModem协议的FPGA软件在线升级方法 |
CN115934139A (zh) * | 2023-03-13 | 2023-04-07 | 东方电子股份有限公司 | 一种fpga在线升级方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897558A (zh) * | 2018-06-21 | 2018-11-27 | 大唐电信(成都)信息技术有限公司 | 基于以太网协议的安全的fpga远程在线升级方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233994A1 (en) * | 2003-05-22 | 2004-11-25 | Lsi Logic Corporation | Reconfigurable computing based multi-standard video codec |
CN201527452U (zh) * | 2009-04-28 | 2010-07-14 | 国网电力科学研究院 | 用于雷电探测的远程智能升级装置 |
CN103034515A (zh) * | 2012-12-11 | 2013-04-10 | 北京遥测技术研究所 | 一种卫星导航接收机fpga快速加载方法 |
CN103136028A (zh) * | 2013-03-11 | 2013-06-05 | 西北工业大学 | 一种基于fpga的flash存储器远程在线升级方法 |
-
2014
- 2014-07-10 CN CN201410328099.8A patent/CN104077166B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233994A1 (en) * | 2003-05-22 | 2004-11-25 | Lsi Logic Corporation | Reconfigurable computing based multi-standard video codec |
CN201527452U (zh) * | 2009-04-28 | 2010-07-14 | 国网电力科学研究院 | 用于雷电探测的远程智能升级装置 |
CN103034515A (zh) * | 2012-12-11 | 2013-04-10 | 北京遥测技术研究所 | 一种卫星导航接收机fpga快速加载方法 |
CN103136028A (zh) * | 2013-03-11 | 2013-06-05 | 西北工业大学 | 一种基于fpga的flash存储器远程在线升级方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933632A (zh) * | 2017-03-13 | 2017-07-07 | 山东网聪信息科技有限公司 | 基于以太网的fpga功能在线升级方法 |
CN106990983A (zh) * | 2017-03-21 | 2017-07-28 | 北京新能源汽车股份有限公司 | 单片机烧写方法、装置、系统及单片机 |
CN106990983B (zh) * | 2017-03-21 | 2021-09-24 | 北京新能源汽车股份有限公司 | 单片机烧写方法、装置、系统及单片机 |
CN109388413A (zh) * | 2017-08-03 | 2019-02-26 | 中车株洲电力机车研究所有限公司 | 一种fpga程序更新方法及系统 |
CN110737452A (zh) * | 2019-09-30 | 2020-01-31 | 清能德创电气技术(北京)有限公司 | 一种fpga固件在线升级方法及系统 |
CN112486515A (zh) * | 2020-11-29 | 2021-03-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于1K-XModem协议的FPGA软件在线升级方法 |
CN112486515B (zh) * | 2020-11-29 | 2022-09-30 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于1K-XModem协议的FPGA软件在线升级方法 |
CN115934139A (zh) * | 2023-03-13 | 2023-04-07 | 东方电子股份有限公司 | 一种fpga在线升级方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104077166B (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN105573800B (zh) | 一种基于zynq的单板或多板系统及在线更新方法 | |
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 | |
CN102999350B (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
CN103136028A (zh) | 一种基于fpga的flash存储器远程在线升级方法 | |
CN200976140Y (zh) | 一种用于现场可编程门阵列位文件升级的系统 | |
CN100461105C (zh) | 一种智能化设备软件升级与修复的方法和系统 | |
CN111008033A (zh) | 一种基于串口的通用dsp在线升级系统及升级方法 | |
CN113434162B (zh) | 远程在线更新fpga多版本程序的方法 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
CN102033770A (zh) | 移动终端的触摸屏固件升级方法及装置 | |
US20090198770A1 (en) | System and method of updating codes in controller | |
CN104679559A (zh) | 单片机在线编程的方法 | |
CN105224480A (zh) | 一种用于响应于读取要求的存取存储器装置的方法和装置 | |
CN102917242A (zh) | 一种多格式视频解码器的测试系统和测试方法 | |
CN105955764A (zh) | 一种stm32单片机iap串口程序烧录的改进方法 | |
CN105159731A (zh) | 一种fpga配置文件远程升级的装置 | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN108664264A (zh) | 一种基于cpu通过jtag方式远程更新fpga的装置和方法 | |
CN112231005A (zh) | 一种基于uboot管理fpga版本的方法 | |
CN100530146C (zh) | Bios在线烧录方法 | |
CN106776399A (zh) | 基于基板管理控制器的bios闪存数据读写系统及方法 | |
CN110196726A (zh) | 一种基于cpu+cpld实现fpga程序远程升级加载的方法 | |
CN101159957A (zh) | 一种数据终端设备升级、修复的方法和装置 | |
CN105468390A (zh) | Boot在线升级装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |