基于xilinx公司k7系列的FPGA程序在线升级方法技术

技术编号:20621758 阅读:149 留言:0更新日期:2019-03-20 14:04
本发明专利技术涉及一种基于xilinx公司k7系列的FPGA程序在线升级方法,属于FPGA程序在线升级技术领域。本发明专利技术固件程序的设计时在FPGA中存储两个配置映像文件,采用二次启动的方式使在线升级FPGA程序稳定可靠,确保在线升级功能。即FPGA中存储2个bit文件,第一个为监控程序(防止在线升级失败),第二个为主控程序,即作战程序。因此,本发明专利技术实现了通过RS422串口,在线升级主控程序时如果升级过程中出现错误导致主控程序升级失败,系统再次加电重启,将启动监控程序,还能继续升级主控程序。

On-line Upgrading Method of FPGA Programs Based on Xilinx K7 Series

The invention relates to an on-line upgrade method of the FPGA program based on the K7 series of Xilinx Company, which belongs to the field of on-line upgrade technology of the FPGA program. In the design of the firmware program, two configuration image files are stored in the FPGA, and the online upgrade of the FPGA program is stable and reliable by means of secondary boot, ensuring the online upgrade function. That is to say, two bit files are stored in the FPGA. The first one is the monitoring program (to prevent online upgrade failure), and the second one is the main control program, that is, the combat program. Therefore, the invention realizes that through RS422 serial port, if an error occurs in the process of upgrading the main control program on-line, which leads to the failure of upgrading the main control program, the system will power on again and restart, the monitoring program will be started, and the main control program can continue to be upgraded.

【技术实现步骤摘要】
基于xilinx公司k7系列的FPGA程序在线升级方法
本专利技术属于FPGA程序在线升级
,具体涉及一种基于xilinx公司k7系列的FPGA程序在线升级方法。
技术介绍
FPGA程序通常使用USB仿真电缆进行烧写,需要对设备进行多次拆装,严重影响系统工作效率,需要开发新的方法实现对FPGA程序的在线更改,设置FPGA为主SPI模式,用于FPGA上电后自主加载配置数据,使用标准SPI接口的Flash存储配置数据,通过更改Flash存储数据,即可完成FPGA固件程序的在线升级。在升级过程中,要完成对Flash芯片的擦除写入操作,如果由于电源、电缆等原因使擦除写入操作失败,则升级无法完成,再次升级操作变为不可能。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何使在线升级FPGA程序稳定可靠,确保在线升级功能。(二)技术方案为了解决上述技术问题,本专利技术提供了一种基于xilinx公司k7系列的FPGA程序在线升级方法,包括以下步骤:上位机首先向FPGA发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH进行通讯,并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FLASH中,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束;若烧写失败,则不跳转,FPGA停留在监控程序,若烧写成功,则跳转到FPGA的主控程序,即作战程序。优选地,所述FPGA采用xilinx优选地,跳转到FPGA的主控程序时利用k7内部的配置模块ICAPE2启动多bit文件跳转命令PROGRAM_B,并设置状态字27'h364C093。优选地,在FPGA对FLASH进行读写、擦除的操作过程中,都调用k7内部的原语模块STARTUPE2实现对SPIFLASH芯片的时钟控制。优选地,所述FPGA将缓存的升级数据上传到FLASH中时,分包传输。优选地,所述FPGA将缓存的升级数据上传到FLASH中时,每包256个字节数据。优选地,所述主控程序为作战程序。(三)有益效果本专利技术固件程序的设计时在FPGA中存储两个配置映像文件,采用二次启动的方式使在线升级FPGA程序稳定可靠,确保在线升级功能。即FPGA中存储2个bit文件,第一个为监控程序(防止在线升级失败),第二个为主控程序,即作战程序。因此,本专利技术实现了通过RS422串口,在线升级主控程序时如果升级过程中出现错误导致主控程序升级失败,系统再次加电重启,将启动监控程序,还能继续升级主控程序。附图说明图1是本专利技术的升级方法流程图;图2是本专利技术的系统结构框图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。如图1所示,本专利技术提供的一种基于xilinx公司k7系列的FPGA程序在线升级方法,包括以下步骤:上位机首先发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH(SPIFLASH)进行通讯(如图2所示),并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FLASH中,分包传输,每包256个字节数据,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束。若烧写失败,则不跳转,FPGA停留在监控程序,从而保证下次能够继续在线升级,若烧写成功,则跳转到FPGA的主控程序,即作战程序。本实施例中,FPGA采用xilinx公司k7系列芯片实现,跳转到FPGA的主控程序时利用k7内部的配置模块ICAPE2启动多bit文件跳转命令PROGRAM_B,并设置状态字27'h364C093。在FPGA对FLASH进行读写、擦除的操作过程中,都调用k7内部的原语模块STARTUPE2现对SPIFLASH芯片的时钟控制。以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
1.一种基于xilinx公司k7系列的FPGA程序在线升级方法,其特征在于,包括以下步骤:上位机首先向FPGA发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH进行通讯,并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FLASH中,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束;若烧写失败,则不跳转,FPGA停留在监控程序,若烧写成功,则跳转到FPGA的主控程序,即作战程序。

【技术特征摘要】
1.一种基于xilinx公司k7系列的FPGA程序在线升级方法,其特征在于,包括以下步骤:上位机首先向FPGA发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH进行通讯,并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FLASH中,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束;若烧写失败,则不...

【专利技术属性】
技术研发人员:李世良张迪飞
申请(专利权)人:天津津航技术物理研究所
类型:发明
国别省市:天津,12

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

1