CN109656593B - 基于zynq芯片实现fpga程序远程升级的方法 - Google Patents
基于zynq芯片实现fpga程序远程升级的方法 Download PDFInfo
- Publication number
- CN109656593B CN109656593B CN201811495151.3A CN201811495151A CN109656593B CN 109656593 B CN109656593 B CN 109656593B CN 201811495151 A CN201811495151 A CN 201811495151A CN 109656593 B CN109656593 B CN 109656593B
- Authority
- CN
- China
- Prior art keywords
- zynq
- fpga
- chip
- program
- selectmap
- 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.)
- Active
Links
Images
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
Abstract
一种基于ZYNQ芯片实现FPGA程序远程升级的方法,涉及到的主要器件有zynq、FPGA、QSPI存储芯片、EMMC存储芯片、DDR3内存芯片。当程序需要升级时,PC与ZYNQ通过以太网连接,把程序从PC端传输到ZYNQ外配的EMMC存储芯片中进行存储,每次设备上电时,ZYNQ的PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分通过SelectMap方法传输给FPGA供其启动。从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。本方法可以实现设备的远程升级。
Description
技术领域
本发明涉及一种基于ZYNQ芯片实现FPGA程序远程升级的方法,适用于FPGA进行高速数据处理,ZYNQ作为主控情况下,对FPGA进行远程程序更新及正常启动配置。
背景技术
随着技术的发展,需要对设备的原有程序进行更新升级来增加新的功能或者修复bug。FPGA器件通常有3种程序下载方式:JTAG方式,主动配置方式,被动配置方式。JTAG通常用于调试。主动配置方式为FPGA每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,向存储器件主动读取数据。这种配置方式需要占用FPGA内部资源实现配置逻辑,就会挤占实现数据处理的资源;并且需要单独的外置存储器,就会占用更多的PCB空间。更新程序需要专用的烧写器与器件直连,不利于设备的高效维护。
被动配置方式则是通过控制器控制,把FPGA当做存储器,把数据写入FPGA中。控制器件可以是通常的ARM架构的处理器,如stm32,也可以使用异构处理器,如ZYNQ。使用纯ARM处理器,如果不想占用FPGA资源,则需要把传输配置逻辑全部在处理器的应用层程序中完成,该方法虽然也可实现远程升级,但是完全的应用层传输效率较低。
发明内容
鉴于现有技术的状况及存在的不足,本发明提供了一种被动配置方式,即基于ZYNQ芯片实现FPGA程序远程升级的方法,用C++语言描述的基于异构ZYNQ芯片的SelectMap方法实现FPGA程序的远程升级。
本发明为实现上述目的,所采用的技术手段是:一种基于ZYNQ芯片实现FPGA程序远程升级的方法,其特征在于,本方法利用Xilinx ZYNQ主控芯片作为运行平台,外围芯片包括Xilinx FPGA、QSPI存储芯片、EMMC存储芯片,DDR3内存芯片;QSPI存储芯片中存储启动文件,包括uboot、设备树和uImage,EMMC存储芯片中设有linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过以太网连接;当需要更新FPGA程序时,上位机把程序文件通过网络通信的方式传给ZYNQ并替换掉原来存储在EMMC存储芯片中的旧版本FPGA程序,在每次设备上电时,ZYNQ芯片PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分的数据通过SelectMap方法传输给FPGA供其启动,这样便实现了FPGA的远程升级;
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程;定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,存储升级芯片的标识寄存器,状态重置寄存器;SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由ps和pl交互完成的,ps每次从EMMC存储芯片中读取500个32bit的寄存器,发送给pl,待pl配置完成后ps再读下一次,直至配置完成;
ZYNQ芯片PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制;文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中;从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。
本发明的有益效果是:ZYNQ芯片的PS部分使用基于linux操作系统,使用C++语言进行程序控制,PL部分实现SelectMap的传输逻辑,通过内存映射的方法进行PS到PL的数据搬移。
本发明不需要专用的烧写工具,省去一个外置的存储器件,节省了成本及PCB空间,节省了FPGA资源,不需要与设备直接接触,只要设备在网络环境中便可以对其进行更新升级。
附图说明
图1为本发明的电路连接框图;
图2为本发明ZYNQ的PS中SelectMap控制流程图。
具体实施方式
如图1和图2所示,一种基于ZYNQ芯片实现FPGA程序远程升级的方法,本方法利用Xilinx ZYNQ主控芯片作为运行平台,外配的存储芯片有QSPI存储芯片和EMMC存储芯片,QSPI存储芯片中存储uboot和设备树等启动文件,EMMC存储芯片中为linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过网线连接。
当需要更新FPGA程序时,上位机把程序文件传给ZYNQ并存储在EMMC存储芯片中,ZYNQ通过程序控制在每次设备上电时把FPGA程序文件从EMMC存储芯片中读取并通过SelectMap方式传递给FPGA,这样便实现了对FPGA程序的远程升级。
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程。定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,确定何时可以向PL发送数据,存储升级芯片的标识寄存器,状态重置寄存器等。SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由ps和pl交互完成的,ps每次从EMMC存储芯片中读取500个32bit的寄存器,发送给pl,待pl配置完成后ps再读下一次,直至配置完成。
ZYNQ的PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制。文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中。
Claims (1)
1.一种基于ZYNQ芯片实现FPGA程序远程升级的方法,其特征在于,本方法利用XilinxZYNQ主控芯片作为运行平台,外围芯片包括Xilinx FPGA、QSPI存储芯片、EMMC存储芯片,DDR3内存芯片;QSPI存储芯片中存储启动文件,包括uboot、设备树和uImage,EMMC存储芯片中设有linux操作系统,ZYNQ与FPGA通过SelectMap连接,ZYNQ与上位机通过以太网连接;当需要更新FPGA程序时,上位机把程序文件通过网络通信的方式传给ZYNQ并替换掉原来存储在EMMC存储芯片中的旧版本FPGA程序,在每次设备上电时,ZYNQ芯片PS中的应用程序把EMMC存储芯片中的FPGA程序搬移到ZYNQ的PL部分,PL中编写了SelectMap的传输逻辑,可以把程序从PL部分的数据通过SelectMap方法传输给FPGA供其启动,这样便实现了FPGA的远程升级;
SelectMap的控制线和数据线都与ZYNQ的GPIO相连,在ZYNQ的PL部分定义多个标志寄存器及控制寄存器,并通过编程实现SelectMap的传输过程;定义的寄存器有数据长度寄存器,PS与PL的握手状态寄存器,存储升级芯片的标识寄存器,状态重置寄存器;SelectMap的传输过程为program_b拉低再拉高,等待init_b的上升沿,然后先拉低rdwr_b,再拉低csi_b,然后cclk和数据匹配发送,具体的数据发送过程是由PS和PL交互完成的,PS每次从EMMC存储芯片中读取500个32bit的寄存器,发送给PL,待PL配置完成后PS再读下一次,直至配置完成;
ZYNQ芯片PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制;文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中;从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811495151.3A CN109656593B (zh) | 2018-12-07 | 2018-12-07 | 基于zynq芯片实现fpga程序远程升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811495151.3A CN109656593B (zh) | 2018-12-07 | 2018-12-07 | 基于zynq芯片实现fpga程序远程升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109656593A CN109656593A (zh) | 2019-04-19 |
CN109656593B true CN109656593B (zh) | 2022-04-15 |
Family
ID=66113005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811495151.3A Active CN109656593B (zh) | 2018-12-07 | 2018-12-07 | 基于zynq芯片实现fpga程序远程升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656593B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110244276A (zh) * | 2019-06-24 | 2019-09-17 | 成都航天科工微电子系统研究院有限公司 | 一种双基前视sar回波与运动参数数据同步录取方法及装置 |
CN110806889B (zh) * | 2019-11-01 | 2023-05-26 | 中电凯杰科技有限公司 | 一种基于5g的zynq程序远程升级系统及升级方法 |
CN111142909B (zh) * | 2019-12-26 | 2022-01-25 | 中国电子科技集团公司第五十八研究所 | 基于xc7z045芯片实现can网络远程升级的终端、方法和系统 |
CN111142950B (zh) * | 2019-12-26 | 2022-08-12 | 中国电子科技集团公司第五十八研究所 | 使用jtag实现emmc启动操作系统的设备 |
CN111142914B (zh) * | 2019-12-31 | 2021-05-28 | 南京中科晶上通信技术有限公司 | 一种基于zynq固件升级的方法及计算机可读存储介质 |
CN112015449B (zh) * | 2020-08-24 | 2022-08-02 | 中国电子科技集团公司第五十八研究所 | 基于zlib压缩算法下的ZYNQ FPGA异构平台在线升级的方法 |
CN112231005B (zh) * | 2020-10-19 | 2023-05-12 | 天津津航计算技术研究所 | 一种基于uboot管理fpga版本的方法 |
CN112631678B (zh) * | 2020-12-25 | 2022-12-02 | 理工雷科电子(西安)有限公司 | 一种基于zynq的动态加载方法 |
CN114721695A (zh) * | 2022-06-08 | 2022-07-08 | 成都航天通信设备有限责任公司 | 一种基于双fpga芯片的软件在线升级系统及方法 |
CN115857998B (zh) * | 2023-02-10 | 2023-05-23 | 国仪量子(合肥)技术有限公司 | 基于zynq和fpga架构的升级方法、装置和介质 |
CN116088927B (zh) * | 2023-04-10 | 2023-06-20 | 成都远望科技有限责任公司 | 一种基于zynq处理器配置fpga程序电路及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014089497A (ja) * | 2012-10-29 | 2014-05-15 | Mitsubishi Electric Corp | 情報処理装置 |
CN107729091A (zh) * | 2017-11-30 | 2018-02-23 | 天津光电通信技术有限公司 | 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法 |
CN107797816A (zh) * | 2017-09-15 | 2018-03-13 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga程序在线更新电路 |
CN107918545A (zh) * | 2017-12-13 | 2018-04-17 | 天津光电通信技术有限公司 | 一种基于zynq的远程升级系统及其实现方法 |
-
2018
- 2018-12-07 CN CN201811495151.3A patent/CN109656593B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014089497A (ja) * | 2012-10-29 | 2014-05-15 | Mitsubishi Electric Corp | 情報処理装置 |
CN107797816A (zh) * | 2017-09-15 | 2018-03-13 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga程序在线更新电路 |
CN107729091A (zh) * | 2017-11-30 | 2018-02-23 | 天津光电通信技术有限公司 | 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法 |
CN107918545A (zh) * | 2017-12-13 | 2018-04-17 | 天津光电通信技术有限公司 | 一种基于zynq的远程升级系统及其实现方法 |
Non-Patent Citations (1)
Title |
---|
"星载可重构系统的设计与实现";王浩然;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;20141115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109656593A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656593B (zh) | 基于zynq芯片实现fpga程序远程升级的方法 | |
CN105573800B (zh) | 一种基于zynq的单板或多板系统及在线更新方法 | |
CN105159731B (zh) | 一种fpga配置文件远程升级的装置 | |
CN107977217B (zh) | 在线加载xilinx-fpga多版本更新程序的方法 | |
WO2021164170A1 (zh) | 多路高速协议接口动态可重构系统及实现方法 | |
WO2017041567A1 (zh) | 基于软核处理器的fpga多镜像升级加载方法及装置 | |
CN108415717B (zh) | 一种zynq soc固件升级方法及升级装置 | |
CN102053850A (zh) | 一种在线升级fpga逻辑的方法 | |
EP3200077B1 (en) | Vehicle control device, reprogramming system | |
US7487344B2 (en) | Implementing a microprocessor boot configuration prom within an FPGA | |
CN113010470B (zh) | 边缘节点远程控制系统、方法、设备及存储介质 | |
CN107690630B (zh) | 计算设备中的桥配置 | |
CN105320531A (zh) | 一种基于MicroBlaze软核的FPGA软件在线升级方法 | |
CN104156221A (zh) | 芯片、修改芯片配置的方法及装置 | |
CN108139916A (zh) | 可编程逻辑设备的多阶段引导映像加载和配置 | |
WO2016033941A1 (zh) | Boot在线升级装置及方法 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN110175056A (zh) | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 | |
CN104461589A (zh) | 单片机升级方法及升级系统 | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及系统 | |
CN105278976A (zh) | 一种fpga重构装置、系统及方法 | |
US8458730B2 (en) | Multi-level driver configuration | |
KR102304091B1 (ko) | 자원 재구성을 위한 방법 및 디바이스 | |
CN102298531B (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
CN109426511A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |