一种升级FPGA配置文件的方法及相关装置与流程

文档序号:28279815发布日期:2021-12-31 21:22阅读:108来源:国知局
一种升级FPGA配置文件的方法及相关装置与流程
一种升级fpga配置文件的方法及相关装置
技术领域
1.本技术涉及固件升级技术领域,特别涉及一种升级fpga配置文件的方法;还涉及一种升级fpga配置文件的装置、设备以及计算机可读存储介质。


背景技术:

2.fpga(field-programmable gate array,现场可编程门阵列)具有可编程及硬件并行等特点,通常应用于高性能数据处理等领域。fpga的一大优势就是可以重复加载新的配置文件,实现新功能或者修复现有程序里的错误后,更新fpga配置文件,新功能便开始升效。
3.目前,针对升级fpga配置文件的方案主要包括:一、pc机通过jtag下载线直接加载所述fpga设备。pc机将fpga配置文件通过jtag下载线写入到fpga的配套flash即闪存芯片里面,每次fpga上电后就从flash里面加载fpga配置文件。二、fpga配置文件存储在所述fpga设备上的flash里面,所述fpga设备上的cpu上电开始工作后,将fpga配置文件读出并通过配置接口配置fpga。
4.然而,无论是哪一种升级方案,都需要人工进行较多的干预,每次升级fpga配置文件,都需要人工将fpga配置文件拷贝到cpu相连的flash或者通过jtag烧写到fpga相连的flash里面,需要人为的选择fpga配置文件,人为完成flash的升级。由于需要人工参与,所以不仅升级效率低,而且会提高人力成本。因此,如何提高升级效率、降低人力成本已成为本领域技术人员亟待解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种升级fpga配置文件的方法,能够有效提高升级效率,降低人力成本。本技术的另一个目的是提供一种升级fpga配置文件的装置、设备以及计算机可读存储介质,均具有上述技术效果。
6.为解决上述技术问题,本技术提供了一种升级fpga配置文件的方法,包括:
7.连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;
8.向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;
9.当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;
10.将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
11.可选的,所述向所述局端服务器查询fpga设备中fpga配置文件的版本状态包括:
12.向所述局端服务器发送查询帧;所述查询帧携带有fpga编码,以使所述局端服务器根据所述fpga编码检测对应的所述fpga配置文件的版本状态;
13.接收所述局端服务器发送的响应帧;所述响应帧携带有表征所述fpga配置文件的版本状态的状态码;
14.分析所述状态码,得到所述fpga配置文件的版本状态。
15.可选的,所述fpga编码包括设备编码、功能编码以及版本编码。
16.可选的,所述查询帧还携带有厂家编码与crc校验码;所述响应帧还携带有所述厂家编码、所述设备编码、所述功能编码、所述版本编码以及所述crc校验码。
17.可选的,所述从所述局端服务器获取所述fpga配置文件的更新版本包括:
18.向所述局端服务器发送携带所述fpga配置文件的更新版本的版本编码的升级帧;
19.接收所述局端服务器发送的携带所述fpga配置文件的更新版本的数据帧。
20.可选的,所述升级帧还携带有厂家编码、设备编码、功能编码以及crc校验码;所述数据帧还携带有所述更新后的版本编码、所述crc校验码以及表征当前数据帧是否为最后一帧数据帧的数据帧状态码。
21.可选的,所述向所述局端服务器查询fpga设备中fpga配置文件的版本状态前还包括:
22.检测所述闪存芯片内部的版本需求区的值;
23.若所述闪存芯片内部的版本需求区的值为目标值,则向所述局端服务器查询fpga设备中fpga配置文件的版本状态。
24.为解决上述技术问题,本技术还提供了一种升级fpga配置文件的装置,包括:
25.连接模块,用于连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;
26.查询模块,用于向所述局端服务器查询fpga设备中fpga配置文件的版本状态;
27.获取模块,用于当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;
28.刷新模块,用于将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
29.为解决上述技术问题,本技术还提供了一种升级fpga配置文件的设备,包括:
30.存储器,用于存储计算机程序;
31.处理器,用于执行所述计算机程序时实现如上任一项所述的升级fpga配置文件的方法的步骤。
32.为解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的升级fpga配置文件的方法的步骤。
33.本技术所提供的升级fpga配置文件的方法,包括:连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
34.可见,本技术所提供的升级fpga配置文件的方法,在设立存储各种版本的fpga配置文件的局端服务器的基础上,由fpga设备自动从局端服务器处获取新版本的fpga配置文件,并将所获取的fpga配置文件刷新到fpga设备的闪存芯片中,实现fpga配置文件的自动升级。相较于人工参与的升级方案,本技术所提供的升级fpga配置文件的方法无需人工参与,有效提高了升级效率,降低可人力成本。
35.本技术所提供的升级fpga配置文件的装置、设备以及计算机可读存储介质均具有
上述技术效果。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例所提供的一种升级fpga配置文件的方法的流程示意图;
38.图2为本技术实施例所提供的一种系统拓扑图;
39.图3为本技术实施例所提供的一种查询帧的帧结构示意图;
40.图4为本技术实施例所提供的一种响应帧的帧结构示意图;
41.图5为本技术实施例所提供的一种升级帧的帧结构示意图;
42.图6为本技术实施例所提供的一种数据帧的帧结构示意图;
43.图7为本技术实施例所提供的一种升级fpga配置文件的装置的示意图;
44.图8为本技术实施例所提供的一种升级fpga配置文件的设备的示意图。
具体实施方式
45.本技术的核心是提供一种升级fpga配置文件的方法,能够有效提高升级效率,降低人力成本。本技术的另一个核心是提供一种升级fpga配置文件的装置、设备以及计算机可读存储介质,均具有上述技术效果。
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.请参考图1,图1为本技术实施例所提供的一种升级fpga配置文件的方法的流程示意图,参考图1所示,该方法主要包括:
48.s101:连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;
49.具体的,fpga设备厂家设立局端服务器,将本厂的各种类型的fpga设备、各种功能的fpga配置文件存储在局端服务器。另外,设置局端服务器的ip,并将局端服务器接入公网,以局端服务器作为提供fpga配置文件的一方,供fpga设备从局端服务器处自动获取fpga配置文件。参考图2所示,fpga设备上的cpu支持tcp,在fpga设备开机后,fpga设备上的cpu与局端服务器建立连接。
50.s102:向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;
51.具体的,在与局端服务器建立连接的基础上,fpga设备向局端服务器查询本设备中的fpga配置文件的版本状态,即查询本fpga设备中的fpga配置文件是否有更新。
52.在一种具体的实施方式中,所述向所述局端服务器查询fpga设备中fpga配置文件的版本状态包括:
53.向所述局端服务器发送查询帧;所述查询帧携带有fpga编码,以使所述局端服务器根据所述fpga编码检测对应的所述fpga配置文件的版本状态;
54.接收所述局端服务器发送的响应帧;所述响应帧携带有表征所述fpga配置文件的版本状态的状态码;
55.分析所述状态码,得到所述fpga配置文件的版本状态。
56.具体而言,本实施例中,fpga设备中的cpu支持私有通讯协议帧。fpga设备与局端服务器通过私有通讯协议帧进行通讯。私有通讯协议帧包括查询帧、响应帧。fpga设备在向局端服务器查询fpga设备中fpga配置文件的版本状态时,首先向局端服务器发送查询帧。所发送的查询帧携带有fpga编码,由此局端服务器在接收到查询帧后,根据查询帧所携带的fpga编码,检测相应的fpga配置文件是否有更新版本。检测完成后,进一步局端服务器将携带有表征fpga配置文件的版本状态的状态码的响应帧发送给fpga设备。最后,fpga设备分析响应帧所携带的状态码,得到fpga配置文件的版本状态。
57.预先定义响应帧所携带的状态码与fpga配置文件的版本状态的对应关系,例如,状态码1111表征fpga配置文件存在更新版本,状态码0000表征fpga配置文件不存在更新版本。对于状态码与fpga配置文件的版本状态的对应关系可以进行差异性设置,本技术对此不做限定。
58.其中,在一种具体的实施方式中,所述fpga编码包括设备编码、功能编码以及版本编码。
59.具体而言,fpga设备往往具有多种类型,每种类型的fpga设备可能支持多种功能,由此fpga设备在查询fpga配置文件时,将携带设备编码、功能编码以及版本编码的查询帧发送给局端服务器。局端服务器接收到查询帧后,查询设备编码、功能编码所对应的fpga配置文件的版本编码,并将所查询到版本编码与查询帧中携带的版本编码进行对比,从而检测该设备编码与功能编码对应的fpga配置文件是否存在更新版本。
60.一般,如果查询到的版本编码与查询帧中携带的版本编码不一致,则认为存在fpga配置文件的更新版本。
61.进一步,在上述实施例的基础上,所述查询帧还携带有厂家编码与crc校验码;所述响应帧还携带有所述厂家编码、所述设备编码、所述功能编码、所述版本编码以及所述crc校验码。
62.具体而言,参考图3与图4所示,本实施例中查询帧的帧结构包括查询帧帧头、厂家编码、设备编码、功能编码、版本编码以及crc校验码。查询帧中的crc校验码是根据厂家编码、设备编码、功能编码以及版本编码得到。响应帧的帧结构包括响应帧帧头、厂家编码、设备编码、功能编码、版本编码、状态码以及crc校验码。响应帧中的crc校验码是根据厂家编码、设备编码、功能编码、版本编码、状态码。
63.如果设备编码与功能编码对应的fpga配置文件存在更新版本,那么局端服务器发送的响应帧中的版本编码就为fpga配置文件的更新版本的版本编码,状态码为表征存在更新版本的状态码。相反,如果设备编码与功能编码对应的fpga配置文件不存在更新版本,那么局端服务器发送的响应帧中的版本编码就可与查询帧中的版本编码一致,状态码为表帧不存在更新版本的状态码。
64.s103:当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;
65.s104:将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
66.具体的,如果fpga设备的fpga配置文件不存在更新版本,那么结束升级流程。相反,如果fpga设备的fpga配置文件存在更新版本,则fpga设备进一步从局端服务器处获取fpga配置文件的更新版本,并将fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中,远端设备基于闪存芯片中的新版本的fpga配置文件重新配置fpga,fpga实现新版本的功能,从而实现fpga配置的自动升级。
67.在一种具体的实施方式中,所述从所述局端服务器获取所述fpga配置文件的更新版本包括:
68.向所述局端服务器发送携带所述fpga配置文件的更新版本的版本编码的升级帧;
69.接收所述局端服务器发送的携带所述fpga配置文件的更新版本的数据帧。
70.具体而言,当fpga设备要从局端服务器获取fpga配置文件的更新版本时,首先向局端服务器发送携带更新版本的版本编码的升级帧。进而,局端服务器在接收到升级帧后,将携带远端设备所需的更新版本的fpga配置文件的数据帧发送给远端设备。最后远端设备接收数据帧并将所接收到的更新版本的fpga配置文件刷新到闪存芯片中。
71.其中,在一种具体的实施方式中,所述升级帧还携带有厂家编码、设备编码、功能编码以及crc校验码;所述数据帧还携带有所述更新后的版本编码、所述crc校验码以及表征当前数据帧是否为最后一帧数据帧的数据帧状态码。
72.具体而言,参考图5与图6所示,本实施例中升级帧的帧结构包括升级帧帧头、厂家编码、设备编码、功能编码、版本编码以及crc校验值。升级帧中的crc校验值是根据厂家编码、设备编码、功能编码以及版本编码得到。数据帧的帧结构包括数据帧帧头、版本编码、状态区、数据区以及crc校验码。状态区写入数据帧状态码,数据区写入fpga配置文件的内容。数据帧中的crc校验值是根据版本编码、数据帧状态码以及数据区中的数据得到。
73.局端服务器通过发送多个数据帧,而将完整的fpga配置文件发送给远端设备。远端设备每次在接收到数据帧后,根据数据帧中的数据帧状态码判断是否接收完fpga配置文件。接收完fpga配置文件后,将其刷新到闪存芯片中。
74.数据帧状态码与数据帧是否为最后一帧数据帧的对应关系,可以根据实际应用需要进行相适应的设置,本技术对此不做限定。例如,数据帧状态码1000表征当前数据帧是最后一帧数据帧,数据帧状态码1100表征当前数据帧不是最后一帧数据帧。
75.进一步,在上述实施例的基础上,作为一种具体的实施方式,所述向所述局端服务器查询fpga设备中fpga配置文件的版本状态前还包括:
76.检测所述闪存芯片内部的版本需求区的值;
77.若所述闪存芯片内部的版本需求区的值为目标值,则向所述局端服务器查询fpga设备中fpga配置文件的版本状态。
78.具体而言,远端设备上电后,与局端服务器建立连接。并在连接成功后,首先检测闪存芯片内部的版本需求区的值。如果版本需求区的值为预先定义的目标值,则执行升级流程,向局端服务器查询fpga设备中fpga配置文件的版本状态。如果版本需求区的值不是预先定义的目标值,则表征此时对fpga进行调试,人为的从局端服务器申请特定版本的fpga配置文件。调试完成后再将版本需求区的值恢复为目标值。
79.调试过程中,远端设备向局端服务器发送升级帧并接收局端服务器返回的数据帧。此过程中,远端设备发送的升级帧中的版本编码为所需的特定版本的fpga配置文件的
版本编码。
80.实际应用中可将上述目标值设置为0,且默认闪存芯片内部的版本需求区的值为0。如果进行调试,则人为的将版本需求区的值设置为所需的fpga配置文件的版本编号,并在调试结束后,将版本需求的值恢复为0。
81.如果版本需求区的值不是0,则表征此时对fpga进行调试,远端设备发送的升级帧中的版本编号即为版本需求区中的版本编号。
82.综上所述,本技术所提供的升级fpga配置文件的方法,包括:连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。可见,本技术所提供的升级fpga配置文件的方法,在设立存储各种版本的fpga配置文件的局端服务器的基础上,由fpga设备自动从局端服务器处获取新版本的fpga配置文件,并将所获取的fpga配置文件刷新到fpga设备的闪存芯片中,实现fpga配置文件的自动升级。相较于人工参与的升级方案,本技术所提供的升级fpga配置文件的方法无需人工参与,有效提高了升级效率,降低可人力成本。
83.本技术还提供了一种升级fpga配置文件的装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图7,图7为本技术实施例所提供的一种升级fpga配置文件的装置的示意图,结合图7所示,该装置包括:
84.连接模块10,用于连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;
85.查询模块20,用于向所述局端服务器查询fpga设备中fpga配置文件的版本状态;
86.获取模块30,用于当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;
87.刷新模块40,用于将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
88.在上述实施例的基础上,作为一种具体的实施方式,所述查询模块20包括:
89.查询帧发送单元,用于向所述局端服务器发送查询帧;所述查询帧携带有fpga编码,以使所述局端服务器根据所述fpga编码检测对应的所述fpga配置文件的版本状态;
90.响应帧接收单元,用于接收所述局端服务器发送的响应帧;所述响应帧携带有表征所述fpga配置文件的版本状态的状态码;
91.状态码分析单元,用于分析所述状态码,得到所述fpga配置文件的版本状态。
92.在上述实施例的基础上,作为一种具体的实施方式,所述fpga编码包括设备编码、功能编码以及版本编码。
93.在上述实施例的基础上,作为一种具体的实施方式,所述查询帧还携带有厂家编码与crc校验码;所述响应帧还携带有所述厂家编码、所述设备编码、所述功能编码、所述版本编码以及所述crc校验码。
94.在上述实施例的基础上,作为一种具体的实施方式,所述获取模块30包括:
95.升级帧发送单元,用于向所述局端服务器发送携带所述fpga配置文件的更新版本的版本编码的升级帧;
96.数据帧接收单元,用于接收所述局端服务器发送的携带所述fpga配置文件的更新版本的数据帧。
97.在上述实施例的基础上,作为一种具体的实施方式,所述升级帧还携带有厂家编码、设备编码、功能编码以及crc校验码;所述数据帧还携带有所述更新后的版本编码、所述crc校验码以及表征当前数据帧是否为最后一帧数据帧的数据帧状态码。
98.在上述实施例的基础上,作为一种具体的实施方式,还包括:
99.检测模块,用于在所述查询模块20向所述局端服务器查询fpga设备中fpga配置文件的版本状态前检测所述闪存芯片内部的版本需求区的值;若所述闪存芯片内部的版本需求区的值为目标值,则所述查询模块20向所述局端服务器查询fpga设备中fpga配置文件的版本状态。
100.本技术所提供的升级fpga配置文件的装置,在设立存储各种版本的fpga配置文件的局端服务器的基础上,由fpga设备自动从局端服务器处获取新版本的fpga配置文件,并将所获取的fpga配置文件刷新到fpga设备的闪存芯片中,实现fpga配置文件的自动升级。相较于人工参与的升级方案,本技术所提供的升级fpga配置文件的方法无需人工参与,有效提高了升级效率,降低可人力成本。
101.本技术还提供了一种升级fpga配置文件的设备,参考图8所示,该设备包括存储器1和处理器2。
102.存储器1,用于存储计算机程序;
103.处理器2,用于执行计算机程序实现如下的步骤:
104.连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
105.对于本技术所提供的设备的介绍请参照上述方法实施例,本技术在此不做赘述。
106.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
107.连接局端服务器;所述局端服务器存储有各种版本的fpga配置文件;向所述局端服务器查询fpga设备中的fpga配置文件的版本状态;当所述fpga配置文件存在更新版本时,从所述局端服务器获取所述fpga配置文件的更新版本;将所述fpga配置文件的更新版本刷新到所述fpga设备的闪存芯片中。
108.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
109.对于本技术所提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
110.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
111.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
112.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
113.以上对本技术所提供的升级fpga配置文件的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1