CN116627514B - 一种i2c设备管理方法、装置、设备及存储介质 - Google Patents

一种i2c设备管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116627514B
CN116627514B CN202310622192.9A CN202310622192A CN116627514B CN 116627514 B CN116627514 B CN 116627514B CN 202310622192 A CN202310622192 A CN 202310622192A CN 116627514 B CN116627514 B CN 116627514B
Authority
CN
China
Prior art keywords
target
configuration file
object corresponding
generating
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310622192.9A
Other languages
English (en)
Other versions
CN116627514A (zh
Inventor
林俊钦
姚博钧
朱子健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hexin Technology Suzhou Co ltd
Hexin Technology Co ltd
Original Assignee
Hexin Technology Suzhou Co ltd
Hexin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hexin Technology Suzhou Co ltd, Hexin Technology Co ltd filed Critical Hexin Technology Suzhou Co ltd
Priority to CN202310622192.9A priority Critical patent/CN116627514B/zh
Publication of CN116627514A publication Critical patent/CN116627514A/zh
Application granted granted Critical
Publication of CN116627514B publication Critical patent/CN116627514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本申请揭示了一种i2c设备管理方法、装置、设备及存储介质,具体涉及设备管理技术领域。所述方法包括:获取配置文件;配置文件用于指示目标i2c设备的驱动信息;根据配置文件生成与目标i2c设备对应的i2c设备对象;根据与目标i2c设备对应的i2c设备对象,生成与目标i2c设备对应的i2c设备管理类对象;根据与目标i2c设备对应的i2c设备管理类对象,判断目标i2c设备是否在位,若在位,则将目标i2c设备绑定到对应的i2c设备驱动。基于上述方法,使用户可以通过配置文件来管理目标嵌入式设备中的各种目标i2c设备。

Description

一种i2c设备管理方法、装置、设备及存储介质
技术领域
本申请涉及设备管理技术领域,具体涉及一种i2c设备管理方法、装置、设备及存储介质。
背景技术
现有的linux系统的嵌入式设备对i2c(Inter-Integrated Circuit,集成电路总线)设备进行配置、控制和监控往往依赖于对应厂商的i2c设备驱动,而不同厂商常常会根据自己的需求在i2c设备驱动中增加一些特有的属性,因此在使用不同厂商的i2c设备时,需要选择不同i2c设备对应的i2c设备驱动。
现有技术中,linux系统的嵌入式设备通过在内核的设备树上配置与所使用的i2c设备相匹配的i2c设备驱动,并于上层的设备管理框架中对不同厂商的i2c设备进行监控。
然而上述方案中,一个嵌入式固件程序每次只能支持一个厂商的i2c设备,每次换i2c设备驱动时需要重新修改设备树来匹配新的i2c设备驱动,耗费开发人力,不够便捷。
发明内容
本申请提供了一种i2c设备管理方法、装置、设备及存储介质,基于上述方法,使用户可以通过配置文件来管理目标嵌入式设备中的各种目标i2c设备。该技术方案如下。
一方面,提供了一种i2c设备管理方法,所述方法由目标嵌入式设备执行,所述方法包括:
获取配置文件;所述配置文件用于指示目标i2c设备的驱动信息;
根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象;
根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象;
根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,若在位,则将所述目标i2c设备绑定到对应的i2c设备驱动。
在本申请提供的i2c设备管理方法中,首先获取配置文件;配置文件用于指示所述目标i2c设备的驱动信息;再根据配置文件生成与目标i2c设备对应的i2c设备对象;再根据与目标i2c设备对应的i2c设备对象,生成与目标i2c设备对应的i2c设备管理类对象;再根据与目标i2c设备对应的i2c设备管理类对象,判断目标i2c设备是否在位,若在位,则将目标i2c设备绑定到对应的i2c设备驱动。因此上述方案,先通过配置文件的方式获取目标i2c设备对应的i2c设备管理类对象,再根据i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定,实现了目标i2c设备的迟绑定,绑定之后就可以从i2c设备驱动中获取目标i2c设备的信息,或者设置目标i2c设备的某些功能,从而达到通过配置文件来灵活管理各种目标i2c设备的目的。
在一种可能的实现方式中,若目标i2c设备不在位,则生成告警信息。
当目标i2c设备不在位时,可以生成告警信息以通知相关技术人员及时处理可能的故障,使得i2c设备能够正常运行。
在一种可能的实现方式中,所述配置文件用于指示多个目标i2c设备的驱动信息;
所述根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象,包括:
根据所述配置文件,生成每个目标i2c设备对应的i2c设备对象。
当一个配置文件配置多个目标i2c设备时,需要分别获取每一个目标i2c设备对应的i2c设备对象,以便后续分别判断每个目标i2c设备是否在位,达成通过一个配置文件灵活管理多个目标i2c设备的效果。
在一种可能的实现方式中,所述根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象,包括:
将每个目标i2c设备对应的i2c设备对象按照类别属性生成对应的i2c设备管理类对象;
所述根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,包括:
根据每个目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位。
由于i2c设备对象中包含目标i2c设备的类别属性,因此可以根据该类别属性生成对应的i2c设备管理类对象,再根据各个i2c设备管理类对象分别判断各个i2c设备是否在位。
在一种可能的实现方式中,所述方法还包括:
每隔第一时长遍历各个i2c设备管理类对象,判断各个i2c设备管理类对象对应的目标i2c设备是否在位;
若不在位,则生成告警信息。
上述方案中,可以实时检测是否有新的目标i2c设备与目标嵌入式设备连接,并生成对应的i2c设备管理类对象,以判断新的目标i2c设备是否在位。然而,可能会出现已根据目标i2c设备生成对应的i2c设备管理类对象,而目标i2c设备发生故障或程序故障导致目标i2c设备不在位的情况,因此可以每隔第一时长遍历各个设备管理类对象,查漏补缺,不在位时告警通知相关技术人员,以保证各个目标i2c设备的正常运行。
在一种可能的实现方式中,所述根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象,包括:
判断所述配置文件是否发生更新;
若发生更新,则根据更新后的配置文件生成新的i2c设备对象。
当目标i2c设备或者i2c设备驱动发生变化时,如果不及时更新配置文件,会使得目标i2c设备虽然按照原有的配置文件与i2c设备驱动绑定了,却因为目标i2c设备或者i2c设备驱动发生变化而无法正常使用,因此可以通过更新配置文件来及时纠正。
在一种可能的实现方式中,所述方法还包括:
当未获取到所述目标i2c设备对应的配置文件,且所述目标i2c设备与所述目标嵌入式设备连接时,通过i2c总线进行探测,以获取所述目标i2c设备的i2c设备驱动类型;
根据所述i2c设备驱动类型生成与所述目标i2c设备对应的i2c设备对象。
上述方案中,通过配置文件的方式进行目标i2c设备与对应的i2c设备驱动的绑定。然而,还可以通过i2c总线检测的方式生成目标i2c设备对应的i2c设备对象,以进行目标i2c设备与对应的i2c设备驱动的绑定,使得用户拥有更多选择。
又一方面,提供了一种i2c设备管理装置,所述装置由目标嵌入式设备执行,所述装置包括:
文件获取模块,用于获取配置文件;所述配置文件用于指示所述目标i2c设备的驱动信息;
设备对象模块,用于根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象;
设备管理类模块,用于根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象;
绑定模块,用于根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,若在位,则将所述目标i2c设备绑定到对应的i2c设备驱动。
再一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的i2c设备管理方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的i2c设备管理方法。
再一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述i2c设备管理方法。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种i2c设备管理系统的结构示意图。
图2是根据一示例性实施例示出的一种i2c设备管理方法的流程图。
图3是根据一示例性实施例示出的一种i2c设备管理方法的流程图。
图4示出了本申请实施例涉及的一种i2c设备管理流程示例图。
图5是根据一示例性实施例示出的一种i2c设备管理装置的结构方框图。
图6示出了本申请一示例性实施例示出的计算机设备的结构框图。
具体实施方式
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是根据一示例性实施例示出的一种i2c设备管理系统的结构示意图。该i2c设备管理系统中包含嵌入式设备110、第一i2c设备121、第二i2c设备122、第三i2c设备123以及第四i2c设备124。
用户可以根据第一i2c设备121的类型在嵌入式设备110中设置对应的配置文件,并根据配置文件生成与第一i2c设备121对应的i2c设备对象,进而根据与第一i2c设备121对应的i2c设备对象生成对应的i2c设备管理类对象。
进一步的,该嵌入式设备110根据该i2c设备管理类对象判断该第一i2c设备121是否在位,若在位则将该第一i2c设备绑定到对应的i2c设备驱动。绑定之后就可以从i2c设备驱动获取该第一i2c设备的信息,或者设置该第一i2c设备的某些功能,从而达到通过配置文件来管理该第一i2c设备的目的。
该第一i2c设备121可通过该嵌入式设备上的接口与该嵌入式设备110电连接。第一i2c设备121在位,即第一i2c设备121接入该嵌入式设备110且正常运行;第一i2c设备121不在位,可能第一i2c设备121未接入,或者第一i2c设备121和/或嵌入式设备110发生故障导致第一i2c设备121虽然已经接入但无法正常运行。
第二i2c设备122、第三i2c设备123以及第四i2c设备124同理,此处不再赘述。
应说明的是,图1中的i2c设备数量仅做示例,实际i2c设备数量可以根据需要进行设置。
图2是根据一示例性实施例示出的一种i2c设备管理方法的流程图。该方法由目标嵌入式设备执行,该目标嵌入式设备可以是如图1中所示的i2c设备管理系统中的嵌入式设备110。如图3所示,该i2c设备管理方法可以包括如下步骤:
步骤201,获取配置文件。
现有的linux系统的嵌入式设备对i2c设备进行配置、控制和监控都是通过i2c设备驱动,而不同厂商的i2c设备驱动常常会根据自己的需求增加一些特有的属性,无法兼容。目前很多嵌入式设备对i2c设备的状态进行监控的i2c设备驱动都是在内核的设备树上配置与使用的i2c设备匹配的i2c设备驱动,再在上层的i2c设备管理框架去监控对应厂商的i2c设备。然而一个嵌入式固件程序每次只能支持一个厂商的i2c设备,当需要换其他厂商的i2c设备时需要重新修改设备树来匹配其他厂商的i2c设备驱动,耗费开发人力,并且上层的i2c设备管理框架很多时候也是通过对应厂商的宏或者一些简单的判断逻辑语句来判断对应的i2c设备驱动厂商,维护性和可扩展性差。
因此本申请提供一种i2c设备管理方法,可以动态支持不同厂商的i2c设备驱动并实时检测,无需重新配置设备树来匹配i2c设备驱动,节省了开发人员的人力消耗,使得用户可以通过目标嵌入式设备灵活管理各种目标i2c设备。
该配置文件具有一定的格式,可由相关技术人员根据目标i2c设备的具体信息(例如目标i2c设备对应的i2c设备驱动)在目标嵌入式设备的程序中进行设置,用于指示该目标i2c设备的驱动信息。
步骤202,根据该配置文件生成与该目标i2c设备对应的i2c设备对象。
当设置好配置文件时,根据该配置文件生成与该目标i2c设备对应的i2c设备对象。此过程是实时的,也就是说,只要设置好配置文件,就会根据该配置文件生成对应的i2c设备对象。
该i2c设备对象是共享的,可以被目标嵌入式设备的其他进程访问,以便进行后续步骤。
步骤203,根据与该目标i2c设备对应的i2c设备对象,生成与该目标i2c设备对应的i2c设备管理类对象。
该i2c设备管理类对象与该i2c设备对象一一对应,包含目标i2c设备的厂商类型信息以及在位信息,以便进行后续的绑定步骤。
该过程也是实时的,也就是说,访问到i2c设备对象,就会根据该i2c设备对象生成对应的i2c设备管理类对象。
步骤204,根据与该目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位,若在位,则将该目标i2c设备绑定到对应的i2c设备驱动。
该目标嵌入式设备中预先支持了各种类型的i2c设备驱动。
该i2c设备管理类对象中包含用于表示对应的目标i2c设备是否在位的字段。该目标嵌入式设备通过对i2c设备管理类对象中的该字段进行检测,以判断该目标i2c设备是否在位,当该目标i2c设备在位时,即该目标i2c设备与目标嵌入式设备正常连接时,将该标i2c设备绑定到对应的i2c设备驱动。
通过上述步骤,使得目标嵌入式设备通过配置文件的方式将目标i2c设备绑定至对应的i2c设备驱动,当目标i2c设备的类型变化时(比如由电源变为风扇)也可通过修改配置文件改变相应的设置,无需根据目标i2c设备的类型修改设备树(程序代码),让不具有开发人员专业知识的用户也可通过较为简单的方式对目标i2c设备进行绑定,使用户可以通过目标嵌入式设备灵活管理各种目标i2c设备。
综上所述,在本申请提供的i2c设备管理方法中,首先获取配置文件;配置文件用于指示目标i2c设备的驱动信息;再根据配置文件生成与目标i2c设备对应的i2c设备对象;再根据与目标i2c设备对应的i2c设备对象,生成与目标i2c设备对应的i2c设备管理类对象;再根据与目标i2c设备对应的i2c设备管理类对象,判断目标i2c设备是否在位,若在位,则将目标i2c设备绑定到对应的i2c设备驱动。因此上述方案,先通过配置文件的方式获取目标i2c设备对应的i2c设备管理类对象,再根据i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定,实现了目标i2c设备的迟绑定,绑定之后就可以从i2c设备驱动中获取目标i2c设备的信息,或者设置目标i2c设备的某些功能,从而达到通过配置文件来灵活管理各种目标i2c设备的目的。
图3是根据一示例性实施例示出的一种i2c设备管理方法的流程图。该方法由目标嵌入式设备执行,该目标嵌入式设备可以是如图1中所示的i2c设备管理系统中的嵌入式设备110。如图3所示,该i2c设备管理方法可以包括如下步骤:
步骤301,获取配置文件。
目标i2c设备即用户需要使用的基于i2c总线协议的设备,目标i2c设备可以通过目标嵌入式设备的i2c总线接入。具体的,目标i2c设备可以是电源、风扇等可与目标嵌入式设备连接并使用的元件。
现有的linux系统的嵌入式设备对i2c设备进行配置、控制和监控都是通过i2c设备驱动,而不同厂商的i2c设备驱动常常会根据自己的需求增加一些特有的属性,无法兼容。目前很多嵌入式设备对i2c设备的状态进行监控的i2c设备驱动都是在内核的设备树上配置与使用的i2c设备匹配的i2c设备驱动,再在上层的i2c设备管理框架去监控对应厂商的i2c设备。然而一个嵌入式固件程序每次只能支持一个厂商的i2c设备,当需要换其他厂商的i2c设备时需要重新修改设备树来匹配其他厂商的i2c设备驱动,耗费开发人力,并且上层的i2c设备管理框架很多时候也是通过对应厂商的宏或者一些简单的判断逻辑语句来判断对应的i2c设备驱动厂商,维护性和可扩展性差。
因此本申请提供一种i2c设备管理方法,可以动态支持不同厂商的i2c设备驱动并实时检测,无需重新配置设备树来匹配i2c设备驱动,节省了开发人员的人力消耗,使得用户可以通过目标嵌入式设备灵活管理各种目标i2c设备。其中,i2c设备驱动包含对应的i2c设备(比如电源对应电源驱动)的一些通用信息(例如电源驱动中包含电源的序列号、型号等信息)以及一些厂商特有的信息(比如不同厂商的电源有不同的特性),该目标嵌入式设备中预先支持了各种类型的i2c设备驱动。
该配置文件可由相关技术人员根据目标i2c设备的具体信息在目标嵌入式设备的程序中进行设置,具有一定的格式,例如xml格式。该配置文件的文件名为i2c_devices.json(json,即JavaScript Object Notation,是一种轻量级的数据交换格式),用于指示目标i2c设备的驱动信息。该配置文件中有目标i2c设备对应的总线(i2cBus)、总线地址(i2cAddress)、驱动名称(DriverName)、在位检测方式(PresenceType)以及在位检测名称(PresenceDetectName)五个字段。
其中,i2c总线(Inter-Integrated Circuit Bus)是一种两线式串行总线。该配置文件中的总线和总线地址表示目标i2c设备具体是哪条总线的哪个总线地址下的,驱动名称表示目标i2c设备对应的i2c设备驱动的名称。
该配置文件中的在位检测方式用于检测对应的目标i2c设备是否在位,该配置文件中的在位检测名称与在位检测方式对应。例如,目标i2c设备可以通过Gpio口(General-purpose input/output通用输入/输出)的电平高低判断目标i2c设备是否在位,此时在位检测方式即为Gpio口,在位检测名称即为Gpio口的名称。还可通过其他可行方式进行在位检测。
步骤302,根据该配置文件生成与该目标i2c设备对应的i2c设备对象。
当设置好配置文件时,则根据该配置文件生成与该目标i2c设备对应的i2c设备对象。该i2c设备对象是共享的,可被目标嵌入式设备的其他进程访问。可选的,通过将i2c设备对象发布到进程共享的内存中,实现i2c设备对象的共享。还可以通过其他可行方式实现i2c设备对象的共享。该i2c设备对象中也包含目标i2c设备对应的总线(i2cBus)、总线地址(i2cAddress)、驱动名称(DriverName)、在位检测方式(PresenceType)以及在位检测名称(PresenceDetectName)。
可选的,该配置文件用于指示多个目标i2c设备的驱动信息,也就是说,一个配置文件可以对多个目标i2c设备进行配置。目标嵌入式设备可以根据该配置文件,生成每个目标i2c设备对应的i2c设备对象。
可选的,在生成对应的i2c设备对象前判断该配置文件是否发生更新,若发生更新,则根据更新后的配置文件生成新的i2c设备对象。由于目标i2c设备可能之前就已经连接过目标嵌入式设备,并进行过与对应i2c设备驱动的绑定了,因此在目标嵌入式设备中已设置过对应的配置文件。当目标i2c设备发生变化(如厂商变化)或者i2c设备驱动发生变化(如版本更新)时,相关技术人员会对配置文件进行修改更新,而如果不对配置文件是否更新进行检测的话,可能在目标i2c设备接入后仍按照原有的配置文件进行绑定,从而导致配置错误。在检测到配置文件发生更新后,则生成新的i2c设备对象以便后续进行绑定。若目标i2c设备对应的配置文件未发生更新,则说明先前的绑定是正确的,无需再次绑定。
可选的,当未获取到该目标i2c设备对应的配置文件,且该目标i2c设备与该目标嵌入式设备连接时,通过i2c总线进行探测,以获取目标i2c设备的i2c设备驱动类型,进一步的,根据该i2c设备驱动类型生成与该目标i2c设备对应的i2c设备对象。也就是说,不仅可以通过配置文件的方式生成i2c设备对象,还可以通过i2c总线探测的方式生成i2c设备对象。
应说明的是,该i2c总线探测的方式仅适用于支持i2c总线探测的目标i2c设备,当目标i2c设备不支持i2c总线探测,则只能使用配置文件的方式。并且,只有当该目标i2c设备与该目标嵌入式设备连接,该目标嵌入式设备才能检测到该目标i2c设备。在目标嵌入式设备检测到该目标i2c设备时,即可根据i2c总线中的设备树(代码)将目标i2c设备与对应的i2c设备驱动绑定;或者,生成对应的i2c设备对象,进而生成对应的i2c设备管理类对象,进而根据i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定。也就是说,总线探测的方式既可以直接将目标i2c设备与对应的i2c设备驱动绑定,又可以生成i2c设备对象,后续步骤与配置文件的方式重合。
当支持i2c总线探测的目标i2c设备通过i2c总线接入目标嵌入式设备时,目标i2c设备的寄存器中会有特殊字段(例如厂商的VendorID和设备的DeviceID)去标识该目标i2c设备属于哪个厂商,因此目标嵌入式设备中的程序可通过i2c总线探测目标i2c设备的特殊字段以获取其对应的驱动类型,并生成对应的i2c设备对象。
上述i2c总线探测的方式无需配置文件,可在代码中将目标i2c设备与i2c设备驱动绑定,且能够探测到即说明目标i2c设备在位,但每次更新驱动版本时均须重新修改代码来匹配,因此,本方案优先采用配置文件的方式,即先检测目标i2c设备是否有配置文件,若没有,则在目标i2c设备支持i2c总线探测的前提下,相关技术人员可根据需求选择设置配置文件或者选择进行i2c总线探测。
示例性的,当目标i2c设备为电源,则配置文件名为power_supplies.json,i2c协议为专门用于电源管理的PMBus(Power Management Bus,电源管理总线)协议,i2c设备对象为电源对象,i2c设备管理类对象为电源管理类对象,i2c设备驱动为电源驱动。
可选的,目标i2c设备和目标嵌入式设备的接口还可支持https、ftp(FileTransfer Protocol,文件传输协议)和scp(secure copy安全复制)等协议。
步骤303,根据与该目标i2c设备对应的i2c设备对象,生成与该目标i2c设备对应的i2c设备管理类对象。
由于i2c设备对象是共享的,因此目标嵌入式设备中的设备类管理进程可以读取到i2c设备对象,并生成对应的i2c设备管理类对象。
可选的,根据i2c设备对象生成i2c设备对象生成信号,并通过i2c设备对象生成信号告知设备类管理进程。可通过广播、消息队列、Dbus信号或者套接字Socket的方式根据i2c设备对象生成i2c设备对象生成信号。
设备管理类对象可存放在对应的设备管理类的容器中,类表示类别,对象则是单个的目标,容器是隔离的进程,可存放数据并进行统一管理。例如,当目标i2c设备为电源,则将电源管理类对象存放在电源管理类的容器psus中进行统一管理,当目标i2c设备为风扇,则将风扇管理类对象存放在风扇管理类的容器fans中进行统一管理。
具体的,将每个目标i2c设备对应的i2c设备对象按照类别属性生成对应的i2c设备管理类对象。该类别属性即i2c设备对象中包含的type属性,该type属性与上述i2c设备对象中的五个字段有关,包含设备类别和厂商类别。例如,当目标i2c设备为电源,厂商为XXX时,则对应的电源对象的type属性被配置为PowerSupplyXXX,需要在电源类管理中进行管理,其中PowerSupply表示设备类别为电源,XXX表示厂商类别为XXX。根据该电源对象生成的电源管理类对象为PowerSupplyManagerXXX,该电源管理类对象会放入psus容器中。
可选的,i2c设备对象还可以使用DBus对象(DBus是一个为应用程序间通信的消息总线系统,用于进程之间的通信)实现。
步骤304A,根据与该目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位,若在位,则将该目标i2c设备绑定到对应的i2c设备驱动。
当目标i2c设备在位时,即目标i2c设备与目标嵌入式设备正常连接时,将该目标i2c设备绑定到对应的i2c设备驱动。
也就是说,用户在目标嵌入式设备中根据需要使用的目标i2c设备设置对应的配置文件后,目标嵌入式设备中的相关进程即根据配置文件生成对应的共享的i2c设备对象,进一步的,目标嵌入式设备中的设备类管理进程读取到i2c设备对象时,生成对应的i2c设备管理类对象,这一过程是实时的。
进一步的,设备类管理进程对i2c设备管理类对象是否在位进行检测,若在位则绑定。
也就是说,生成i2c设备管理类对象与绑定目标i2c设备是分开的步骤,从而实现了对目标i2c设备的迟绑定。
可选的,若目标i2c设备不在位,则生成告警信息,以通知用户及时处理。目标i2c设备生成了i2c设备管理类对象但不在位的情况包括已配置目标i2c设备的配置文件但未接入目标嵌入式设备、目标i2c设备先前接入了目标嵌入式设备但又被拔掉,或者目标i2c设备、i2c设备驱动或目标嵌入式设备中的一者或多者发生故障等。
可选的,仅生成一次告警信息,不会重复告警。
可选的,当一个配置文件对应多个目标i2c设备时,根据每个目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位。也就是说,虽然多个目标i2c设备对应的配置文件只有一个(即多个目标i2c设备是同时配置的),但对多个目标i2c设备的绑定步骤是分别进行的,一个目标i2c设备的绑定过程不会影响到另一个目标i2c设备的绑定过程。
通过生成i2c设备管理类对象,引入面向对象的思想,将i2c设备对象根据对应i2c设备的属性特征进行分类并管理,实现了代码的解耦合,扩展性强、层次鲜明且更容易维护和新增。例如,Inspur的psu可以通过PowerSupplyManagerInspur类来管理,IBM的psu可以通过PowerSupplyManagerBMCffs类来管理,当然如果同一个厂商的psu还具有特殊的属性也可以通过设置相应的类进行管理。
步骤304B,每隔第一时长遍历各个i2c设备管理类对象,判断各个i2c设备管理类对象对应的目标i2c设备是否在位;若不在位,则生成告警信息。
上述步骤中,对目标i2c设备与i2c设备驱动的绑定是实时的,即当配置好新的目标i2c设备进而生成对应的i2c设备管理类对象时,即根据该i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定,而没有新的目标i2c设备被配置时目标嵌入式设备中的设备类管理进程处于休眠状态,并监听是否有新的i2c设备对象生成。而步骤303B与步骤303A并列进行,即不管步骤303A是否在进行,目标嵌入式设备都会每隔一定的时长(第一时长)遍历各个i2c设备管理类对象,并分别判断各个i2c设备管理类对象对应的目标i2c设备是否在位,在位则将目标i2c设备与对应的i2c设备驱动绑定,先前已绑定的不进行再次绑定。
当绑定成功时,即可从i2c设备驱动中获取目标i2c设备的信息,或者设置目标i2c设备的某些功能,从而达到通过配置文件来灵活管理各种目标i2c设备的目的。例如,按照目标i2c设备的功能(比如电源是供电,风扇是吹风)进行fru(Field Replace Unit,现场可更换单元,一般是可与服务器连接并使用的一些可更换的元件,例如风扇,本方案中为电源)信息更新以及故障监控等;若绑定失败,报一条日志(log)进行记录和告警。可通过new_device指令进行绑定。
当配置发生变化时(目标i2c设备发生变化或i2c设备驱动发生变化)则进行解绑,再重新绑定。可通过delete_device指令进行解绑。
可选的,第一时长可根据实际需求进行设置,例如设置第一时长为10秒。
因此,本方案通过将生成i2c设备管理类对象与绑定i2c设备驱动分开,实现了对目标i2c设备的迟绑定。即使用户在使用了一段时间后想换另一个厂商的目标i2c设备,只要目标嵌入式设备中的i2c设备驱动和i2c设备管理系统支持,则无需开发人员(相关技术人员)介入,自行修改配置文件对新的目标i2c设备进行绑定,节约了开发人员的人力成本,更加便捷。
并且,本方案引入了i2c设备对象通知机制(即i2c设备对象是共享的),可以支持i2c总线探测方式在多次探测之后才识别到目标i2c设备并进行管理,不会出现因为目标嵌入式设备延迟识别而导致漏绑目标i2c设备的问题。
并且,本方案提供了配置文件的方式和i2c总线探测的方式来生成i2c设备管理类对象,两种方式可供用户自由选择。通过该i2c设备管理类对象可以清楚获知哪些目标i2c设备已配置却不在位,同时也会定时去查询目标i2c设备是否在位,解决了硬件偶现故障导致目标i2c设备已连接却检测成不在位,后续故障解决又检测到在位的情况,而不会导致漏检。
图4示出了本申请实施例涉及的一种i2c设备管理流程示例图。图4中的i2c设备驱动识别模块中对应图3的步骤301和步骤302,图4中的i2c设备类管理对应图3的步骤303、步骤304A以及步骤304B,图4中的i2c设备厂商驱动即各个厂商对应的i2c设备驱动。其中,IBM、Inspur为厂商名称。
综上所述,在本申请提供的i2c设备管理方法中,首先获取配置文件;配置文件用于指示目标i2c设备的驱动信息;再根据配置文件生成与目标i2c设备对应的i2c设备对象;再根据与目标i2c设备对应的i2c设备对象,生成与目标i2c设备对应的i2c设备管理类对象;再根据与目标i2c设备对应的i2c设备管理类对象,判断目标i2c设备是否在位,若在位,则将目标i2c设备绑定到对应的i2c设备驱动。因此上述方案,先通过配置文件的方式获取目标i2c设备对应的i2c设备管理类对象,再根据i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定,实现了目标i2c设备的迟绑定,绑定之后就可以从i2c设备驱动中获取目标i2c设备的信息,或者设置目标i2c设备的某些功能,从而达到通过配置文件来灵活管理各种目标i2c设备的目的。
图5是根据一示例性实施例示出的一种i2c设备管理装置的结构方框图。该装置由目标嵌入式设备执行,该装置包括:
文件获取模块501,用于获取配置文件;该配置文件用于指示目标i2c设备的驱动信息;
设备对象模块502,用于根据该配置文件生成与该目标i2c设备对应的i2c设备对象;
设备管理类模块503,用于根据与该目标i2c设备对应的i2c设备对象,生成与该目标i2c设备对应的i2c设备管理类对象;
绑定模块504,用于根据与该目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位,若在位,则将该目标i2c设备绑定到对应的i2c设备驱动。
在一种可能的实现方式中,若目标i2c设备不在位,则生成告警信息。
在一种可能的实现方式中,该配置文件用于指示多个目标i2c设备的驱动信息;
该根据该配置文件生成与该目标i2c设备对应的i2c设备对象,包括:
根据该配置文件,生成每个目标i2c设备对应的i2c设备对象。
在一种可能的实现方式中,该根据与该目标i2c设备对应的i2c设备对象,生成与该目标i2c设备对应的i2c设备管理类对象,包括:
将每个目标i2c设备对应的i2c设备对象按照类别属性生成对应的i2c设备管理类对象;
该根据与该目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位,包括:
根据每个目标i2c设备对应的i2c设备管理类对象,判断该目标i2c设备是否在位。
在一种可能的实现方式中每隔第一时长遍历各个i2c设备管理类对象,判断各个i2c设备管理类对象对应的目标i2c设备是否在位;
若不在位,则生成告警信息。
在一种可能的实现方式中,该根据该配置文件生成与该目标i2c设备对应的i2c设备对象,包括:
判断该配置文件是否发生更新;
若发生更新,则根据更新后的配置文件生成新的i2c设备对象。
在一种可能的实现方式中,当未获取到该目标i2c设备对应的配置文件,且该目标i2c设备与该目标嵌入式设备连接时,通过i2c总线进行探测,以获取该目标i2c设备的i2c设备驱动类型;
根据该i2c设备驱动类型生成与该目标i2c设备对应的i2c设备对象。
综上所述,在本申请提供的i2c设备管理方法中,首先获取配置文件;配置文件用于指示目标i2c设备的驱动信息;再根据配置文件生成与目标i2c设备对应的i2c设备对象;再根据与目标i2c设备对应的i2c设备对象,生成与目标i2c设备对应的i2c设备管理类对象;再根据与目标i2c设备对应的i2c设备管理类对象,判断目标i2c设备是否在位,若在位,则将目标i2c设备绑定到对应的i2c设备驱动。因此上述方案,先通过配置文件的方式获取目标i2c设备对应的i2c设备管理类对象,再根据i2c设备管理类对象判断目标i2c设备是否在位,在位时绑定,实现了目标i2c设备的迟绑定,绑定之后就可以从i2c设备驱动中获取目标i2c设备的信息,或者设置目标i2c设备的某些功能,从而达到通过配置文件来灵活管理各种目标i2c设备的目的。
图6示出了本申请一示例性实施例示出的计算机设备600的结构框图。该计算机设备可以实现为本申请上述方案中的服务器。所述计算机设备600包括中央处理单元(CentralProcessing Unit,CPU)601、包括随机存取存储器(Random Access Memory,RAM)602和只读存储器(Read-Only Memory,ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述计算机设备600还包括用于存储操作系统609、应用程序610和其他程序模块611的大容量存储设备606。
所述大容量存储设备606通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备606及其相关联的计算机可读介质为计算机设备600提供非易失性存储。也就是说,所述大容量存储设备606可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory,EEPROM)闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(DigitalVersatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备606可以统称为存储器。
根据本公开的各种实施例,所述计算机设备600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备600可以通过连接在所述系统总线605上的网络接口单元607连接到网络608,或者说,也可以使用网络接口单元607来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一条计算机程序,所述至少一条计算机程序存储于存储器中,中央处理单元601通过执行该至少一条计算机程序来实现上述各个实施例所示的方法中的全部或部分步骤。
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图3任一实施例所示方法的全部或部分步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (8)

1.一种i2c设备管理方法,其特征在于,所述方法由目标嵌入式设备执行,所述方法包括:
获取配置文件;所述配置文件用于指示目标i2c设备的驱动信息;
根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象;
根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象;
根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,若在位,则将所述目标i2c设备绑定到对应的i2c设备驱动;
所述配置文件用于指示多个目标i2c设备的驱动信息;
所述根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象,包括:
根据所述配置文件,生成每个目标i2c设备对应的i2c设备对象;
所述根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象,包括:
将每个目标i2c设备对应的i2c设备对象按照类别属性生成对应的i2c设备管理类对象;
所述根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,包括:
根据每个目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若目标i2c设备不在位,则生成告警信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每隔第一时长遍历各个i2c设备管理类对象,判断各个i2c设备管理类对象对应的目标i2c设备是否在位;
若不在位,则生成告警信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象,包括:
判断所述配置文件是否发生更新;
若发生更新,则根据更新后的配置文件生成新的i2c设备对象。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当未获取到所述目标i2c设备对应的配置文件,且所述目标i2c设备与所述目标嵌入式设备连接时,通过i2c总线进行探测,以获取所述目标i2c设备的i2c设备驱动类型;
根据所述i2c设备驱动类型生成与所述目标i2c设备对应的i2c设备对象。
6.一种i2c设备管理装置,其特征在于,所述装置由目标嵌入式设备执行,所述装置包括:
文件获取模块,用于获取配置文件;所述配置文件用于指示所述目标i2c设备的驱动信息;
设备对象模块,用于根据所述配置文件生成与所述目标i2c设备对应的i2c设备对象;
设备管理类模块,用于根据与所述目标i2c设备对应的i2c设备对象,生成与所述目标i2c设备对应的i2c设备管理类对象;
绑定模块,用于根据与所述目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位,若在位,则将所述目标i2c设备绑定到对应的i2c设备驱动;
所述配置文件用于指示多个目标i2c设备的驱动信息;
所述设备对象模块,还用于:
根据所述配置文件,生成每个目标i2c设备对应的i2c设备对象;
所述设备管理类模块,还用于:
将每个目标i2c设备对应的i2c设备对象按照类别属性生成对应的i2c设备管理类对象;
所述绑定模块,还用于:
根据每个目标i2c设备对应的i2c设备管理类对象,判断所述目标i2c设备是否在位。
7.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至5任一所述的i2c设备管理方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至5任一所述的i2c设备管理方法。
CN202310622192.9A 2023-05-29 2023-05-29 一种i2c设备管理方法、装置、设备及存储介质 Active CN116627514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310622192.9A CN116627514B (zh) 2023-05-29 2023-05-29 一种i2c设备管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310622192.9A CN116627514B (zh) 2023-05-29 2023-05-29 一种i2c设备管理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116627514A CN116627514A (zh) 2023-08-22
CN116627514B true CN116627514B (zh) 2024-04-26

Family

ID=87597056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310622192.9A Active CN116627514B (zh) 2023-05-29 2023-05-29 一种i2c设备管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116627514B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134446A (zh) * 2019-04-18 2019-08-16 深圳市广和通无线股份有限公司 启动pcie设备扫描的方法
CN113824741A (zh) * 2021-11-23 2021-12-21 苏州浪潮智能科技有限公司 一种iic设备的通信方法、装置、设备、系统及介质
CN114168209A (zh) * 2021-12-07 2022-03-11 浙江国利网安科技有限公司 硬件操作方法及装置、存储介质及电子设备
CN114637551A (zh) * 2022-03-03 2022-06-17 杭州义益钛迪信息技术有限公司 设备驱动方法、系统及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10797893B2 (en) * 2018-12-13 2020-10-06 Cisco Technology, Inc. Single pair ethernet management interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134446A (zh) * 2019-04-18 2019-08-16 深圳市广和通无线股份有限公司 启动pcie设备扫描的方法
CN113824741A (zh) * 2021-11-23 2021-12-21 苏州浪潮智能科技有限公司 一种iic设备的通信方法、装置、设备、系统及介质
CN114168209A (zh) * 2021-12-07 2022-03-11 浙江国利网安科技有限公司 硬件操作方法及装置、存储介质及电子设备
CN114637551A (zh) * 2022-03-03 2022-06-17 杭州义益钛迪信息技术有限公司 设备驱动方法、系统及存储介质

Also Published As

Publication number Publication date
CN116627514A (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
JP6491299B2 (ja) サーバ装置のファームウェア及びカスタム設定の自動的なプロビジョニング
RU2375744C2 (ru) Основанное на модели управление компьютерными системами и распределенными приложениями
US9645815B2 (en) Dynamically recommending changes to an association between an operating system image and an update group
US20040228063A1 (en) IPMI dual-domain controller
CN110765018B (zh) 接口自动化测试方法及设备
TWI261748B (en) Policy-based response to system errors occurring during OS runtime
US20200310779A1 (en) Validating a firmware compliance policy prior to use in a production system
CN101268442B (zh) 配置远程数据处理系统的方法和系统
US9396311B2 (en) Mini appliance ensuring software license compliance
US20050190699A1 (en) Collecting hardware asset information
Feminella et al. Piloteur: a lightweight platform for pilot studies of smart homes
CN116627514B (zh) 一种i2c设备管理方法、装置、设备及存储介质
CN116483416A (zh) 固件在线升级方法、服务器及存储介质
WO2020036749A1 (en) Modular system framework for software network function automation
US7673290B1 (en) Computer implemented configuration of a management module
CN115632944A (zh) 一种节点配置方法、装置、设备、可读存储介质及服务器
JP2011227595A (ja) 監視制御システム及び監視制御プログラム
US11586536B1 (en) Remote configuration of multi-mode DIMMs through a baseboard management controller
KR102486634B1 (ko) 건물 설비 관리 정보를 블록 체인에 등록하는 방법과, 상기 정보를 통한 설비 정보 관리 시스템의 자동 가상화 및 배포 방법
CN115695529B (zh) 智能化远程运维方法、装置、计算机设备及存储介质
CN107621993A (zh) 一种基于Linux在CPU不同负载下自动检测BMC升级状况的方法及系统
CN114978973B (zh) 一种通信接口测试方法、装置、测试机及存储介质
US20220350820A1 (en) Mutually exclusive feature detection in an evolving distributed system
AU2004279195B2 (en) Model-based management of computer systems and distributed applications
CN115801588A (zh) 网络连接的动态拓扑处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant