CN107153621B - 设备识别方法及装置 - Google Patents
设备识别方法及装置 Download PDFInfo
- Publication number
- CN107153621B CN107153621B CN201710263562.9A CN201710263562A CN107153621B CN 107153621 B CN107153621 B CN 107153621B CN 201710263562 A CN201710263562 A CN 201710263562A CN 107153621 B CN107153621 B CN 107153621B
- Authority
- CN
- China
- Prior art keywords
- port
- bus
- list
- event
- event list
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000001514 detection method Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000010354 integration Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000002131 composite material Substances 0.000 description 5
- 101100004933 Arabidopsis thaliana CYP79F1 gene Proteins 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000005059 dormancy Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明是关于一种设备识别方法及装置,属于数据传输技术领域。所述方法包括:接收对电子设备的唤醒指令;获取电子设备的多个总线的事件列表,每个总线的事件列表用于指示总线所连接的设备;如果多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将指定总线的事件列表插入事件总列表的头部,以使蓝牙设备第一个被识别,其中,指定总线是指连接有蓝牙设备的总线。本发明通过获取电子设备的多个事件列表,确定连接有蓝牙设备的指定总线的事件列表,使得在生成事件总列表时,指定总线的事件列表可以插入事件总列表的头部,在接收到唤醒指令时,指定总线连接的蓝牙设备可以第一个被识别,加快了蓝牙设备回链的速度,智能性较优。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种设备识别方法及装置。
背景技术
Linux(类多任务操作系统)是一种自由和开放源代码的操作系统,从手机、平板电脑、路由器、视频游戏控制台,到台式计算机和服务器中均得到了应用,尤其在机顶盒和智能电视等嵌入式电子设备中得到了广泛的应用。目前,内核为Linux的电子设备大部分都支持STR(Suspend to Ram,挂起到内存)功能,STR功能可以使电子设备实现快速休眠以及快速唤醒。电子设备使用的CPU(Central Processing Unit,中央处理器)大部分都包括3个以上USB(Universal Serial Bus,通用串行总线)控制器,例如mstar 938芯片包括5个USB2.0控制器,2个USB 3.0控制器,这样在Linux内核中这7个USB控制器便会对应7条USB总线。当有USB外接设备插入USB接口上时,实质上为连接到USB总线,这样电子设备交流或直流上电时,Linux内核便会对插入USB接口上的USB外接设备进行识别。
相关技术中,当电子设备执行STR功能进行快速唤醒时,由于当前电子设备中的环境为多线程环境,因此,电子设备识别USB总线的顺序不定。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
目前,对于一些诸如智能电视的电子设备,均会配备遥控装置,因此,在智能电视的USB总线上会连接有蓝牙芯片,以便遥控装置可以基于蓝牙芯片实现对智能电视的远程控制。假设蓝牙芯片连接在智能电视的USB总线1上,如果智能电视的其他USB接口上还插入了其他USB外接设备,在智能电视执行STR功能进行快速唤醒时,由于智能电视识别USB总线的顺序不定,因此,蓝牙芯片被识别的顺序不定,有时可能识别顺序较为靠后,导致蓝牙控制器回链的时延较大,智能性较差。
发明内容
为克服相关技术中存在的问题,本发明提供一种设备识别方法及装置。
根据本发明实施例的第一方面,提供一种设备识别方法,所述方法包括:
接收对电子设备的唤醒指令;
获取所述电子设备的多个总线的事件列表,每个总线的事件列表用于指示所述总线所连接的设备;
如果所述多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将所述指定总线的事件列表插入所述事件总列表的头部,以使蓝牙设备第一个被识别,其中,所述指定总线是指连接有所述蓝牙设备的总线。
本发明实施例提供的方法,通过获取电子设备的多个总线的事件列表,确定连接有蓝牙设备的指定总线的事件列表,使得在生成事件总列表时,指定总线的事件列表可以插入事件总列表的头部,保证在接收到对电子设备的唤醒指令时,指定总线连接的蓝牙设备可以第一个被识别,加快了蓝牙设备回链的速度,智能性较优。
在另一个实施例中,所述电子设备的多个总线的事件列表包括:
对于每一个总线,基于所述总线的至少一个端口上连接的设备生成所述总线的事件列表。
本发明实施例提供的方法,根据总线的至少一个端口连接的设备生成总线的事件列表,使得可以明确每个总线的各个端口上连接的设备,可以按照端口上连接的设备确定蓝牙芯片所在的端口,更加简洁明了。
在另一个实施例中,所述将所述指定总线的事件列表插入所述事件总列表的头部之后,所述方法还包括:
对于每一个总线,按照所述事件总列表中的事件列表顺序,向所述总线发送状态获取指令,获取所述总线上至少一个端口的当前状态;
向所述至少一个端口发送复位指令,以使所述至少一个端口的当前状态为初始化状态;
为所述至少一个端口分配设备地址;
对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符,所述设备描述符用于描述所述设备的设备参数;
基于所述设备描述符获取所述设备的配置信息;
基于所述配置信息对所述设备进行驱动。
本发明实施例提供的方法,通过复位每个总线的各个端口,为各个端口分配设备地址,并根据各个端口连接的设备生成设备描述符,使得可以基于设备描述符获取设备的配置信息,根据配置信息对设备进行驱动,保证了对设备进行的驱动符合设备本身的属性,提高了稳定性。
在另一个实施例中,所述对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符包括:
对于所述至少一个端口上连接的每个设备,检测所述设备的速度类型,所述速度类型至少包括全速、高速和快速;
向所述设备所连接的端口发送数据量获取指令,确定所述设备可接收的数据量;
将所述速度类型和所述数据量作为所述设备的设备描述符。
本发明实施例提供的方法,获取设备的速度类型和设备可接收的数据量,将速度类型和数据量作为设备描述符,使得在后续向设备进行数据传输时的速度及数据量符合设备本身的属性,保证了设备的稳定性。
在另一个实施例中,所述向所述至少一个端口发送复位指令之后,所述方法还包括:
向所述至少一个端口发送状态检测指令,所述状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;
对于所述至少一个端口中的任一端口,若检测到所述端口的当前状态为初始化状态,则允许所述端口基于默认控制端点进行数据传输。
本发明实施例提供的方法,通过向端口发送状态检测指令检测端口的当前状态,保证端口为初始化状态时才可基于默认控制端点进行数据传输,使得电子设备在进行唤醒后,可以重新对端口连接的各个设备进行识别,避免受到唤醒前设备状态的影响。
在另一个实施例中,所述事件总列表包括至少一个事件列表,所述至少一个事件列表至少包括前驱、数据及后继;
对于所述至少一个事件列表中的任一事件列表,所述前驱包括当前事件列表的前一事件列表的列表指针,所述后继包括当前事件列表的后一事件列表的列表指针,所述列表指针用于指示事件列表。
本发明实施例提供的方法,在每个事件列表的前驱中增加上一事件列表的列表指针,并在后继中增加下一事件列表的列表指针,使得事件总列表中的前后事件列表均存在关联,保证了事件列表的安全性,避免发生事件列表丢失。
根据本发明实施例的第二方面,提供一种设备识别装置,所述装置包括:
接收模块,用于接收对电子设备的唤醒指令;
列表获取模块,用于获取所述电子设备的多个总线的事件列表,每个总线的事件列表用于指示所述总线所连接的设备;
插入模块,用于如果所述多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将所述指定总线的事件列表插入所述事件总列表的头部,以使蓝牙设备第一个被识别,其中,所述指定总线是指连接有所述蓝牙设备的总线。
在另一个实施例中,所述电子设备的多个总线的事件列表包括:
对于每一个总线,基于所述总线的至少一个端口上连接的设备生成所述总线的事件列表。
在另一个实施例中,所述装置还包括:
状态获取模块,用于对于每一个总线,按照所述事件总列表中的事件列表顺序,向所述总线发送状态获取指令,获取所述总线上至少一个端口的当前状态;
复位模块,用于向所述至少一个端口发送复位指令,以使所述至少一个端口的当前状态为初始化状态;
分配模块,用于为所述至少一个端口分配设备地址;
生成模块,用于对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符,所述设备描述符用于描述所述设备的设备参数;
信息获取模块,用于基于所述设备描述符获取所述设备的配置信息;
驱动模块,用于基于所述配置信息对所述设备进行驱动。
在另一个实施例中,所述生成模块包括:
检测子模块,用于对于所述至少一个端口上连接的每个设备,检测所述设备的速度类型,所述速度类型至少包括全速、高速和快速;
发送子模块,用于向所述设备所连接的端口发送数据量获取指令,确定所述设备可接收的数据量;
生成子模块,用于将所述速度类型和所述数据量作为所述设备的设备描述符。
在另一个实施例中,所述装置还包括:
发送模块,用于向所述至少一个端口发送状态检测指令,所述状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;
传输模块,用于对于所述至少一个端口中的任一端口,若检测到所述端口的当前状态为初始化状态,则允许所述端口基于默认控制端点进行数据传输。
在另一个实施例中,所述事件总列表包括至少一个事件列表,所述至少一个事件列表至少包括前驱、数据及后继;
对于所述至少一个事件列表中的任一事件列表,所述前驱包括当前事件列表的前一事件列表的列表指针,所述后继包括当前事件列表的后一事件列表的列表指针,所述列表指针用于指示事件列表。
本发明的实施例提供的技术方案可以包括以下有益效果:
通过获取电子设备的多个总线的事件列表,确定连接有蓝牙设备的指定总线的事件列表,使得在生成事件总列表时,指定总线的事件列表可以插入事件总列表的头部,保证在接收到对电子设备的唤醒指令时,指定总线连接的蓝牙设备可以第一个被识别,加快了蓝牙设备回链的速度,智能性较优。
在另一个实施例中,根据总线的至少一个端口连接的设备生成总线的事件列表,使得可以明确每个总线的各个端口上连接的设备,可以按照端口上连接的设备确定蓝牙芯片所在的端口,更加简洁明了。
在另一个实施例中,通过复位每个总线的各个端口,为各个端口分配设备地址,并根据各个端口连接的设备生成设备描述符,使得可以基于设备描述符获取设备的配置信息,根据配置信息对设备进行驱动,保证了对设备进行的驱动符合设备本身的属性,提高了稳定性。
在另一个实施例中,获取设备的速度类型和设备可接收的数据量,将速度类型和数据量作为设备描述符,使得在后续向设备进行数据传输时的速度及数据量符合设备本身的属性,保证了设备的稳定性。
在另一个实施例中,通过向端口发送状态检测指令检测端口的当前状态,保证端口为初始化状态时才可基于默认控制端点进行数据传输,使得电子设备在进行唤醒后,可以重新对端口连接的各个设备进行识别,避免受到唤醒前设备状态的影响。
在另一个实施例中,在每个事件列表的前驱中增加上一事件列表的列表指针,并在后继中增加下一事件列表的列表指针,使得事件总列表中的前后事件列表均存在关联,保证了事件列表的安全性,避免发生事件列表丢失。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1A是根据一示例性实施例示出的一种电子设备的总线拓扑图;
图1B是根据一示例性实施例示出的一种电子设备的软件架构图;
图2A是根据一示例性实施例示出的一种设备识别方法的流程图;
图2B是根据一示例性实施例示出的一种设备识别方法的示意图;
图2C是根据一示例性实施例示出的一种设备识别方法的流程图;
图3A是根据一示例性实施例示出的一种设备识别装置的框图;
图3B是根据一示例性实施例示出的一种设备识别装置的框图;
图3C是根据一示例性实施例示出的一种生成模块的框图;
图3D是根据一示例性实施例示出的一种设备识别装置的框图;
图4是根据一示例性实施例示出的一种设备识别装置400的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在对本发明进行详细的解释说明之前,先对本发明涉及的电子设备中总线拓扑进行简单介绍。
参见图1A,电子设备包括主机控制器、集成和复合设备。主机控制器也即HostController,用于接收电子设备的CPU(Central Processing Unit,中央处理器)发送的指令,一般来说,当CPU需要电子设备当前连接的设备执行某个指令时,需要向主机控制器发送指令,由主机控制器指挥设备执行指令,并在设备执行指令成功后向CPU返回成功响应。
集成也即为Hub,与主机控制器对应的集成称为根集成,每一个根集成也即为一条总线,电子设备在对连接的设备进行驱动时,需要基于总线实现。由图1A可知,一条总线上可能会连接有多个设备,设备在连接到总线上时,可以基于总线的子集成进行连接,也可以直接连接至总线上。对于每一个设备来说,其可能具有多个功能,也即FUNC(功能),每个功能可以实现一项任务,这样,每个功能均可以对应一个设备驱动。
复合设备也即为Compound Device,用于将子集成与连接到子集成上的设备进行封装。对于复合设备来说,复合设备中存在的子集成与连接到子集成上的设备均具有独立的地址,复合设备也具有唯一的地址。
需要说明的是,图1B为Linux内核中USB系统的软件架构图,其中,USBCore层负责实现电子设备的核心功能,可以与主机控制器进行交互,为电子设备的驱动程序提供服务,提供一个用于访问和控制电子设备当前连接的设备的接口。
图2A是根据一示例性实施例示出的一种设备识别方法的流程图,如图2A所示,该方法用于电子设备中,包括以下步骤。
在步骤201中,对于每一个总线,基于总线的至少一个端口上连接的设备生成总线的事件列表。
在本发明实施例中,对于每一个总线,其均对应至少一个端口,为了对总线对应的至少一个端口上连接的设备进行识别,判断总线上是否连接有蓝牙设备,电子设备可以基于总线的至少一个端口上连接的设备生成总线的事件列表。其中,事件列表可为event_list,可以包括端口上连接设备的设备标识、设备型号等,除此之外还可以包括设备的厂商信息等。
在步骤202中,接收对电子设备的唤醒指令。
在本发明实施例中,为了方便用户操作,多数电子设备均为用户提供STR功能,STR功能可以使电子设备实现快速休眠以及快速唤醒。当电子设备开机时,电子设备会依次识别总线上连接的设备,并驱动设备运行,当用户由于暂时离开等原因需要离开时,为了节省电能,降低电子设备的损耗,用户可以基于电子设备的STR功能,使电子设备进入待机状态。为了使用户在需要电子设备继续进行工作时对电子设备进行唤醒,电子设备可以提供唤醒入口,当电子设备检测到用户触发唤醒入口唤醒电子设备时,则生成唤醒指令,使电子设备检测到该唤醒指令,并迅速从待机状态进入工作状态。
在步骤203中,获取电子设备的多个总线的事件列表。
在本发明实施例中,由于每个总线的事件列表用于指示该总线所连接的设备,因此,在接收到对电子设备的唤醒指令时,需要获取每个总线的事件列表,根据事件列表在后续步骤中对各个总线上连接的设备进行识别,从而使得电子设备能够根据在识别过程中所获取到的设备的配置信息对设备进行驱动,使得设备可以进入工作状态。
在步骤204中,如果多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将指定总线的事件列表插入事件总列表的头部,以使蓝牙设备第一个被识别,其中,指定总线是指连接有蓝牙设备的总线。
为了使电子设备在进行快速唤醒时,连接有蓝牙设备的总线可以第一个被识别,从而加快蓝牙设备的回链速度,因此,需要对蓝牙设备所连接的指定总线进行识别。这样,在生成事件总列表时,将连接有蓝牙设备的指定总线所对应的事件列表插入事件总列表的头部,使得连接有蓝牙设备的指定总线所对应的事件列表可以第一个被处理。对于连接有蓝牙设备的总线,在其对应的事件列表中会存储有诸如该蓝牙设备的厂商信息、设备型号等信息,事件列表对于蓝牙设备会存储这类信息,而对于其他普通设备例如U盘等,可能不会存储这类信息,因此,当电子设备在事件列表中获取到该信息时,即可确定该事件列表对应的指定总线上连接有蓝牙设备。
在生成事件总列表时,对全部总线的事件列表进行汇总,即可得到事件总列表。事件总列表可为Hub_event_list,包括至少一个事件列表,由于连接到主机控制器的根集成同一时间只能处理一个总线的驱动请求,因此,为了不影响处理其他总线发送的驱动请求,Linux内核使用了队列的方法,将所有发送到根集成的驱动请求按照接收到的先后顺序进行排序,生成事件总列表。在电子设备进行待机时,可以依次运行总线对应的Suspend函数,基于Suspend函数将各个总线上连接的设备暂时挂起,使得设备可以暂停工作。其中,电子设备在运行Suspend函数时,其运行的顺序为总线7至总线1。当电子设备执行STR功能实现快速唤醒时,会通过运行Resume函数将事件列表按照唤醒的先后顺序放入事件总列表,完成事件总列表的生成。其中,为了方便监控事件总列表,电子设备中可以创建一个Hub_thread进程,并基于Hub_thread进程运行Resume函数,并监控事件总列表中是否需要添加新的事件列表。
当确定连接有蓝牙设备的指定总线后,电子设备在生成事件总列表时,将指定总线对应的事件列表插入事件总列表的头部,这样在对至少一个总线进行驱动时,电子设备可以首先驱动指定总线,使指定总线上连接的设备最先被识别。参见图2B所示的生成事件总列表的过程,当前存在BUS1,BUS2,BUS3,BUS4和BUS7五个事件列表,在经过电子设备的识别后,确定指定总线对应的事件列表为BUS1,因此,电子设备在生成事件总列表时,将BUS1插入事件总列表的头部,也即事件总列表的HEAD,以便BUS1可以最先被处理。
参见图2C,对于事件总列表中的每一个事件列表,事件列表均包括前驱、数据及后继。事件列表的前驱用于存储当前事件列表的前一事件列表的列表指针,后继用于存储当前事件列表的后一事件列表的列表指针,这样在生成事件总列表时,可以将事件总列表中的各个事件列表关联起来,保证了事件总列表中数据的安全性,避免在后续对事件总列表中的事件列表进行处理时,由于故障或操作不当引起的事件列表丢失。
在生成事件总列表后,电子设备便可以基于事件总列表中的事件列表对总线上连接的设备进行驱动。对于每个总线,电子设备在对总线上的设备进行驱动时,可以采用枚举的方式,对总线上连接的设备一一进行枚举并驱动。其中,电子设备对总线上连接的设备进行枚举并驱动时,可以采用下述步骤一至步骤六实现。
步骤一、对于每一个总线,按照事件总列表中的事件列表顺序,向总线发送状态获取指令,获取总线上至少一个端口的当前状态。
在本发明实施例中,当电子设备检测到有设备连接至总线对应的端口上时,设备的上拉电阻会使其连接的总线的信号线的电位升高,这时,总线便会检测到有设备接入到其对应的端口中,以便对设备进行识别。当电子设备进行快速唤醒时,为了确定总线上至少一个端口上当前是否连接有设备,需要获取端口的当前状态,因此,需要向各个端口发送状态获取指令,状态获取指令可为Get_statues。
其中,对于总线上至少一个端口,其当前状态可为挂起状态、运行状态等。当电子设备向各个端口发送状态获取指令后,端口可对连接的设备进行检测,确定设备的当前状态,将设备的当前状态基于总线返回给电子设备,以使电子设备获取已连接的设备的当前状态。
步骤二、向至少一个端口发送复位指令,以使至少一个端口的当前状态为初始化状态。
在本发明实施例中,复位指令可为Set_Feature,用于将总线对应的至少一个端口的当前状态置为初始化状态,初始化状态也即为设备未开始进行工作时的状态。为了保证在对电子设备进行快速唤醒后,连接在电子设备上的设备不会受到电子设备在待机时状态的影响,因此,需要对电子设备全部总线对应的端口进行复位,将全部总线的端口的当前状态均置为初始化状态,以便连接到电子设备的设备可以重新开始工作。
步骤三、向所述至少一个端口发送状态检测指令,所述状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;对于所述至少一个端口中的任一端口,若检测到所述端口的当前状态为初始化状态,则允许所述端口基于默认控制端点进行数据传输。
在本发明实施例中,状态检测指令可为Get_Statue,用于获取端口当前的状态,判断端口当前的状态是否为初始化状态,并在确定端口当前状态为初始化状态之后可允许端口基于默认控制端点进行数据传输。由于端口在初始化状态下并未分配设备地址,为了在后续可以对端口进行数据传输,为端口分配设备地址,因此,在端口完成初始化时,便允许端口基于默认控制端点进行数据传输。其中,对于多个不同的端口,可以使用同一默认控制端点进行数据的传输。
步骤四、为至少一个端口分配设备地址。
在本发明实施例中,为了在后续可以获取端口上连接的设备的配置信息以及对设备进行数据传输,因此,需要为连接有设备的端口分配设备地址。其中,在为端口分配设备地址时,由于当前端口并未分配设备地址,因此,需要基于默认控制端点向端口发送地址分配指令,以便为连接有设备的端口分配与其对应的设备地址。其中,地址分配指令可为Set_Address,用于为端口分配对应的设备地址。
步骤五、对于至少一个端口上连接的每个设备,生成设备的设备描述符,设备描述符用于描述设备的设备参数,基于设备描述符获取设备的配置信息。
在本发明实施例中,对于至少一个端口上连接的每个设备,设备描述符可以包括设备的速度类型和设备可以接收的数据量。在获取设备可接收的数据量时,可以基于默认控制端点向连接有设备的端口发送数据量获取指令,以便端口将所连接的设备可以接收的数据量返回至电子设备,电子设备可以根据数据量生成设备对应的设备描述符。其中,在获取端口上连接的设备可接收的数据量时,可以向端口发送Get_Device_Descriptor,这样端口在接收到Get_Device_Descriptor后,将设备可接收的数据量返回至电子设备。
对于至少一个端口上连接的每个设备,在确定设备的速度类型时,可以基于默认控制端点对设备的类型进行检测。其中,速度类型可以包括全速、高速和快速。
当确定设备的可接收的数据量和速度类型后,便可基于数据量和速度类型生成设备对应的设备描述符。其中,在生成设备描述符时,可以基于Get_Device_Descriptor生成。
在确定设备对应的设备描述符后,为了使在对设备进行驱动时,可以基于设备的自身属性进行驱动,因此,需要基于设备对应的设备描述符获取设备的配置信息,以便电子设备可以基于设备的配置信息对设备进行驱动,避免由于不合适的驱动对设备造成损坏,提高了电子设备的稳定性。其中,在基于设备描述符获取设备对应的配置信息时,可以基于Get_Device_Configuration进行获取。
步骤六、基于配置信息对设备进行驱动。
在本发明实施例中,当获取到设备对应的配置信息时,电子设备即可基于设备的配置信息对设备进行驱动,以使设备可以正常的工作运行。
需要说明的是,对于电子设备中的任一总线,均可基于上述步骤一至步骤六实现对总线上至少一个端口连接的设备进行识别驱动的过程,而电子设备在对总线上至少一个端口连接的设备进行识别驱动时,需要根据事件总列表中的事件列表对总线上连接的设备进行识别驱动,也即需要根据事件总列表中事件列表的排列顺序依次对事件列表对应的总线上连接的设备进行识别驱动,因此,将连接有蓝牙设备的总线对应的事件列表插入事件总列表的头部便可使电子设备在对总线上连接的设备进行识别驱动时,可以最先识别蓝牙设备,加快了蓝牙设备回链的速度。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
本发明实施例提供的方法,通过获取电子设备的多个总线的事件列表,确定连接有蓝牙设备的指定总线的事件列表,使得在生成事件总列表时,指定总线的事件列表可以插入事件总列表的头部,保证在接收到对电子设备的唤醒指令时,指定总线连接的蓝牙设备可以第一个被识别,加快了蓝牙设备回链的速度,智能性较优。
图3A是根据一示例性实施例示出的一种设备识别装置的框图。参照图3A,该装置包括接收模块301,列表获取模块302和插入模块303。
该接收模块301,用于接收对电子设备的唤醒指令。
该列表获取模块302,用于获取电子设备的多个总线的事件列表,每个总线的事件列表用于指示总线所连接的设备。
该插入模块303,用于如果多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将指定总线的事件列表插入事件总列表的头部,以使蓝牙设备第一个被识别,其中,指定总线是指连接有蓝牙设备的总线。
本发明实施例提供的装置,通过获取电子设备的事件总列表,在事件总列表中确定连接有蓝牙设备的指定总线的事件列表,使得指定总线的事件列表可以插入事件总列表的头部,保证在接收到对电子设备的唤醒指令时,指定总线连接的蓝牙设备可以第一个被识别,加快了蓝牙设备回链的速度,智能性较优。
在另一个实施例中,电子设备的多个总线的事件列表包括:
对于每一个总线,基于总线的至少一个端口上连接的设备生成总线的事件列表。
在另一个实施例中,参见图3B,该装置还包括状态获取模块304,复位模块305,分配模块306,生成模块307,信息获取模块308和驱动模块309。
该状态获取模块304,用于对于每一个总线,按照事件总列表中的事件列表顺序,向总线发送状态获取指令,获取总线上至少一个端口的当前状态;
该复位模块305,用于向至少一个端口发送复位指令,以使至少一个端口的当前状态为初始化状态;
该分配模块306,用于为至少一个端口分配设备地址;
该生成模块307,用于对于至少一个端口上连接的每个设备,生成设备的设备描述符,设备描述符用于描述设备的设备参数;
该信息获取模块308,用于基于设备描述符获取设备的配置信息;
该驱动模块309,用于基于配置信息对设备进行驱动。
在另一个实施例中,该生成模块307,包括检测子模块3071,发送子模块3072和生成子模块3073,且该检测子模块3071,发送子模块3072和生成子模块3073的连接关系如图3C所示。
该检测子模块3071,用于对于至少一个端口上连接的每个设备,检测设备的速度类型,速度类型至少包括全速、高速和快速;
该发送子模块3072,用于向设备所连接的端口发送数据量获取指令,确定设备可接收的数据量;
该生成子模块3073,用于将速度类型和数据量作为设备的设备描述符。
在另一个实施例中,参见图3D,该装置还包括发送模块310和传输模块311。
该发送模块310,用于向至少一个端口发送状态检测指令,状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;
该传输模块311,用于对于至少一个端口中的任一端口,若检测到端口的当前状态为初始化状态,则允许端口基于默认控制端点进行数据传输。
在另一个实施例中,事件总列表包括至少一个事件列表,至少一个事件列表至少包括前驱、数据及后继;
对于至少一个事件列表中的任一事件列表,前驱包括当前事件列表的前一事件列表的列表指针,后继包括当前事件列表的后一事件列表的列表指针,列表指针用于指示事件列表。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种设备识别装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,I/O(Input/Output,输入/输出)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如SRAM(Static Random Access Memory,静态随机存取存储器),EEPROM(Electrically-Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为装置400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。
多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括LCD(Liquid Crystal Display,液晶显示器)和TP(TouchPanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个MIC(Microphone,麦克风),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到设备400的打开/关闭状态,组件的相对定位,例如组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS(Complementary Metal OxideSemiconductor,互补金属氧化物)或CCD(Charge-coupled Device,电荷耦合元件)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括NFC(Near Field Communication,近场通信)模块,以促进短程通信。例如,在NFC模块可基于RFID(Radio FrequencyIdentification,射频识别)技术,IrDA(Infra-red Data Association,红外数据协会)技术,UWB(Ultra Wideband,超宽带)技术,BT(Bluetooth,蓝牙)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)、DSP(Digital signal Processor,数字信号处理器)、DSPD(Digital signal Processor Device,数字信号处理设备)、PLD(ProgrammableLogic Device,可编程逻辑器件)、FPGA)(Field Programmable Gate Array,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述设备识别方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器)、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由设备识别装置的处理器执行时,使得设备识别装置能够执行上述设备识别方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种设备识别方法,其特征在于,所述方法包括:
接收对电子设备的唤醒指令;
获取所述电子设备的多个总线的事件列表,每个总线的事件列表用于指示所述总线所连接的设备;
如果所述多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将所述指定总线的事件列表插入所述事件总列表的头部,以使蓝牙设备第一个被识别,其中,所述指定总线是指连接有所述蓝牙设备的总线,所述事件总列表为所述多个总线分别对应的事件列表的汇总;
根据所述事件总列表中事件列表的排列顺序依次对事件列表对应的总线上连接的设备进行识别驱动。
2.根据权利要求1所述的方法,其特征在于,所述电子设备的多个总线的事件列表包括:
对于每一个总线,基于所述总线的至少一个端口上连接的设备生成所述总线的事件列表。
3.根据权利要求1所述的方法,其特征在于,所述根据所述事件总列表中事件列表的排列顺序依次对事件列表对应的总线上连接的设备进行识别驱动,包括:
对于每一个总线,按照所述事件总列表中的事件列表顺序,向所述总线发送状态获取指令,获取所述总线上至少一个端口的当前状态;
向所述至少一个端口发送复位指令,以使所述至少一个端口的当前状态为初始化状态;
为所述至少一个端口分配设备地址;
对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符,所述设备描述符用于描述所述设备的设备参数;
基于所述设备描述符获取所述设备的配置信息;
基于所述配置信息对所述设备进行驱动。
4.根据权利要求3所述的方法,其特征在于,所述对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符包括:
对于所述至少一个端口上连接的每个设备,检测所述设备的速度类型;
向所述设备所连接的端口发送数据量获取指令,确定所述设备可接收的数据量;
将所述速度类型和所述数据量作为所述设备的设备描述符。
5.根据权利要求3所述的方法,其特征在于,所述向所述至少一个端口发送复位指令之后,所述方法还包括:
向所述至少一个端口发送状态检测指令,所述状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;
对于所述至少一个端口中的任一端口,若检测到所述端口的当前状态为初始化状态,则允许所述端口基于默认控制端点进行数据传输。
6.根据权利要求2所述的方法,其特征在于,所述事件总列表包括至少一个事件列表,所述至少一个事件列表至少包括前驱、数据及后继;
对于所述至少一个事件列表中的任一事件列表,所述前驱包括当前事件列表的前一事件列表的列表指针,所述后继包括当前事件列表的后一事件列表的列表指针,所述列表指针用于指示事件列表。
7.一种设备识别装置,其特征在于,所述装置包括:
接收模块,用于接收对电子设备的唤醒指令;
列表获取模块,用于获取所述电子设备的多个总线的事件列表,每个总线的事件列表用于指示所述总线所连接的设备;
插入模块,用于如果所述多个总线的事件列表中包括指定总线的事件列表,则在生成事件总列表时,将所述指定总线的事件列表插入所述事件总列表的头部,以使蓝牙设备第一个被识别,其中,所述指定总线是指连接有所述蓝牙设备的总线,所述事件总列表为所述多个总线分别对应的事件列表的汇总;根据所述事件总列表中事件列表的排列顺序依次对事件列表对应的总线上连接的设备进行识别驱动。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
状态获取模块,用于对于每一个总线,按照所述事件总列表中的事件列表顺序,向所述总线发送状态获取指令,获取所述总线上至少一个端口的当前状态;
复位模块,用于向所述至少一个端口发送复位指令,以使所述至少一个端口的当前状态为初始化状态;
分配模块,用于为所述至少一个端口分配设备地址;
生成模块,用于对于所述至少一个端口上连接的每个设备,生成所述设备的设备描述符,所述设备描述符用于描述所述设备的设备参数;
信息获取模块,用于基于所述设备描述符获取所述设备的配置信息;
驱动模块,用于基于所述配置信息对所述设备进行驱动。
9.根据权利要求8所述的装置,其特征在于,所述生成模块包括:
检测子模块,用于对于所述至少一个端口上连接的每个设备,检测所述设备的速度类型;
发送子模块,用于向所述设备所连接的端口发送数据量获取指令,确定所述设备可接收的数据量;
生成子模块,用于将所述速度类型和所述数据量作为所述设备的设备描述符。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
发送模块,用于向所述至少一个端口发送状态检测指令,所述状态检测指令用于检测至少一个端口的当前状态是否为初始化状态;
传输模块,用于对于所述至少一个端口中的任一端口,若检测到所述端口的当前状态为初始化状态,则允许所述端口基于默认控制端点进行数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710263562.9A CN107153621B (zh) | 2017-04-20 | 2017-04-20 | 设备识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710263562.9A CN107153621B (zh) | 2017-04-20 | 2017-04-20 | 设备识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107153621A CN107153621A (zh) | 2017-09-12 |
CN107153621B true CN107153621B (zh) | 2020-03-03 |
Family
ID=59794174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710263562.9A Active CN107153621B (zh) | 2017-04-20 | 2017-04-20 | 设备识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107153621B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109076127A (zh) * | 2018-08-10 | 2018-12-21 | 深圳前海达闼云端智能科技有限公司 | 电子设备的检测方法、装置、电子设备及介质 |
CN112073666B (zh) * | 2019-06-10 | 2023-03-24 | 海信视像科技股份有限公司 | 一种显示设备的电源控制方法及显示设备 |
CN110659009B (zh) * | 2019-09-19 | 2020-12-25 | 珠海格力电器股份有限公司 | 显示板与多个主板的通信方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606184B1 (en) * | 2009-12-08 | 2013-12-10 | Qualcomm Incorporated | Coexistence message processing mechanism for wireless devices |
CN104038255A (zh) * | 2014-05-27 | 2014-09-10 | 小米科技有限责任公司 | 设备连接方法及装置 |
CN105516384A (zh) * | 2015-11-27 | 2016-04-20 | 上海中兴派能能源科技有限公司 | 一种多个电池模组的地址分配方法及系统 |
CN105612506A (zh) * | 2013-10-02 | 2016-05-25 | 高通股份有限公司 | 相机控制接口休眠和唤醒信令 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559045B (zh) * | 2013-11-21 | 2017-05-10 | 青岛大学 | 一种硬件实时操作系统 |
-
2017
- 2017-04-20 CN CN201710263562.9A patent/CN107153621B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606184B1 (en) * | 2009-12-08 | 2013-12-10 | Qualcomm Incorporated | Coexistence message processing mechanism for wireless devices |
CN105612506A (zh) * | 2013-10-02 | 2016-05-25 | 高通股份有限公司 | 相机控制接口休眠和唤醒信令 |
CN104038255A (zh) * | 2014-05-27 | 2014-09-10 | 小米科技有限责任公司 | 设备连接方法及装置 |
CN105516384A (zh) * | 2015-11-27 | 2016-04-20 | 上海中兴派能能源科技有限公司 | 一种多个电池模组的地址分配方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107153621A (zh) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955765B (zh) | 应用预加载方法及装置 | |
CN107786794B (zh) | 向应用提供由图像传感器获取的图像的电子装置和方法 | |
US20210389973A1 (en) | Electronic device and method for operating the same | |
US10536637B2 (en) | Method for controlling camera system, electronic device, and storage medium | |
CN110650129B (zh) | 账号登录方法、装置及计算机可读存储介质 | |
US20170244574A1 (en) | Electronic device and method for registering smart home device in smart home system | |
CN107153621B (zh) | 设备识别方法及装置 | |
WO2017191889A1 (ko) | 전자 장치 및 그 제어 방법 | |
US20180288155A1 (en) | Method and apparatus for managing a shared storage system | |
US20170244890A1 (en) | Electronic device and method for controlling operation thereof | |
WO2023071165A1 (zh) | 补光灯控制方法、模组、设备、系统、装置、电子设备、存储介质、程序及程序产品 | |
CN111541919A (zh) | 视频帧传输方法、装置、电子设备及可读存储介质 | |
CN111966410B (zh) | 启动处理方法、装置、电子设备及存储介质 | |
CN112882987A (zh) | 多核通信方法、装置、电子设备及存储介质 | |
KR102267015B1 (ko) | 데이터 처리 방법 및 그 전자 장치 | |
CN114153582A (zh) | 资源调度方法及装置、电子设备和存储介质 | |
CN114138439A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN113467884A (zh) | 资源配置方法和装置、电子设备及计算机可读存储介质 | |
CN115576645A (zh) | 一种虚拟处理器调度方法、装置、存储介质及电子设备 | |
CN108958911B (zh) | 进程的控制方法及装置 | |
CN111865630A (zh) | 拓扑信息获取方法、装置、终端及存储介质 | |
CN116578422B (zh) | 资源分配方法和电子设备 | |
US10545562B2 (en) | Electronic device and method for operating the same | |
EP3054709A1 (en) | Electronic apparatus and short-range communication method thereof | |
CN114741121B (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong Patentee after: Hisense Visual Technology Co., Ltd. Address before: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong Patentee before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |