一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

总线检测方法、装置、服务器及电子设备与流程

2023-01-15 09:28:08 来源:中国专利 TAG:

1.本技术实施例涉及计算机领域,具体而言,涉及一种总线检测方法、装置、服务器及电子设备。


背景技术:

2.目前相关技术中在对总线进行检修时,常用的方法是直接从硬件层面将总线挂死,再对总线进行检测。这种方式效率较低,导致不能及时发现总线是否存在故障。


技术实现要素:

3.本技术实施例提供了一种总线检测方法、装置、服务器及电子设备,以至少解决相关技术中从硬件层面将总线挂死再对总线进行检测造成的检测效率低的问题。
4.根据本技术的一个实施例,提供了一种总线检测方法,包括:创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
5.在一些示例性实施例中,通过第一目标检测进程确定目标总线的工作状态的步骤包括:确定命令状态寄存器中的目标地址,其中,目标地址对应的目标数据用于表示目标总线的工作状态;依据目标地址从命令状态寄存器中获取目标数据;依据目标数据确定目标总线的工作状态,其中,工作状态包括:空闲状态、非空闲状态。
6.在一些示例性实施例中,依据检测结果确定目标总线是否异常的步骤包括:在检测结果指示工作状态为非空闲状态且处于非空闲状态的持续时长大于预设时长时,确认目标总线异常。
7.在一些示例性实施例中,确认目标总线异常的步骤之后,总线检测方法还包括:通过目标总线的驱动层指示目标总线自动恢复。
8.在一些示例性实施例中,目标总线包括目标数据线和目标时钟线,其中,通过目标总线的驱动层设置目标总线执行自动恢复动作包括:通过驱动层在目标总线对应的系统控制单元寄存器中重新写入用于指示目标总线自恢复的数据;在重新写入用于指示目标总线自恢复的数据后,通过驱动层向与目标总线对应的命令状态寄存器发送预设数量个串行时钟电平信号。
9.在一些示例性实施例中,通过驱动层向与目标总线对应的命令状态寄存器发送预设数量个串行时钟电平信号的步骤包括:确定命令状态寄存器中与目标总线自恢复功能对应的寄存器地址;向寄存器地址发送预设数量个串行时钟电平信号。
10.在一些示例性实施例中,创建第一目标检测进程的步骤包括:创建第二目标检测进程,其中,第二目标检测进程的进程类型包括数据总线服务进程;在第二目标检测进程中创建第一目标对象,得到第一目标检测进程,其中,第一目标对象中设置有定时器事件源,
第一目标对象用于通过定时器事件源按照预设频率对目标总线进行轮询监控。
11.在一些示例性实施例中,在第二目标检测进程中创建目标对象的步骤包括:在第二目标检测进程中创建第二目标对象;在第二目标对象中添加第一目标对象,其中,第一目标对象的对象类型为事件对象。
12.在一些示例性实施例中,定时器事件源中的时钟类型包括以下至少之一:单调时钟,即时时钟,引导时间时钟。
13.在一些示例性实施例中,第二目标检测进程和第一目标检测进程均运行在服务层中。
14.在一些示例性实施例中,定时器事件源的事件源类型为异步事件源,对第一目标对象用于通过定时器事件源对目标总线进行异步等待轮询监控。
15.在一些示例性实施例中,通过目标寄存器设置目标总线为挂死状态的步骤包括:在目标寄存器中写入目标指令,其中,目标指令用于修改目标寄存器中与目标总线对应的寄存器数据,目标寄存器中的寄存器数据用于设定目标总线的工作状态。
16.在一些示例性实施例中,在目标寄存器中写入目标指令的步骤之前,总线检测方法还包括:通过目标寄存器,将目标总线设置为通用型输入输出模式。
17.在一些示例性实施例中,目标寄存器为与目标总线对应的系统控制单元寄存器。
18.在一些示例性实施例中,总线检测方法还包括:在应用层中设置目标监控函数,其中,目标监控函数用于监控目标总线对应的设备节点状态信息;记录设备节点状态信息,并生成设备节点状态信息对应的设备节点状态维护日志。
19.在一些示例性实施例中,在创建第一目标检测进程的步骤之前,总线检测方法还包括:响应目标对象的选择指令,从目标服务器对应的至少一条总线中确定目标总线。
20.根据本技术的另一个实施例,提供了一种服务器,包括基板管理控制器,目标总线,第一寄存器,第二寄存器,其中,基板管理控制器,被配置为执行创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过第一寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程和第二寄存器确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
21.在一些示例性实施例中,目标总线的数量为多条,基板管理控制器还用于确定多条目标总线中的每条目标总线在第一寄存器和第二寄存器中对应的寄存器地址信息。
22.根据本技术的又一个实施例,提供了一种总线检测装置,包括:第一检测模块,用于创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;处理模块,用于通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;第二检测模块,用于在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
23.根据本技术的又一个实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
24.根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,存储
器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
25.通过本技术,由于通过设定第一目标检测进程来对总线的工作状态进行轮询监控,并通过操作目标寄存器来让总线执行挂死动作,因此,可以解决相关技术中从硬件层面将总线挂死再对总线进行检测造成的检测效率低的问题,达到提高总线检测效率,及时发现总线是否存在故障的效果。
附图说明
26.图1是根据本技术实施例的计算机终端的结构框图;图2是根据本技术实施例的总线检测方法的流程图;图3是根据本技术实施例的服务器的结构框图;图4是根据本技术实施例的总线检测装置的结构框图;图5是根据本技术实施例的计算机可读存储介质的结构框图;图6是根据本技术实施例的电子设备的结构框图。
具体实施方式
27.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.为了更好地理解本技术实施例,以下将本技术实施例中涉及的技术术语解释如下:bmc(基板管理控制器):是服务器的核心控制单元,是一个在arm架构上的用来管理服务器的主板处理器,openbmc是一个用来构建完整bmc的专用linux系统映像的开源软件架构。
30.事件源对象:是c 处理事件的一种机制策略,支持64位优先级、支持自动向服务管理器发送看门狗通知消息、支持挂起自恢复策略、支持设置事件循环监控状态等用来处理业务实现逻辑中的一种策略。
31.i2c总线:是openbmc服务器系统中最为常用的串行总线,只需要一根数据线和一根时钟线就可以通过外部连线进行硬件检测,便于系统故障诊断和调试。每个挂在总线上的i2c设备都有一个唯一的地址,并可以通过软件寻址,设备故障可以立即被寻址定位。i2c
异常检测方法在openbmc服务器设备监控、故障诊断、系统稳定中起着重要作用。
32.另外,i2c总线在openbmc服务器中可以实现以下功能:板载监控主板、io板、riser卡、cpu等温度传感器、板载eeprom写保护信号、fru、psu、主板cpld、风扇板cpld等各种服务器关键设备器件都会挂载在i2c总线上;通过pca9555等switch芯片可扩展多路io进行设备功能拓展使用,方便、高效的解决硬件资源问题;通过switch芯片进行cpu power的监控管理。
33.sd_event对象:是一种多事件源循环处理的一种机制,其事件源分为i/o事件源以及定时器事件源以及unix进程信号事件。本发明采用定时器事件源的一种clock_monotonic定时器机制进行进程循环监控。事件循环设计是在每个线程中运行单独的事件循环实例,并且遵循优先级内核调度。
34.openbmc:是bmc(基板管理控制器)的linux发行版,是一种开源的服务器bmc实现方式。
35.目前随着物联网技术等信息技术的发展与成熟,高速数据运行、高效数据处理与数据安全存储的技术需求日趋庞大,对服务器的要求也越来越高。而服务器的数据处理能力和运行状态与服务器中的总线的工作状态息息相关。但是相关技术中在对总线的工作状态进行检测时,通常会选择从硬件层面采用外部链接的方式对总线进行检测。这种方式需要运维人员人工操作,导致检测效率较低,不能及时发现总线是否发生故障。
36.为了解决该问题,本技术实施例中提供了相关的解决方案,以下详细说明。
37.根据本技术实施例,提供了一种数据格式转换方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
38.本技术实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。图1示出了一种用于实现数据格式转换方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为bus总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
39.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
40.存储器104可用于存储应用软件的软件程序以及模块,如本技术实施例中的数据格式转换方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞
检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
41.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
42.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
43.需要说明的是,当本方法用于对服务器的总线进行检测时,执行本方法的可以是服务器中的处理器或基板管理控制器,也可以是可以与服务器之间通信并互相传递数据的终端设备。也就是说,本技术所提供的总线检测方法可以实现远程对目标总线进行检测。
44.在上述运行环境下,本技术实施例提供了一种数据格式转换方法,图2是根据本技术实施例的的流程图,如图2所示,该流程包括如下步骤:步骤s202,创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;在步骤s202所提供的技术方案中,创建第一目标检测进程的步骤包括:创建第一目标检测进程,其中,第一目标检测进程的进程类型包括数据总线服务进程;在第一目标检测进程中创建第一目标对象,其中,第一目标对象中设置有定时器事件源,目标对象用于通过定时器事件源按照预设频率对目标总线进行轮询监控。
45.在本技术的一些实施例中,在第二目标检测进程中创建目标对象的步骤包括:在第二目标检测进程中创建第二目标对象;在第二目标对象中添加第一目标对象,其中,第一目标对象的对象类型为事件对象。
46.作为一种可选地实施方式,定时器事件源中的时钟类型包括以下至少之一:单调时钟(clock_monotonic),即时时钟(clock_realtime),引导时间时钟(clock_bootime)。
47.需要说明的是,第二目标检测进程和第一目标检测进程均运行在服务层中。
48.具体地,当目标总线为openbmc服务器中的总线时,可以在服务器中创建一个dbus服务进程(也就是数据总线服务进程),然后在这个服务进程中创建一个数据总线对象(sdbus对象),并在数据总线对象中添加一个用于通过定时器事件源来按照预设频率对目标总线的工作状态进行轮询监控的sd_event_plus对象。
49.另外,在本技术的一些实施例中,为了提高处理效率,可以设定定时器事件源的事件源类型为异步事件源,对第一目标对象用于通过定时器事件源对目标总线进行异步等待轮询监控。
50.作为一种可选地实施方式,步骤s202中的创建目标进程可以是由执行总线检测方法的设备依据预设的规则自行设定,或者在响应目标对象的操作指令后设定。具体地,在目标进程是在响应目标对象的操作指令后设定的情况下,目标对象可以直接通过该设备的人机交互截面输入操作指令,或通过与该设备之间存在连接关系的其他设备来进行远程操
作。
51.由于在实际应用过程中,服务器通常不会只有一条总线,并且不同的总线对应的寄存器中的寄存器地址不同,因此,在执行步骤s202中所述的创建第一目标检测进程的步骤之前,还需要响应目标对象的选择指令,从目标服务器对应的至少一条总线中确定目标总线。需要说明的是,目标总线的数量可以为多条。
52.步骤s204,通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在步骤s204所提供的技术方案中,通过目标寄存器设置目标总线为挂死状态的步骤包括:在目标寄存器中写入目标指令,其中,目标指令用于修改所述目标寄存器中与所述目标总线对应的寄存器数据,所述目标寄存器中的寄存器数据用于设定所述目标总线的工作状态。
53.作为一种可选地实施方式,在目标寄存器中写入目标指令的步骤之前,还需要通过目标寄存器,将目标总线设置为通用型输入输出模式(gpio)。
54.具体地,可以基于与openbmc服务器连接的设备终端,并通过devmen等测试工具直接操作目标寄存器,从而在目标寄存器中进行写数据操作。其中,目标寄存器可以是系统控制单元寄存器。
55.步骤s206,在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
56.在步骤s206所提供的技术方案中,通过第一目标检测进程确定目标总线的工作状态的步骤包括:确定命令状态寄存器中的目标地址,其中,目标地址对应的目标数据用于表示目标总线的工作状态;依据目标地址从命令状态寄存器中获取目标数据;依据目标数据确定目标总线的工作状态,其中,工作状态包括:空闲状态、非空闲状态。
57.其中,命令状态寄存器中的不同的bit位可以提供不同的信息,例如,可以从命令状态寄存器的10-22bit位中获取对应的目标总线的工作状态。
58.作为一种可选地实施方式,依据检测结果确定目标总线是否异常的步骤包括:在检测结果指示工作状态为非空闲状态且处于非空闲状态的持续时长大于预设时长时,确认目标总线异常。
59.在本技术的一些实施例中,确认目标总线异常之后,还可以通过目标总线的驱动层指示目标总线自动恢复。
60.具体地,可以在目标总线的驱动层中设置具有超时触发机制的自恢复程序,用于在发现目标总线处于异常状态的时长超过预设时长时对目标总线中的时钟线和数据线进行自恢复动作处理。
61.在本技术的一些实施例中,当确定目标总线处于异常工作状态时,还可以先确定目标总线的异常原因,并根据异常原因来进行下一步的处理操作。具体地,当确定目标总线的异常原因为连接到目标总线上的从机故障时,可以先确定发生故障的从机位置,然后将从机位置发送给对应的运维人员,指示运维人员对从机进行维修。
62.另外,作为一种可选的实施方式,上述目标检测进程可以设置为定期读取命令状态寄存器中对应比特位的数据,从而确定设备中目标总线的状态,并在确定发生异常时及时通知运维人员进行处理。
63.作为一种可选地实施方式,为了记录目标总线中各个设备节点的状态,还可以在应用层中设置目标监控函数,其中,目标监控函数用于监控目标总线对应的设备节点状态信息;通过目标监控函数记录设备节点状态信息,并生成设备节点状态信息对应的设备节点状态维护日志。
64.通过创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过目标寄存器设置目标总线执行挂死动作,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常,解决了相关技术中从硬件层面将总线挂死再对总线进行检测造成的检测效率低的问题,提高了总线检测效率,从而保障了服务器的稳定运行。
65.另外,本技术还提供了一种模拟i2c总线挂死并监控i2c总线的工作状态的方法,和相关技术中直接从硬件层面进行操作的方式相比,更加简单高效,可以在openbmc服务器的开发维护进程中,节约测试资源,减少投入成本,从而有效提高开发效率。
66.其中,上述步骤的执行主体可以为服务器、终端等,但不限于此。
67.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
68.在本技术实施例中还提供了一种总线检测设备。该设备可用于实现上述实施例及优选实施方式,因此对总线检测方法的相关解释说明也适用于该设备中,故已经进行过说明的内容在此不再赘述。
69.具体地,该总线检测设备中可设置有用于执行总线检测方法的处理器,和与目标服务器之间进行通信的通信模块。其中,该处理器可用于执行如下总线检测方法:创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
70.作为一种可选地实施方式,处理器通过第一目标检测进程确定目标总线的工作状态的步骤包括:确定命令状态寄存器中的目标地址,其中,目标地址对应的目标数据用于表示目标总线的工作状态;依据目标地址从命令状态寄存器中获取目标数据;依据目标数据确定目标总线的工作状态,其中,工作状态包括:空闲状态、非空闲状态。
71.作为一种可选地实施方式,处理器依据检测结果确定目标总线是否异常的步骤包括:在检测结果指示工作状态为非空闲状态且处于非空闲状态的持续时长大于预设时长时,确认目标总线异常。
72.作为一种可选地实施方式,确认目标总线异常的步骤之后,处理器还被配置为执行:通过目标总线的驱动层指示目标总线执行自动恢复。
73.作为一种可选地实施方式,处理器创建第一目标检测进程的步骤包括:创建第一
目标检测进程,其中,第一目标检测进程的进程类型包括数据总线服务进程;在第一目标检测进程中创建目标对象,其中,目标对象中设置有定时器事件源,目标对象用于通过定时器事件源按照预设频率对目标总线进行轮询监控。
74.作为一种可选地实施方式,处理器通过第一寄存器设置目标总线为挂死状态的步骤包括:在第一寄存器中写入目标指令,其中,目标指令用于指示目标总线中的目标时钟线和目标数据线执行挂死动作。
75.作为一种可选地实施方式,上述通信模块包括有线通信模块或无线通信模块。具体地,当通信模块为有线通信模块时,总线检测设备可以在验证通过的情况下通过数据线与目标服务器连接,从而实现与目标服务器之间的数据互通,包括在目标服务器中建立目标进程,以及对目标服务器中的寄存器执行写数据操作从而设置目标总线的工作状态,或从命令状态寄存器中读取相应的数据来确定总线状态等。
76.当通信模块为无线通信模块时,总线检测设备和目标服务器之间可以通过蓝牙,wlan或nfc等方式实现数据互通。
77.在本实施例中还提供了一种服务器,该服务器用于实现上述实施例及优选实施方式,因此对总线检测方法的相关解释说明也适用于该服务器中,故已经进行过说明的不再赘述。
78.图3是根据本技术实施例的服务器的结构框图,如图3所示,服务器包括基板管理控制器30,目标总线32,第一寄存器34,第二寄存器36,其中,基板管理控制器30,被配置为执行创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线32进行轮询监控;通过第一寄存器34设置目标总线32为挂死状态,并向目标总线32发送恢复指令,其中,恢复指令用于指示目标总线32从挂死状态恢复;在向目标总线32发送恢复指令后,通过第一目标检测进程和第二寄存器36确定目标总线32的工作状态,并依据检测结果确定目标总线32是否异常。
79.作为一种可选地实施方式,基板管理控制器30通过第一目标检测进程确定目标总线32的工作状态的步骤包括:确定命令状态寄存器中的目标地址,其中,目标地址对应的目标数据用于表示目标总线32的工作状态;依据目标地址从命令状态寄存器中获取目标数据;依据目标数据确定目标总线32的工作状态,其中,工作状态包括:空闲状态、非空闲状态。
80.具体地,当目标总线32为openbmc服务器中的总线时,可以在服务器中创建一个dbus服务进程(也就是数据总线服务进程),然后在这个服务进程中创建一个数据总线对象(sdbus对象),并在数据总线对象中添加一个用于通过定时器事件源来按照预设频率对目标总线32的工作状态进行轮询监控的sd_event_plus对象。
81.在创建目标进程时,可以是由执行总线检测方法的基板管理控制器30依据预设的规则自行设定,或者在响应目标对象的操作指令后设定。具体地,在目标进程是在响应目标对象的操作指令后设定的情况下,目标对象可以直接通过服务器的人机交互截面输入操作指令,或通过与服务器之间存在连接关系的其他设备来进行远程操作。
82.作为一种可选地实施方式,基板管理控制器30依据检测结果确定目标总线32是否异常的步骤包括:在检测结果指示工作状态为非空闲状态且处于非空闲状态的持续时长大于预设时长时,确认目标总线32异常。
83.作为一种可选地实施方式,确认目标总线32异常的步骤之后,基板管理控制器30还被配置为执行:通过目标总线32的驱动层设置目标总线32执行自动恢复动作。
84.在本技术的一些实施例中,当确定目标总线32处于异常工作状态时,还可以先确定目标总线32的异常原因,并根据异常原因来进行下一步的处理操作。具体地,当确定目标总线32的异常原因为连接到目标总线32上的从机故障时,可以先确定发生故障的从机位置,然后将从机位置发送给对应的运维人员,指示运维人员对从机进行维修。
85.另外,作为一种可选的实施方式,上述目标检测进程可以设置为定期读取命令状态寄存器中对应比特位的数据,从而确定设备中目标总线32的状态,并在确定发生异常时及时通知运维人员进行处理。
86.具体地,服务器中可以设置有与基板管理控制器30相连的警报装置,基板管理控制器30可以将相关故障信息发送给警报装置,并由警报装置通知运维人员进行处理。
87.作为一种可选地实施方式,基板管理控制器30创建第一目标检测进程的步骤包括:创建第一目标检测进程,其中,第一目标检测进程的进程类型包括数据总线服务进程;在第一目标检测进程中创建目标对象,其中,目标对象中设置有定时器事件源,目标对象用于通过定时器事件源按照预设频率对目标总线32进行轮询监控。
88.作为一种可选地实施方式,基板管理控制器30通过第一寄存器34设置目标总线32执行挂死动作的步骤包括:在第一寄存器34中写入目标指令,其中,目标指令用于指示目标总线32中的目标时钟线和目标数据线执行挂死动作。
89.需要说明的是,上述目标总线32的数量为多条,基板管理控制器30还用于确定多条目标总线32中的每条目标总线32在第一寄存器34和第二寄存器36中对应的寄存器地址信息。
90.在本实施例中还提供了一种总线检测装置,该装置用于实现上述实施例及优选实施方式,因此对总线检测方法的相关解释说明也适用于该装置中,故已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
91.图4是根据本技术实施例的总线检测装置的结构框图,如图4所示,该装置包括第一检测模块40,用于创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;处理模块42,用于通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;第二检测模块44,用于在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
92.在本技术的一些实施例中,第一检测模块40在创建第一目标检测进程前,还用于响应目标对象的选择指令,从目标服务器对应的至少一条总线中确定目标总线。
93.在本技术的一些实施例中,第一检测模块40创建第一目标检测进程的步骤包括:创建第一目标检测进程,其中,第一目标检测进程的进程类型包括数据总线服务进程;在第一目标检测进程中创建第一目标对象,其中,第一目标对象中设置有定时器事件源,第一目
标对象用于通过定时器事件源按照预设频率对目标总线进行轮询监控。
94.在本技术的一些实施例中,第一检测模块40在第二目标检测进程中创建目标对象的步骤包括:在第二目标检测进程中创建第二目标对象;在第二目标对象中添加第一目标对象,其中,第一目标对象的对象类型为事件对象。
95.在本技术的一些实施例中,定时器事件源中的时钟类型包括以下至少之一:单调时钟,即时时钟,引导时间时钟。
96.在本技术的一些实施例中,第二目标检测进程和第一目标检测进程均运行在服务层中。
97.在本技术的一些实施例中,定时器事件源的事件源类型为异步事件源,对第一目标对象用于通过定时器事件源对目标总线进行异步等待轮询监控。
98.具体地,当目标总线为openbmc服务器中的总线时,可以在服务器中创建一个dbus服务进程(也就是数据总线服务进程),然后在这个服务进程中创建一个数据总线对象(sdbus对象),并在数据总线对象中添加一个用于通过定时器事件源来按照预设频率对目标总线的工作状态进行轮询监控的sd_event_plus对象。
99.作为一种可选地实施方式,在创建目标进程时可以由执行总线检测方法的设备依据预设的规则自行设定,或者在响应目标对象的操作指令后设定。具体地,在目标进程是在响应目标对象的操作指令后设定的情况下,目标对象可以直接通过该设备的人机交互截面输入操作指令,或通过与该设备之间存在连接关系的其他设备来进行远程操作。
100.在本技术的一些实施例中,处理模块42通过目标寄存器设置目标总线执行挂死动作的步骤包括:在目标寄存器中写入目标指令,其中,目标指令用于指示目标总线中的目标时钟线和目标数据线执行挂死动作。
101.在本技术的一些实施例中,处理模块42在目标寄存器中写入目标指令的步骤之前,还可以通过目标寄存器,将目标总线设置为通用型输入输出模式。
102.在本技术的一些实施例中,第二检测模块44通过第一目标检测进程确定目标总线的工作状态的步骤包括:确定命令状态寄存器中的目标地址,其中,目标地址对应的目标数据用于表示目标总线的工作状态;依据目标地址从命令状态寄存器中获取目标数据;依据目标数据确定目标总线的工作状态,其中,工作状态包括:空闲状态、非空闲状态。
103.在本技术的一些实施例中,第二检测模块44依据检测结果确定目标总线是否异常的步骤包括:在检测结果指示工作状态为非空闲状态且处于非空闲状态的持续时长大于预设时长时,确认目标总线异常。
104.在本技术的一些实施例中,确认目标总线异常的步骤之后,第二检测模块44还可以通过目标总线的驱动层设置目标总线执行自动恢复动作。
105.在本技术的一些实施例中,目标总线包括目标数据线和目标时钟线,其中,第二检测模块44通过目标总线的驱动层设置目标总线执行自动恢复动作包括:通过驱动层在目标总线对应的系统控制单元寄存器中重新写入用于指示目标总线自恢复的数据,指示目标数据线执行自动恢复动作;以及,通过驱动层向与目标总线对应的命令状态寄存器发送预设数量个串行时钟电平信号,指示目标时钟线执行自动恢复动作。
106.在本技术的一些实施例中,第二检测模块44通过驱动层向与目标总线对应的命令状态寄存器发送预设数量个串行时钟电平信号的步骤包括:确定命令状态寄存器中与目标
总线自恢复功能对应的寄存器地址;向寄存器地址发送预设数量个串行时钟电平信号。
107.另外,当第二检测模块44确定目标总线处于异常工作状态时,还可以先确定目标总线的异常原因,并根据异常原因来进行下一步的处理操作。具体地,当确定目标总线的异常原因为连接到目标总线上的从机故障时,可以先确定发生故障的从机位置,然后将从机位置发送给对应的运维人员,指示运维人员对从机进行维修。
108.在本技术的一些实施例中,上述目标检测进程可以设置为定期读取命令状态寄存器中对应比特位的数据,从而确定设备中目标总线的状态,并在确定发生异常时及时通知运维人员进行处理。
109.在本技术的一些实施例中,第二检测模块44还用于在应用层中设置目标监控函数,其中,所述目标监控函数用于监控所述目标总线对应的设备节点状态信息;通过所述目标监控函数记录所述设备节点状态信息,并生成所述设备节点状态信息对应的设备节点状态维护日志。
110.本技术的实施例还提供了一种如图5所示的计算机可读存储介质50,该计算机可读存储介质50中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤,例如,该计算机程序在运行时可执行如下总线检测方法:创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过目标寄存器设置目标总线处于挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
111.在一些示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
112.另外,如图5所示,上述计算机可读存储介质50还设置有数据接口52,电子设备或处理器等可通过该数据接口52从计算机可读存储介质50中读取或写入数据。
113.本技术的实施例还提供了一种如图6所示的电子设备,包括存储器60和处理器62,该存储器60中存储有计算机程序,该处理器62被设置为运行计算机程序以执行上述任一项方法实施例中的步骤,例如,该处理器62在运行计算机程序时可以执行如下总线检测方法:创建第一目标检测进程,其中,第一目标检测进程用于按照预设频率对目标总线进行轮询监控;通过目标寄存器设置目标总线为挂死状态,并向目标总线发送恢复指令,其中,恢复指令用于指示目标总线从挂死状态恢复;在向目标总线发送恢复指令后,通过第一目标检测进程确定目标总线的工作状态,并依据检测结果确定目标总线是否异常。
114.在一些示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器62连接,该输入输出设备和上述处理器62连接。
115.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
116.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互
之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
117.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
118.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
119.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
120.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献