CN107621943A - 一种fpga动态批量烧写系统及方法 - Google Patents
一种fpga动态批量烧写系统及方法 Download PDFInfo
- Publication number
- CN107621943A CN107621943A CN201710712113.8A CN201710712113A CN107621943A CN 107621943 A CN107621943 A CN 107621943A CN 201710712113 A CN201710712113 A CN 201710712113A CN 107621943 A CN107621943 A CN 107621943A
- Authority
- CN
- China
- Prior art keywords
- programming
- fpga
- code
- area
- host computer
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA动态批量烧写系统,其包含:上位机,用于进行指令和烧写数据的广播;若干烧写模块,分别通过485总线连接上位机;其中,每个烧写模块分别包含:485芯片,通过所述的485总线连接上位机;FPGA,连接所述的485芯片,该FPGA具有内部加载逻辑;Flash芯片,连接所述的FPGA,该Flash芯片中烧写初始MCS架构;该初始MCS架构包含协议区和代码区,协议区中包含用于决定加载时启用备份区还是更新区的关键字,代码区包含烧写有保留代码的备份区、用于烧写新代码的更新区以及用于烧写新代码的CRC的CRC校验区。其优点是:实现动态烧写和批量更新下载,大大提高了系统调试和软件更新的效率。
Description
技术领域
本发明涉及数字通信技术领域,具体涉及一种FPGA动态批量烧写系统及方法。
背景技术
目前FPGA广泛应用于各类高速数字信号处理中,而FPGA配置加载程序的方法有很多。一般FPGA可上电主动读取外置存储器中的配置文件,即将代码烧写在独立的外部存储芯片中,例如Flash中,也可以通过CPLD或DSP等控制器来读取配置文件加载到FPGA当中。而且FPGA的配置文件一般通过专用的烧写器进行烧写,这就对设备的使用条件和环境提出了要求,例如带有FPGA产品的结构件需对外留好烧写接口方便进行配置文件更改;而且单板的需要进行抗电磁干扰设计,使得在恶劣条件下烧写可以正常进行。当一台设备有多个FPGA模块时,对硬件和结构设计就提出了更多的要求,而且烧写配置时会损失大量时间,这就需要设计出一种能支持批量烧写的方法。
现有的文献对FPGA的烧写配置方法有以下几种:
文献1(李宗红,何攀峰.基于PCI总线配置FPGA的技术[J].科技信息,2010,17:478-479.)实现了基于PCI总线、CPLD实现的FPGA动态加载技术,但是加入了CPLD等芯片,使硬件设计更为复杂;
文献2(范斌,常青.基于DSP的FPGA动态重构系统研究与设计[J].信息与电子工程,2010,8(2):123-127.)实现了通过DSP来实现FPGA的动态烧写,不过在没有DSP的硬件系统中此设计难以通用;
专利1(FPGA配置程序的烧写方法,201210201314.9,2012)提出了用计算机作为配置器,以带网络接口的PowerPC作为微处理器,将包含接口转换电路的FPGA通过烧写电缆连接配置器,这样简化了硬件设计,不过通用化不够;
专利2(一种可实现不带电烧写程序的CPLD/FPGA下载器,201620490610.9,2016)发明了一种可不带电烧写程序的FPGA下载器,实现了下载工具的通用化,但是没有解决大批量烧写的工作量;
专利3(一种高可靠性FPGA远程升级方法,201610975861.0,2016)将FPGA的配置芯片进行分区,分区一带有基础功能,分区二为代码升级区,在更新失败时加载分区一代码,避免了在更新过程中意外中断导致FPGA上电无法正确加载的情况。
实际应用中,通常会遇到FPGA批量烧写的需求,如果用仿真器烧写会带来巨大的工作量,如果板子加入控制器来辅助加载代码,则会增加电路设计和软件设计的复杂度,不符合小型化的需求。
发明内容
本发明的目的在于提供一种FPGA动态批量烧写系统及方法,其利用485总线进行广播需要烧写的代码文件,并利用FPGA内部加载逻辑实现动态烧写和批量更新下载,大大提高了系统调试和软件更新的效率。
为了达到上述目的,本发明通过以下技术方案实现:
一种FPGA动态批量烧写系统,其特征是,包含:
上位机,用于进行指令和烧写数据的广播;
若干烧写模块,分别通过485总线连接上位机;
其中,每个烧写模块分别包含:
485芯片,通过所述的485总线连接上位机;
FPGA,连接所述的485芯片,该FPGA具有内部加载逻辑;
Flash芯片,连接所述的FPGA,该Flash芯片中烧写初始MCS架构;该初始MCS架构包含协议区和代码区,协议区中包含用于决定加载时启用备份区还是更新区的关键字,代码区包含烧写有保留代码的备份区、用于烧写新代码的更新区以及用于烧写新代码的CRC的CRC校验区。
上述的FPGA动态批量烧写系统,其中,所述的协议区中还包含:
数据同步段、更新代码头地址以及加载指令。
上述的FPGA动态批量烧写系统,其中:
所述的FPGA为XILINX6系列或7系列或8系列中的任意一种。
上述的FPGA动态批量烧写系统,其中:
所述关键字默认状态下激活备份区。
一种FPGA动态批量烧写方法,实现若干具有内部加载逻辑的FPGA的批量烧写功能,其特征是,包含:
上位机在线通过485总线及485芯片将新代码广播至各个FPGA;
各个FPGA利用内部加载逻辑将新代码按格式写入相应的Flash芯片中,同时写入新代码的CRC;
各个FPGA分别从Flash芯片中读出新代码并计算CRC,若正确则将关键字指向备份区以启用新代码作为下次配置的代码,若错误则默认关键字不变指向保留代码。
上述的FPGA动态批量烧写方法,其中:
更新开始时,首先擦除关键字,然后再进行新代码的烧写。
本发明与现有技术相比具有以下优点:
1、利用485总线进行广播需要烧写的代码文件,并利用FPGA内部加载逻辑实现动态烧写和批量更新下载,大大提高了系统调试和软件更新的效率;
2、为每一个FPGA都配置一Flash芯片,将Flash芯片分为保留代码区和更新代码区,一方面可通过在线更新代码实现动态切换,一方面在更新代码段末尾加入CRC校验,在更新出现异常的情况下依然可以启用保留区代码,可支持代码再次更新,并保证系统的基本功能不受影响。
附图说明
图1为本发明的系统框图;
图2为本发明的系统中Flash芯片中初始MCS的架构图;
图3为本发明实施例中的动态批量烧写方法流程图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,本发明提出了一种FPGA动态批量烧写系统,其包含:
上位机1,用于进行指令和烧写数据的广播;
若干烧写模块2,分别通过485总线连接上位机1;
其中,每个烧写模块分别包含:
485芯片3,通过所述的485总线连接上位机;
FPGA4,连接所述的485芯片3,该FPGA4具有内部加载逻辑;
Flash芯片5,大小根据需要选取,连接所述的FPGA4,配置初期,该Flash芯片5中烧写初始MCS架构;如图2所示,该初始MCS架构包含协议区和代码区,协议区中包含用于决定加载时启用备份区还是更新区的关键字,代码区包含烧写有保留代码的备份区、用于烧写新代码的更新区以及用于烧写新代码的CRC的CRC校验区。通常,所述的协议区中还包含:数据同步段、更新代码头地址以及加载指令。备份区需要支持与Flash芯片读写的接口功能,其他功能可根据用户需求。
所述的FPGA为XILINX6系列或7系列或8系列中的任意一种。
本实施例中,所述关键字默认状态下激活备份区。
如图3所示,本发明还公开了一种FPGA动态批量烧写方法,实现若干具有内部加载逻辑的FPGA的批量烧写功能,其包含:
上位机1在线通过485总线及485芯片3将新代码广播至各个FPGA4;
各个FPGA4利用内部加载逻辑将新代码按格式写入相应的Flash芯片5中,同时写入新代码的CRC;
各个FPGA4分别从Flash芯片5中读出新代码并计算CRC,若正确则将关键字指向备份区以启用新代码作为下次配置的代码,若错误则默认关键字不变指向保留代码。当关键字指向更新区时,加载时跳过协议区直接读取备份区代码;当关键字指向更新区时,加载时读取协议信息,找到更新段启示地址,直接跳至更新区代码开始加载。
更新开始时,首先擦除关键字,然后再进行新代码的烧写,当更新代码加载结束,进行CRC校验,若校验成功,则写入关键字使关键字指向更新区;如校验失败则不写入,在下次加载时激活备份区的保留代码。
本实施例中,FPGA4选用A7100t芯片,Flash芯片5选用N25Q128芯片,FPGA共有40个,若采样传统仿真器逐个烧写,总共需要4个小时左右时间,而采用本发明方案,完成一次烧写只需要2分钟,大大提升了效率。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术c人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (6)
1.一种FPGA动态批量烧写系统,其特征在于,包含:
上位机,用于进行指令和烧写数据的广播;
若干烧写模块,分别通过485总线连接上位机;
其中,每个烧写模块分别包含:
485芯片,通过所述的485总线连接上位机;
FPGA,连接所述的485芯片,该FPGA具有内部加载逻辑;
Flash芯片,连接所述的FPGA,该Flash芯片中烧写初始MCS架构;该初始MCS架构包含协议区和代码区,协议区中包含用于决定加载时启用备份区还是更新区的关键字,代码区包含烧写有保留代码的备份区、用于烧写新代码的更新区以及用于烧写新代码的CRC的CRC校验区。
2.如权利要求1所述的FPGA动态批量烧写系统,其特征在于,所述的协议区中还包含:
数据同步段、更新代码头地址以及加载指令。
3.如权利要求1所述的FPGA动态批量烧写系统,其特征在于:
所述的FPGA为XILINX6系列或7系列或8系列中的任意一种。
4.如权利要求1所述的FPGA动态批量烧写系统,其特征在于:
所述关键字默认状态下激活备份区。
5.一种FPGA动态批量烧写方法,实现若干具有内部加载逻辑的FPGA的批量烧写功能,其特征在于,包含:
上位机在线通过485总线及485芯片将新代码广播至各个FPGA;
各个FPGA利用内部加载逻辑将新代码按格式写入相应的Flash芯片中,同时写入新代码的CRC;
各个FPGA分别从Flash芯片中读出新代码并计算CRC,若正确则将关键字指向备份区以启用新代码作为下次配置的代码,若错误则默认关键字不变指向保留代码。
6.如权利要求5所述的FPGA动态批量烧写方法,其特征在于:
更新开始时,首先擦除关键字,然后再进行新代码的烧写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710712113.8A CN107621943A (zh) | 2017-08-18 | 2017-08-18 | 一种fpga动态批量烧写系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710712113.8A CN107621943A (zh) | 2017-08-18 | 2017-08-18 | 一种fpga动态批量烧写系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107621943A true CN107621943A (zh) | 2018-01-23 |
Family
ID=61088789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710712113.8A Pending CN107621943A (zh) | 2017-08-18 | 2017-08-18 | 一种fpga动态批量烧写系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107621943A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343888A (zh) * | 2018-10-24 | 2019-02-15 | 中国兵器装备集团自动化研究所 | 一种基于dsp的fpga程序远程在线更新系统及方法 |
CN111983438A (zh) * | 2020-08-31 | 2020-11-24 | 中国电子科技集团公司第五十八研究所 | 一种fpga的在线编程测试方法 |
CN112099832A (zh) * | 2020-11-04 | 2020-12-18 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN114924808A (zh) * | 2022-05-12 | 2022-08-19 | 中国电子科技集团公司第二十九研究所 | 一种基于双份存储程序的sram型fpga在轨可靠加载方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999350A (zh) * | 2012-10-24 | 2013-03-27 | 绵阳市维博电子有限责任公司 | 一种数字信号处理平台中fpga程序升级在线下载方法 |
CN103106163A (zh) * | 2013-03-06 | 2013-05-15 | 上海维宏电子科技股份有限公司 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
CN104899065A (zh) * | 2015-06-11 | 2015-09-09 | 武汉虹信通信技术有限责任公司 | 一种可批量软件在线恢复与软件在线升级的方法和系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
CN106502723A (zh) * | 2016-09-29 | 2017-03-15 | 四川九洲电器集团有限责任公司 | 用于实现fpga程序动态升级及自加载的装置及方法 |
CN106598650A (zh) * | 2016-11-25 | 2017-04-26 | 积成电子股份有限公司 | 基于光纤通信的fpga程序在线升级的装置及方法 |
-
2017
- 2017-08-18 CN CN201710712113.8A patent/CN107621943A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999350A (zh) * | 2012-10-24 | 2013-03-27 | 绵阳市维博电子有限责任公司 | 一种数字信号处理平台中fpga程序升级在线下载方法 |
CN103106163A (zh) * | 2013-03-06 | 2013-05-15 | 上海维宏电子科技股份有限公司 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
CN104899065A (zh) * | 2015-06-11 | 2015-09-09 | 武汉虹信通信技术有限责任公司 | 一种可批量软件在线恢复与软件在线升级的方法和系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
CN106502723A (zh) * | 2016-09-29 | 2017-03-15 | 四川九洲电器集团有限责任公司 | 用于实现fpga程序动态升级及自加载的装置及方法 |
CN106598650A (zh) * | 2016-11-25 | 2017-04-26 | 积成电子股份有限公司 | 基于光纤通信的fpga程序在线升级的装置及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343888A (zh) * | 2018-10-24 | 2019-02-15 | 中国兵器装备集团自动化研究所 | 一种基于dsp的fpga程序远程在线更新系统及方法 |
CN111983438A (zh) * | 2020-08-31 | 2020-11-24 | 中国电子科技集团公司第五十八研究所 | 一种fpga的在线编程测试方法 |
CN112099832A (zh) * | 2020-11-04 | 2020-12-18 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN114924808A (zh) * | 2022-05-12 | 2022-08-19 | 中国电子科技集团公司第二十九研究所 | 一种基于双份存储程序的sram型fpga在轨可靠加载方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
US8386764B2 (en) | BIOS architecture | |
CN107621943A (zh) | 一种fpga动态批量烧写系统及方法 | |
CN101329385B (zh) | 一种片上系统的调测系统、调测方法以及片上系统 | |
CN103616937B (zh) | 一种主板、pcie网卡和服务器系统 | |
CN106909425A (zh) | 一种dsp和fpga系统在线升级方法 | |
CN107832078B (zh) | 基于dsp的fpga程序在线更新电路 | |
CN104503782A (zh) | 一种就地化继电保护装置远程软件升级的方法 | |
CN105446847A (zh) | 一种arinc659总线的自动化测试系统及其方法 | |
CN110405759A (zh) | 一种芯片控制系统 | |
CN102253844B (zh) | 一种启动处理器的方法和设备 | |
CN110187909A (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN113553081A (zh) | 一种基于zynq芯片的fpga加载方法 | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN109582341A (zh) | 一种机车信号车载系统设备的主机系统及其程序变更方法 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN114138360B (zh) | DSP在Flash上的多核烧写启动方法及系统 | |
CN109525276B (zh) | 一种具备外部下载功能的多模数据链系统及方法 | |
CN109542481B (zh) | 一种多模式多功能测试仪器自动配置装置和方法 | |
CN110096291A (zh) | 电源管理芯片升级电路、方法及网络设备 | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
CN106293797A (zh) | 一种在线更新单片机程序的方法及系统 | |
CN110262349A (zh) | 一种c8051f系列单片机的远程在线编程方法及系统 | |
CN104678292A (zh) | 一种复杂可编程逻辑器件cpld测试方法和装置 | |
CN116155350A (zh) | 卫星的指令批量生成方法、系统、存储介质和电子设备 |
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: 20180123 |
|
RJ01 | Rejection of invention patent application after publication |