公开/公告号CN112667320A
专利类型发明专利
公开/公告日2021-04-16
原文格式PDF
申请/专利权人 中国电子科技集团公司第五十八研究所;
申请/专利号CN202110048468.8
申请日2021-01-14
分类号G06F9/445(20180101);G06F8/71(20180101);G06F8/656(20180101);G06F15/78(20060101);G06F13/42(20060101);H04L29/08(20060101);
代理机构32340 无锡派尔特知识产权代理事务所(普通合伙);
代理人杨立秋
地址 214000 江苏省无锡市滨湖区惠河路5号
入库时间 2023-06-19 10:38:35
技术领域
本发明属于以FPGA和DSP为架构的嵌入式系统的软硬件设计技术领域,具体涉及一种基于MicroBlaze的FPGA及DSP远程加载系统。
背景技术
在航空航天、工业控制、雷达等领域,以现场可编程门阵列(FPGA)+数字信号处理器(DSP)为设计方案的设备使用的非常广泛。FPGA可以完成对外围数据的高速采集和复杂的逻辑控制,实现各种控制和通信协议,DSP通过和FPGA进行数据交互,把采集的数据通过DSP完成复杂的算法进行分析处理。
一般情况下,这些设备需要不断的更新完善系统软件。对于大型系统有多个设备和机箱的情况下,如果通过JTAG接口连接仿真器的方式进行更新系统软件,需要对所有的板卡从机箱中拆卸下来逐个连接仿真器进行软件升级,这样不仅耗时耗力,而且有一定的改变设备状态的风险,不利于设备的维护和管理。所以就需要一种有效的,可以远程加载的系统平台,完成对设备板卡的软件程序升级加载功能,因此亟需研发一种基于MicroBlaze的FPGA及DSP远程加载系统来解决上述问题。
发明内容
针对现有技术的不足,本发明提供了一种基于MicroBlaze的FPGA及DSP远程加载系统,可以使得FPGA和DSP更新程序的方式更加便捷,而且效率有很大的提高。
本发明通过以下技术方案予以实现:
一种基于MicroBlaze的FPGA及DSP远程加载系统,该远程加载系统包括FPGA芯片、DSP芯片、PHY芯片和FLASH芯片,其远程加载主要是通过所述FPGA芯片内部的软核和逻辑设计实现的;
对于所述FPGA芯片的更新,上位机通过以太网将要更新的所述FPGA芯片配置文件通过网口下发给所述FPGA芯片内部的MicroBlaze软核,此软核通过Lwip网络协议,解析出有效的数据后,通过AXI总线把数据传输给所述FPGA芯片的fpga_load_ctrl加载模块,此加载模块缓存数据并通过SPI总线接口把数据存储到所述FLASH芯片中;
对于所述DSP芯片的更新,也是通过上位机下发所述DSP芯片的更新配置文件,所述MicroBlaze软核接收到数据后,通过AXI总线与axi_uart模块和dsp_load_ctrl模块进行数据和指令交互,把配置文件存储到所述DSP芯片的片上所述FLASH芯片中。
优选的,所述MicroBlaze软核处理器系统通过以太网接口和上位机进行数据通信。
优选的,所述FPGA芯片的远程加载采用了QuickBoot的方法,所述FPGA芯片的程序加载运行是通过读取所述FLASH芯片中的数据进行的。
优选的,所述FLASH芯片中包括header、golden bitstream area和updatebitstream area三个区域部分;
其中所述Header中包括关键开关字和热启动跳转序列,所述关键开关字为0xAA995566;
如果所述关键开关字为打开状态,则执行所述热启动跳转序列,然后会跳转到所述update bitstream area区域,读取此区域中的数据配置到所述FPGA芯片中运行;
如果所述关键开关字为关闭状态,则继续向下读取数据,这样就把所述goldenbitstream area中的数据配置到所述FPGA芯片中。
优选的,所述FPGA芯片的远程加载主要是更新所述update bitstream area区域中的配置文件。
优选的,更新所述update bitstream area区域中的配置文件,其主要采用如下步骤:
(1)擦除所述关键开关字的块或者扇区,让所述关键开关字为关闭状态;
(2)擦除所述update bitstream area区域中的配置文件;
(3)将要更新的bit文件写入到所述update bitstream area区域中;
(4)验证写入的文件是否正确;
(5)验证通过后,将所述关键开关字打开。
优选的,所述DSP芯片的远程加载模块包括dsp_load_ctrl模块和axi_uart模块两个部分,其中所述dsp_load_ctrl模块实现的主要功能是对二级引导数据的发送,具体实现过程如下:
(1)发送数据头,共两个字节:0x41、0xAA;
(2)发送二级引导数据,共7079个字节;
(3)延时50ms;
(4)发送5个字节:0xD0、0x2A、0x8D、0xFF、0xFE;
(5)DSP返回9个字节:0x01、0xE0、0x00、0x00、0xD0、0xF4、0xCA、0xFF、0xFE;
(6)发送9个字节:0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE;
(7)DSP返回9个字节:0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE。
优选的,利用所述FPGA芯片和所述DSP芯片之间的UART数据接口,完成下发所述DSP芯片的二级引导程序,并将上位机下发的源程序搬移到所述DSP芯片内部的所述FLASH芯片中。
本发明的有益效果为:
通过上位机软件和基于MicroBlaze软核的硬件设备进行通信,对多片FPGA和DSP进行远程加载的系统。解决了在不改变硬件状态的情况下对系统软件的升级加载,相对于使用仿真器进行更新软件的方式,增加了系统的稳定性和可维护性。另外,对于FPGA的远程加载采用的QuickBoot方法,在升级更新失败的情况下,系统还可以正常启动,有效的保证了系统运行的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的硬件系统结构框图。
图2为本发明FPGA内部主要结构图。
图3为本发明MicroBlaze软核主要流程。
图4为本发明fpga_load_ctrl模块流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
按照本发明提供的技术方案,所述FPGA及DSP远程加载系统包括FPGA芯片、DSP芯片、PHY芯片和FLASH芯片,此系统的远程加载主要是通过FPGA内部的软核和逻辑设计实现的。FPGA中使用了MicroBlaze软核,软核中用到了Lwip协议,此协议在保持了TCP协议主要功能的基础上减少了对资源的占用。对于FPGA的更新,上位机通过以太网,将要更新的FPGA配置文件通过网口下发给FPGA内部的MicroBlaze软核,此软核通过Lwip网络协议,解析出有效的数据后,通过AXI总线把数据传输给FPGA的fpga_load_ctrl加载模块,此加载模块缓存数据并通过SPI接口把数据存储到FLASH中。下次上电后,FPGA从FLASH中的updatebitstream area区域加载数据,从而完成了远程加载。如果远程加载过程中配置出现错误比如突然掉电,或者CRC校验失败,那么FPGA就从golden bitstream area区域加载数据,保证了系统的可靠性。对于DSP的更新,也是通过上位机下发DSP的更新配置文件,软核接收到数据后,通过AXI总线与axi_uart模块和dsp_load_ctrl模块进行数据和指令交互,把配置文件存储到DSP的片上FLASH中。
所述MicroBlaze软核处理器系统通过以太网接口和上位机进行数据通信。
所述FPGA的远程加载采用了QuickBoot的方法,FPGA的程序加载运行是通过读取FLASH中的数据进行的,FLASH中包括三个部分:header、golden bitstream area和updatebitstream area。Header中包括关键开关字和热启动跳转序列。关键开关字为0xAA995566,如果关键开关字为打开状态,则执行热启动跳转序列,然后会跳转到update bitstreamarea区域,读取此区域中的数据配置到FPGA中运行。如果关键开关字为关闭状态,则继续向下读取数据,这样就把golden bitstream area中的数据配置到FPGA中。FPGA的远程加载主要是更新update bitstream area中的配置文件,更新此区域的步骤如下:
(1)擦除关键开关字的块或者扇区,让关键开关字为关闭状态;
(2)擦除update bitstream area中的配置文件;
(3)将要更新的bit文件写入到update bitstream area区域中;
(4)验证写入的文件是否正确;
(5)验证通过后,将关键开关字打开。
所述利用FPGA和DSP之间的数据接口,完成下发DSP的二级引导程序,并将上位机下发的源程序搬移到DSP内部的FLASH中
实施例一:
请参阅图1所示:本实施例一具体提供了本发明嵌入式系统的硬件结构,包括FPGA芯片1、DSP芯片2、PHY芯片3和FLASH芯片4。本发明选用XILINX公司的K7系列FPGA芯片1,该芯片支持QuickBoot配置方法。选用TI公司的C2000系列DSP芯片2。PHY芯片3选用88E111芯片,用于和上位机5进行网络通信。FPGA芯片1配置存储芯片选用N25Q128,具有16MB的存储空间。上位机5通过网络连接到PHY芯片3,PHY芯片3连接到FPGA芯片1,FPGA芯片1通过SPI接口下发更新应用程序的数据到FLASH芯片4,FLASH芯片4用于存储FPGA芯片1的应用程序。另外,FPGA芯片1通过UART和DSP芯片2进行数据交互,把DSP芯片2的应用程序存储到DSP芯片2片内的FLASH芯片4中。
请继续参阅图2所示,本实施例一具体提供了一种基于MicroBlaze101的FPGA及DSP远程加载系统,所述FPGA及DSP远程加载系统包括FPGA芯片1、DSP芯片2、PHY芯片3和FLASH芯片4,此系统的远程加载主要是通过FPGA芯片1内部的软核和逻辑设计实现的。FPGA芯片1中使用了MicroBlaze101软核,软核中用到了Lwip协议,此协议在保持了TCP协议主要功能的基础上减少了对资源的占用。对于FPGA芯片1的更新,上位机5通过以太网,将要更新的FPGA芯片1配置文件通过网口下发给FPGA芯片1内部的MicroBlaze101软核,此软核通过Lwip网络协议,解析出有效的数据后,通过AXI总线把数据传输给FPGA芯片1的fpga_load_ctrl102加载模块,此加载模块缓存数据并通过SPI接口把数据存储到FLASH芯片4中。下次上电后,FPGA芯片1从FLASH芯片4中的update bitstream area区域加载数据,从而完成了远程加载。如果远程加载过程中配置出现错误比如突然掉电,或者CRC校验失败,那么FPGA芯片1就从golden bitstream area区域加载数据,保证了系统的可靠性。对于DSP芯片2的更新,也是通过上位机5下发DSP芯片2的更新配置文件,软核接收到数据后,通过AXI总线与axi_uart103模块和dsp_load_ctrl104模块进行数据和指令交互,把配置文件存储到DSP芯片2的片上FLASH芯片4中。
所述MicroBlaze101软核处理器系统通过以太网接口和上位机5进行数据通信。
所述FPGA芯片1的远程加载采用了QuickBoot的方法,FPGA芯片1的程序加载运行是通过读取FLASH芯片4中的数据进行的,FLASH芯片4中包括三个部分:header、goldenbitstream area和update bitstream area。Header中包括关键开关字和热启动跳转序列。关键开关字为0xAA995566,如果关键开关字为打开状态,则执行热启动跳转序列,然后会跳转到update bitstream area区域,读取此区域中的数据配置到FPGA芯片1中运行。如果关键开关字为关闭状态,则继续向下读取数据,这样就把golden bitstream area中的数据配置到FPGA芯片1中。FPGA芯片1的远程加载主要是更新update bitstream area中的配置文件,更新此区域的步骤如下:
(1)擦除关键开关字的块或者扇区,让关键开关字为关闭状态;
(2)擦除update bitstream area中的配置文件;
(3)将要更新的bit文件写入到update bitstream area区域中;
(4)验证写入的文件是否正确;
(5)验证通过后,将关键开关字打开。
所述利用FPGA芯片1和DSP芯片2之间的数据接口,完成下发DSP芯片2的二级引导程序,并将上位机5下发的源程序搬移到DSP芯片2内部的FLASH芯片4中。
图3为MicroBlaze101软核主要流程图,上位机5通过Lwip协议解析上位机5下发的数据包,提取有效数据判断是否更新FPGA芯片1或DSP芯片2,当需要更新FPGA芯片1或DSP芯片2时,判断是否满足发送数据包的条件,当满足时继续发送下一包数据,直到所有的配置文件数据都发送完毕为止。最后向上位机5反馈FPGA芯片1或DSP芯片2更新后的状态,上位机5界面显示更新后的状态信息。
图4为fpga_load_ctrl102模块实现流程图。此模块和MicroBlaze101软核通过AXI总线进行数据交互,当检测到远程加载启动信号后,就开始对FLASH芯片4进行操作,首先擦除FLASH芯片4关键字,然后擦除FLASH芯片4的update bitstream area区域,擦除完成后写入更新配置文件,写完毕后,验证写入的数据是否正确,当正确时,打开FLASH芯片4关键字,反之则关闭关键字,操作完成后,反馈给软核此次更新后的状态,软核通过网络传输给上位机5显示更新状态。即使此次更新失败,下次上电启动后,FPGA芯片1检测到FLASH芯片4关键字关闭,会继续读取FLASH芯片4中的数据,从而加载golden bitstream area区域中的文件,保证了FPGA芯片1可以正常运行程序。
DSP芯片2远程加载模块包括两个部分:dsp_load_ctrl104模块和axi_uart103模块。dsp_load_ctrl104模块主要是实现二级引导的功能。当更新DSP芯片2的启动标志信号有效后,开始通过波特率为9600bit/s的串口发送二级引导的数据,发送完毕后,给软核反馈数据有效标志,同时把串口收发信号切换到axi_uart103模块,axi_uart103模块通过串口接收软核发送过来的配置文件,写入到DSP芯片2的片内FLASH芯片4中。
dsp_load_ctrl104模块实现的主要功能是对二级引导数据的发送,具体实现过程如下:
(1)发送数据头,共两个字节:0x41、0xAA;
(2)发送二级引导数据,共7079个字节;
(3)延时50ms;
(4)发送5个字节:0xD0、0x2A、0x8D、0xFF、0xFE;
(5)DSP返回9个字节:0x01、0xE0、0x00、0x00、0xD0、0xF4、0xCA、0xFF、0xFE;
(6)发送9个字节:0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE;
(7)DSP返回9个字节:0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE。
当完成上述过程后,说明二级引导过程成功。成功后,把串口收发接口切换给axi_uart103模块,通过软核发送更新DSP芯片2的应用数据给到此模块,波特率为115200bit/s。
通过上位机5软件和基于MicroBlaze101软核的硬件设备进行通信,对多片FPGA和DSP进行远程加载的系统。解决了在不改变硬件状态的情况下对系统软件的升级加载,相对于使用仿真器进行更新软件的方式,增加了系统的稳定性和可维护性。另外,对于FPGA的远程加载采用的QuickBoot方法,在升级更新失败的情况下,系统还可以正常启动,有效的保证了系统运行的可靠性。
本发明中未作详细赘述的部分内容属于本领域技术人员的公知技术,仅仅对其进行使用,并未对其进行改进,故不再详细赘述。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
机译: 一种包括RISC处理器,DSP部分和FPGA部分的IC
机译: 一种用于处理算术和逻辑运算并将其用于处理器(CPU),多计算机系统,数据流处理器(DFP),数字信号处理器(DSP),协定处理器和可编程逻辑组件(FPGA)的单元)
机译: 基于FPGA和DSP的超声波气体流量计