通用串口总线端口信息的获取方法及设备的制作方法

文档序号:7650115阅读:275来源:国知局
专利名称:通用串口总线端口信息的获取方法及设备的制作方法
技术领域
本发明涉及计算机技术领域,尤其指一种USB(Universal Serial Bus,通用串口总线)端口信息的获取方法及设备。
背景技术
USB是一种计算机外围串行通讯接口标准,其具有即插即用、数据传输可靠、扩展方便、低成本等特点,已成为计算机的必备接口之一。
现有技术中的USB通信模型层次结构如图1所示,系统的正常工作必须有USB主机和USB设备双方共同的软硬件支持。USB驱动软件就是维持USB系统的通信软件,包括USB主机端和USB设备端两部分。前者又包括HCD(Host Controller Driver,主机控制器驱动程序)、USBD(Universal Serial BusDriver,USB主机驱动程序)及包含多种设备类驱动的客户端驱动程序。而USB设备端的驱动软件则包括USB逻辑设备和功能接口部件的驱动。
上述USB规范中的客户端驱动程序不同于传统意义上的串口或并口等I/O(Input/Output,输入/输出)设备驱动程序,其通过USBD提供的接口与USB设备交互,而不是通过I/O设备地址或端口来访问设备。USB协议中,USB主机为每个连接在总线上的USB设备分配一个USB地址,该地址与USB设备所在的端口号没有关系;USB主机控制器是通过分配的USB地址而不是通过连接USB设备的端口号来区分设备;并且USB地址是由USBD层进行维护,对于USB客户端驱动程序是不可见的。
随着USB规范及相关技术的日益完善,近两年,也开始出现路由器和交换机等数通设备使用USB接口外接USB设备。不同于PC(Personal Computer,个人计算机)的USB应用,数通设备作为USB主机,一般是通过USB控制器集成的RootHub(根集线器)出一个或两个USB接口,而不支持USB接口外接集线器,且仅支持指定的几类USB设备。数通设备不同于PC的最大特点在于其接口类型和数量众多,数通设备的接口面板明确标有接口的槽位号和端口号,其操作系统都是按照端口号对接口进行管理,因此与PC的USB应用中只需通过USB地址对设备进行管理不同,数通设备的USB应用需要考虑连接USB设备的端口号。
针对现有技术中USB协议不支持按照端口访问USB设备而数通设备的接口管理需要按照端口访问USB设备的矛盾,目前的数通设备都是将USB接口与其他类型的接口区分开,采用两种不同的接口管理方法,对USB接口的管理则采用与PC操作系统完全相同的方法,根据USB规范所规定的按照USB地址实现连接USB设备的访问。因此,数通设备的操作系统需要区分USB接口和非USB接口,并对两种接口采用不同的管理方式,从而增加了数通设备接口管理的复杂性;另外,数通设备的配置一般都是通过命令行操作实现,用户均按照槽位号和端口号对接口进行配置,所以上述数通设备上USB应用与端口无关的特性,会给数通设备的用户带来操作不便;同时也不利于数通设备应用中后续USB接口业务的扩展。

发明内容
本发明的目的是提供一种USB端口信息的获取方法及设备,以解决现有技术中USB协议不支持按照端口访问USB设备的问题。
为达到上述目的,本发明提出一种USB端口信息的获取方法,包括在USB主机驱动USBD层向USB客户端驱动提供的接口中,添加端口信息交互接口;USB集线器驱动在处理USB设备接入时,保存所述USB设备的端口信息,并将所述端口信息传递至所述USBD层;所述USB客户端驱动通过所述端口信息交互接口自所述USBD层获取所述端口信息。
所述USB客户端驱动获取端口信息之后还包括应用层根据所述USB客户端驱动获取的端口信息对所述接入的USB设备进行访问。
所述应用层根据USB客户端驱动获取的端口信息对端口接入的USB设备进行访问前还包括所述USB应用层获取并保存所述端口信息。
所述USB集线器驱动将端口信息传递至USBD层与所述USB客户端驱动获取端口信息之间还包括所述USBD层根据所述USB设备对USB客户端驱动进行定位,并对所述端口信息进行保存。
所述端口信息包括所述USB设备连接的集线器地址和/或端口号。
本发明还提出一种USB主机设备,包括USB集线器驱动模块、USBD模块、USB客户端驱动模块,所述USBD模块还包括端口信息交互接口子模块,所述USB集线器驱动模块,在处理USB设备连接时,获取所述USB设备的端口信息并传递至所述USBD模块;所述USB客户端驱动模块,与所述USBD模块连接,并通过所述端口信息交互接口子模块获取所述端口信息。
还包括USB应用信息获取模块,所述USB应用信息获取模块,与所述USB客户端驱动模块连接,并根据所述端口信息对所述USB设备进行访问。
所述USB客户端驱动模块进一步包括端口信息存储子模块,所述端口信息存储子模块,用于保存所述USB设备的端口信息,供所述USB应用信息获取模块对所述USB设备进行访问。
所述USB集线器驱动模块进一步包括设备连接通知子模块及端口信息通知子模块,所述设备连接通知子模块,用于向所述USBD模块通知所述USB设备的连接;所述端口信息通知子模块,用于向所述USBD模块传递所述USB设备的端口信息。
所述端口信息包括所述USB设备连接的集线器地址和/或端口号。
本发明USB端口信息的获取方法及设备,通过在USBD层向USB客户端驱动提供的标准接口中新增端口信息交互接口,实现作为USB主机的数通设备或其他嵌入式设备获取USB设备所连接的端口信息,简化了嵌入式设备的接口管理,并在一定程度上解决了基于PC应用的USB技术与嵌入式设备操作习惯冲突的矛盾。


图1为现有技术中的USB通信模型层次结构图;图2为本发明USB端口信息的获取方法第一实施例流程图;图3为本发明USB端口信息的获取方法第二实施例流程图;图4为本发明一种USB主机设备实施例图。
具体实施例方式
下面以具体实施例结合附图对本发明进一步加以阐述。
本发明公开一种USB端口信息的获取方法,其第一实施例如图2所示,包括以下步骤S201、USB集线器驱动在处理USB设备接入时,保存USB设备的端口信息并传递至USBD层。
为实现USB客户端驱动对连接USB设备端口信息的获取,本实施例中,USB集线器驱动在处理USB设备接入时,获取并保存连接该USB设备所接入的端口的端口号以及集线器地址等信息,并将该些信息传递至USBD层,而非类似现有技术中的USB 2.0规范,仅仅在集线器接全/低速USB设备下进行端口信息的保存。
S202、USB客户端驱动通过端口信息交互接口自USBD层获取连接USB设备的端口信息。
现有技术的USB协议中,USB客户端驱动程序通过USBD提供的接口并根据分配的USB地址与USB设备进行交互,该地址与USB设备所在集线器的端口号没有关系,而且是由USBD层维护,对于USB客户端驱动是不可见的。本实施例中,为获取USB设备的端口信息并最终实现按照端口信息对USB设备进行访问,必须在USBD层向USB客户端驱动程序提供的标准接口中,增加一个端口信息交互接口,用于USB客户端驱动程序获取其管理的USB设备的端口信息。
S203、USB应用层根据端口信息访问连接的USB设备。
USB客户端驱动程序通过端口信息交互接口获取连接USB设备的集线器地址及端口号等信息并保存后,上层的USB应用软件层即可以按照端口信息对连接的USB设备进行访问。
本发明一种USB端口信息的获取方法第二实施例如图3所示,包括以下步骤S301、USB集线器驱动处理USB设备接入,并获取连接的端口信息。
当有USB设备接入时,首先由USB集线器驱动进行处理,由USB集线器驱动获取与USB设备连接的端口号。另外,USB集线器驱动还可以获取集线器地址信息,但在未获取该集线器地址的情况下本发明仍可以实现。
S302、USB集线器驱动通知USBD层USB设备的连接以及连接的端口信息。
USB集线器驱动在完成USB设备接入的处理后,向USBD层通知有USB设备连接,由USBD对接入的USB设备进行配置。本实施例中,在通知USBD层有USB设备接入的同时,USB集线器驱动还会有USB设备接入的端口信息传递至USBD层。
本实施例中,USB集线器驱动在处理USB设备接入时,无论集线器是否接全/低速USB设备,均保存连接该USB设备的集线器地址和端口号,并传递至USBD层,从而保证USBD层保存的端口信息在任何情况下均有意义。
S303、USBD层定位相关的客户端驱动,并保存连接USB设备的端口信息。
USBD层收到USB集线器驱动关于USB设备连接的通知后,根据连接的USB设备不同对相应的客户端驱动进行定位,并调用标准接口通知USB客户端驱动有USB设备接入。本实施例中,USBD层还需要对USB集线器驱动传递的端口信息进行保存,供USB客户端驱动获取。
S304、USB客户端驱动通过端口信息交互接口获取连接USB设备的端口信息。
为实现USB客户端驱动对连接USB设备端口信息的获取,需要在USBD向USB客户端驱动提供的标准接口中,添加端口信息交互接口。新增的端口信息交互接口,不影响USB协议栈的原有功能,原协议栈中的通用客户端驱动也无须针对该新增接口进行修改,同时可以满足在没有外接USB集线器的USB应用中,USB客户端驱动获取连接USB设备端口信息的需求。
S305、USB客户端驱动获知连接USB设备的端口信息,应用层根据该端口信息访问USB设备。
步骤S301~S304中端口信息的获取及传递,目的都是使USB客户端驱动获知USB设备所连接的集线器地址及端口号等信息,以进一步实现按照端口信息对USB设备进行访问。在USB客户端驱动获知连接USB设备的端口信息后,上层的应用软件即可以根据USB客户端驱动中保存的端口信息对连接的USB设备进行访问。
上述本发明USB端口信息的获取方法第二实施例,通过在USBD层新增一个获取USB设备端口号的接口,实现作为USB主机的数通设备获取USB设备所连接的端口信息,从而大大简化数通设备上的接口管理;通过上述实施例,外出USB接口的嵌入式设备可以无须区分USB接口和非USB接口,而按照槽位号和端口号对所有的接口进行统一管理,一定程度上解决了基于PC应用的USB技术与数通设备等嵌入式设备操作习惯冲突的矛盾;同时,USBD新增的端口信息交互接口,属于可选接口,可以在USBD中直接设置,增加或减少此类接口与USB规范并无冲突,无须打破USB规范层次结构的设计,对USB协议栈的其他功能没有任何影响。
本发明还公开一种USB主机设备,用于获取连接USB设备的端口信息,其一实施例如图4所示,USB集线器驱动模块410、USBD模块420、USB客户端驱动模块430,USBD模块420还包括端口信息交互接口子模块421。其中,USB集线器驱动模块410在处理USB设备连接时,用于获取连接USB设备的集线器地址及端口号等端口信息并传递至USBD模块420;USB客户端驱动模块430,与USBD模块420连接,并通过端口信息交互接口子模块421获取端口信息。
本实施例提供的USB主机设备还包括USB应用信息获取模块440,而USB客户端驱动模块430则进一步包括端口信息存储子模块431。其中,端口信息存储子模块431,用于保存自USBD模块420获取的连接USB设备的端口信息;USB应用信息获取模块440则进一步根据USB客户端驱动430保存的端口信息实现对USB设备的访问。
另外,USB集线器驱动模块410进一步包括设备连接通知子模块411及端口信息通知子模块412。其中,设备连接通知子模块411用于向USBD模块420通知USB设备的连接;而端口信息通知子模块412,则用于向USBD模块传递连接USB设备的端口信息。
上述本发明USB主机设备的实施例,通过在USBD层向USB客户端驱动提供的接口中新增一个端口信息交互接口,用于获取连接USB设备的集线器地址及端口号等信息,从而实现作为USB主机的数通设备或其他嵌入式设备获取USB设备所连接的端口信息,简化嵌入式设备的接口管理;而外出USB接口的嵌入式设备可以无须区分USB接口和非USB接口,按照槽位号和端口号对所有的接口进行统一管理,解决了基于PC应用的USB技术与嵌入式设备操作习惯冲突的矛盾。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种通用串口总线USB端口信息的获取方法,其特征在于,包括在USB主机驱动USBD层向USB客户端驱动提供的接口中,添加端口信息交互接口;USB集线器驱动在处理USB设备接入时,保存所述USB设备的端口信息,并将所述端口信息传递至所述USBD层;所述USB客户端驱动通过所述端口信息交互接口自所述USBD层获取所述端口信息。
2.如权利要求1所述USB端口信息的获取方法,其特征在于,所述USB客户端驱动获取端口信息之后还包括应用层根据所述USB客户端驱动获取的端口信息对所述接入的USB设备进行访问。
3.如权利要求2所述USB端口信息的获取方法,其特征在于,所述应用层根据USB客户端驱动获取的端口信息对端口接入的USB设备进行访问前还包括所述USB应用层获取并保存所述端口信息。
4.如权利要求1所述USB端口信息的获取方法,其特征在于,所述USB集线器驱动将端口信息传递至USBD层与所述USB客户端驱动获取端口信息之间还包括所述USBD层根据所述USB设备对USB客户端驱动进行定位,并对所述端口信息进行保存。
5.如权利要求1至4任一项所述USB端口信息的获取方法,其特征在于,所述端口信息包括所述USB设备连接的集线器地址和/或端口号。
6.一种USB主机设备,包括USB集线器驱动模块、USBD模块、USB客户端驱动模块,其特征在于,所述USBD模块还包括端口信息交互接口子模块,所述USB集线器驱动模块,在处理USB设备连接时,获取所述USB设备的端口信息并传递至所述USBD模块;所述USB客户端驱动模块,与所述USBD模块连接,并通过所述端口信息交互接口子模块获取所述端口信息。
7.如权利要求6所述USB主机设备,其特征在于,还包括USB应用信息获取模块,所述USB应用信息获取模块,与所述USB客户端驱动模块连接,并根据所述端口信息对所述USB设备进行访问。
8.如权利要求7所述USB主机设备,其特征在于,所述USB客户端驱动模块进一步包括端口信息存储子模块,所述端口信息存储子模块,用于保存所述USB设备的端口信息,供所述USB应用信息获取模块对所述USB设备进行访问。
9.如权利要求6所述USB主机设备,其特征在于,所述USB集线器驱动模块进一步包括设备连接通知子模块及端口信息通知子模块,所述设备连接通知子模块,用于向所述USBD模块通知所述USB设备的连接;所述端口信息通知子模块,用于向所述USBD模块传递所述USB设备的端口信息。
10.如权利要求6至9任一项所述USB主机设备,其特征在于,所述端口信息包括所述USB设备连接的集线器地址和/或端口号。
全文摘要
本发明公开一种通用串口总线USB端口信息的获取方法,其在USB主机驱动USBD层向USB客户端驱动提供的接口中,添加端口信息交互接口,并包括USB集线器驱动在处理USB设备接入时,保存其连接的端口信息并传递至USBD层;USB客户端驱动通过端口信息交互接口自USBD层获取端口信息。本发明还公开一种USB主机设备,用于获取连接USB设备的端口信息。应用本发明的方法及设备,可以实现作为USB主机的数通设备或其他嵌入式设备获取USB设备所连接的端口信息,从而简化嵌入式设备的接口管理,并在一定程度上解决了基于PC应用的USB技术与嵌入式设备操作习惯冲突的矛盾。
文档编号H04L29/10GK101021825SQ20071008665
公开日2007年8月22日 申请日期2007年3月28日 优先权日2007年3月28日
发明者赵志宇 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1