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

文档序号:9564459阅读:715来源:国知局
一种基于MicroBlaze软核的FPGA软件在线升级方法
【技术领域】
[0001]本发明属于集成电路技术领域,具体涉及一种基于MicroBlaze软核的FPGA软件在线升级方法。
【背景技术】
[0002]随着集成电路的不断发展,可编程逻辑器件FPGA因其功能强大、设计灵活、开发周期短等特点,受到越来越广泛的应用,并成为各级电路系统中不可或缺的重要组成部分。尤其是在高要求的电子系统设计中,一般都要求其具有通过UART接口进行在线更新的功能。如果采用常规的FPGA设计方法从底层编写逻辑同配置FLASH芯片进行数据通信,需要很大精力关注FPGA的配置方式以及FLASH的读写方式。
[0003]MicroBlaze软内核是一款由Xilinx公司研发的32位微处理器IP核,可以应用于Xilinx公司各个型号的FPGA器件。以MicroBlaze软内核作为核心处理器,协同其它外设的控制器IP核,可以实现完整的可编程系统芯片(SoPC)设计。

【发明内容】

[0004]本发明需要解决的技术问题为:提供一种只需要UART接口的简单可靠并耗时较少的FPGA在线更新方法。
[0005]本发明的技术方案如下所述:
[0006]—种基于MicroBlaze软核的FPGA软件在线升级方法,包含以下步骤:
[0007]1)系统配置;2)系统初始化;3)对码;4) FLASH擦除;5)升级文件写入。
[0008]优选的,所述步骤1)系统配置的具体方法如下:
[0009]采用MicroBlaze软核作为在线升级的控制核心,UART和FLASH作为外设直接和MicroBlaze相连;MicroBlaze通过LMB总线与本地存储器控制器相连,同本地块存储器生成的程序寻址空间和数据寻址空间进行交互,通过片上外设PLB总线同UART、外部FLASH、Timer定时器和GP10外设进行通信,GP10、Timer定时器和中断控制器外设作为虚拟外设,对切换信号Switch_flag和定时中断进行控制;
[0010]FPGA系统的内部UART收发信号分别为Rx和Tx,基于MicroBlaze的在线升级系统收发信号分别为Rxx和Txx, Rx与Rxx同时接收外部UART数据,升级指示信号Switch_flag作为切换信号开关,在进行在线升级过程中将MicroBlaze的Txx信号连接到外部UART,未进行在线更新时将Tx连接到外部UART,使整个系统正常工作。
[0011]优选的,所述步骤1)系统配置时,由虚拟GP10外设设计实现指示信号,作为其他模块和在线升级子模块切换UART接口进行完整通信过程的依据。
[0012]优选的,所述步骤2)系统初始化的具体方法如下:
[0013]首先对MicroBlaze内核进行初始化,然后对FLASH、UART、GP10、Timer和中断控制器Interrupt Controller进行初始化,初始化成功后按照FLASH类型将FLASH设置为可读写模式;若系统初始化超时则结束程序,否则上位机发出对码指令。
[0014]优选的,所述步骤3)对码的具体方法如下:
[0015]接收到上位机的对码指令后,则执行对码,若对码成功,利用GP10信号Switch_flag开关信号将UART回送数据从Tx信号切换为MicroBlaze的Txx信号,并返回对码成功指令,并发出FLASH擦除指令,进行FLASH擦除。若对码不成功则返回对码不成功标志,并进入等待状态,等待重新对码的指令。
[0016]优选的,在操作UART时,波特率在MHS文件中修改;编写Flash驱动时,在MSS文件中调用Η)Κ自带的XilFlash库函数。
[0017]优选的,所述步骤4) FLASH擦除的具体方法如下:
[0018]FPGA接受到擦除指令后,对外部FLASH执行擦除操作,成功擦除FLASH后,向上位机回送擦除成功指令;否则,返回擦除失败指令,进入等待状态,等待重新对码的指令。
[0019]优选的,所述步骤5)升级文件写入的具体方法如下:
[0020]上位机接收到擦除成功指令后,将FPGA源程序编译后的二进制bin文件拼装成固定长度数据帧发送给FPGA,FPGA将这些文件写入,若写入成功,则将FLASH置为不可读写模式,并向上位机返回更新成功指令,完成升级;若写入不成功则向上位机返回帧更新失败指令,上位机重新向FPGA发送FPGA源程序编译后的二进制bin文件拼装成的固定长度数据帧,连续三次帧更新失败后则返回FLASH更新失败指令,并进入等待状态,等待重新对码的指令。
[0021]优选的,还包括步骤6)更新失败处理,所述步骤6)更新失败处理的具体方法如下:
[0022]在Flash中选取一段新的地址将更新文件烧写进去,同时在FPGA中利用ICAP原语对BootLoader进行改进,在异常情况发生时从备份地址启动,并且备份文件中包含在线升级功能,继续对原Flash进行在线升级,直到更新成功后将Bootloader切换成从原来地址启动。
[0023]本发明的有益效果为:
[0024]本发明的方法以MicroBlaze软核作为控制核心,直接利用MicroBlaze底层驱动对配置FLASH与UART接口进行操作,简单方便且耗时少,同时从可靠性角度出发设计了相关备份功能,具有很强的可操作性和可移植性。
【附图说明】
[0025]图1为本发明的在线升级方法流程图
【具体实施方式】
[0026]下面结合附图和实施例对本发明的一种基于MicroBlaze软核的FPGA软件在线升级方法进行详细说明。
[0027]图1所示为本发明的一种基于MicroBlaze软核的FPGA软件在线升级方法的流程图。
[0028]本发明的方法包括以下步骤:
[0029]1)系统配置:本方法采用MicroBlaze软核作为在线升级的控制核心,UART和FLASH作为外设直接和MicroBlaze相连。同时由于FPGA的UART接口既能够实现在线升级功能,也能够进行其他方式的通信,因此为最大限度的提高在线升级模块的独立性与可重用性,MicroBlaze软核同时提供了一个指示信号作为在线升级指示标识,可作为其他模块和在线升级子模块切换UART接口进行完整通信过程的依据,指示信号由虚拟GP10外设设计实现。
[0030]在FPGA在线升级模块中,MicroBlaze为控制核心,通过LMB总线与本地存储器控制器相连,同本地块存储器生成的程序寻址空间和数据寻址空间进行交互,另外通过片上外设PLB总线同UART、外部FLASH、Timer定时器和GP10外设进行通信,构成一个完整的嵌入式系统。在此,GP1、Timer定时器和中断控制器外设作为虚拟外设控制切换信号Switch_f lag和定时中断。
[0031 ] FPGA系统的内部UART收发信号分别为Rx和Tx,基于MicroBlaze的在线升级系统收发信号分别为Rxx和Txx, Rx与Rxx同时接收外部UART数据,升级指示信号Switch_flag作为切换信号开关,在进行在线升级过程中将MicroBlaze的Txx信号连接到外部UART,未进行在线更新时将Tx连接到外部UART,可使整个系统正常工作。
[0032]2)系统初始化:首先对MicroBlaze内核进行初始化,然后对FLASH、UART、GP1、Timer和中断控制器Interrupt Controller进行初始化,初始化成功后按照FLASH类型将FLASH设置为可读写模式。若系统初始化超时则结束程序,否则上位机发出对码指令。
[0033]3)对码:接收到上位机的对码指令后,则执行对码,若对码成功,利用GP10信号Switch_flag开关信号将UART回送数据从Tx信号
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1