(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201811301657.6
(22)申请日 2018.11.02
(71)申请人 天津津航技术物理研究所
地址 300308 天津市东丽区空港经济区中
环西路58号
(72)发明人 李世良 张迪飞 
(74)专利代理机构 中国兵器工业集团公司专利
中心 11011
代理人 王雪芬
蔡卓妍的电影(51)Int.Cl.
G06F  8/65(2018.01)
G06F  8/61(2018.01)
(54)发明名称
基于xilinx公司k7系列的FPGA程序在线升
(57)摘要
本发明涉及一种基于xilinx公司k7系列的
FPGA程序在线升级方法,
属于FPGA程序在线升级技术领域。本发明固件程序的设计时在FPGA中存
储两个配置映像文件,采用二次启动的方式使在
线升级FPGA程序稳定可靠,确保在线升级功能。
即FPGA中存储2个bit文件,第一个为监控程序
(防止在线升级失败),第二个为主控程序,即作2012年春晚灵异事件
战程序。因此,本发明实现了通过RS422串口,在
线升级主控程序时如果升级过程中出现错误导
致主控程序升级失败,系统再次加电重启,将启
动监控程序,
还能继续升级主控程序。权利要求书1页  说明书2页  附图2页CN 109491686 A 2019.03.19
C N  109491686教师节来源
A
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的主控程序,即作战程序。
2.如权利要求1所述的方法,其特征在于,所述FPGA采用xilinx公司k7系列芯片实现。
3.如权利要求2所述的方法,其特征在于,跳转到FPGA的主控程序时利用k7内部的配置模块ICAPE2启动多bit文件跳转命令PROGRAM_B,并设置状态字27'h364C093。
4.如权利要求2所述的方法,其特征在于,在FPGA对FLASH进行读写、擦除的操作过程中,都调用k7内部的原语模块STARTUPE2实现对SPI  FLASH芯片的时钟控制。
5.如权利要求1所述的方法,其特征在于,所述FPGA将缓存的升级数据上传到FLASH中时,分包传输。
6.如权利要求5所述的方法,其特征在于,所述FPGA将缓存的升级数据上传到FLASH中时,每包256个字节数据。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述主控程序为作战程序。
权 利 要 求 书1/1页CN 109491686 A
基于xilinx公司k7系列的FPGA程序在线升级方法
技术领域
[0001]本发明属于FPGA程序在线升级技术领域,具体涉及一种基于xilinx公司k7系列的FPGA程序在线升级方法。
背景技术
[0002]FPGA程序通常使用USB仿真电缆进行烧写,需要对设备进行多次拆装,严重影响系统工作效率,需要开发新的方法实现对FPGA程序的在线更改,设置FPGA为主SPI模式,用于FPGA上电后自主加载配置数据,使用标准SPI接口的Flash存储配置数据,通过更改Flash存储数据,即可完成FPGA固件程序的在线升级。在升级过程中,要完成对Flash芯片的擦除写入操作,如果由于电源、电缆等原因使擦除写入操作失败,则升级无法完成,再次升级操作变为不可能。
发明内容
[0003](一)要解决的技术问题
[0004]本发明要解决的技术问题是:如何使在线升级FPGA程序稳定可靠,确保在线升级功能。
[0005](二)技术方案
[0006]为了解决上述技术问题,本发明提供了一种基于xilinx公司k7系列的FPGA程序在线升级方法,包括以下步骤:
[0007]上位机首先向FPGA发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH进行通讯,并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FL
ASH中,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束;若烧写失败,则不跳转,FPGA停留在监控程序,若烧写成功,则跳转到FPGA的主控程序,即作战程序。
[0008]优选地,所述FPGA采用xilinx优选地,跳转到FPGA的主控程序时利用k7内部的配置模块ICAPE2启动多bit文件跳转命令PROGRAM_B,并设置状态字27'h364C093。
[0009]优选地,在FPGA对FLASH进行读写、擦除的操作过程中,都调用k7内部的原语模块STARTUPE2实现对SPI FLASH芯片的时钟控制。
[0010]优选地,所述FPGA将缓存的升级数据上传到FLASH中时,分包传输。
[0011]优选地,所述FPGA将缓存的升级数据上传到FLASH中时,每包256个字节数据。[0012]优选地,所述主控程序为作战程序。
[0013](三)有益效果
[0014]本发明固件程序的设计时在FPGA中存储两个配置映像文件,采用二次启动的方式使在线升级FPGA程序稳定可靠,确保在线升级功能。即FPGA中存储2个bit文件,第一个为监控程序(防止在线升级失败),第二个为主控程序,即作战程序。因此,本发明实现了通过RS422串口,在线升级主控程序时如果升级过程中出现错误导致主控程序升级失败,系统再次加电重启,将启动监控程序,还能继续升级主控程序。王宝强妈妈去世是真是假>周杰伦跨年在哪个卫视
附图说明
[0015]图1是本发明的升级方法流程图;
[0016]图2是本发明的系统结构框图。
具体实施方式
[0017]为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0018]如图1所示,本发明提供的一种基于xilinx公司k7系列的FPGA程序在线升级方法,包括以下步骤:
[0019]上位机首先发送开始设备对码指令,对码成功表示进入FPGA在线升级流程,升级数据通过板间连接器进入到FPGA的双口中,DSP通过EMIF接口将升级数据缓存,FPGA通过其中的读写FIFO与FLASH(SPI FLASH)进行通讯(如图2所示),并首先对FLASH进行擦除操作,擦除成功后,将缓存的升级数据上传到FLASH中,分包传输,每包256个字节数据,上传完成后,DSP给FPGA发送读取命令,FPGA控制FLASH读回FLASH中的升级数据,FPGA把升级数据通过FIFO传给DSP,DSP进行全帧校验,DSP判断待写入FLASH的数据累加和与从FLASH读回的数据累加和是否一致,若一致,则控制FPGA写入烧写成功标志,以便FPGA的监控程序启动,查询此标志,监控程序负责判断上次烧写是否成功,决定是否跳转到主控程序中开始执行作战程序,若不一致,则结束。若烧写失败,则不跳转,FPGA停留在监控程序,从而保证下次能够继续在线升级,若烧写成功,则跳转到FPGA的主控程序,即作战程序。
[0020]本实施例中,FPGA采用xilinx公司k7系列芯片实现,跳转到FPGA的主控程序时利用k7内部的配置模块ICAPE2启动多bit文件跳转命令PROGRAM_B,并设置状态字27' h364C093。在FPGA对FLASH进行读写、擦除的操作过程中,都调用k7内部的原语模块STARTUPE2现对SPI FLASH芯片的时钟控制。
[0021]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护
范围。
阿里蒋凡老婆图1