System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及fpga升级,具体涉及一种基于microblaze的fpga在线升级方法、系统及介质。
技术介绍
1、在现场可编程门阵列(fpga)领域,fpga是一种具有高度灵活性和可重编程特性的集成电路,广泛应用于数字电路设计。由于技术的快速发展,fpga功能的更新和优化成为了常态,因此其在线升级技术的重要性日益凸显。传统的fpga升级方法往往涉及停机或重新配置过程,这可能导致对系统连续运行时间要求较高的应用中出现不便。
2、在传统fpga升级技术中,升级过程往往复杂且效率低下。这些方法通常需要物理访问fpga设备或者在没有优化的情况下进行重新配置。这种方法不仅增加了升级过程的时间,而且在某些情况下还可能影响系统的稳定性和可靠性。
3、针对这些挑战,业界一直在探索更高效和可靠的在线升级方法。这包括通过改进数据传输和处理方式,优化内存和存储器的使用,以及提高升级过程中的数据安全性和错误处理能力。通过这些技术的发展,旨在实现更快速、更安全的fpga在线升级,同时尽可能减少对系统运行的干扰。
技术实现思路
1、本专利技术所要解决的技术问题是传统fpga升级的过程往往复杂且效率低下,目的在于提供一种基于microblaze的fpga在线升级方法、系统及介质,实现了高效、稳定且可以无需停机即可实现对fpga的在线升级。
2、本专利技术通过下述技术方案实现:
3、一种基于microblaze的fpga在线升级方法,在fpga内嵌入microbl
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
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有效的布尔值、哈希...
【专利技术属性】
技术研发人员:庄游彬,汪万庆,任道勇,徐科,王彬,李宝龙,朱波,
申请(专利权)人:四川赛狄信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。