CN106844260A - 一种基于树形拓扑结构的设备管理方法 - Google Patents
一种基于树形拓扑结构的设备管理方法 Download PDFInfo
- Publication number
- CN106844260A CN106844260A CN201611168617.XA CN201611168617A CN106844260A CN 106844260 A CN106844260 A CN 106844260A CN 201611168617 A CN201611168617 A CN 201611168617A CN 106844260 A CN106844260 A CN 106844260A
- Authority
- CN
- China
- Prior art keywords
- bus
- equipment
- control unit
- list
- type
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000006870 function Effects 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 6
- 238000007599 discharging Methods 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000000151 deposition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例公开了一种基于树形拓扑结构的设备管理方法,用于解决现有技术中针对MCU的设备管理缺乏统一的管理,无法形成可广泛适用、有效管理MCU设备的设备管理方法。本发明实施例方法包括:S1、对设备管理模块进行初始化;S2、通过设备管理模块创建根总线控制器;S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若根总线设备为总线控制器则执行S4步骤;S4、根据总线控制器创建总线,枚举总线上的设备作为总线设备添加至设备管理模块,若总线设备为总线控制器,则重复S4步骤,直到总线上没有总线控制器。
Description
技术领域
本发明涉及设备管理领域,尤其涉及一种基于树形拓扑结构的设备管理方法。
背景技术
在当前针对MCU(微处理器)的嵌入式软件开发领域,对于设备的控制,通常是应用软件直接操作寄存器的方式来控制,如此,软件开发人员既要编写应用逻辑,又要阅读动则上千页的硬件手册来编写驱动软件(控制硬件设备的软件),这些驱动软件只针对具体的外设编写,没有统一的管理,这样的驱动软件很难复用。
对于基于RTOS(实时操作系统)的软件,RTOS可能会提供简单的设备管理,通常定义了open、read、write、ioctl、close这五个标准函数用于设备的控制。相比直接操作寄存器,这种简单的设备管理对不同设备进行了统一管理,同时也隔离了应用软件和驱动软件,应用软件只需调用五个标准的控制函数,而驱动软件只需实现这五个标准控制函数,然后注册到设备管理就可以了。这种简单的设备管理方式对于MCU片内的设备管理比较有效,而对于MCU外扩的设备则不能有效管理,其根本问题在于这些设备是独立管理的,相互之间没有关联。
发明内容
本发明实施例提供了一种基于树形拓扑结构的设备管理方法,解决了现有技术中针对MCU的设备管理缺乏统一的管理,无法形成可广泛适用、有效管理MCU设备的设备管理方法。
本发明实施例提供的一种基于树形拓扑结构的设备管理方法,包括:
S1、对设备管理模块进行初始化;
S2、通过设备管理模块创建根总线控制器;
S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若根总线设备为总线控制器则执行S4步骤;
S4、根据总线控制器创建总线,枚举总线上的设备作为总线设备添加至设备管理模块,若总线设备为总线控制器,则重复S4步骤,直到总线上没有总线控制器。
优选地,步骤S4具体包括:
S41、根据总线控制器创建总线,并查找总线上的设备,若发现新设备,则创建设备成为总线设备,并设置总线设备的父总线为总线控制器的子总线;
S42、添加总线设备至设备管理模块,并查找与总线设备匹配的驱动,若找到匹配的驱动,将匹配的驱动关联到总线设备上,并将总线设备添加到总线设备的父总线的已知设备列表,并执行总线设备的初始化方法;若总线设备为总线控制器,则视为总线控制器设备,并重复S41和S42步骤,直到总线上没有总线控制器。
优选地,还包括:
S5、将驱动添加到设备管理模块的驱动列表中,并遍历相同总线类型的设备,若找到未知设备,则将驱动与未知设备进行匹配,若匹配,则将未知设备从未知设备的父总线上的未知设备列表中删除,并将未知设备添加到未知设备的父总线上的已知设备列表中。
优选地,还包括:
S6、将总线类型添加到设备管理模块的总线类型列表中,遍历所有未知总线,并将遍历找到的未知总线添加到设备管理模块进行添加总线;
添加总线包括将总线控制器与总线相互关联,并查找与总线匹配的总线类型,若找到匹配的总线类型,则将总线类型关联到总线,并将总线添加到总线类型的总线列表中;再遍历总线上的未知设备,在设备管理模块的驱动列表中查找与未知设备相匹配的驱动,若匹配,则将未知设备从未知设备的父总线上的未知设备列表中删除,并将未知设备添加到未知设备的父总线上的已知设备列表中;
若未找到匹配的总线类型,则将总线添加到设备管理模块的未知总线列表中。
优选地,还包括:
通过总线控制器进行移除设备和移除总线;
移除设备包括:若移除的设备为已知设备时,调用设备的卸载方法,并将设备从设备的父总线的已知设备列表中删除;若移除的设备为总线控制器时,先移除总线控制器的总线,再移除总线控制器;
若移除的设备为未知设备时,将设备从设备的总线的未知设备列表中删除,并释放设备占用的内存资源;
移除总线包括:遍历总线的已知设备列表和未知设备列表,若找到设备,则将设备从设备管理模块中移除,再将总线从总线类型的总线列表中删除,解除总线与总线控制器的关联,释放总线占用的内存等资源。
优选地,还包括:
查找设备,查找设备具体包括:在设备管理模块中获取一个总线类型,根据总线类型获取一个总线,根据总线获取一个设备,并检查设备的设备名和单元号是否与所需查找的设备的设备名和单元号匹配,若匹配则结束查找设备,否则重新进行查找设备。
优选地,还包括:
调用设备,调用设备包括:查找设备,并在找到设备后,在设备的方法列表中查找与设备匹配的方法,若找到匹配的方法,则调用方法的处理函数,并结束调用设备;若未找到匹配的方法,则结束调用设备。
优选地,还包括:
查找与设备匹配的驱动,具体步骤包括:检查设备的父总线是否为未知总线,若为未知总线则结束查找过程,否则从设备管理模块的驱动列表获取一个驱动并判断驱动是否与设备匹配成功,若驱动匹配成功则结束查找过程,否则重新从设备管理模块的驱动列表获取一个驱动并判断驱动是否与设备匹配成功;若没有从设备管理模块获取驱动,则结束查找过程。
优选地,还包括:
驱动与设备的匹配,具体步骤包括:检查驱动与设备的总线类型ID是否相同:若相同,则调用总线类型的匹配方法检查驱动与设备是否匹配:若匹配,则调用驱动的设备探测方法检查是否驱动是否支持设备:若探测成功,则匹配成功,并结束匹配过程,若探测失败,则匹配失败,并结束匹配过程;若不匹配,则匹配失败,结束匹配过程;若不相同,则匹配失败,结束匹配过程。
优选地,还包括:
查找与总线匹配的总线类型,具体步骤包括:在设备管理的总线类型列表中获取一个总线类型:若获取得总线类型,则检查总线类型与总线的总线类型ID是否匹配:若匹配,则找到匹配的总线类型,结束查找过程;若不匹配,则重新在设备管理的总线类型列表中获取一个总线类型进行查找;若未获取得总线类型,则结束查找。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供了一种基于树形拓扑结构的设备管理方法,包括:S1、对设备管理模块进行初始化;S2、通过设备管理模块创建根总线控制器;S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若根总线设备为总线控制器则执行S4步骤;S4、根据总线控制器创建总线,枚举总线上的设备作为总线设备添加至设备管理模块,若总线设备为总线控制器,则重复S4步骤,直到总线上没有总线控制器,本发明实施例通过创建根总线控制器,并在根总线上查找、添加设备,并且在设备为总线控制器的情况下,继续创建总线、查找、添加设备,如此延续、拓展,使得各种设备形成有秩序的、容易查找、管理的树形拓扑,解决了现有技术中针对MCU的设备管理缺乏统一的管理,无法形成可广泛适用、有效管理MCU设备的设备管理方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其它的附图。
图1为本发明实施例提供的一种基于树形拓扑结构的设备管理方法的一个实施例的流程示意图;
图2为本发明实施例提供的嵌入式系统硬件的拓扑结构;
图3为本发明实施例提供的与真实设备一一对应的软件环境中的拓扑结构;
图4为本发明实施例提供的软件环境中的抽象拓扑结构;
图5为本发明实施例提供的软件环境中的设计类图;
图6为本发明实施例提供的创建根总线控制器示意图;
图7为本发明实施例提供的枚举设备流程示意图;
图8为本发明实施例提供的添加设备流程示意图;
图9为本发明实施例提供的注册驱动流程示意图;
图10为本发明实施例提供的添加总线流程示意图;
图11为本发明实施例提供的移除设备流程示意图;
图12为本发明实施例提供的移除总线流程示意图;
图13为本发明实施例提供的查找设备流程示意图;
图14为本发明实施例提供的调用设备方法流程示意图;
图15为本发明实施例提供的查找与设备匹配的驱动流程示意图;
图16为本发明实施例提供的匹配驱动的流程示意图;
图17为本发明实施例提供的查找与总线匹配的总线类型流程示意图。
具体实施方式
本发明实施例提供了一种基于树形拓扑结构的设备管理方法,用于解决现有技术中针对MCU的设备管理缺乏统一的管理,无法形成可广泛适用、有效管理MCU设备的设备管理方法。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供的一种基于树形拓扑结构的设备管理方法的一个实施例,包括:
S1、对设备管理模块进行初始化;
S2、通过设备管理模块创建根总线控制器;
S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若根总线设备为总线控制器则执行S4步骤;
S4、根据总线控制器创建总线,枚举总线上的设备作为总线设备添加至设备管理模块,若总线设备为总线控制器,则重复S4步骤,直到总线上没有总线控制器。
以上为对本发明实施例提供的一种基于树形拓扑结构的设备管理方法的详细描述,以下将对本发明实施例提供的一种基于树形拓扑结构的设备管理方法的过程进行详细的描述。
首先,请参阅图2,为嵌入式系统硬件的拓扑结构。
图2展示了某个嵌入式系统硬件的拓扑结构,可以发现设备之间其实是一种树形关系。图中不区分CPU的具体类型,把CPU直接控制的总线统称为PLB(Processor LocalBus,CPU本地总线)。在PLB总线上挂有很多外设,这些外设实现了各种各样的功能,例如GPIO、ADC等等。在SOC芯片的设计中,这些外设和CPU封装在同一个芯片中,如ARM芯片LPC1114。通常把CPU所在芯片内部的范围叫做片内,把芯片外部的范围叫做片外。在这些片内外设中,有些外设是总线控制器,如I2C、SPI等等。总线控制器可扩展出一条总线到片外,在外扩出的这条总线上又可以挂接符合该总线接口的IC(外设)。这些IC所处的物理位置可能在核心板上,也可能在用户底板上或其它地方,如图2中的CAT9555和CAT24C04芯片所示。如果IC又是总线控制器的话,那么又可以增加一级总线,如图2中SC18IS602B所示。从理论上讲,通过添加总线控制器,可以将系统的总线层次无限地增加,即系统的功能外设可无限扩展。
本发明的思路为对嵌入式系统硬件设备拓扑结构进行合适的抽象,使得在软件运行时能够准确还原设备的拓扑结构,如图3所示,在软件环境中建立了与真实设备一一对应的拓扑结构。
对图3做进一步抽象,不考虑设备的物理位置以及具体功能,即可得到如图4所示的抽象拓扑结构。
仔细观察图4,可发现这种树形的拓扑结构实际上是一种模式的重复,做进一步概念提炼和设计可得到如图5所示的设计类图。
以下将针对本发明中的一些模块及功能进行详细的介绍。
应用软件:任何需要使用设备管理的软件都称之为应用软件。
设备管理模块:设备管理是对系统中的设备进行管理的功能模块。
设备模块属性如下:
●驱动列表:用于存放所有注册的驱动。
●总线类型列表:用于存放所有注册的总线类型。
●未知总线列表:用于存放所有没有成功匹配总线类型的总线。
方法:
●注册驱动:将驱动注册到设备管理。
●注册总线类型:注册总线类型到设备管理。
●添加设备:向设备管理添加设备,通常由总线控制器调用。
●添加总线:向设备管理添加总线。
●查找设备:根据设备名和单元号查找设备。
●调用设备方法:根据方法名调用指定设备的方法。
●移除设备:从设备管理移除指定的设备。
●移除总线:从设备管理移除指定的总线。
设备:设备是对真实或虚拟设备的抽象,具有如下属性:
●设备名:设备的名字,用于将不同种类的设备区分开来,此属性由总线控制器设置。
●设备单元号:用于区分设备名相同的设备,此属性由总线控制器设置。
●总线类型ID:用于指明设备挂载在何种类型的总线上,此属性由总线控制器设置。
●驱动:对驱动的引用,当设备与驱动匹配时,此属性由设备管理设置。
●父总线:对设备父总线的引用,此属性由总线控制器设置。
●方法列表:方法列表存放设备能够提供给其它模块或应用程序调用的方法,方法是方法名和处理函数的组合,能够通过方法名找到对应的处理函数,方法列表由驱动设置。
驱动:驱动是访问和控制设备的软件程序,每个驱动可与多个设备关联。驱动属性:
●驱动名:驱动的名字。
●驱动类型:标识驱动为总线控制器驱动或设备驱动。
●总线类型ID:指明驱动属于哪一类总线类型下的驱动。
驱动方法:
●设备初始化:对设备进行初始化操作。
●设备移除:对设备进行移除操作。
●设备探测:判断驱动与设备是否匹配。
●其它方法:由驱动定义的其它方法。
总线控制器:总线控制器继承于设备,具有设备的所有特性,另外拥有一条子总线。
属性:
●包括设备的所有属性。
●子总线:总线控制器所对应的总线,其上可挂载多个设备或总线控制器。
总线:总线是对真实或虚拟总线的抽象,它具有挂载多个设备的能力,每条总线都有一个对应的总线控制器,还有一个对应的总线类型,若没有对应的总线类型,则被称为未知总线。
属性:
●总线控制器:对总线控制器的引用,此属性由设备管理设置。
●总线类型:对总线类型的引用,此属性由设备管理设置。
●单元号:用于区分总线类型相同的不同总线。
●已知设备列表:用于存放总线上驱动匹配成功的设备。
●未知设备列表:用于存放总线上驱动匹配失败的设备。
总线类型:总线类型是对某一类总线的抽象,归纳实现了某类总线的控制方法。
属性:
●总线类型ID:总线类型的标识,用于将不同种类的总线区分开来。
●总线列表:用于存放总线类型ID相同的总线。
方法:
●匹配方法:在总线控制器查找设备驱动时,用于检查驱动与设备是否匹配。
以上为对本发明中的一些模块及功能进行的详细介绍,以下将针对本发明实施例提供的基于树形拓扑结构的设备管理方法的具体实施步骤进行详细的描述。
本发明实施例提供的一种基于树形拓扑结构的设备管理方法的另一个实施例,包括:
S1、对设备管理模块进行初始化;
首先,根据应用软件对设备管理模块进行初始化。
S2、通过设备管理模块创建根总线控制器;
请参阅图6,在根据应用软件对设备管理进行初始化之后,由于根总线控制器为树形设备拓扑结构的根节点,且其没有父总线,所以由设备管理模块创建,因此通过设备管理模块创建根总线控制器。
S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若根总线设备为总线控制器则执行S4步骤;
请参阅图7,为枚举设备流程图。通过设备管理模块创建好根总线控制器之后,先通过根总线控制器枚举根总线上的设备,并添加至设备管理模块上成为根总线设备(即根总线上的设备),若根总线设备为总线控制器则视为总线控制器设备。其中,枚举设备的步骤具体如下:
1.总线控制器查找总线上的设备:
2.若发现新设备:
2.1创建设备,设置设备的父总线为总线控制器的子总线。
2.2将创建好的设备添加到设备管理。
S41、根据总线控制器创建总线,并查找总线上的设备,若发现新设备,则创建设备成为总线设备,并设置总线设备的父总线为总线控制器的子总线;
如果在根总线/总线上枚举、添加的设备(根总线设备/总线设备)为总线控制器,则根据总线控制器设备创建总线,并查找总线上的设备,若发现新设备,则创建设备成为总线设备(即总线上的设备),并设置总线设备的父总线为总线控制器的子总线。
S42、添加总线设备至设备管理模块,并查找与总线设备匹配的驱动,若找到匹配的驱动,将匹配的驱动关联到总线设备上,并将总线设备添加到总线设备的父总线的已知设备列表,并执行总线设备的初始化方法;若总线设备为总线控制器,则视为总线控制器设备,并重复S41和S42步骤,直到总线上没有总线控制器。
请参阅图8,在查找得总线设备后,添加总线设备至设备管理模块,并查找与总线设备匹配的驱动,若找到匹配的驱动,将匹配的驱动关联到总线设备上,并将总线设备添加到总线设备的父总线的已知设备列表,并执行总线设备的初始化方法;若总线设备为总线控制器,则视为总线控制器设备,并重复S41和S42步骤,直到总线上没有总线控制器。通过创建根总线控制器,并在根总线上查找、添加设备,并且在设备为总线控制器的情况下,继续创建总线、查找、添加设备,如此延续、拓展,使得各种设备形成有秩序的、容易查找、管理的树形拓扑。
S5、将驱动添加到设备管理模块的驱动列表中,并遍历相同总线类型的设备,若找到未知设备,则将驱动与未知设备进行匹配,若匹配,则将未知设备从未知设备的父总线上的未知设备列表中删除,并将未知设备添加到未知设备的父总线上的已知设备列表中。
请参阅图9,应用软件可在任意时刻将驱动注册到设备管理模块,其步骤如下:将驱动添加到设备管理模块的驱动列表中,并遍历相同总线类型的设备,若找到未知设备,则将未知设备从未知设备的父总线上的未知设备列表中删除,并将未知设备添加到设备管理模块。
S6、将总线类型添加到设备管理模块的总线类型列表中,遍历所有未知总线,并将遍历找到的未知总线添加到设备管理模块进行添加总线;
添加总线包括将总线控制器与总线相互关联,并查找与总线匹配的总线类型,若找到匹配的总线类型,则将总线类型关联到总线,并将总线添加到总线类型的总线列表中;再遍历总线上的未知设备,在设备管理模块的驱动列表中查找与未知设备相匹配的驱动,若匹配,则将未知设备从未知设备的父总线上的未知设备列表中删除,并将未知设备添加到未知设备的父总线上的已知设备列表中;
若未找到匹配的总线类型,则将总线添加到设备管理模块的未知总线列表中。
请参阅图10,添加总线通常由总线控制器调用,具体步骤如下:
1.将总线控制器与总线相互关联。
2.查找与总线匹配的总线类型:
2.1若找到匹配的总线类型:
2.1.1将总线类型关联到总线。
2.1.2将总线添加到总线类型的总线列表中。
2.1.3遍历总线上的未知设备:
2.1.3.1若找到未知设备:
2.1.3.1.1将设备从其父总线的未知设备列表中删除。
2.1.3.1.2将设备添加到设备管理。
2.2若未找到匹配的总线类型,则将总线添加到设备管理的未知总线列表中。
进一步地,还包括:
通过总线控制器进行移除设备和移除总线;
请参阅图11,移除设备包括:若移除的设备为已知设备时,调用设备的卸载方法,并将设备从设备的父总线的已知设备列表中删除;若移除的设备为总线控制器时,先移除总线控制器的总线,再移除总线控制器;
若移除的设备为未知设备时,将设备从设备的总线的未知设备列表中删除,并释放设备占用的内存资源;
请参阅图12,移除总线包括:遍历总线的已知设备列表和未知设备列表,若找到设备,则将设备从设备管理模块中移除,再将总线从总线类型的总线列表中删除,解除总线与总线控制器的关联,释放总线占用的内存等资源。
请参阅图13,进一步地,还包括:
查找设备,查找设备具体包括:在设备管理模块中获取一个总线类型,根据总线类型获取一个总线,根据总线获取一个设备,并检查设备的设备名和单元号是否与所需查找的设备的设备名和单元号匹配,若匹配则结束查找设备,否则重新进行查找设备。其具体步骤如下:
1.在设备管理的总线类型列表中取出(下)一个总线类型:
1.1若取得一个总线类型:
1.1.1在总线类型的总线列表中取出(下)一个总线:
1.1.1.1若取得一个总线:
1.1.1.1.1在总线的设备列表中取出(下)一个设备:
1.1.1.1.1.1若取得一个设备:
1.1.1.1.1.1.1检查设备的设备名和单元号是否与要查找的设备名和单元号匹配:
1.1.1.1.1.1.1.1若匹配,则找到设备,跳转到步骤2.
1.1.1.1.1.1.1.2若不匹配,则跳转到步骤1.1.1.1.1
1.1.1.1.1.2若没有取得设备,则跳转到步骤1.1.1
1.1.1.2若没有取得总线,则跳转到步骤1.
1.2若没有取得总线类型,则未找到设备,跳转至步骤3.
2.结束(找到设备)
3.结束(未找到设备)
请参阅图14,进一步地,还包括:
调用设备,调用设备包括:查找设备,并在找到设备后,在设备的方法列表中查找与设备匹配的方法,若找到匹配的方法,则调用方法的处理函数,并结束调用设备;若未找到匹配的方法,则结束调用设备。具体步骤如下:
1.查找设备:
1.1若找到设备:
1.1.1在设备的方法列表中查找与方法名匹配的方法:
1.1.1.1若找到匹配的方法,则调用方法的处理函数,然后跳转到步骤2
1.1.1.2若未找到匹配的方法,则直接跳转到步骤2
1.2若未找到设备
2.结束
请参阅图15,进一步地,还包括:
查找与设备匹配的驱动,具体步骤包括:检查设备的父总线是否为未知总线,若为未知总线则结束查找过程,否则从设备管理模块的驱动列表获取一个驱动并判断驱动是否与设备匹配成功,若驱动匹配成功则结束查找过程,否则重新从设备管理模块的驱动列表获取一个驱动并判断驱动是否与设备匹配成功;若没有从设备管理模块获取驱动,则结束查找过程。具体步骤如下:
1.检查设备的父总线是否是未知总线:
1.1若是未知总线,则直接跳转到步骤2
1.2若不是未知总线:
1.2.1从设备管理的驱动列表中取得(下)一个驱动:
1.2.1.1若取得驱动,则判断驱动是否匹配(细化步骤请参考1.4.12):
1.2.1.1.1若驱动匹配成功,则跳转到步骤3
1.2.1.1.2若驱动匹配失败,则跳转到步骤1.2.1
1.2.1.2若没有取得驱动,则跳转到步骤2
2.结束(未找到与设备匹配的驱动)
3.结束(找到与设备匹配的驱动)
请参阅图16,进一步地,还包括:
驱动与设备的匹配,具体步骤包括:检查驱动与设备的总线类型ID是否相同:若相同,则调用总线类型的匹配方法检查驱动与设备是否匹配:若匹配,则调用驱动的设备探测方法检查是否驱动是否支持设备:若探测成功,则匹配成功,并结束匹配过程,若探测失败,则匹配失败,并结束匹配过程;若不匹配,则匹配失败,结束匹配过程;若不相同,则匹配失败,结束匹配过程。具体步骤如下:
1.检查驱动和设备的总线类型ID是否相同:
1.1若相同,再调用总线类型的匹配方法检查驱动与设备是否匹配:
1.1.1若匹配,再调用驱动的设备探测方法检查是否驱动是否支持设备:
1.1.1.1若探测成功,则匹配成功,跳转到步骤2
1.1.1.2若探测失败,则匹配失败,跳转到步骤3
1.1.2若不匹配,则匹配失败,跳转到步骤3
1.2若不相同,则匹配失败,跳转到步骤3
2.结束(匹配成功)
3.失败(匹配失败)
请参阅图17,进一步地,还包括:
查找与总线匹配的总线类型,具体步骤包括:在设备管理的总线类型列表中获取一个总线类型:若获取得总线类型,则检查总线类型与总线的总线类型ID是否匹配:若匹配,则找到匹配的总线类型,结束查找过程;若不匹配,则重新在设备管理的总线类型列表中获取一个总线类型进行查找;若未获取得总线类型,则结束查找。具体步骤如下:
1.在设备管理的总线类型列表中取(下)一个总线类型:
1.1若取得总线类型,则坚持总线类型与总线的总线类型ID是否匹配:
1.1.1若匹配,则找到了匹配的总线类型,跳转到步骤2
1.1.2若不匹配,则跳转到步骤1.
1.2若未取得总线类型,则跳转到步骤3
2.结束(找到了匹配的总线类型)
3.结束(未找到匹配的总线类型)
相比现有技术,本发明提供的基于树形拓扑结构的设备管理方法具有的优势如下:
1.能够在软件运行时完整重建真实的树形设备拓扑结构;
2.能最大限度地复用驱动,极大简化了驱动程序的编写;
3.应用只需知道设备的名字和单元号即可控制设备,而不用关心设备的实际位置;
4.当移除一个设备时,能够自动移除其下游总线及设备;
5.能够应用于任何总线及其之上设备的管理,比如USB、PCI-E总线等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于树形拓扑结构的设备管理方法,其特征在于,包括:
S1、对设备管理模块进行初始化;
S2、通过设备管理模块创建根总线控制器;
S3、通过根总线控制器枚举根总线上的设备作为根总线设备添加至设备管理模块,若所述根总线设备为总线控制器则执行S4步骤;
S4、根据所述总线控制器创建总线,枚举总线上的设备作为总线设备添加至设备管理模块,若总线设备为总线控制器,则重复S4步骤,直到总线上没有总线控制器。
2.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,步骤S4具体包括:
S41、根据所述总线控制器创建总线,并查找总线上的设备,若发现新设备,则创建设备成为总线设备,并设置所述总线设备的父总线为总线控制器的子总线;
S42、添加所述总线设备至设备管理模块,并查找与所述总线设备匹配的驱动,若找到匹配的驱动,将所述匹配的驱动关联到所述总线设备上,并将所述总线设备添加到所述总线设备的父总线的已知设备列表,并执行所述总线设备的初始化方法;若总线设备为总线控制器,则视为总线控制器设备,并重复S41和S42步骤,直到总线上没有总线控制器。
3.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
S5、将驱动添加到设备管理模块的驱动列表中,并遍历相同总线类型的设备,若找到未知设备,则将驱动与所述未知设备进行匹配,若匹配,则将所述未知设备从所述未知设备的父总线上的未知设备列表中删除,并将所述未知设备添加到所述未知设备的父总线上的已知设备列表中。
4.根据权利要求3所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
S6、将总线类型添加到设备管理模块的总线类型列表中,遍历所有未知总线,并将遍历找到的所述未知总线添加到设备管理模块进行添加总线;
所述添加总线包括将总线控制器与总线相互关联,并查找与所述总线匹配的总线类型,若找到匹配的总线类型,则将总线类型关联到所述总线,并将所述总线添加到总线类型的总线列表中;再遍历所述总线上的未知设备,在设备管理模块的驱动列表中查找与所述未知设备相匹配的驱动,若匹配,则将所述未知设备从所述未知设备的父总线上的未知设备列表中删除,并将所述未知设备添加到所述未知设备的父总线上的已知设备列表中;
若未找到匹配的总线类型,则将所述总线添加到设备管理模块的未知总线列表中。
5.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
通过总线控制器进行移除设备和移除总线;
所述移除设备包括:若移除的设备为已知设备时,调用所述设备的卸载方法,并将所述设备从所述设备的父总线的已知设备列表中删除;若移除的设备为总线控制器时,先移除总线控制器的总线,再移除所述总线控制器;
若移除的设备为未知设备时,将所述设备从所述设备的总线的未知设备列表中删除,并释放所述设备占用的内存资源;
所述移除总线包括:遍历总线的已知设备列表和未知设备列表,若找到设备,则将所述设备从设备管理模块中移除,再将所述总线从总线类型的总线列表中删除,解除所述总线与总线控制器的关联,释放总线占用的内存等资源。
6.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
查找设备,所述查找设备具体包括:在设备管理模块中获取一个总线类型,根据所述总线类型获取一个总线,根据所述总线获取一个设备,并检查所述设备的设备名和单元号是否与所需查找的设备的设备名和单元号匹配,若匹配则结束查找设备,否则重新进行查找设备。
7.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
调用设备,所述调用设备包括:查找设备,并在找到设备后,在所述设备的方法列表中查找与所述设备匹配的方法,若找到匹配的方法,则调用方法的处理函数,并结束调用设备;若未找到匹配的方法,则结束调用设备。
8.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
查找与设备匹配的驱动,具体步骤包括:检查设备的父总线是否为未知总线,若为未知总线则结束查找过程,否则从设备管理模块的驱动列表获取一个驱动并判断所述驱动是否与所述设备匹配成功,若所述驱动匹配成功则结束查找过程,否则重新从设备管理模块的驱动列表获取一个驱动并判断所述驱动是否与所述设备匹配成功;若没有从设备管理模块获取驱动,则结束查找过程。
9.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
驱动与设备的匹配,具体步骤包括:检查驱动与设备的总线类型ID是否相同:若相同,则调用总线类型的匹配方法检查所述驱动与所述设备是否匹配:若匹配,则调用驱动的设备探测方法检查是否所述驱动是否支持所述设备:若探测成功,则匹配成功,并结束匹配过程,若探测失败,则匹配失败,并结束匹配过程;若不匹配,则匹配失败,结束匹配过程;若不相同,则匹配失败,结束匹配过程。
10.根据权利要求1所述的基于树形拓扑结构的设备管理方法,其特征在于,还包括:
查找与总线匹配的总线类型,具体步骤包括:在设备管理的总线类型列表中获取一个总线类型:若获取得总线类型,则检查总线类型与总线的总线类型ID是否匹配:若匹配,则找到匹配的总线类型,结束查找过程;若不匹配,则重新在设备管理的总线类型列表中获取一个总线类型进行查找;若未获取得总线类型,则结束查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611168617.XA CN106844260A (zh) | 2016-12-16 | 2016-12-16 | 一种基于树形拓扑结构的设备管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611168617.XA CN106844260A (zh) | 2016-12-16 | 2016-12-16 | 一种基于树形拓扑结构的设备管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844260A true CN106844260A (zh) | 2017-06-13 |
Family
ID=59140053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611168617.XA Pending CN106844260A (zh) | 2016-12-16 | 2016-12-16 | 一种基于树形拓扑结构的设备管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844260A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1437726A (zh) * | 2000-03-02 | 2003-08-20 | 凤凰技术有限公司 | 在计算机运行中交换设备的装置与方法 |
CN102841833A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | Pci资源遍历方法及系统 |
CN102866966A (zh) * | 2012-08-28 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种Linux操作系统的设备驱动控制方法和装置 |
-
2016
- 2016-12-16 CN CN201611168617.XA patent/CN106844260A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1437726A (zh) * | 2000-03-02 | 2003-08-20 | 凤凰技术有限公司 | 在计算机运行中交换设备的装置与方法 |
CN102841833A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | Pci资源遍历方法及系统 |
CN102866966A (zh) * | 2012-08-28 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种Linux操作系统的设备驱动控制方法和装置 |
Non-Patent Citations (4)
Title |
---|
《电脑爱好者》: "《硬件应用绝密X档案 台式机笔记本电脑外设安装、调试、排障万用全书》", 31 December 2006 * |
CHRIS CANT: "《WindowsWDM设备驱动程序开发指南》", 31 December 2000 * |
周巍: "《大学计算机基础》", 31 December 2015 * |
崔燕: "《WINDOWS SERVER 2003完全学习手册》", 31 December 2003 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8539504B2 (en) | Heterogeneous architecture in pooling management | |
CN103733565B (zh) | 用于局域网唤醒的以太网物理层上的媒体存取控制过滤方法和系统 | |
CN103123604B (zh) | 跟踪数据处理系统的内存使用的方法 | |
CN100407151C (zh) | 用于管理多个热插拔操作的系统和方法 | |
CN108897628A (zh) | 一种分布式锁的实现方法、装置及电子设备 | |
ITTO20000034A1 (it) | Procedimento e dispositivo di installazione di software recuperabile per un sistema di elabratore. | |
CN107769949A (zh) | 一种应用组件部署方法及部署节点 | |
CN106775877A (zh) | 一种固件刷新方法及一种服务器 | |
CN103473115B (zh) | 虚拟机放置方法和装置 | |
US9588542B2 (en) | Rack server system and method for automatically managing rack configuration information | |
CN103198122B (zh) | 重启内存数据库的方法和装置 | |
CN106789363A (zh) | 一种向虚拟机配置网卡的方法及装置 | |
WO2010057380A1 (zh) | 一种数据卡的异常恢复方法、装置及数据卡 | |
CN103259688A (zh) | 一种分布式存储系统的故障诊断方法与装置 | |
CN106095483A (zh) | 服务的自动化部署方法及装置 | |
CN102981949A (zh) | 一种在线自动测试服务器的方法 | |
CN103441935A (zh) | 自动识别服务器与接入交换机的邻接关系的方法及装置 | |
CN106878204A (zh) | 一种虚拟机的创建方法和装置 | |
CN105068946A (zh) | 一种安卓设备的识别方法和装置 | |
CN116521429B (zh) | 资产信息的上报方法及装置、存储介质及电子设备 | |
WO2013075501A1 (zh) | 节点热插拔的方法及装置 | |
CN108804249A (zh) | 信息处理方法及电子设备 | |
CN103399832A (zh) | 总线间的乱序返回数据的归序方法 | |
US20240107647A1 (en) | Control method, control device and lighting system | |
CN112925653B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |