基于ZYNQ芯片实现FPGA程序远程升级的方法技术

技术编号:20915186 阅读:74 留言:0更新日期:2019-04-20 09:25
一种基于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中实现的。本方法可以实现设备的远程升级。

A method of remote upgrade of FPGA program based on ZYNQ chip

A method of remote upgrade of FPGA program based on ZYNQ chip is proposed. The main devices involved are zynq, FPGA, QSPI memory chip, EMMC memory chip and DDR3 memory chip. When the program needs to be upgraded, PC and ZYNQ connect through ethernet, transfer the program from PC to the EMMC memory chip outside ZYNQ for storage. Every time the device is powered on, the application program of ZYNQ's PS moves the FPGA program in EMMC memory chip to the PL part of ZYNQ. The transmission logic of SelectMap is written in PL, and the program can be transferred from the PL part to the FPGA through the SelectMap method. For startup. Data migration from EMMC memory chip to PL is implemented in DDR3 with ZYNQ after mapping physical address to virtual address. This method can realize remote upgrade of equipment.

【技术实现步骤摘要】
基于ZYNQ芯片实现FPGA程序远程升级的方法
本专利技术涉及一种基于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程序远程升级的方法,其特征在于,本方法利用XilinxZYNQ主控芯片作为运行平台,外围芯片包括XilinxFPGA、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程序远程升级的方法,本方法利用XilinxZYNQ主控芯片作为运行平台,外配的存储芯片有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中。本文档来自技高网...

【技术保护点】
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.一种基于ZYNQ芯片实现FPGA程序远程升级的方法,其特征在于,本方法利用XilinxZYNQ主控芯片作为运行平台,外围芯片包括XilinxFPGA、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部分定义多个标志寄存器及控制寄...

【专利技术属性】
技术研发人员:张海洋王尧陈伟峰
申请(专利权)人:天津光电通信技术有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1