一种FPGA在线升级方法、装置、设备及存储介质与流程

文档序号:15444688发布日期:2018-09-14 23:13阅读:412来源:国知局

本发明属于fpga配置技术领域,具体涉及一种fpga在线升级方法、装置、设备及存储介质。



背景技术:

现在系统设计越来越讲求时效性,现场可编程阵列fpga满足设计周期短,验证快的需求,越来越多的硬件设计采用fpga。然而fpga程序目前主要是通过jtag(联合测试工作组)等仿真器来下载到flash(固态存储器)中,很多项目都存在未知的bug,需要不定期的给客户升级,且程序需要保密性。

目前的fpga在线升级方法主要有:1、通过专用的编程器进行离线升级,这种方法太过复杂,且需要断电重启;2、通过cpu等来对fpga程序的存储器直接进行编程,这样增加了硬件成本,且方法比较复杂。



技术实现要素:

本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种fpga在线升级方法、装置、设备及存储介质,以解决上述技术问题。

第一方面,本申请提供一种fpga在线升级方法,包括:将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除所述固态存储器中原有的应用程序配置文件;将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;根据所述固态存储器中的应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。

结合第一方面,在第一方面的第一种实施方式中,擦除所述固态存储器中原有的应用程序配置文件包括:擦除固态存储器中原有应用程序配置文件的正常标志位;配置在线升级程序配置文件在固态存储器中的起始地址;将处于应用程序的现场可编程门阵列切换至在线升级程序;擦除固态存储其中的原有应用程序配置文件。

结合第一方面,在第一方面的第二种实施方式中,将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置包括:利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;配置应用程序配置文件在固态存储器中的起始地址;将处于在线升级程序的现场可编程门阵列切换至应用程序。

第二方面,本申请实施例提供一种fpga在线升级装置,包括:存储单元,配置用于将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除单元,配置用于擦除所述固态存储器中原有的应用程序配置文件;写入单元,配置用于将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;配置单元,配置用于根据所述固态存储器中应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。

结合第二方面,在第二方面的第一种实施方式中,擦除单元包括:标志位擦除子单元,配置用于擦除固态存储器中原有应用程序配置文件的正常标志位;第一预配置子单元,配置用于配置在线升级程序配置文件在固态存储器中的起始地址;第一程序切换子单元,配置用于将处于应用程序的现场可编程门阵列切换至在线升级程序;文件擦除子单元,配置用于擦除固态存储其中的原有应用程序配置文件。

结合第二方面,在第二方面的第二种实施方式中,写入单元包括:文件写入子单元,配置用于利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;标志位写入子单元,配置用于利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;第二预配置子单元,配置用于配置应用程序配置文件在固态存储器中的起始位置;第二程序切换子单元,配置用于将处于在线升级程序的现场可编程门阵列切换至应用程序。。

第三方面,本申请实施例提供一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一方面及第一方面任一种实施方式所述的方法。

第四方面,本申请实施例提供一种存储介质,该程序被处理器执行时实现如第一方面及第一方面任一种实施方式所述的方法。

本发明的有益效果在于,

本方法通过将fpga(现场可编程门阵列)的应用程序配置文件和在线升级配置文件分别存储在flash(固态存储器)的不同位置,在升级fpga过程中,在线升级配置文件不变,只更新应用程序配置文件,而更新应用程序配置文件不会对在线升级配置文件造成任何影响,在线升级程序在fpga升级过程中正常运行。该方法不需要多余的硬件,方法简单且不需要断电就能重配置fpga程序。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本申请实施例提供的fpga在线升级程序架构示意图;

图2为本申请实施例提供的fpga在线升级方法的流程图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本发明实施例中所选用的fpga型号是altera公司的cycloneive:ep4ce15e22i7,存储器是altera公司的串行配置芯片epcs16。

下面对远程在线升级使用的软件编程环境和ip核做一下介绍:开发软件是用的quartusii12.1sp1;ip核是rsu(远程更新)远程升级ip核,可以配置fpga重配置的存储器地址,可以控制fpga重配置,可以配置看门狗打开关闭和喂狗时间等。cpu用的是niosii,可以在这个cpu上运行软件程序来控制串口,rsu(远程更新)ip核和flashcontroller。flashcontroller是epcsserialflashcontroller,可以对flash芯片进行读写控制。串口ip核是uart,altera公司提供的ip核,负责上位机和cpu的交互。

请参考图1和图2,本实施例提供一种fpga在线升级方法,方法如下:

s1、通过软件把应用程序的hardware和software配置文件转换成一个待下载文件。(待升级文件)

s2、运行上位机,连接串口,上位机给fpga应用程序发送擦除应用程序配置文件正常标志位(该标志位在flash中),擦除该标志位之后,配置fpgarsu(远程更新)ip核(知识产权核)中fpga重新配置时程序配置文件在flash的起始地址。给rsuip核重新配置fpga的指令或者停止喂看门狗,fpga配置成在线升级程序。

s3、重新连接串口,上位机发送指令给fpga确认重配置到在线升级程序。

s4、上位机给fpga的在线升级程序发送擦除flash中应用程序配置文件的指令,等待fpga给上位机发送擦除成功信号。

s5、上位机选择要升级的应用程序配置文件,通过ymodem协议发送给fpga,fpga在线升级程序把该文件的数据写到flash指定位置。

s6、fpga在线升级程序写flash中的应用程序配置文件正常标志位。

s7、fpga重新配置,切换到应用程序。

s8、重新连接串口,上位机发送指令给fpga,确认应用程序版本正确,升级结束。

具体实施方式如下:

步骤一、通过软件合并应用程序hardware的sof配置文件和software的elf配置并转化成下载的文件格式,本发明是bin格式的文件。应用程序的软件代码的配置文件在flash中的位置是变化的,所以应用程序需要修改cpu的boot_loader代码,具体是修改代码转换成的hex文件。

步骤二、打开上位机,通过串口连接现在的应用程序,连接成功之后,上位机发送擦除应用程序配置文件正常标志位指令,fpga应用程序软件通过flashcontroller把flash相应位置的数据擦除。擦除成功后发送信息给上位机,上位机接收到擦除成功反馈,fpga应用程序软件通过控制rsu模块,配置fpga重配置的flash初始地址,并重配置fpga到在线升级工程。应用程序除了应用程序实现功能用到的ip以外,还要增加rsu远程升级ip,保证应用程序可以在不断电的情况下重配置fpga进入在线升级程序。

步骤三、上位机关闭串口,再重新连接串口,连接串口成功之后,上位机发送指令到fpga程序,验证是否目前程序是在线升级程序,fpga工程软件发送信息给上位机,上位机确定进入在线升级程序。

步骤四、上位机发送擦除应用程序配置文件的指令给在线升级程序,fpga接收到指令之后,通过软件控制flashcontroller,擦除应用程序配置文件存储在flash位置上的数据,擦除成功之后,fpga发送擦除成功信息给上位机,上位机显示擦除成功信息。

步骤五、上位机选择要升级的应用程序配置文件的bin文件,上位机发送数据输出指令给fpga,等待fpga反回ack指令,如果等待超出时间后显示升级失败,如果上位机接收到ack指令,上位机先发送一个数据包头文件给在线升级程序,包括传送文件大小等信息,再次收到fpgaack指令后上位机通过ymodem协议把文件一帧一帧的串行发送给fpga,一帧是1024bit,fpga在线升级程序接收到数据后把串行数据转换成并行数据,并验证传输数据的正确性,如果正确,通过flashcontroller把这一帧的数据写到flash相应的位置,然后反馈给上位机ack指令,如果验证错误则发送给上位机nak指令,上位机接收到指令之后发送下一帧数据或者重新发送这一帧数据。最后一帧数据发送结束后,上位机发送eot指令给fpga在线升级程序,fpga在线升级程序发送nak指令给上位机,上位机再发送eot指令给fpga在线升级程序,fpga在线升级程序发送ack指令给上位机,应用程序配置文件的传输和写flash结束。

步骤六、应用程序配置文件写到flash结束后,fpga在线升级程序软件控制flashcontroller把flash中的应用程序配置文件正常标志位写标志。

步骤七、fpga在线升级程序软件配置rsuip核的fpga重配置flash起始位置地址,发送重新配置fpga指令给rsuip核,rsuip核控制fpga重新配置,fpga切换到应用程序。

步骤八、上位机关闭串口,再重新连接串口,发送查询应用工程版本指令给fpga,fpga返回版本信息给上位机,上位机显示版本信息,版本正确,程序升级成功。

本实施例提供一种fpga在线升级装置,包括:存储单元,配置用于将现场可编程门阵列的在线升级程序配置文件和应用程序配置文件分别存储在固态存储器的不同位置;擦除单元,配置用于擦除所述固态存储器中原有的应用程序配置文件;写入单元,配置用于将待升级的应用程序配置文件写入所述固态存储器中原有应用程序配置文件的位置;配置单元,配置用于根据所述固态存储器中应用程序配置文件和在线升级程序配置文件配置现场可编程门阵列。

其中,擦除单元包括:标志位擦除子单元,配置用于擦除固态存储器中原有应用程序配置文件的正常标志位;第一预配置子单元,配置用于配置在线升级程序配置文件在固态存储器中的起始地址;第一程序切换子单元,配置用于将处于应用程序的现场可编程门阵列切换至在线升级程序;文件擦除子单元,配置用于擦除固态存储其中的原有应用程序配置文件。

写入单元包括:文件写入子单元,配置用于利用在线升级程序将接收的待升级的应用程序配置文件写到固态存储器中原有应用程序配置文件的位置;标志位写入子单元,配置用于利用在线升级程序在固态存储器中写应用程序配置文件的正常标志位;第二预配置子单元,配置用于配置应用程序配置文件在固态存储器中的起始位置;第二程序切换子单元,配置用于将处于在线升级程序的现场可编程门阵列切换至应用程序。

本实施例提供一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如本申请实施例提供的fpga在线升级方法。

本实施例提供一种存储介质,该程序被处理器执行时实现如本申请实施例提供的fpga在线升级的方法。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1