基于ZYNQ芯片实现FPGA程序远程升级的方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利
(10)授权公告号 (45)授权公告日 (21)申请号 201811495151.3
(22)申请日 2018.12.07
(65)同一申请的已公布的文献号
申请公布号 CN  109656593 A
(43)申请公布日 2019.04.19
(73)专利权人 天津光电通信技术有限公司
地址 300211 天津市河西区泰山路6号
(72)发明人 张海洋 王尧 陈伟峰 
(74)专利代理机构 天津中环专利商标代理有限
公司 12105
代理人 胡京生
(51)Int.Cl.
G06F  8/65(2018.01)
(56)对比文件CN  107918545 A ,2018.04.17CN  107797816 A ,2018.03.13CN  107729091 A ,2018.02.
23JP  2014089497 A ,2014.05.15王浩然.“星载可重构系统的设计与实现”.《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》.2014,全文.审查员 庄文龙
(54)发明名称基于ZYNQ芯片实现FPGA程序远程升级的方法(57)摘要一种基于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中实现的。本方法可以实现设备的远程升
级。权利要求书1页  说明书2页  附图2页CN 109656593 B 2022.04.15
C N  109656593
B
1.一种基于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中实现的。
权 利 要 求 书1/1页CN 109656593 B
基于ZYNQ芯片实现FPGA程序远程升级的方法
技术领域
[0001]本发明涉及一种基于ZYNQ芯片实现FPGA程序远程升级的方法,适用于FPGA进行高速数据处理,ZYNQ作为主控情况下,对FPGA进行远程程序更新及正常启动配置。
背景技术
[0002]随着技术的发展,需要对设备的原有程序进行更新升级来增加新的功能或者修复bug。FPGA器件通常有3种程序下载方式:JTAG方式,主动配置方式,被动配置方式。JTAG通常用于调试。主动配置方式为FPGA每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,向存储器件主动读取数据。这种配置方式需要占用FPGA 内部资源实现配置逻辑,就会挤占实现数据处理的资源;并且需要单独的外置存储器,就会占用更多的PCB空间。更新程序需要专用的烧写器与器件直连,不利于设备的高效维护。[0003]被动配置方式则是通过控制器控制,把FPGA当做存储器,把数据写入FPGA中。控制器件可以是通常的ARM架构的处理器,如stm32,也可以使用异构处理器,如ZYNQ。使用纯ARM 处理器,如果不想占用FPGA资源,则需要把传输配置逻辑全部在处理器的应用层程序中完成,该方法虽然也可实现远程升级,但是完全的应用层传输效率较低。
发明内容
[0004]鉴于现有技术的状况及存在的不足,本发明提供了一种被动配置方式,即基于ZYNQ芯片实现FPGA程序远程升级的方法,用C++语言描述的基于异构ZYNQ芯片的SelectMap 方法实现FPGA程序的远程升级。
[0005]本发明为实现上述目的,所采用的技术手段是:一种基于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的远程升级;
[0006]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再读下一次,直至配置完成;
[0007]ZYNQ芯片PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制;文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中;从EMMC存储芯片到PL中的数据搬移是完成物理地址到虚拟地址的映射后在ZYNQ外配的DDR3中实现的。[0008]本发明的有益效果是:ZYNQ芯片的PS部分使用基于linux操作系统,使用C++语言进行程序控制,PL部分实现SelectMap的传输逻辑,通过内存映射的方法进行PS到PL的数据搬移。
[0009]本发明不需要专用的烧写工具,省去一个外置的存储器件,节省了成本及PCB空间,节省了FPGA资源,不需要与设备直接接触,只要设备在网络环境中便可以对其进行更新升级。
附图说明
[0010]图1为本发明的电路连接框图;
[0011]图2为本发明ZYNQ的PS中SelectMap控制流程图。
具体实施方式
[0012]如图1和图2所示,一种基于ZYNQ芯片实现FPGA程序远程升级的方法,本方法利用Xilinx ZYNQ主控芯片作为运行平台,外配的存储芯片有QSPI存储芯片和EMMC存储芯片,QSPI存储芯片中存储uboot和设备树等启动文件,EMMC存储芯片中为linux操作系统,ZYNQ 与FPGA通过SelectMap连接,ZYNQ与上位机通过网线连接。
[0013]当需要更新FPGA程序时,上位机把程序文件传给ZYNQ并存储在EMMC存储芯片中,ZYNQ通过程序控制在每次设备上电时把FPGA程序文件从EMMC存储芯片中读取并通过SelectMap方式传递给FPGA,这样便实现了对FPGA程序的远程升级。
[0014]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再读下一次,直至配置完成。
[0015]ZYNQ的PS中嵌入式程序设计思路为将PL中定义的多个寄存器的物理地址映射到虚拟内存,将
EMMC存储芯片中存储的程序文件映射到虚拟内存,通过多种标志及控制寄存器实现数据流的控制。文件传输实际是首先将映射后的文件数据赋值到PL映射后的数据传输寄存器中,然后通过PL中的SelectMap逻辑实现数据从PL中传输到FPGA中。
图1

本文发布于:2024-09-20 22:31:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/414690.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   寄存器   实现   芯片   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议