一种FPGA在线升级方法及系统与流程

本发明属于fpga升级方法,具体涉及一种fpga在线升级方法及系统。

背景技术:

1、随着我国智能配电技术的发展,越来越多的配电自动化终端产品使用了fpga(field-programmablegatearray,现场可编程门阵列)。fpga需要从配置芯片中加载用户预先编译好的程序文件才能正常工作,对fpga的程序升级,就是对配置芯片内存储的程序文件进行修改,使其能够按照新的程序文件执行。

2、传统的fpga程序升级方式包括离线升级和在线升级两种:

3、离线升级需要借助专用的fpga烧写器和软件,通过jtag(jointtestactiongroup,联合测试工作组)接口将程序文件写入配置芯片中,此方法虽然方便,但是对于产品的现场升级却不是特别友好。jtag接口通常是为研发和生产使用,不会作为产品的外部接口,需要升级时要拆解设备。另外,现场服务人员需要对专用的烧写器和软件有一定的了解,否则无法完成操作。

4、在线升级目前多借助于控制器实现,比如mcu(microcontrolunit,微控制单元)、dsp(digitalsignalprocessing,数字信号处理)等,通过专用的程序升级端口将fpga的程序升级文件发送给控制器,再由控制器通过二选一选择器写入配置芯片中。但此方案增加了电路设计的复杂度和产品的成本,而且一旦更新失败,将导致fpga无法工作。

5、基于此,急需一种新的fpga在线程序升级方法,不需要拆装设备,也不需要使用专门的烧写工具和软件,同样不需要借助控制器,即可实现fpga程序的在线升级。

技术实现思路

1、为了克服现有技术中的问题,本发明提出了一种fpga在线升级方法及系统。

2、本发明解决上述技术问题的技术方案如下:

3、第一方面,本发明提供了一种fpga在线升级方法,包括以下步骤:

4、安装有升级软件的上位机发送擦除指令,由配电终端的fpga对配电终端配置芯片的升级区进行擦除,保留配置芯片备份区数据;擦除指令全部发送完毕后,安装有升级软件的上位机发送读指令,验证已擦除的空间是否擦除成功,若未擦除成功,继续擦除;

5、若擦除成功,由安装有升级软件的上位机将升级文件进行分解,并将分解后的升级数据逐帧发送给fpga,待fpga执行完毕返回确认帧后,再次发送下一帧升级数据,直至所有的数据发送完毕,fpga执行完成后返回确认指令给上位机;

6、升级文件全部写入配置芯片升级区后,对配电终端断电重启;重启后,fpga从配置芯片的升级区加载程序并执行,完成fpga在线升级。

7、进一步地,若fpga在线升级失败,从配置芯片备份区加载数据。

8、进一步地,上位机向fpga发送擦除指令之前,还包括:安装有升级软件的上位机识别升级文件大小,计算需要擦除的配置芯片的空间大小。

9、进一步地,所述升级文件为.bin格式的文件。

10、进一步地,安装有升级软件的上位机发送擦除指令后,fpga对上位机擦除指令进行判断:如果上位机指令合法,将执行上位机指令内容,并返回执行结果;如果上位机指令不合法,则不执行且不返回执行结果。

11、进一步地,由安装有升级软件的上位机将升级文件进行分解,并将分解后的升级数据逐帧发送给fpga后,还包括fpga对上位机的升级文件进行判断:如果升级文件合法,将执行升级文件内容,并返回执行结果;如果升级文件不合法,则不执行且不返回执行结果。

12、进一步地,安装有升级软件的上位机将升级文件进行分解,并将分解后的升级数据逐帧发送给fpga具体包括:安装有升级软件的上位机将升级文件拆分为一帧一帧的数据,每帧数据包含的数据不超过256字节;安装有升级软件的上位机逐帧发送升级数据,待fpga执行完毕返回确认帧后,再次发送下一帧数据,直至所有的数据发送完毕。

13、进一步地,将分解后的升级数据逐帧发送给fpga之后还包括:fpga对安装有升级软件的上位机发送的升级数据进行解析,解析判断是否为程序升级指令,解析后判断为程序升级指令,写入程序数据缓冲区,执行程序升级指令;若解析后判断为通讯指令,则将数据写入通讯数据缓冲区中,返回指令执行结果。

14、第二方面,本发明还提供了一种fpga在线升级系统,包括:安装有升级软件的上位机、串行通讯接口模块、fpga模块、配置芯片;所述上位机、串行通讯接口模块、fpga模块、配置芯片依次通讯连接;

15、安装有升级软件的上位机用于发起程序升级流程,并将升级文件分解,分解后的升级数据通过串口通讯线缆发送给配电终端的串行通讯接口模块;

16、串行通讯接口模块用于将安装有升级软件的上位机发送的文件转换为ttl(transistortransistorlogic,晶体管-晶体管逻辑电平)信号;

17、fpga模块用于根据安装有升级软件的上位机发送的擦除指令对配置芯片的升级区进行擦除;用于解析判断是否为程序升级指令,解析后判断为程序升级指令,写入程序数据缓冲区,执行程序升级指令;若解析后判断为非程序升级指令,则将数据写入通讯数据缓冲区中,返回指令执行结果,实现正常的串口通讯功能;

18、配置芯片为fpga程序的存储媒介,用于每次上电时fpga从配置芯片中加载程序并执行;配置芯片内的数据区域分为升级区和备份区;升级区存储升级程序,fpga优先从该区域加载,备份区存储备份程序,升级失败时从该区域加载。

19、进一步地,所述系统还包括专用下载器、jtag接口模块、usb线缆、jtag线缆,所述专用下载器用于出厂时以dualboot(双启动)模式写入fpga程序,所述专用下载器通过usb线缆与上位机连接,所述jtag接口模块一端通过jtag线缆与所述专用下载器连接,另一端通过jtag接口与fpga模块通讯连接。

20、与现有技术相比,本发明具有如下技术效果:

21、(1)本发明不需要借助控制器,降低设计难度和成本;且本发明采用dualboot(双启动)模式,出场时在配置芯片中预先写入了两套程序文件,对配置芯片升级区进行擦除、升级,保留配置芯片备份区数据,fpga优先从升级区加载程序,升级失败时从备份区加载,避免fpga在线升级更新失败,fpga无法工作的情况出现;

22、(2)本发明保留专用下载器及usb线缆、jtag线缆等传统的离线式下载模式,则本发明同时兼容了串口和jtag两种模式,支持在线升级的同时又不影响生产和调试使用;

THE END
1.多平台FPGA工程快速移植与构建腾讯云开发者社区作为一名FPGA工程师,经常需要在多个FPGA设备之间移植项目,核心的问题是IP的管理和移植,今天通过安装和使用 FuseSoC 在多个 AMD FPGA 之间移植一个简单的项目。从 AMD Spartan? 7 更改为 AMD Artix? 7 设备,然后是 AMD Kintex? UltraSacle?。 https://cloud.tencent.com/developer/article/2476014
2.芯作者例如,针对Cisco Unified Industrial Wireless Software的命令注入漏洞和Google Chrome的资源管理错误漏洞,厂商已发布升级补丁以修复漏洞。0day漏洞利用增加根据FBI、NSA等网络安全机构的报告,2023年恶意网络人员利用更多的0day漏洞攻陷企业网络。漏洞修复和防护措施针对已披露的漏洞,相关厂商和网络安全机构积极发布修复补丁和防护https://me.csdn.net/follow/QQ_778132974
3.CPLDFPGA在线升级程序.docCPLDFPGA在线升级程序 用CPU配置Altera公司的FPGA 一. 概述 目前很多产品都广泛用了FPGA,虽然品种不同,但编程方式几乎都一样:利用专用的EPROM对FPGA进行配置。专用的EPROM价格不便宜,且大不跟上都是一次性OPT方式编程。一旦更改FPGA设计,代价不小。 为了进一步降低产品的成本和升级成本,可以考虑利用板上现有CPU子系统https://max.book118.com/html/2016/0920/55247186.shtm
4.一种基于FPGA的在线升级方案2020 文章编号: 2096鄄1618(2020)05鄄0493鄄06 一种基于 FPGA 的在线升级方案 万摇 垚,摇 李摇 蠡 ( 成都信息工程大学通信工程学院,四川 成都 610225) 摇摇 摘要:一般对 FPGA 程序升级,需要使用下载器通过 JTAG 接口与 FPGA 连接,在一些不方便开盖的环境下,此 种升级方案非常困难. 基于 XILINX 公司的 XChttp://xb.cuit.edu.cn/OA/pdfdow.aspx?Sid=202005002
5.通过MCU实现AlteraFPGA在线升级.docx通过MCU实现Altera-FPGA在线升级 通过MCU实现Altera FPGA在线升级一.问题背景 在实际工程应用中,我们时常会遇到为解决某个老产品的BUG,须要在工程现场更新设备的FPGA代码,或者参与电信测试时须要现场升了容量不一样,其他方面几乎完全相同,在引脚上也完全兼容https://www.taodocs.com/p-725939679.html
6.如何实现FPGA通过串口在线升级FPGACPLDASIC论坛能不能通过串口给FPGA发送mcs文件的数据比特,FPGA把数据比特缓存起来,然后再将缓存的数据比特写入到FLASH里?这样断电在重启后,FPGA从Flash里读取程序就得到更新?有人试过吗? 0 已退回5积分 2016-4-2 18:08:30 评论 淘帖 邀请回答 jameswu2013 相关推荐 ? FPGA在线升级 6040 ? 请问有人在安卓https://bbs.elecfans.com/jishu_576452_1_1.html
7.埃科光电取得FPGA在线升级方法专利,实现方便稳定的FPGA在线升级功能金融界2023年11月21日消息,据国家知识产权局公告,合肥埃科光电科技股份有限公司取得一项名为“一种基于NiosII软核的FPGA在线升级方法”,授权公告号CN112148341B,申请日期为2020年10月。 专利摘要显示,本发明公开了一种基于NiosII软核的FPGA在线升级方法,其步骤是,1、FPGA上运行NiosII软核,用于响应在线升级指令,并读写https://finance.jrj.com.cn/2023/11/21202038513326.shtml
8.一种基于FPGA的在线程序升级方案AET摘要: 介绍了一种基于XILINX FPGA的在线程序升级方案,该方案不需要额外增加器件,在不改变硬件状态的前提下,实现产品的软件功能升级。由于对配置芯片(PROM)的所有操作均由FPGA的内部逻辑实现,故此方案具有良好的移植性和扩展性。 关键词: FPGA 在线升级 JTAG http://www.chinaaet.com/article/3000062220
9.基于DSP28335的FPGA软件在线升级方法在理论分析的基础上,给出了所提方法的硬件原理图和软件实现流程。大量实验结果表明,该方法具有较好的可行性、稳定性和可靠性,可以实现DSP+FPGA架构下不拆产品就可升级FPGA软件的目的。 引用:2次下载:278次 下载PDF版下载EPUB版 关键词 DSPFPGA在线升级配置PROMhttps://read.cnki.net/web/Journal/Article/GWDZ202403004.html
10.ARM在线升级FPGA程序方法(逆向工程)公司有款产品采用FPGA做处理器,需要远程升级—— 不使用烧写器,通过网络对其升级。领导提议既然程序是存储在外部存储器上的,那么能否通过EPCS4与ARMSPI总线通信连接刷新FPGA程序呢?于是就有了下文的实践。 要实现该功能有几种方式: 1. 解析编译出的FPGA下载文件jic、pof,将解析后的内容烧录到EPCS4中。但是否这两种https://news.eda365.com/tech/qrskaifa/120010017061479.html
11.各位大神fpga远程在线升级怎么做呀求指导谢谢您需要登录才可以下载或查看,没有账号?注册 x 各位大神 fpga远程在线升级怎么做呀 求指导谢谢 https://bbs.eetop.cn/thread-763842-1-1.html
12.Re:FPGA的在线升级方案求证FPGA的在线升级方案求证 Abonnieren Mehr Aktionen H1123 Einsteiger ?04-11-2021 02:41 AM 3.337Aufrufe 已知通过解析SVF文件可以利用MCU模拟JTAG时序烧写sof文件到FPGA中。 然而大多数的CPLD因为内部自带EEPROM等模块 ,所以可以通过JTAG直接完成程序的固化。但是FPGA如果需要通过JTAG固化程序,则需要https://community.intel.com/t5/Intel-Quartus-Prime-Software/FPGA%E7%9A%84%E5%9C%A8%E7%BA%BF%E5%8D%87%E7%BA%A7%E6%96%B9%E6%A1%88%E6%B1%82%E8%AF%81/m-p/1273451/highlight/true?profile.language=de
13.非常好的FPGA量产烧程序及在线更新程序方法(amobbs.com阿莫电子结合图6的实例,对FPGA在线升级作一具体描述。图6 FPGA在线升级 1. 使用编译和连接工具,将FPGA的第https://www.amobbs.com/thread-5491178-1-1.html
14.LATTICEFPGA通过SlaveSPI在线升级,怎样可以将JEDEC文件转换成关于Slave SPI升级方式的问题,怎样可以将JEDEC文件转换成二进制烧录文件?https://chipdebug.com/forum-post/43.html
15.FPGA板卡固件更新方法装置设备及介质本发明实现了对FPGA板卡进行在线升级,减少了板卡的拆卸,提高了固件更新的可靠性,利于产品的保密性并降低了开发的难度。 主权项:1.一种FPGA板卡固件更新方法,应用于计算机设备,所述计算机设备包括至少一FPGA板卡,其特征在于,所述方法包括:获取目标升级固件版本的BIN文件;将所述BIN文件转换为双字节模式文件,并将转换后https://pbs.lotut.com/zhuanli/detail.html?id=669e1a745dbd827390ca56d5
16.何绪金:FPGA双镜像备份升级方法摘要:基于FPGA的硬件系统的现场升级是通过FPGA更新其外挂的EEPROM中存储的配置文件来实现的。但是如果在更新EEPROM的配置文件过程中,突发系统掉电,会导致EEPROM中的配置文件不完整,再次上电后FPGA无法工作,从而导致系统失效。本文讲述了一种基于Xilinx的Multiboot的备份升级方法,该方法可以有效的解决产品在线升级FPGA过程中http://m.yuncaijing.com/news/8749086.html
17.Xilinx系列FPGA远程网络升级实现简介FPGA开发圈在实际应用中有很多FPGA板卡离工程师是有一定的距离,导致升级FPGA的mcs文件需要到现场,这样不方便也浪费时间。为此我们实现了基于通用网络传输方式来做远程升级的方案。此方案框图如下所示,本方案硬件平台基于米联客KU040FA板卡来做实现,当然此方案适用Xilinx的其他型号FPGA芯片。在Vivado工程上面例化了一个MircoBlaze核作http://xilinx.eetrend.com/content/2021/100556371.html