一种CPLD固件的多板卡共用方法及相关组件与流程
未命名
10-18
阅读:197
评论:0
一种cpld固件的多板卡共用方法及相关组件
技术领域
1.本发明涉及服务器板卡设计技术领域,特别是涉及一种cpld固件的多板卡共用方法及相关组件。
背景技术:
2.随着服务器多样性发展和人们对于互联网的多需求,定制化需求的服务器成为主力军,服务器的板卡需要实现的功能也随着需求的增加而增多。由于cpld(complex programmable logic device,复杂可编程逻辑器件)具有易于实现各种算法和组合逻辑功能的优点,一般采用cpld来实现板卡的功能需求,即根据板卡的功能编写相应的cpld代码,通过cpld代码生成相应的cpld固件(firmware),在板卡生产完成之后将cpld固件烧录于cpld中,板卡根据烧录在cpld中的cpld固件的控制来实现具体的功能。
3.现有技术中,板卡与板卡上的cpld固件是对应匹配的,一个cpld固件只能对一个板卡进行控制,当存在多个板卡时,即使板卡实现的功能相似,仍需要根据不同板卡的不同板卡标识为其提供特定的cpld固件,即需要重复编写新的cpld代码、生成新的cpld固件,增加了服务器开发工作量的同时,也影响了开发效率和开发成本,不利于板卡开发过程的流水化。
技术实现要素:
4.本发明的目的是提供一种cpld固件的多板卡共用方法及相关组件,减少了服务器开发工作量,提高开发效率,节约开发成本,实现板卡开发过程的流水化。
5.为解决上述技术问题,本发明提供了一种cpld固件的多板卡共用方法,应用于cpld,所述cpld包括烧录在所述cpld中的cpld固件,所述cpld固件中预设有多个cpld代码,所述方法包括:
6.获取与自身连接的板卡的板卡标识;
7.根据所述板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在所述cpld固件中的cpld代码,以基于所述cpld代码对所述板卡进行控制。
8.优选地,获取与cpld连接的板卡的板卡标识,包括:
9.获取与板卡连接的输入输出io接口的电平变化信息;
10.根据预设的电平变化信息与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
11.优选地,获取与cpld连接的板卡的板卡标识,包括:
12.通过预设通讯方式接收上级控制对象发送的指令信号;
13.根据预设的指令信号与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
14.优选地,通过预设通讯方式接收上级控制对象发送的指令信号,包括:
15.通过预设通讯方式接收上级控制对象通过控制可控开关和/或可控跳帽发送的指令信号。
16.优选地,所述上级控制对象包括设置在服务器中的bmc。
17.优选地,通过预设通讯方式接收上级控制对象发送的指令信号,包括:
18.通过i2c总线接收设置在服务器中的bmc发送的指令信号。
19.优选地,所述板卡标识包括所述板卡的型号和所述板卡的版本信息。
20.本发明还提供一种cpld,包括烧录在所述cpld中的cpld固件,所述cpld固件中预设有多个cpld代码,包括:
21.板卡监测模块,用于获取与所述cpld连接的板卡的板卡标识;
22.代码调用模块,用于根据所述板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在所述cpld固件中的cpld代码,以基于所述cpld代码对所述板卡进行控制。
23.本发明还提供一种cpld固件的多板卡共用装置,包括:
24.存储器,用于存储计算机程序;
25.处理器,用于执行所述计算机程序时实现如上述所述的cpld固件的多板卡共用方法的步骤。
26.本发明还提供一种计算机可读存储介质,所述目标计算机可读存储介质上储存有计算机程序,所述目标计算机程序被处理器执行时实现如上述所述的cpld固件的多板卡共用方法的步骤。
27.本发明提供的一种cpld固件的多板卡共用方法及相关组件,通过在cpld固件中预设多个cpld代码的方式,使得一个cpld固件可以提供多种cpld代码,即可以实现多种板卡功能;在获取与cpld连接的板卡的板卡标识后,根据预设的板卡标识与cpld代码对应关系库,为每个板卡提供特定的cpld代码,就可以实现同一cpld固件在不同板卡上使用,不需要编写新的cpld代码、生成新的cpld固件,减少了服务器开发工作量,提高开发效率,节约开发成本,实现板卡开发过程的流水化。
附图说明
28.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明实施例提供的一种cpld固件的多板卡共用方法的流程图;
30.图2为本发明实施例提供的一种cpld的结构示意图;
31.图3为本发明实施例提供的另一种cpld的结构示意图;
32.图4为本发明实施例提供的一种cpld固件的多板卡共用装置结构示意图;
33.图5为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
34.本发明的核心是提供一种cpld固件的多板卡共用方法及相关组件,减少了服务器开发工作量,提高开发效率,节约开发成本,实现板卡开发过程的流水化。
35.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.请参考图1,图1为本发明实施例提供的一种cpld固件的多板卡共用方法的流程图,应用于cpld,cpld包括烧录在cpld中的cpld固件,cpld固件中预设有多个cpld代码,方法包括:
37.s101:获取与自身连接的板卡的板卡标识;
38.s102:根据板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在cpld固件中的cpld代码,以基于cpld代码对板卡进行控制。
39.具体实施例中,cpld根据与板卡连接的输入输出io接口的电平变化信息或者上级控制对象发送的指令信号,确定与自身连接的板卡的板卡标识,板卡标识包含板卡的特定信息,通过板卡标识可以确定板卡的板卡型号和板卡的版本信息等,并可以根据这些板卡的特定信息,确定板卡需要实现的功能和实现功能相应需要的代码,即根据板卡标识和预设的板卡标识与cpld代码对应关系库,在预设的多个cpld代码查找到需要启用的cpld代码,并基于该cpld代码对板卡进行控制。
40.本实施例并不限定与cpld连接的板卡的板卡标识的具体内容,例如可以包括板卡的型号,或者可以包括板卡的版本信息,或者可以是其他内容,只要可以令cpld识别出板卡的具体类型以使cpld启用相应的cpld代码对板卡进行控制即可,可以根据实际情况进行选择。
41.本实施例并不限定获取与自身连接的板卡的板卡标识的获取方法,例如可以通过与板卡连接的输入输出io接口的电平变化信息确定板卡标识,或者可以通过预设通讯方式接收上级控制对象发送的指令信号确定板卡标识,或者可以是其他获取方式,应由本领域技术人员根据实际情况作出相应的设定。
42.本发明提供的一种cpld固件的多板卡共用方法,通过在cpld固件中预设多个cpld代码的方式,使得一个cpld固件可以提供多种cpld代码,即可以实现多种板卡功能;在获取与cpld连接的板卡的板卡标识后,根据预设的板卡标识与cpld代码对应关系库,为每个板卡提供特定的cpld代码,就可以实现同一cpld固件在不同板卡上使用,不需要编写新的cpld代码、生成新的cpld固件,减少了服务器开发工作量,提高开发效率,节约开发成本,实现板卡开发过程的流水化。
43.在上述实施例的基础上:
44.作为一种优选地实施例,s101获取与cpld连接的板卡的板卡标识,包括:
45.获取与板卡连接的输入输出io接口的电平变化信息;
46.根据预设的电平变化信息与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
47.具体实施例中,由于不同板卡在硬件设计上存在差异,板卡上电后,对cpld的输入输出io接口会发送不同的电平信号,根据cpld与板卡连接的输入输出io接口的电平变化,预设电平变化信息与板卡标识对应关系库,根据预设的电平变化信息与板卡标识对应关系库可以确定与cpld连接的板卡的板卡标识。本实施例通过与板卡连接的输入输出io接口的电平变化信息确定与cpld连接的板卡的板卡标识,根据板卡硬件设计的不同对板卡进行区分,可以实时对板卡进行检测,由cpld自行识别板卡的板卡标识,节省人力,实现板卡开发
过程的流水化。
48.作为一种优选地实施例,s101获取与cpld连接的板卡的板卡标识,包括:
49.通过预设通讯方式接收上级控制对象发送的指令信号;
50.根据预设的指令信号与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
51.具体实施例中,可以通过设置特定指令信号的方式来告知cpld当前板卡的板卡标识,本实施例并不限定指令信号的具体形式,例如可以是特定的高低电平,或者可以是特定的高低电平变化规律,或者是一段数据代码,或者是一个特定的标识等,应由本领域技术人员根据实际情况作出相应的设定。
52.进一步的,本实施例并不限定上级控制对象发送的指令信号的具体方式,例如可以通过控制可控开关,将可控开关的不同状态作为不同的指令信号,或者可以通过控制可控跳帽,将可控跳帽的不同状态作为不同的指令信号,或者可以是上级控制对象的直接发送特定的信号电平作为指令信号,或者可以是其他方式,可以根据实际情况进行选择。相应的,本实施例并不限定预设通讯方式的具体实现方法,例如当通过控制可控开关,将可控开关的不同状态作为不同的指令信号时,可控开关是设置在板卡上的,预设通讯方式为可控开关与板卡上的cpld的硬件连接;当上级控制对象的直接发送特定的信号电平作为指令信号,且上级控制对象为设置在服务器中的bmc时,预设通讯方式可以为通过i2c总线连接进行通信,可以根据实际情况进行选择。
53.本实施例通过预设通讯方式接收上级控制对象发送的指令信号,以确定与cpld连接的板卡的板卡标识,指令信号既可以根据bmc灵活设置,又可以通过硬件电路来控制,灵活性较高,有利于提高串口切换的准确性和切换效率。
54.作为一种优选地实施例,通过预设通讯方式接收上级控制对象发送的指令信号,包括:
55.通过预设通讯方式接收上级控制对象通过控制可控开关和/或可控跳帽发送的指令信号。
56.具体实施例中,可以使可控开关的连接和断开分别代表不同的指令信号,对应不同的板卡类型,也可以采用可控跳帽连接板卡的电源端和接地端,两个端口之间连接和断开分别代表不同的指令信号,对应不同的板卡类型,并不限制可控开关、可控板卡的数量,可以通过多个可控开关、可控板卡配合实现多种方式的指令信号发送。
57.本实施例通过可控开关和/或可控跳帽发送指令信号,以硬件方式实现向cpld发送信号,可控开关、可控跳帽价格便宜且便于更换,方便对板卡进行维修,也节约了开发成本,而且硬件控制的方式稳定性较高,提高了本方法的可靠性。
58.作为一种优选地实施例,上级控制对象包括设置在服务器中的bmc。
59.具体实施例中,可以是bmc通过i2c总线向cpld发送板卡标识作为指令信号,也可以是bmc通过扩展的gpio信号向cpld发送高低电平信号作为指令信号。
60.本实施例将设置在服务器中的bmc作为上级控制对象,以软件方式实现向cpld发送信号,占用板卡上空间少,更有利于板卡的集成化和小型化。
61.作为一种优选地实施例,通过预设通讯方式接收上级控制对象发送的指令信号,包括:
62.通过i2c总线接收设置在服务器中的bmc发送的指令信号。
63.本实施例通过i2c总线接收设置在服务器中的bmc发送的指令信号,使得cpld可以直接接收bmc发送的板卡标识,智能化更高。
64.作为一种优选地实施例,板卡标识包括板卡的型号和板卡的版本信息。
65.本实施例将板卡的型号和板卡的版本信息都作为板卡标识,不同型号和不同版本的板卡的可以采用同一cpld固件,无需因板卡版本升级而重新烧录新的cpld固件,减少了板卡维护的成本,提高板卡维护的效率。
66.请参考图2,图2为本发明实施例提供的一种cpld的结构示意图:
67.本实施例中将烧录了cpld固件的cpld中分为功能选择层201和功能实现层202,功能选择层201中包括板卡监测模块211和代码调用模块212,功能实现层202包括多个不同的cpld代码,板卡监测模块211用于获取与cpld连接的板卡的板卡标识,代码调用模块212用于根据板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在功能实现层202中的cpld代码,以基于cpld代码对板卡进行控制。
68.请参考图3,图3为本发明实施例提供的另一种cpld的结构示意图,包括烧录在cpld中的cpld固件,cpld固件中预设有多个cpld代码,包括:
69.板卡监测模块301,用于获取与cpld连接的板卡的板卡标识;
70.代码调用模块302,用于根据板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在cpld固件中的cpld代码,以基于cpld代码对板卡进行控制。
71.作为一种优选地实施例,板卡监测模块301,包括:
72.电平检测模块,用于获取与板卡连接的输入输出io接口的电平变化信息;
73.第一板卡确认模块,用于根据预设的电平变化信息与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
74.作为一种优选地实施例,板卡监测模块301,包括:
75.指令接收模块,用于通过预设通讯方式接收上级控制对象发送的指令信号;
76.第二板卡确认模块,用于根据预设的指令信号与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。
77.作为一种优选地实施例,指令接收模块,包括:
78.硬件指令接收模块,用于通过预设通讯方式接收上级控制对象通过控制可控开关和/或可控跳帽发送的指令信号。
79.作为一种优选地实施例,上级控制对象包括设置在服务器中的bmc。
80.作为一种优选地实施例,指令接收模块,包括:
81.软件指令接收模块,用于通过i2c总线接收设置在服务器中的bmc发送的指令信号。
82.作为一种优选地实施例,板卡标识包括板卡的型号和板卡的版本信息。
83.对于本发明提供的一种cpld的介绍请参考上述实施例,本发明在此不做赘述。
84.请参考图4,图4为本发明实施例提供的一种cpld固件的多板卡共用装置结构示意图,包括:
85.存储器401,用于存储计算机程序;
86.处理器402,用于执行计算机程序时实现如上述的cpld固件的多板卡共用方法的步骤。
87.对于本发明提供的一种cpld固件的多板卡共用装置的介绍请参考上述实施例,本发明在此不做赘述。
88.请参考图5,图5为本发明实施例提供的一种计算机可读存储介质的结构示意图,目标计算机可读存储介质501上储存有计算机程序502,目标计算机程序502被处理器执行时实现如上述的cpld固件的多板卡共用方法的步骤。
89.对于本发明提供的一种计算机可读存储介质的介绍请参考上述实施例,本发明在此不做赘述。
90.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
91.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
92.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种cpld固件的多板卡共用方法,其特征在于,应用于cpld,所述cpld包括烧录在所述cpld中的cpld固件,所述cpld固件中预设有多个cpld代码,所述方法包括:获取与自身连接的板卡的板卡标识;根据所述板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在所述cpld固件中的cpld代码,以基于所述cpld代码对所述板卡进行控制。2.如权利要求1所述的cpld固件的多板卡共用方法,其特征在于,获取与cpld连接的板卡的板卡标识,包括:获取与板卡连接的输入输出io接口的电平变化信息;根据预设的电平变化信息与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。3.如权利要求1所述的cpld固件的多板卡共用方法,其特征在于,获取与cpld连接的板卡的板卡标识,包括:通过预设通讯方式接收上级控制对象发送的指令信号;根据预设的指令信号与板卡标识对应关系库确定与cpld连接的板卡的板卡标识。4.如权利要求3所述的cpld固件的多板卡共用方法,其特征在于,通过预设通讯方式接收上级控制对象发送的指令信号,包括:通过预设通讯方式接收上级控制对象通过控制可控开关和/或可控跳帽发送的指令信号。5.如权利要求3所述的cpld固件的多板卡共用方法,其特征在于,所述上级控制对象包括设置在服务器中的bmc。6.如权利要求5所述的cpld固件的多板卡共用方法,其特征在于,通过预设通讯方式接收上级控制对象发送的指令信号,包括:通过i2c总线接收设置在服务器中的bmc发送的指令信号。7.如权利要求1至6任一项所述的cpld固件的多板卡共用方法,其特征在于,所述板卡标识包括所述板卡的型号和所述板卡的版本信息。8.一种cpld,其特征在于,包括烧录在所述cpld中的cpld固件,所述cpld固件中预设有多个cpld代码,包括:板卡监测模块,用于获取与所述cpld连接的板卡的板卡标识;代码调用模块,用于根据所述板卡标识和预设的板卡标识与cpld代码对应关系库,调用预设在所述cpld固件中的cpld代码,以基于所述cpld代码对所述板卡进行控制。9.一种cpld固件的多板卡共用装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的cpld固件的多板卡共用方法的步骤。10.一种计算机可读存储介质,其特征在于,所述目标计算机可读存储介质上储存有计算机程序,所述目标计算机程序被处理器执行时实现如权利要求1至7任一项所述的cpld固件的多板卡共用方法的步骤。
技术总结
本发明公开了一种CPLD固件的多板卡共用方法及相关组件,涉及服务器板卡设计技术领域,通过在CPLD固件中预设多个CPLD代码的方式,使得一个CPLD固件可以提供多种CPLD代码,即可以实现多种板卡功能;在获取与CPLD连接的板卡的板卡标识后,根据预设的板卡标识与CPLD代码对应关系库,为每个板卡提供特定的CPLD代码,就可以实现同一CPLD固件在不同板卡上使用,不需要编写新的CPLD代码、生成新的CPLD固件,减少了服务器开发工作量,提高开发效率,节约开发成本,实现板卡开发过程的流水化。实现板卡开发过程的流水化。实现板卡开发过程的流水化。
技术研发人员:王同心 姜云轩
受保护的技术使用者:浪潮商用机器有限公司
技术研发日:2023.07.20
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
