通信总线的挂死修复方法、装置、电子设备及存储介质与流程

文档序号:27246690发布日期:2021-11-03 19:58阅读:347来源:国知局
通信总线的挂死修复方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种通信总线的挂死修复方法、装置、电子设备及存储介质。


背景技术:

2.i2c(inter

integrated circuit bus) 集成电路总线,该总线由nxp(原philips)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。
3.iic总线物理层只要求两条总线,一条是串行数据线sda,一条是串行时钟线scl,iic是半双工,而不是全双工。每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。同时iic是真正的多主机总线,如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。
4.目前,海光cpu支持5个iic总线,其中cpu最大支持16个dimm的接入。bbu的 iic总线挂在cpu的iic1通道上,在bbu(基带处理单元)板上有一颗单独的st mcu单片机,此单片机实现bbu备电解耦功能,在开机或reboot时,st单片机会存在iic为主的场景,判断bbu电池是第一货源还是第二货源。因在iic1这条总线上,海光cpu的iic1为控制者,但是在这条总线上,海光cpu和st的mcu存在iic为双主的场景,导致iic总线存在竞争关系,以至于出现iic总线挂死的问题。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种通信总线的挂死修复方法、装置、电子设备及存储介质。
6.根据本技术实施例的一个方面,提供了一种通信总线的挂死修复方法,应用于中央处理器,所述方法包括:检测所述中央处理器与基带处理单元之间的通信情况;在所述通信情况用于指示所述中央处理器与所述基带处理单元之间通信故障的情况下,确定部署在所述中央处理器与所述基带处理单元之间的通信总线产生的目标挂死事件;获取所述目标挂死事件对应的目标修复操作;按照所述目标修复操作对所述通信总线进行修复。
7.进一步的,所述确定部署在所述中央处理器与所述基带处理单元之间的通信总线产生的目标挂死事件,包括:检测所述中央处理器与所述基带处理单元在当前时刻的目标连接方式;根据所述目标连接方式确定所述通信总线产生的目标挂死事件,其中,所述目标挂死事件包括:串行数据线挂死事件以及串行时钟线挂死事件。
8.进一步的,所述目标连接方式,包括:所述中央处理器通过通信总线与所述基带处理单元连接;或,所述中央处理器通过通信总线与热插拔芯片以及所述基带处理单元串行连接。
9.进一步的,所述根据所述目标连接方式确定所述通信总线产生的目标挂死事件,包括:在所述目标连接方式为所述中央处理器通过通信总线与所述基带处理单元连接的情况下,所述目标挂死事件为串行时钟线挂死事件;在所述目标连接方式为所述中央处理器通过通信总线与热插拔芯片以及所述基带处理单元串行连接的情况下,所述目标挂死事件为串行数据线挂死事件。
10.进一步的,在所述目标挂死事件为串行时钟线挂死事件的情况下,所述按照所述目标修复操作对所述通信总线进行修复,包括:将所述中央处理器切换至gpio输入模式;当所述中央处理器在所述gpio输入模式下由高电平变为低电平时,将所述中央处理器由所述gpio输入模式切换为gpio输出模式;当所述中央处理器在所述gpio输出模式下由低电平变为高电平时,将所述中央处理器由所述gpio输出模式切换为iic模式。
11.进一步的,在所述目标挂死事件为串行数据线挂死事件的情况下,所述按照所述目标修复操作对所述通信总线进行修复,包括:在检测到所述基带处理单元处于拔出状态的情况下,向所述热插拔芯片对应的编程逻辑器发送第一控制指令,其中,所述第一控制指令用于控制所述编程逻辑器对所述热插拔芯片停止供电;在所述热插拔芯片停止工作后,检测所述基带处理单元的插拔状态;在所述插拔状态用于指示所述基带处理单元处于插入状态的情况下,向所述编程逻辑器发送第二控制指令,其中,所述第二控制指令用于控制所述编程逻辑器对所述热插拔芯片开始供电。
12.进一步的,所述向所述编程逻辑器发送第二控制指令,包括:延迟预设时间后向所述编程逻辑器发送第二控制指令;或,检测所述基带处理单元插入后的初始化进度,在所述初始化进度达到预设进度的情况下,向所述编程逻辑器发送第二控制指令。
13.根据本技术实施例的另一个方面,还提供了一种通信总线的挂死修复装置,包括:检测模块,用于检测中央处理器与基带处理单元之间的通信情况;确定模块,用于在所述通信情况用于指示所述中央处理器与所述基带处理单元之间通信故障的情况下,确定部署在所述中央处理器与所述基带处理单元之间的通信总线产生的目标挂死事件;获取模块,用于获取所述目标挂死事件对应的目标修复操作;执行模块,用于按照所述目标修复操作对所述通信总线进行修复。
14.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的
程序,程序运行时执行上述的步骤。
15.根据本技术实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
16.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
17.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例在中央处理器与所述基带处理单元之间通信故障的情况下,能够自动确定通信总线产生的目标挂死事件,并执行目标挂死事件对应的修复操作,实现了在通信总线出现挂死的情况自动修复,提升了中央处理器在运行过程中的稳定性。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1为本技术实施例提供的一种通信总线的挂死修复方法的流程图;图2为本技术另一实施例提供的一种通信总线的挂死修复方法的流程图;图3为本技术实施例提供的中央处理器与基带处理单元的连接示意图;图4为本技术另一实施例提供的一种通信总线的挂死修复方法的流程图;图5为本技术另一实施例提供的一种通信总线的挂死修复方法的流程图;图6为本技术实施例提供的一种通信总线的挂死修复装置的框图;图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
21.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
23.本技术实施例提供了一种通信总线的挂死修复方法、装置、电子设备及存储介质。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
24.根据本技术实施例的一方面,提供了一种通信总线的挂死修复的方法实施例,该方法应用于中央处理器。图1为本技术实施例提供的一种通信总线的挂死修复方法的流程图,如图1所示,该方法包括:步骤s11,检测中央处理器与基带处理单元之间的通信情况。
25.本技术实施例提供的方法是针对于中央处理器与基带处理单元之间通信总线挂死无法进行自动修复的问题进行设计的,其中,中央处理器可以是海光cpu,基带处理单元为bbu(building base band unite)。
26.在本技术实施例中,中央处理器会随机或者周期性检测与基带处理单元之间的通信情况,例如:通过获取部署在中央处理器与基带处理单元之间通信总线上的数据传输参数,例如传输速率、传输量等等。然后根据传输参数确定中央处理器与基带处理单元之间的通信情况。
27.步骤s12,在通信情况用于指示中央处理器与基带处理单元之间通信故障的情况下,确定部署在中央处理器与基带处理单元之间的通信总线产生的目标挂死事件。
28.在本技术实施例中,挂死事件包括:串行数据线挂死事件以及串行时钟线挂死事件。
29.需要说明的是,串行数据线挂死事件可以是由以下操作导致,中央处理器向基带处理单元写数据或地址时,基带处理单元如果发出ack应答,则会在时钟信号期间拉低sda。或者中央处理器从基带处理单元中读数据的时候,基带处理单元会在bit为0时对应的时钟信号期间拉低sda。串行时钟线挂死事件可以是由以下操作导致,i2c中断服务程序被意外屏蔽,中断服务程序中陷入了一些标志位查询的while死循环,i2c功能系统被意外禁止等等。
30.在本技术实施例中,确定部署在中央处理器与基带处理单元之间的通信总线产生的目标挂死事件,如图2所示,包括以下步骤a1

a2:步骤a1,检测中央处理器与基带处理单元在当前时刻的目标连接方式。
31.在本技术实施例中,中央处理器与基带处理单元的连接方式,包括:中央处理器通过通信总线与基带处理单元连接。在此种方式下,热插拔芯片处于拔出状态,此时中央处理器直接通过通信总线与基带处理单元连接。
32.在本技术实施例中,中央处理器与基带处理单元的连接方式还可以是中央处理器通过通信总线与热插拔芯片以及基带处理单元串行连接。参考图3,中央处理器通过通信总线与热插拔芯片双向连接,热插拔芯片通过通信总线与基带处理单元双向连接。
33.步骤a2,根据目标连接方式确定通信总线产生的目标挂死事件。
34.在本技术实施例中,根据目标连接方式确定通信总线产生的目标挂死事件,包括:在目标连接方式为中央处理器通过通信总线与基带处理单元连接的情况下,目标挂死事件为串行时钟线挂死事件;在目标连接方式为中央处理器通过通信总线与热插拔芯片以及基带处理单元串行连接的情况下,目标挂死事件为串行数据线挂死事件。
35.步骤s13,获取目标挂死事件对应的目标修复操作。
36.在本技术实施例中,不同的挂死事件的事件类型不同,其对应的修复操作也不同,例如:挂死事件为串行时钟线挂死事件的情况下,对应的修复操作可以是切换中央处理器的gpio模式。挂死事件为串行数据线挂死事件可以是控制热插拔芯片。
37.步骤s14,按照目标修复操作对通信总线进行修复。
38.在本技术实施例中,在目标挂死事件为串行时钟线挂死事件的情况下,步骤s14,按照目标修复操作对通信总线进行修复,如图4所示,包括以下步骤b1

b3:步骤b1,将中央处理器切换至gpio输入模式。
39.步骤b2,当中央处理器在gpio输入模式下由高电平变为低电平时,将中央处理器由gpio输入模式切换为gpio输出模式。
40.步骤b3,当中央处理器在gpio输出模式下由低电平变为高电平时,将中央处理器由gpio输出模式切换为iic模式。
41.在本技术实施例中,在串行时钟线挂死的情况时,如果海光cpu在iic模式直接设置高电平则会导致海光cou受损,因此为了解决海光cpu直接在iic模式上设置高电平受损的问题,本技术实施例在出现串行时钟线挂死事件的情况下,将中央处理器由iic模式切换至gpio输入模式(即gpio的input模式),并在gpio的input模式下,按照预设顺序设置高电平以及低电平,在设置完成后,将中央处理器由gpio输入模式切换至gpio输出模式(即gpio的output模式),并在gpio输出模式下,按照预设顺序设置低电平和高电平,在中央处理器恢复到高电平之后,将中央处理器由gpio输出模式切换至iid模式,此时中央处理器在iic模式下能够正常使用。
42.本技术实施例采用切换gpio输入模式以及gpio输出模式的方式设置高电平,起到了缓冲的效果,能够有效解决海光cpu在iic模式直接设置高电平直接受损的问题。
43.在本技术实施例中,在目标挂死事件为串行数据线挂死事件的情况下,步骤s14,按照目标修复操作对通信总线进行修复,如图5所示,包括以下步骤c1

c3:步骤c1,在检测到基带处理单元处于拔出状态的情况下,向热插拔芯片对应的编程逻辑器发送第一控制指令,其中,第一控制指令用于控制编程逻辑器对热插拔芯片停止供电。
44.步骤c2,在热插拔芯片停止工作后,检测基带处理单元的插拔状态。
45.步骤c3,在插拔状态用于指示基带处理单元处于插入状态的情况下,向编程逻辑器发送第二控制指令,其中,第二控制指令用于控制编程逻辑器对热插拔芯片开始供电。
46.在本技术实施例中,在目标挂死事件为串行数据线挂死事件的情况下,中央处理器会向热插拔芯片对应的编程逻辑器发送检测指令,以使编程逻辑器检测基带处理单元的插拔状态,在检测到基带处理单元处于拔出状态的情况下,向热插拔芯片对应的编程逻辑器发送第一控制指令,以使编程逻辑器停止向热插拔芯片供电,保证基带处理单元在拔出后,对热插拔芯片产生冲击。
47.另外,后续热插拔芯片停止工作后,中央处理器还会控制编程逻辑器还会继续检测基带处理单元的插拔状态,如果检测到基带处理单元处于拔出状态的情况下,向热插拔芯片对应的编程逻辑器发送第二控制指令,以使编程逻辑器向热插拔芯片开始供电,恢复正常通信。其中,本技术实施例中,编程逻辑器为cpld,cpld主要由逻辑块、可编程互连通道和i/o块三部分构成。
48.在本技术实施例中,向编程逻辑器发送第二控制指令,方法还包括:延迟预设时间后向编程逻辑器发送第二控制指令;或,检测基带处理单元插入后的初始化进度,在初始化进度达到预设进度的情况下,向编程逻辑器发送第二控制指令。
49.需要说明的是,本技术实施例中央处理器在延迟预设时间后向编程逻辑器发送第二控制指令,有利于保证基带处理单元能够足够的时间完成初始化,以使基带处理单元中的单片机完成对电池是第一货源还是第二货源的获取。另外,本技术实施例还可以通过检测基带处理单元插入后的初始化进度,确定基带处理单元是否完成初始化,有利于编程逻辑器及时向热插拔芯片供电。
50.本技术实施例在中央处理器与所述基带处理单元之间通信故障的情况下,能够自动确定通信总线产生的目标挂死事件,并执行目标挂死事件对应的修复操作,实现了在通信总线出现挂死的情况自动修复,提升了中央处理器在运行过程中的稳定性。
51.图6为本技术实施例提供的一种通信总线的挂死修复装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该装置包括:检测模块61,用于检测中央处理器与基带处理单元之间的通信情况;确定模块62,用于在通信情况用于指示中央处理器与基带处理单元之间通信故障的情况下,确定部署在中央处理器与基带处理单元之间的通信总线产生的目标挂死事件;获取模块63,用于获取目标挂死事件对应的目标修复操作;执行模块64,用于按照目标修复操作对通信总线进行修复。
52.在本技术实施例中,确定模块62,包括:处理子模块,用于检测中央处理器与基带处理单元在当前时刻的目标连接方式;确定子模块,用于根据目标连接方式确定通信总线产生的目标挂死事件,其中,目标挂死事件包括:串行数据线挂死事件以及串行时钟线挂死事件。
53.在本技术实施例中,目标连接方式,包括:中央处理器通过通信总线与基带处理单元连接;或,中央处理器通过通信总线与热插拔芯片以及基带处理单元串行连接。
54.在本技术实施例中,确定子模块,用于在目标连接方式为中央处理器通过通信总线与基带处理单元连接的情况下,目标挂死事件为串行时钟线挂死事件;在目标连接方式为中央处理器通过通信总线与热插拔芯片以及基带处理单元串行连接的情况下,目标挂死事件为串行数据线挂死事件。
55.在本技术实施例中,在目标挂死事件为串行时钟线挂死事件的情况下,执行模块64,用于将中央处理器切换至gpio输入模式;当中央处理器在gpio输入模式下由高电平变为低电平时,将中央处理器由gpio输入模式切换为gpio输出模式;当中央处理器在gpio输出模式下由低电平变为高电平时,将中央处理器由gpio输出模式切换为iic模式。
56.在本技术实施例中,在目标挂死事件为串行数据线挂死事件的情况下,执行模块64,用于在检测到基带处理单元处于拔出状态的情况下,向热插拔芯片对应的编程逻辑器发送第一控制指令,其中,第一控制指令用于控制编程逻辑器对热插拔芯片停止供电;在热插拔芯片停止工作后,检测基带处理单元的插拔状态;在插拔状态用于指示基带处理单元处于插入状态的情况下,向编程逻辑器发送第二控制指令,其中,第二控制指令用于控制编程逻辑器对热插拔芯片开始供电。
57.在本技术实施例中,在目标挂死事件为串行数据线挂死事件的情况下,执行模块
64,还用于延迟预设时间后向编程逻辑器发送第二控制指令;或,检测基带处理单元插入后的初始化进度,在初始化进度达到预设进度的情况下,向编程逻辑器发送第二控制指令。
58.本技术实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
59.存储器1503,用于存放计算机程序;处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
60.上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
61.通信接口用于上述终端与其他设备之间的通信。
62.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
63.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
64.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的通信总线的挂死修复方法。
65.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的通信总线的挂死修复方法。
66.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
67.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在
本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
68.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1