一种基于zynq芯片的fpga加载方法

文档序号:152881 发布日期:2021-10-26 浏览:37次 >En<

阅读说明:本技术 一种基于zynq芯片的fpga加载方法 (FPGA loading method based on ZYNQ chip ) 是由 张清洪 张建刚 肖均 王智宏 罗孝杰 高珊 于 2021-07-26 设计创作,主要内容包括:本发明公开了一种基于ZYNQ芯片的FPGA加载方法,包括:上电启动时的上电自动加载和ZYNQ系统启动完成后的上位机控制加载;所述上电自动加载的过程为:设备上电启动时,FPGA的加载模式默认为主动加载,此时FPGA主动从Flash2读取文件,快速加载;所述上位机控制加载的过程为:ZYNQ系统运行起来后,自动运行控制守护进程,监听网络端口,响应上位机命令;上位机使用网口、串口等方式和ZYNQ系统建立通信,下发待更新的FPGA代码;ZYNQ系统接收数据,把数据存放在DDR3内存中,并对数据进行校验,将校验结果反馈给上位机;ZYNQ系统根据上位机的指令,确定设备更新方式。本发明提供的基于ZYNQ芯片的FPGA加载方法具有FPGA更新快速方便、设备中断工作时间短的特点。(The invention discloses a ZYNQ chip-based FPGA loading method, which comprises the following steps: the method comprises the steps of power-on automatic loading during power-on starting and upper computer controlled loading after a ZYNQ system is started; the process of the power-on automatic loading comprises the following steps: when the equipment is powered on and started, the loading mode of the FPGA is defaulted to active loading, and at the moment, the FPGA actively reads files from Flash2 and loads the files quickly; the process of controlling loading by the upper computer comprises the following steps: after the ZYNQ system runs, automatically running a control daemon, monitoring a network port and responding to an upper computer command; the upper computer establishes communication with a ZYNQ system by using modes of an internet port, a serial port and the like, and issues an FPGA code to be updated; the ZYNQ system receives data, stores the data in a DDR3 internal memory, verifies the data and feeds back a verification result to the upper computer; and the ZYNQ system determines an equipment updating mode according to the instruction of the upper computer. The ZYNQ chip-based FPGA loading method provided by the invention has the characteristics of quick and convenient FPGA updating and short equipment interrupt working time.)

一种基于ZYNQ芯片的FPGA加载方法

技术领域

本发明涉及FPGA程序更新技术领域,特别是涉及一种基于ZYNQ芯片的FPGA加载方法。

背景技术

目前,大多数FPGA芯片是基于SRAM的结构的,而SRAM单元中的数据在掉电后就会丢失,因此系统上电后,必须要由配置电路将正确的配置数据加载到SRAM中,配置完成后,FPGA进入工作状态,掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA每次上电都需要重新配置一次。

FPGA器件有三类配置下载方式:主动配置方式、被动配置方式和JTAG方式;主动配置模式:FPGA每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,向配置器件主动发出读取数据信号,从而把Flash的数据读入FPGA中,实现对FPGA的编程;被动配置模式:由外部计算机或者控制器控制配置过程,并把FPGA当作存储器,把数据写入到FPGA中,实现对FPGA的编程,该模式可以实现对FPGA在线可编程;JTAG模式:JTAG是直接烧到FPGA里面的,适合在调试和测试时使用。其中,被动配置模式通过外面的CPU配置FPGA,CPU配置FPGA需要等CPU运行起来后才能加载,不能一上电就加载FPGA,所以上电时加载时间较长。Flash加载的速度快,但Flash数据内容更新比较麻烦,一般出厂前通过JTAG进行烧写,出厂后再更新Flash内容就非常麻烦。基于以上问题,亟需提供一种新的基于ZYNQ芯片的FPGA加载方法。

发明内容

本发明的目的是为了提供一种基于ZYNQ芯片的FPGA加载方法,能够采用主动加载和被动加载两种加载方式,并且可以选择是否更新Flash,具有FPGA更新快速方便、设备中断工作时间短的特点。

为实现上述目的,本发明提供了如下方案:

一种基于ZYNQ芯片的FPGA加载方法,应用于由ZYNQ系统、Flash存储器和FPGA组成的设备,所述ZYNQ系统分为PL端和PS端,所述Flash存储器包括Flash1和Flash2,所述Flash1用于存放ZYNQ的加载数据,所述Flash2用于存放FPGA的配置数据,其特征在于,所述方法包括:上电启动时的上电自动加载和ZYNQ系统启动完成后的上位机控制加载;

所述上电自动加载的过程为:设备上电启动时,ZYNQ系统启动,读取Flash1的数据,并加载ZYNQ系统的PS和PL端,FPGA的加载模式默认为主动加载,此时FPGA主动从Flash2读取文件,快速加载;

所述上位机控制加载的具体步骤包括:

S1,上位机软件广播搜索设备命令;

S2,ZYNQ的控制守护进程接收到搜索广播,应答设备基本信息;

S3,上位机显示搜索得到的设备基本信息;

S4,用户从上位机软件选择设备,选择需要加载的文件,下发加载命令;

S5,上位机软件按预定义的端口启动文件下载服务;

S6,上位机软件发送加载命令,将上位机服务IP地址、网络端口、文件名及受控设备MAC地址信息告知设备;

S7,设备的控制守护进程接收到加载命令,解析得到上位机下载服务IP地址、网络端口、文件名及受控设备MAC地址;

S8,核对受控设备MAC地址与本设备MAC地址是否一致,如一致则设备控制守护进程启动下载任务,从上位机服务端下载文件;

S9,设备控制守护进程对下载的文件验证校验,校验文件类型,正确则根据用户的指令要求确定设备更新方式,否则回复错误响应。

可选的,所述上位机控制加载的具体步骤中的所述步骤S9中,所述设备控制守护进程对下载的文件验证校验,校验文件类型,正确则根据用户的指令要求确定设备更新方式,否则回复错误响应,其中的设备更新方式包括:只更新FPGA、只更新Flash2、FPGA和Flash2都更新。

可选的,所述更新FPGA的具体步骤包括:

B1,配置应用程序产生program信号,启动开始编程;

B2,FPGA收到program信号,内部电路进行初始化,并拉低init信号,初始化完成后,FPGA拉高init信号;

B3,配置应用程序发出program控制命令后,接着初始化DMA控制器;打开文件,每次读取8192字节数据,并调用DMA接口写到配置逻辑中的FIFO中,一直持续到发送文件结束;

B4,ZYNQ系统中的逻辑配置程序接收FIFO的数据,并监控init信号电平,等待FPGA的init信号拉高;

B5,配置逻辑收到高电平的init,产生符合FPGA的配置要求的时序完成数据加载;

B6,FPGA正常加载完成后,释放DONE信号,未正常加载DONE信号一直为低;

B7,配置应用程序在文件发送完成后开始监控FPGA输出的DONE信号,等待一段时间,如果收到高电平的DONE信号,则表示FPGA加载完成,否则加载失败;

B8,配置应用程序上报本次操作结果。

可选的,所述更新Flash2的具体步骤包括:

C1,配置应用程序根据客户下发的指令启动Flash2更新流程;

C2,配置应用程序计算Flash2擦除区域,根据擦除区域换算Flash2需要擦除的块地址;

C3,配置应用程序通过AXI总线,下发Flash2的操作地址和操作数据到配置逻辑;

C4,配置逻辑根据寄存器内容,转换为Flash2的读写时序,依次对Flash2的块地址进行擦除,一直循环待写入的区域完成擦除;

C5,配置应用程序开始读文件,每次以Flash2的页大小为单位读取文件,计算写入的Flash2页地址;

C6,写入一页数据,再下发Flash2编程命令,等待页编程状态完成,一直循环到整个文件结束;

C7,读取Flash2状态寄存器判断本次写入文件是否正确,并上报本次操作结果。

可选的,所述FPGA和Flash2都更新,具体为:先更新FPGA再更新Flash2。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的基于ZYNQ芯片的FPGA加载方法,上电时,直接通过Flash快速加载FPGA,在ZYNQ系统运行起来后,可以方便地和上位机进行通信,通过PS和PL的FPGA高速配置通道可以快速更新FPGA代码,最大限度的缩短FPGA更新时间,减少设备的中断时间;设备正常工作时再对外挂的Flash更新,更新Flash不会影响FPGA的工作。本发明提供的基于ZYNQ芯片的FPGA加载方法,通过FPGA主动加载和被动加载相结合的方案,使FPGA在任何时候都可以快速加载文件,利用控制器分别对FPGA和Flash进行更新,达到了设备更新FPGA时间最少、设备中断工作时间最短、Flash数据更新方便的优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于ZYNQ芯片的FPGA加载方法的设备的电路系统的模块示意图;

图2为本发明基于ZYNQ芯片的FPGA加载方法的流程图;

图3为本发明基于ZYNQ芯片的FPGA加载方法的上位机控制加载的流程图;

图4为本发明基于ZYNQ芯片的FPGA加载方法的更新FPGA的流程图;

图5为本发明基于ZYNQ芯片的FPGA加载方法的更新Flash的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是为了提供一种基于ZYNQ芯片的FPGA加载方法,能够采用主动加载和被动加载两种加载方式,并且可以选择是否更新Flash,具有FPGA更新快速方便、设备中断工作时间短的特点。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明提供的基于ZYNQ芯片的FPGA加载方法,应用于由ZYNQ系统、Flash存储器和不少于一个FPGA组成的设备,设备连接上位机,如图1所示,设备内部包含ZYNQ系统和待加载的现场可编程门阵列(FPGA),ZYNQ系列组合了一个双核ARM Cortex-A9处理器和一个FPGA,是一种全新的异构平台,ZYNQ分为PL(programmable logic,可编程逻辑)端和PS(processor system,处理系统)端,ZYNQ启动总是先启动PS端,然后再配置PL端,处理系统可以上OS并跑一些复杂的软件应用,PL端可以定制需要的运算或者外设;上位机是指可以直接发出操控命令的计算机,上位机主要用来控制设备的加载,需要加载的文件先放在上位机中,上位机可以给设备发送配置文件,下达配置命令等,也可以监控设备的状态,上位机通过以太网和设备通信;DDR3是内存储器,用于在PS运行时存放处理器的运算数据和对外交换的数据,比如PS端收到的数据就先存放在DDR3中,存放在DDR3的数据掉电后会消失;Flash1用于存放ZYNQ的加载数据,掉电后不消失,ZYNQ系统启动时都会读取Flash1的数据,并加载ZYNQ系统的PS和PL端;FPGA加载通道是一个高速数据传输通道,底层使用DMA通道,PS端的DDR3存储的加载数据可以快速通过FPGA加载通道进入配置逻辑;Flash加载通道是慢速通道,PS端通过读写配置逻辑进行数据传输;配置逻辑是PL端编写的一段代码,配置逻辑主要用于产生FPGA编程时序和Flash2读写时序;加载模式控制是指通过ZYNQ的GPIO控制模式选择管脚,FPGA在加载初始化时采集加载模式管脚电平,从而确定本次加载的方式,本发明加载模式有ZYNQ直接配置FPGA和Flash2配置FPGA两种;Flash2用于存放FPGA的配置数据,ZYNQ系统和FPGA都可以读取Flash2的数据;待配置的FPGA,主要用来负责逻辑运算和信号处理功能,是用户的主要芯片;

本发明提供的基于ZYNQ芯片的FPGA加载方法如图2所示,包括上电启动时的上电自动加载和ZYNQ系统启动完成后的上位机控制加载;

所述上电自动加载的过程为:设备上电启动时,ZYNQ系统启动,读取Flash1的数据,并加载ZYNQ系统的PS和PL端,FPGA的加载模式默认为主动加载,此时FPGA主动从Flash2读取文件,快速加载;这种方式,FPGA加载不受ZYNQ系统启动时间的影响,FPGA加载速度快,设备可以快速地正常工作;

所述上位机控制加载的过程为:ZYNQ系统运行起来后,自动运行控制守护进程,监听网络端口,响应上位机命令;上位机使用网口、串口等方式和ZYNQ系统建立通信,下发待更新的FPGA代码;ZYNQ系统接收数据,把数据存放在DDR3内存中,并对数据进行校验,将校验结果反馈给上位机;ZYNQ系统根据上位机的指令,确定设备更新方式;具体步骤如图3所示,包括:

S1,上位机软件广播搜索设备命令;

S2,ZYNQ的控制守护进程接收到搜索广播,应答设备基本信息;

S3,上位机显示搜索得到的设备基本信息;

S4,用户从上位机软件选择设备,选择需要加载的文件,下发加载命令;

S5,上位机软件按预定义的端口启动文件下载服务;

S6,上位机软件发送加载命令,将上位机服务IP地址、网络端口、文件名及受控设备MAC地址信息告知设备;

S7,设备的控制守护进程接收到加载命令,解析得到上位机下载服务IP地址、网络端口、文件名及受控设备MAC地址;

S8,核对受控设备MAC地址与本设备MAC地址是否一致,如一致则设备控制守护进程启动下载任务,从上位机服务端下载文件;

S9,设备控制守护进程对下载的文件验证校验,校验文件类型,正确则根据据用户的指令要求确定设备更新方式,否则回复错误响应;

其中步骤S9中所述的设备更新的方式包括:只更新FPGA、只更新Flash2、FPGA和Flash2都更新;

所述更新FPGA的过程为:PS和PL的数据和控制通过高速FPGA更新通道进行数据交互;ZYNQ系统的应用配置程序根据上位机的命令发起更新FPGA操作;PS先发FPGA加载的控制命令给配置逻辑,并切换FPGA的加载方式为被动加载;切换完成后,PS发起FPGA加载信号,并等待接收FPGA完成初始化信号;PS收到初始化完成信号后,启动DMA通道,高速向配置逻辑传输数据;配置逻辑根据PS的命令,产生FPGA加载时序,快速完成FPGA加载;具体步骤如图4所示,包括:

B1,配置应用程序产生program信号,启动开始编程;

B2,FPGA收到program信号,内部电路进行初始化,并拉低init信号,初始化完成后,FPGA拉高init信号;

B3,配置应用程序发出program控制命令后,接着初始化DMA控制器;打开文件,每次读取8192字节数据,并调用DMA接口写到配置逻辑中的FIFO中,一直持续到发送文件结束;

B4,ZYNQ系统中的逻辑配置程序接收FIFO的数据,并监控init信号电平,等待FPGA的init信号拉高;

B5,配置逻辑收到高电平的init,产生符合FPGA的配置要求的时序完成数据加载;

B6,FPGA正常加载完成后,释放DONE信号,未正常加载DONE信号一直为低;

B7,配置应用程序在文件发送完成后开始监控FPGA输出的DONE信号,等待一段时间,如果收到高电平的DONE信号,则表示FPGA加载完成,否则加载失败;

B8,配置应用程序上报本次操作结果;

所述更新Flash2的过程为:ZYNQ系统的配置应用程序根据上位机的命令发起更新Flash2操作;Flash2的读写操作速度较慢,所以PS和PL只需要通过低速的Flash2配置通道;PS向配置逻辑发送控制和数据,配置逻辑根据要求对Flash2进行写操作;具体步骤如图5所示,包括:

C1,配置应用程序根据客户下发的指令启动Flash2更新流程;

C2,配置应用程序计算Flash2擦除区域,根据擦除区域换算Flash2需要擦除的块地址;

C3,配置应用程序通过AXI总线,下发Flash2的操作地址和操作数据到配置逻辑;

C4,配置逻辑根据寄存器内容,转换为Flash2的读写时序,依次对Flash2的块地址进行擦除,一直循环待写入的区域完成擦除;

C5,配置应用程序开始读文件,每次以Flash2的页大小为单位读取文件,计算写入的Flash2页地址;

C6,写入一页数据,再下发Flash2编程命令,等待页编程状态完成,一直循环到整个文件结束;

C7,读取Flash2状态寄存器判断本次写入文件是否正确,并上报本次操作结果;

所述FPGA和Flash2都更新,具体为:按照所述更新FPGA的具体步骤及更新Flash2的具体步骤,先更新FPGA再更新Flash2。

本发明提供的基于ZYNQ芯片的FPGA加载方法,上电时,直接通过Flash快速加载FPGA,在ZYNQ系统运行起来后,可以方便地和上位机进行通信,通过PS和PL的FPGA高速配置通道可以快速更新FPGA代码,最大限度的缩短FPGA更新时间,减少设备的中断时间;设备正常工作时再对外挂的Flash更新,更新Flash不会影响FPGA的工作。本发明提供的基于ZYNQ芯片的FPGA加载方法,通过FPGA主动加载和被动加载相结合的方案,使FPGA在任何时候都可以快速加载文件,利用控制器分别对FPGA和Flash进行更新,达到了设备更新FPGA时间最少、设备中断工作时间最短、Flash数据更新方便的优点。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:升级固件的方法、恢复固件的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!