一种基于MicroBlaze软核的FPGA软件在线升级方法_2

文档序号:9564459阅读:来源:国知局
切换为MicroBlaze的Txx信号,并返回对码成功指令,发出FLASH擦除指令,进行FLASH擦除;若对码不成功,则返回对码不成功标志,并进入等待状态,等待重新对码的指令。
[0034]在操作UART 时,波特率在 MHS (Microprocessor Hardware Specificat1n,微处理器硬件规范)文件中修改;编写Flash驱动时,在MSS (Microprocessor SoftwareSpecificat1n,微处理器软件规范)文件中调用EDK自带的XilFlash库函数,该函数库用于访问Flash,提供多种API接口实现Flash存储器的读、写、擦除、锁定和解锁功能,并与通用Flash接口兼容,有多种类型可选。
[0035]4)FLASH擦除:FPGA接受到擦除指令后,对外部FLASH执行擦除操作,成功擦除FLASH后,向上位机回送擦除成功指令;否则,返回擦除失败指令,并进入等待状态,等待重新对码的指令。
[0036]5)升级文件写入:上位机接收到擦除成功指令后,将FPGA源程序编译后的二进制bin文件拼装成固定长度数据帧发送给FPGA,FPGA将这些文件写入,若写入成功,则将FLASH置为不可读写模式,并向上位机返回更新成功指令,完成升级;若写入不成功,则向上位机返回帧更新失败指令,上位机重新向FPGA发送FPGA源程序编译后的二进制bin文件拼装成的固定长度数据帧,连续三次帧更新失败后则返回FLASH更新失败指令,并进入等待状态,等待重新对码的指令。
[0037]6)更新失败处理:为避免常规电子系统由于异常原因升级失败,只能采取重新通过JTAG接口进行烧写情况的发生,本方法预先设计了备份更新程序功能。由于FPGA配置Flash大小一般较大,空间较为充裕,因此可在Flash中选取一段新的地址将更新文件烧写进去,同时在FPGA中利用ICAP原语对BootLoader进行改进,在异常情况发生时可从备份地址启动,并且备份文件中包含在线升级功能,可继续对原Flash进行在线升级,直到更新成功后将Bootloader切换成从原来地址启动。
[0038]使用本发明的方法,以614400bps的波特率通过RS422板卡进行程序在线更新,FPGA类型为Xilinx V5系列XC5VSX95T芯片,外部Flash选用XCF128XFT64,大小为128MBit,升级文件大小为4464512个字节,按照固定协议可打包成22322个200字节数据包和一个112字节数据包,共22323个数据帧,经测试,基于MicroBlaze的在线更新系统按照协议完整更新一次FLASH内容只需2分30秒。
【主权项】
1.一种基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:包含以下步骤: I)系统配置;2)系统初始化;3)对码;4)FLASH擦除;5)升级文件写入。2.如权利要求1所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤I)系统配置的具体方法如下: 采用Mi croBIaze软核作为在线升级的控制核心,UART和FLASH作为外设直接和MicroBlaze相连;MicroBlaze通过LMB总线与本地存储器控制器相连,同本地块存储器生成的程序寻址空间和数据寻址空间进行交互,通过片上外设PLB总线同UART、外部FLASH、Timer定时器和GP1外设进行通信,GP1、Timer定时器和中断控制器外设作为虚拟外设,对切换信号Switch_flag和定时中断进行控制; FPGA系统的内部UART收发信号分别为Rx和Tx,基于MicroBlaze的在线升级系统收发信号分别为Rxx和Txx, Rx与Rxx同时接收外部UART数据,升级指示信号Switch_flag作为切换信号开关,在进行在线升级过程中将MicroBlaze的Txx信号连接到外部UART,未进行在线更新时将Tx连接到外部UART,使整个系统正常工作。3.如权利要求2所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤I)系统配置时,由虚拟GP1外设设计实现指示信号,作为其他模块和在线升级子模块切换UART接口进行完整通信过程的依据。4.如权利要求1或2所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤2)系统初始化的具体方法如下: 首先对MicroBlaze内核进行初始化,然后对FLASH、UART、GP1、Timer和中断控制器Interrupt Controller进行初始化,初始化成功后按照FLASH类型将FLASH设置为可读写模式;若系统初始化超时则结束程序,否则上位机发出对码指令。5.如权利要求4所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤3)对码的具体方法如下: 接收到上位机的对码指令后,则执行对码,若对码成功,利用GP1信号Switch_f lag开关信号将UART回送数据从Tx信号切换为MicroBlaze的Txx信号,并返回对码成功指令,发出FLASH擦除指令,进行FLASH擦除;若对码不成功,则返回对码不成功标志,并进入等待状态,等待重新对码的指令。6.如权利要求5所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:在操作UART时,波特率在MHS文件中修改;编写Flash驱动时,在MSS文件中调用EDK自带的XilFlash库函数。7.如权利要求5所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤4) FLASH擦除的具体方法如下: FPGA接受到擦除指令后,对外部FLASH执行擦除操作,成功擦除FLASH后,向上位机回送擦除成功指令;否则,返回擦除失败指令,并进入等待状态,等待重新对码的指令。8.如权利要求7所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:所述步骤5)升级文件写入的具体方法如下: 上位机接收到擦除成功指令后,将FPGA源程序编译后的二进制bin文件拼装成固定长度数据帧发送给FPGA,FPGA将这些文件写入,若写入成功,则将FLASH置为不可读写模式,并向上位机返回更新成功指令,完成升级;若写入不成功,则向上位机返回帧更新失败指令,上位机重新向FPGA发送FPGA源程序编译后的二进制bin文件拼装成的固定长度数据帧,连续三次帧更新失败后则返回FLASH更新失败指令,并进入等待状态,等待重新对码的指令。9.如权利要求8所述的基于MicroBlaze软核的FPGA软件在线升级方法,其特征在于:还包括步骤6)更新失败处理,所述步骤6)更新失败处理的具体方法如下: 在Flash中选取一段新的地址将更新文件烧写进去,同时在FPGA中利用ICAP原语对BootLoader进行改进,在异常情况发生时从备份地址启动,并且备份文件中包含在线升级功能,继续对原Flash进行在线升级,直到更新成功后将Bootloader切换成从原来地址启动。
【专利摘要】本发明属于集成电路技术领域,具体涉及一种基于MicroBlaze软核的FPGA软件在线升级方法。本发明的方法包括如下步骤:系统配置;系统初始化;对码;FLASH擦除;升级文件写入;更新失败处理。本发明提供了一种只需要UART接口的简单可靠并耗时较少的FPGA在线更新方法。本发明的方法以MicroBlaze软核作为控制核心,直接利用MicroBlaze底层驱动对配置FLASH与UART接口进行操作,简单方便且耗时少,同时从可靠性角度出发设计了相关备份功能,具有很强的可操作性和可移植性。
【IPC分类】G06F9/445
【公开号】CN105320531
【申请号】CN201410336383
【发明人】彭元, 李峰, 付晶晶, 何子君, 武成锋
【申请人】北京自动化控制设备研究所
【公开日】2016年2月10日
【申请日】2014年7月15日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1