System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于MicroBlaze的FPGA在线升级方法、系统及介质技术方案_技高网

基于MicroBlaze的FPGA在线升级方法、系统及介质技术方案

技术编号:41005021 阅读:2 留言:0更新日期:2024-04-18 21:41
本发明专利技术涉及FPGA升级技术领域,具体涉及一种基于MicroBlaze的FPGA在线升级方法、系统及介质,在FPGA内嵌入MicroBlaze,上位机将固件数据转换为TLV格式;上位机通过UART接口或ETH接口将TLV数据包传输至MicroBlaze;MicroBlaze通过AXI UART LITE接口或AXI ETH接口接收数据包,并对数据包处理;MicroBlaze通过AXI SPI接口将解析后的数据写入FLASH;本发明专利技术通过TLV格式的数据封装和处理,并在写入数据之前和之后进行校验,确保了数据的准确性和完整性,从而提高了升级过程的可靠性。

【技术实现步骤摘要】

本专利技术涉及fpga升级,具体涉及一种基于microblaze的fpga在线升级方法、系统及介质。


技术介绍

1、在现场可编程门阵列(fpga)领域,fpga是一种具有高度灵活性和可重编程特性的集成电路,广泛应用于数字电路设计。由于技术的快速发展,fpga功能的更新和优化成为了常态,因此其在线升级技术的重要性日益凸显。传统的fpga升级方法往往涉及停机或重新配置过程,这可能导致对系统连续运行时间要求较高的应用中出现不便。

2、在传统fpga升级技术中,升级过程往往复杂且效率低下。这些方法通常需要物理访问fpga设备或者在没有优化的情况下进行重新配置。这种方法不仅增加了升级过程的时间,而且在某些情况下还可能影响系统的稳定性和可靠性。

3、针对这些挑战,业界一直在探索更高效和可靠的在线升级方法。这包括通过改进数据传输和处理方式,优化内存和存储器的使用,以及提高升级过程中的数据安全性和错误处理能力。通过这些技术的发展,旨在实现更快速、更安全的fpga在线升级,同时尽可能减少对系统运行的干扰。


技术实现思路

1、本专利技术所要解决的技术问题是传统fpga升级的过程往往复杂且效率低下,目的在于提供一种基于microblaze的fpga在线升级方法、系统及介质,实现了高效、稳定且可以无需停机即可实现对fpga的在线升级。

2、本专利技术通过下述技术方案实现:

3、一种基于microblaze的fpga在线升级方法,在fpga内嵌入microblaze处理器软核,并且microblaze采用axi uart lite接口或axi eth接口与fpga的升级接口相连,microblaze通过asi spi接口与fpga的flash通信;

4、所述在线升级方法包括:

5、第一步,上位机将固件数据打包为tlv格式的数据包;

6、第二步,上位机通过axi uart lite接口或axi eth接口将tlv数据包传输至microblaze;

7、第三步,microblaze通过axi uart lite接口或axi eth接口接收数据包,并对数据包处理;

8、第四步,microblaze通过axi spi接口将解析后的数据写入flash。

9、具体地,第一步中,上位机将固件数据转换为tlv格式的方法包括:

10、确定type字段、length字段和value字段的大小,其中,type是数据块的类型标识符,length是数据块的长度,value是数据块的实际内容,length字段的值表示value字段数据的字节长度;

11、根据固件数据确定每个字段的数据,并通过结构体或类构建数据结构;

12、将固件数据对应的字段填充至数据结构内;

13、将type字段、length字段和value字段序列化成一个字节流;

14、生成校验和字段,并在字节流末端增加校验和字段,封包后获得tlv数据包;

15、通过哈希算法对tlv数据包进行哈希计算,生成固定长度的哈希值,并将哈希值作为拓展数据包与tlv数据包二次封包,获得最终的tlv数据包;

16、对tlv数据包进行校验,若校验失败则重新生成并校验tlv数据包;若校验成功则发送tlv数据包。

17、可选地,对tlv数据包进行校验的方法包括:

18、确定用于校验的crc-32多项式;

19、初始化crc寄存器:crc:=0xffffffff;

20、在处理tlv数据包的字节前,将crc寄存器的最高8位与当前字节进行异或:crchigh:=crchigh⊕b,其中,crchigh为crc寄存器的最高8位,b为数据块的当前字节;

21、将crc寄存器左移一位,若移位后的crc寄存器的最高位为1,则将crc寄存器与crc多项式的二进制表示进行异或操作:if(crc&0x80000000≠0)thencrc:=crc⊕0x04c11de7;若移位后的crc寄存器的最高位为0,则不进行操作;

22、完成对tlv数据包中value字段的所有字节的迭代处理;

23、将crc寄存器与0xffffffff进行异或:crc:=crc⊕0xffffffff,获得最终的crc校验和;

24、比较crc校验和和校验和字段,若crc校验和与校验和字段相等,则校验成功;若crc校验和与校验和字段不相等,则校验失败。

25、具体地,第三步中,对数据包处理的方法包括:

26、将接收的tlv数据包存储至缓冲区;

27、从缓冲区的起始位置读取type字段,并验证type字段是否为预定义的有效类型;

28、从缓冲区读取type字段后的length字段,并验证length字段是否合理;

29、根据length字段的值从缓冲区读取相应长度的value字段,并验证value字段的完整性;

30、计算接收的tlv数据包的哈希值和校验和,并验证哈希值和校验和;

31、若type字段、length字段、value字段、哈希值和校验和均验证通过,则确定tlv数据包完整;若任一项未校验通过,则将tlv数据包丢弃并请求重新传输。

32、具体地,验证type字段的方法包括:

33、将提取出来的type字段与系统中定义的有效type值列表typeslist进行匹配判断;

34、若type∈typeslist,则表示校验成功,tlv数据包中的type字段有效,返回type有效的布尔值;

35、若则表示校验失败,tlv数据包中的type字段无效,返回type无效的布尔值;

36、验证length字段的方法包括:

37、确定tlv数据包允许的最大数据长度maxsize;

38、确定tlv数据包中除去type字段和length字段的剩余数据大小sizeoff;

39、若(0≤length≤maxsize)∧(length≤sizeoff),则表示校验成功,返回length有效的布尔值;

40、否则,表示校验失败,返回length无效的布尔值;

41、验证value字段的方法包括:

42、确定实际接收到的value字段的长度lengthof(value);

43、判断实际接收到的value字段的长度与length字段指定的期望长度是否匹配;

44、根据type字段对value字段进行检查;

45、若(lengthof(value)=expectedlength)∧checkformat(value)∧checkcontent(value),则表示校验成功,返回value有效的布尔值;其中,expectedlength表示length字段指本文档来自技高网...

【技术保护点】

1.一种基于MicroBlaze的FPGA在线升级方法,其特征在于,在FPGA内嵌入MicroBlaze处理器软核,并且MicroBlaze采用AXI UART LITE接口或AXI ETH接口与FPGA的升级接口相连,MicroBlaze通过ASI SPI接口与FPGA的FLASH通信;

2.根据权利要求1所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,第一步中,上位机将固件数据转换为TLV格式的方法包括:

3.根据权利要求2所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,对TLV数据包进行校验的方法包括:

4.根据权利要求2所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,第三步中,对数据包处理的方法包括:

5.根据权利要求4所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,验证Type字段的方法包括:

6.根据权利要求5所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,若同时存在Type有效的布尔值、Length有效的布尔值、Value有效的布尔值、哈希值有效的布尔值和校验和有效的布尔值,则确定TLV数据包正确;若存在任意的Type无效的布尔值、Length无效的布尔值、Value无效的布尔值、哈希值无效的布尔值和校验和无效的布尔值,则确定TLV数据包错误,丢弃并请求重新传输。

7.根据权利要求5所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,第四步中,将解析后的数据写入FLASH的方法包括:

8.根据权利要求7所述的一种基于MicroBlaze的FPGA在线升级方法,其特征在于,计算校验和的方法为:其中,D表示要写入FLASH的数据段,2n表示将数据段D左移n位,n表示多项式的最高次幂,P表示选定的CRC多项式,remainder表示多项式除法的余数。

9.一种基于MicroBlaze的FPGA在线升级系统,其特征在于,包括上位机和终端模块,所述上位机向所述终端模块发送用于FPGA升级的固件数据,所述终端模块将所述固件数据写入FPGA的FLASH;

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种基于microblaze的fpga在线升级方法,其特征在于,在fpga内嵌入microblaze处理器软核,并且microblaze采用axi uart lite接口或axi eth接口与fpga的升级接口相连,microblaze通过asi spi接口与fpga的flash通信;

2.根据权利要求1所述的一种基于microblaze的fpga在线升级方法,其特征在于,第一步中,上位机将固件数据转换为tlv格式的方法包括:

3.根据权利要求2所述的一种基于microblaze的fpga在线升级方法,其特征在于,对tlv数据包进行校验的方法包括:

4.根据权利要求2所述的一种基于microblaze的fpga在线升级方法,其特征在于,第三步中,对数据包处理的方法包括:

5.根据权利要求4所述的一种基于microblaze的fpga在线升级方法,其特征在于,验证type字段的方法包括:

6.根据权利要求5所述的一种基于microblaze的fpga在线升级方法,其特征在于,若同时存在type有效的布尔值、length有效的布尔值、value有效的布尔值、哈希...

【专利技术属性】
技术研发人员:庄游彬汪万庆任道勇徐科王彬李宝龙朱波
申请(专利权)人:四川赛狄信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1