CN108874424A - 基于串口协议的fpga安全在线升级方法 - Google Patents
基于串口协议的fpga安全在线升级方法 Download PDFInfo
- Publication number
- CN108874424A CN108874424A CN201810644685.1A CN201810644685A CN108874424A CN 108874424 A CN108874424 A CN 108874424A CN 201810644685 A CN201810644685 A CN 201810644685A CN 108874424 A CN108874424 A CN 108874424A
- Authority
- CN
- China
- Prior art keywords
- fpga
- program
- host computer
- version
- user
- 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.)
- Pending
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了基于串口协议的FPGA安全在线升级方法,通过通用串口线缆对设备FPGA进行在线升级,升级过程中无需拆卸系统,并且将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域,若在升级过程中如出现故障,设备可自动恢复到出厂版本,并可在出厂版本下重新进行在线升级操作,大大的降低了设备的维护成本。
Description
技术领域
本发明属于FPGA在线升级领域,具体涉及基于串口协议的FPGA安全在线升级方法。
背景技术
在嵌入式系统设备中,现场可编程门阵列FPGA(Field Program Gates Array)因为其具备的现场可编程、硬件并行处理能力强等特点在实际的设计中得到越来越多的应用。EPCS系列存储器由于具有引脚少,掉电不丢失数据的特点,通常做为FPGA的程序存储器。目前主流的对EPCS存储器进行程序代码烧写主要有3种方式:
1、通过专用仿真器通过专用JTAG插座,在专用软件仿真环境下进行烧写。采用这种方式,外在限制条件较多,在升级时通常需要打开设备外壳以连接仿真器和JTAG插座,很难适应远程在线升级的要求。
2、采用ARM、单片机或其他CPU器件对EPCS存储器进行编程,如果嵌入式设备中没有此类器件,则FPGA在线升级则无法实现,同时采用这种方法,一旦在烧写EPCS过程中出现错误,则会导致FPGA无法启动。
3、采用发明专利CN201410328099.8所述方法,需要先完全擦除EPCS后才能对EPCS进行烧写,如果对EPCS擦除成功后,正在烧写EPCS过程中出现故障(比如掉电),那么FPGA下次重新启动时就无法从EPCS中获取下载文件,FPGA将无法启动,此时就只能通过JTAG方式对FPGA进行重新编程,这将大大增加设备的维护成本。
发明内容
本发明的目的在于克服上述不足,提供基于串口协议的FPGA安全在线升级方法,对FPGA升级可采用通用串口线缆,并且升级过程中无需拆卸系统。
为了达到上述目的,本发明包括以下步骤:
步骤一,将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域;
步骤二,将出厂程序存储区域和用户存储区域中的所需内容烧录到EPCS中;
步骤三、FPGA等待上位机启动新版本用户程序的传输流程;
步骤四、上位机通知FPGA准备接收新版本用户程序;
步骤五、FPGA通过串口向上位机发送’C’字符,然后等待接收控制帧;
步骤六、上位机收到’C’字符后,通过串口向FPGA发送控制帧;
步骤七、FPGA收到控制帧并校验通过后,向上位机发送ACK字符;
步骤八、上位机收到ACK字符后,等待接收’C’字符;
步骤九、FPGA通过串口向上位机发送’C’字符,然后等待接收数据帧;
步骤十、上位机通过串口向FPGA发送数据帧;
步骤十一、FPGA收到数据帧并校验通过后,FPGA操作ALTASMI_PARALLEL烧写EPCS的用户存储区域;
步骤十二、FPGA向上位机发送ACK字符;
步骤十三、上位机判断数据是否发送完毕,如果发送完毕,则进入步骤十四,否则执行步骤十;
步骤十四、上位机通过串口向FPGA发送EOT;
步骤十五、FPGA向上位机发送ACK字符,上位机收到ACK字符后,上位机结束本次文件传输;
步骤十六、FPGA进行程序重配置操作。
当设备掉电重启,FPGA进行如下操作:
第一步,FPGA根据默认配置自动从出厂程序存储区域加载出厂程序;
第二步,出厂版本程序加载成功并正常运行后,出厂版本程序监听是否有用户版本程序,如果没有,则进入FPGA获取升级文件子流程,进行步骤三;如果有用户版本程序,则执行第三步;
第三步,FPGA操作IP核ALTREMOTE_UPDATE加载用户存储区域的程序;
第四步、用户程序版本若加载失败,则退回到第一步,如果加载成功,则执行第五步;
第五步、FPGA按照用户版本程序进行工作,用户版本程序开启一个任务用于接收新版本的用户版本程序,当需要对用户版本程序进行升级时,进入FPGA获取升级文件子流程,进行步骤三。
步骤十六中,FPGA进行程序重配置的具体方法如下:
第一步、FPGA开始进行程序重新配置操作;
第二步、FPGA向IP核ALTREMOTE_UPDATE写入更新application命令;
第三步、FPGA向IP核ALTREMOTE_UPDATE写入下次重配置启动地址;
第四步、FPGA向IP核ALTREMOTE_UPDATE写入控制字使能用户版本程序看门狗电路以及看门狗定时器时间;
第五步、FPGA控制IP核ALTREMOTE_UPDATE重配置开关,完成FPGA的重配置。
步骤二中,烧录采用JTAG方式。
与现有技术相比,本发明通过通用串口线缆对设备FPGA进行在线升级,升级过程中无需拆卸系统,并且将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域,若在升级过程中如出现故障,设备可自动恢复到出厂版本,并可在出厂版本下重新进行在线升级操作,大大的降低了设备的维护成本。
附图说明
图1为本发明的流程图;
图2为本发明中设备掉电重启的流程图;
图3为本发明中FPGA进行重配置的流程流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
参见图1,本发明包括以下步骤:
步骤一,将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域;
步骤二,采用JTAG方式将出厂程序存储区域和用户存储区域中的所需内容烧录到EPCS中;
步骤三、FPGA等待上位机启动新版本用户程序的传输流程;
步骤四、上位机通知FPGA准备接收新版本用户程序;
步骤五、FPGA通过串口向上位机发送’C’字符,然后等待接收控制帧;
步骤六、上位机收到’C’字符后,通过串口向FPGA发送控制帧;
步骤七、FPGA收到控制帧并校验通过后,向上位机发送ACK字符;
步骤八、上位机收到ACK字符后,等待接收’C’字符;
步骤九、FPGA通过串口向上位机发送’C’字符,然后等待接收数据帧;
步骤十、上位机通过串口向FPGA发送数据帧;
步骤十一、FPGA收到数据帧并校验通过后,FPGA操作ALTASMI_PARALLEL烧写EPCS的用户存储区域;
步骤十二、FPGA向上位机发送ACK字符;
步骤十三、上位机判断数据是否发送完毕,如果发送完毕,则进入步骤十四,否则执行步骤十;
步骤十四、上位机通过串口向FPGA发送EOT;
步骤十五、FPGA向上位机发送ACK字符,上位机收到ACK字符后,上位机结束本次文件传输;
步骤十六、FPGA进行程序重配置操作。
参见图2,当设备掉电重启,FPGA进行如下操作:
第一步,FPGA根据默认配置自动从出厂程序存储区域加载出厂程序;
第二步,出厂版本程序加载成功并正常运行后,出厂版本程序监听是否有用户版本程序,如果没有,则进入FPGA获取升级文件子流程,进行步骤三;如果有用户版本程序,则执行第三步;
第三步,FPGA操作IP核ALTREMOTE_UPDATE加载用户存储区域的程序;
第四步、用户程序版本若加载失败,则退回到第一步,如果加载成功,则执行第五步;
第五步、FPGA按照用户版本程序进行工作,用户版本程序开启一个任务用于接收新版本的用户版本程序,当需要对用户版本程序进行升级时,进入FPGA获取升级文件子流程,进行步骤三。
参见图3,FPGA进行程序重配置的具体方法如下:
第一步、FPGA开始进行程序重新配置操作;
第二步、FPGA向IP核ALTREMOTE_UPDATE写入更新application命令;
第三步、FPGA向IP核ALTREMOTE_UPDATE写入下次重配置启动地址;
第四步、FPGA向IP核ALTREMOTE_UPDATE写入控制字使能用户版本程序看门狗电路以及看门狗定时器时间;
第五步、FPGA控制IP核ALTREMOTE_UPDATE重配置开关,完成FPGA的重配置。
Claims (4)
1.基于串口协议的FPGA安全在线升级方法,其特征在于,包括以下步骤:
步骤一,将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域;
步骤二,将出厂程序存储区域和用户存储区域中的所需内容烧录到EPCS中;
步骤三、FPGA等待上位机启动新版本用户程序的传输流程;
步骤四、上位机通知FPGA准备接收新版本用户程序;
步骤五、FPGA通过串口向上位机发送’C’字符,然后等待接收控制帧;
步骤六、上位机收到’C’字符后,通过串口向FPGA发送控制帧;
步骤七、FPGA收到控制帧并校验通过后,向上位机发送ACK字符;
步骤八、上位机收到ACK字符后,等待接收’C’字符;
步骤九、FPGA通过串口向上位机发送’C’字符,然后等待接收数据帧;
步骤十、上位机通过串口向FPGA发送数据帧;
步骤十一、FPGA收到数据帧并校验通过后,FPGA操作ALTASMI_PARALLEL烧写EPCS的用户存储区域;
步骤十二、FPGA向上位机发送ACK字符;
步骤十三、上位机判断数据是否发送完毕,如果发送完毕,则进入步骤十四,否则执行步骤十;
步骤十四、上位机通过串口向FPGA发送EOT;
步骤十五、FPGA向上位机发送ACK字符,上位机收到ACK字符后,上位机结束本次文件传输;
步骤十六、FPGA进行程序重配置操作。
2.根据权利要求1所述的基于串口协议的FPGA安全在线升级方法,其特征在于,当设备掉电重启,FPGA进行如下操作:
第一步,FPGA根据默认配置自动从出厂程序存储区域加载出厂程序;
第二步,出厂版本程序加载成功并正常运行后,出厂版本程序监听是否有用户版本程序,如果没有,则进入FPGA获取升级文件子流程,进行步骤三;如果有用户版本程序,则执行第三步;
第三步,FPGA操作IP核ALTREMOTE_UPDATE加载用户存储区域的程序;
第四步、用户程序版本若加载失败,则退回到第一步,如果加载成功,则执行第五步;
第五步、FPGA按照用户版本程序进行工作,用户版本程序开启一个任务用于接收新版本的用户版本程序,当需要对用户版本程序进行升级时,进入FPGA获取升级文件子流程,进行步骤三。
3.根据权利要求1所述的基于串口协议的FPGA安全在线升级方法,其特征在于,步骤十六中,FPGA进行程序重配置的具体方法如下:
第一步、FPGA开始进行程序重新配置操作;
第二步、FPGA向IP核ALTREMOTE_UPDATE写入更新application命令;
第三步、FPGA向IP核ALTREMOTE_UPDATE写入下次重配置启动地址;
第四步、FPGA向IP核ALTREMOTE_UPDATE写入控制字使能用户版本程序看门狗电路以及看门狗定时器时间;
第五步、FPGA控制IP核ALTREMOTE_UPDATE重配置开关,完成FPGA的重配置。
4.根据权利要求1所述的基于串口协议的FPGA安全在线升级方法,其特征在于,步骤二中,烧录采用JTAG方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810644685.1A CN108874424A (zh) | 2018-06-21 | 2018-06-21 | 基于串口协议的fpga安全在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810644685.1A CN108874424A (zh) | 2018-06-21 | 2018-06-21 | 基于串口协议的fpga安全在线升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108874424A true CN108874424A (zh) | 2018-11-23 |
Family
ID=64340724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810644685.1A Pending CN108874424A (zh) | 2018-06-21 | 2018-06-21 | 基于串口协议的fpga安全在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874424A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737452A (zh) * | 2019-09-30 | 2020-01-31 | 清能德创电气技术(北京)有限公司 | 一种fpga固件在线升级方法及系统 |
CN112486515A (zh) * | 2020-11-29 | 2021-03-12 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于1K-XModem协议的FPGA软件在线升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112731B1 (en) * | 2008-11-24 | 2012-02-07 | Lattice Semiconductor Corporation | Congestion-driven placement systems and methods for programmable logic devices |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN107562437A (zh) * | 2017-09-12 | 2018-01-09 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于MicroBlaze软核的FPGA在线升级的系统及方法 |
CN107977217A (zh) * | 2017-11-22 | 2018-05-01 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 在线加载xilinx-fpga多版本更新程序的方法 |
CN108037943A (zh) * | 2017-12-08 | 2018-05-15 | 成都华力创通科技有限公司 | 一种基于nios ii的fpga在线升级方法 |
-
2018
- 2018-06-21 CN CN201810644685.1A patent/CN108874424A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112731B1 (en) * | 2008-11-24 | 2012-02-07 | Lattice Semiconductor Corporation | Congestion-driven placement systems and methods for programmable logic devices |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN107562437A (zh) * | 2017-09-12 | 2018-01-09 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于MicroBlaze软核的FPGA在线升级的系统及方法 |
CN107977217A (zh) * | 2017-11-22 | 2018-05-01 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 在线加载xilinx-fpga多版本更新程序的方法 |
CN108037943A (zh) * | 2017-12-08 | 2018-05-15 | 成都华力创通科技有限公司 | 一种基于nios ii的fpga在线升级方法 |
Non-Patent Citations (4)
Title |
---|
ALTERA CORPORATION: "《altasmi_parallel Megafunction User Guide》", 31 October 2007, ALTERA CORPORATION * |
ALTERA CORPORATION: "《Remote System Upgrade (ALTREMOTE_UPDATE) Megafunction User Guide》", 29 February 2012, ALTERA CORPORATION * |
JOE CAMPBELL 原著: "《串行通信编程指南》", 31 December 1990, 北京科海培训中心 * |
王梦杰: "FPGA固件远程更新方法的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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软件在线升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853172B (zh) | 复杂可编程逻辑器件cpld动态升级装置及方法 | |
CN108427570A (zh) | 一种智能家电主控程序升级系统及升级方法 | |
US20030106051A1 (en) | System and method for high availability firmware load | |
CN108897558A (zh) | 基于以太网协议的安全的fpga远程在线升级方法 | |
CN109002310A (zh) | 固件升级方法 | |
WO2021136200A1 (zh) | 引导程序的加载方法、存储介质及嵌入式终端 | |
CN109144532B (zh) | 升级方法及装置 | |
CN108874424A (zh) | 基于串口协议的fpga安全在线升级方法 | |
US20030106052A1 (en) | System and method for high availability firmware load | |
CN106874054A (zh) | 一种直放站内模块程序在线升级方法与系统 | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
US11579977B2 (en) | Data storage device restoring method | |
JP2023035930A (ja) | コンピュータシステム及びコンピュータシステムのブート方法 | |
CN104199707A (zh) | 对fpga进行升级的系统和方法 | |
CN109388413A (zh) | 一种fpga程序更新方法及系统 | |
JP2007082078A (ja) | データ中継装置 | |
CN115495136B (zh) | 一种基于国产飞腾平台的bmc快速在线升级方法 | |
CN111522571A (zh) | 设备升级方法、装置、终端设备及存储介质 | |
CN103677919A (zh) | 一种基于串口的机载软件更新方法 | |
CN115643245A (zh) | 一种基于Web的SCA波形管理方法 | |
CN108572831B (zh) | 一种软件在线更新升级系统及方法 | |
CN114115955B (zh) | 服务器资源盒子fpga固件升级方法、系统、终端及存储介质 | |
CN109933347A (zh) | 一种基于1553b总线的多嵌入式处理器软件可靠升级方法 | |
CN114661536A (zh) | 一种处理器自动测试控制平台、控制方法及操作方法 | |
CN111142909B (zh) | 基于xc7z045芯片实现can网络远程升级的终端、方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181123 |
|
RJ01 | Rejection of invention patent application after publication |