经由通信接口提取操作系统特定的特性的制作方法

文档序号:17396874发布日期:2019-04-13 00:53阅读:168来源:国知局
经由通信接口提取操作系统特定的特性的制作方法



背景技术:

通用串行总线(usb)是支持在主机计算机与很大范围的同时可访问的外围设备之间的数据交换的通信接口。附加的外围设备通过使用主机调度的、基于记号的协议而操作。总线允许外围设备在主机与其它外围设备正在操作的同时被附着、配置、使用、和分离。

usb是由工业代表委员会批准的技术规范所规定的。这个usb技术规范是从usb实施者论坛(当前的互联网url:www.usb.org)可得到的。usb技术规范覆盖usb操作的所有的方面,包括电的、机械的、和通信特性。为被称为usb设备,外围设备遵循这个技术规范。

usb设备信息典型地被存储在所谓的“描述符”中。描述符在usb系统中被使用来把所述设备识别给主机系统,例如使得主机计算机可以选择和执行被使用来与被连接到该主机计算机的设备进行接口联系的适当软件。主机计算机发送从设备检索描述符的控制请求。独立的硬件供应商(ihv)也可以存储类别和供应商特定的描述符。然而,这些描述符的使用的灵活性以及它们保证的兼容性是有限的。例如,这样的描述符或者受到被包括在与所述设备相关联的通信接口(例如,usb)的技术规范中的描述符的类型的限制,或者描述符可能受限于它们与可接纳这样的设备的各种主机计算系统的兼容性。

本申请的实施例针对的正是这种通用技术环境。



技术实现要素:

总之,本公开内容涉及到用于规定在使用通用串行总线(usb)接口访问的设备中的扩展能力描述符信息的系统和方法。这里描述的扩展能力描述符信息允许由设备提供操作系统特定的功能性,同时也保持与不实施扩展描述符的设备的兼容性。在某些情形下,扩展描述符是与设备、设备配置、或设备的功能相关联的,由此允许主机计算系统寻址到在不同的范围处的设备。此外,在某些实施例中,扩展能力描述符可以例如根据主机计算系统的操作系统的版本或类型而与不同的配置和/或功能性一起被使用,由此允许同一个设备根据它被连接到的主机计算系统而具有不同的特性。另外,扩展能力描述符例如可以根据主机计算系统的最小操作系统版本来识别所述设备支持与设备一起被使用的替换的一组标准描述符。

在实施例中,系统包括可编程电路和存储器,存储器与所述可编程电路通信地接口连接并被配置成存储计算指令。当被可编程电路执行时,计算指令使得可编程电路响应于经由把设备通信地连接到主机计算系统的接口在设备处接收到请求,而把平台能力描述符传送到主机计算系统。平台能力描述符包括一个或多个元素,每个元素识别与所述设备相关联的不同的扩展能力描述符组,所述元素中的至少一个识别能够支持对应的扩展能力描述符组的最小操作系统版本。

在另外的实施例中,方法包括从主机计算系统发送请求到设备,以及接收向主机计算系统识别被存储在设备上的至少一个扩展描述符组的扩展能力描述符。扩展能力描述符识别能够支持对应的扩展描述符组的最小操作系统版本。

在另一些实施例中,公开了计算机实施的存储介质,其包括被存储在其上的计算机可执行指令。当指令由计算设备执行时,指令使得计算设备执行方法,所述方法包括将对于被存储在设备处的一个或多个描述符的请求发送到设备,所述一个或多个描述符包括扩展能力描述符。请求是从主机计算系统经由通信地将设备连接到主机计算系统的接口被发送的。方法还包括在主机计算系统处接收扩展能力描述符,其中扩展能力描述符包括一个或多个元素,每个元素识别与设备相关联的不同的扩展能力描述符组。元素中至少一个识别能够支持对应的扩展描述符组的最小操作系统版本。方法还包括从主机计算系统发送第二请求到设备,第二请求对应于对于根据扩展能力描述符的内容和主机计算系统的操作系统而被识别的扩展描述符组的请求。方法还包括,响应于第二请求,接收能由主机计算系统使用来枚举设备的一组扩展描述符,以及规定由主机计算系统的操作系统支持的功能性。

本概要被提供来以简化的形式介绍概念的选择,这些概念还在下面的详细说明中进行描述。本概要既不打算识别所要求保护的主题的关键特征或必要特征,也不打算被使用来限制所要求保护的主题的范围。

附图说明

图1是按照示例性实施例的、包括经由usb接口连接的主机计算系统和设备的示例性系统的框图;

图2是使用这里讨论的方法和系统可得到的扩展能力描述符的分层图;

图3是图示按照示例性实施例的、扩展能力描述符组的设备级别特性的组织的逻辑图;

图4是图示按照示例性实施例的、扩展能力描述符组的配置级别特性的组织的逻辑图;

图5是图示按照示例性实施例的、扩展能力描述符组的功能级别特性的组织的逻辑图;

图6是按照示例性实施例的、用于复合设备的和包括设备级别与功能级别特征描述符的总的扩展能力描述符组的示例性布局;

图7是按照示例性实施例的、可使用来提供一个或多个扩展能力描述符组的标识的平台能力描述符的示例性逻辑布局;

图8是按照示例性实施例的、用于提取操作系统特定的特性的示例性方法的流程图;

图9是按照示例性实施例的、用于检测被通信地连接到主机计算系统的设备的非标准能力的方法的详细流程图;

图10是可以用其实践本实施例的计算设备的简化框图;

图11a和11b是可以用其实践本实施例的移动计算设备的简化框图;

图12是可以在其中实践本实施例的分布式计算系统的简化框图。

具体实施方式

如以上概述的,本公开内容的实施例针对用于规定在通过使用例如在主机计算系统与外设设备之间的通信接口而被访问的设备中的扩展能力描述符信息的系统和方法。这里描述的扩展能力描述符信息允许由设备提供操作系统特定的功能性或信息,同时也保持与不实施这样的扩展能力描述符的、或实施描述符的以前的版本的设备的兼容性。另外,可以确定其它类型的配置特定的信息,诸如设备被连接到的主机计算系统的性质(例如,主机系统的操作系统或计算结构),或所使用的连接的类型(例如,usb标准或低功率连接)。另外,特定的操作系统设定和客户设备特定的设定也可以使用这样的描述符被提供。

通常,包括操作系统(“os”)描述符的usb设备已被开发。当os描述符被集成到设备时,主机设备可以运行使用那些os描述符的操作系统,以及可以使用控制请求来检索信息。所检索的信息然后被使用来安装和配置usb设备,而不需要用户交互。然而,这样的os描述符的当前的实施方案具有缺点。例如,在其中usb设备缺乏这样的os描述符的某些情形下,该设备在os描述符被主机计算系统请求时将失败。此外,os描述符当前不能提供基于主机设备的操作系统的不同的版本的标识的任何特定的信息;换句话说,当前的os描述符或者存在并且能够被操作系统访问,或者它们都不行。再者,当前的os描述符在接口级别被规定,而不是在设备级别被规定;因此,用于多功能设备的描述符规定特定功能的特征,而不是整个设备的特征。正如下面进一步讨论的,按照本公开内容规定的os描述符允许将信息的范围界定到适当的级别,不管它例如是与设备、设备的配置、还是与设备中包括的功能相关联。

现在参照图1,图上显示了系统100,其中使用通信接口被连接的设备包括非标准的设备、配置、以及功能类别和子类别代码。另外,系统包括主机应用程序和主机操作系统,其能够枚举非标准的兼容的id,或对应于设备的非标准的类别和子类别代码。在所显示的实施例中,系统100是与通用串行总线(usb)技术规范兼容的。这些技术规范是从usb实施者论坛(当前的互联网url:www.usb.org)可得到的。

系统100包括主机计算系统102和设备114,诸如usb外围设备或通信地连接到主机计算机的其它外围设备(例如,使用ieee1394串行总线接口或蓝牙无线接口)。计算机和外围设备的相应的功能性在许多情形下是由诸如程序模块那样的计算机可执行指令体现的,所述计算机可执行指令是由相应的处理器执行的。通常,程序模块包括例行程序、程序、对象、构件、数据结构等等,它们执行特定的任务或实施特定的抽象数据类型。

主机计算系统102是一种计算系统,诸如台式机、膝上型电脑、平板电脑、或其它计算设备,诸如下面描述的和在图10-12中图示的。主机计算系统102具有一个或多个处理器104和一种或多种形式的存储器106,诸如电子存储器、磁存储媒体、光学存储媒体、或某种其它类型的数据存储装置。程序被存储在存储器106中,程序从其中被处理器104执行。在本例中,这样的程序包括操作系统108,诸如microsoft家族的操作系统。操作系统108提供各种系统服务给在主机计算系统102上运行的一个或多个应用程序110,并且可以是任何的各种各样类型或版本的操作系统。

在显示的实施例中,计算机还具有usb通信驱动器和usb端口112。usb端口112由操作系统108支持。为了经由usb端口与设备通信,应用程序110对由操作系统提供的系统服务进行高级别调用。系统服务注意到较低级别通信细节,并且把请求的信息返回给应用程序。

在各种实施例中,设备114可以是任何的许多不同的类型的设备,诸如数据存储设备、数字照相机、扫描仪、控制杆、游戏板、操纵单元、鼠标、触针、数字扬声器、麦克风、显示设备等等。在某些实施例中,设备114可以是另一个计算系统,诸如移动电话或平板计算系统。在这样的实施例中,设备114具有一个或多个处理器116和一种或多种形式的存储器118,其包括至少某种形式的非易失性存储器120。在替换实施例中,设备可以没有这样的处理器或存储器118。在显示的示例性实施例中,设备114通信地连接到主机计算系统102。

在显示的实施例中,设备114具有usb端口126,并且经由usb通信接口128而与主机计算系统102通信。设备任选地还具有操作逻辑,该操作逻辑由处理器116执行来检测控制驱动和用于跨通信接口128而与主机计算系统102通信。

正如下面进一步讨论的,设备114对来自主机计算系统102的、跨通信接口128的请求进行响应。这些请求是使用控制转移而作出的,在控制转移中交换设置分组(未示出)。在某些情形下(诸如这里讨论的那些情形),设备114响应于交换这样的设置分组而返回描述符。usb技术规范规定许多标准描述符122,包括扩展能力描述符123。正如在本公开内容中使用的,扩展能力描述符123对应于标准描述符,它可包括特定的值,该值向主机计算系统102指示设备114包括一个或多个扩展描述符124。扩展描述符124进而对应于对于主机系统的特定的操作系统特定的、并且不是在特定的通信标准的技术规范中规定的描述符。在usb接口的上下文中,扩展能力描述符将在usb技术规范中被规定,usb技术规范是跨操作系统公正的;然而,扩展描述符124将不在该技术规范中被规定。再者,在usb接口的上下文中,扩展能力描述符123和所牵连的扩展描述符124允许原先的装备制造商(“oem”)和/或独立的硬件供应商(“ihv”)存储非标准的代码—代表还没有由usb设备工作组(在www.usb.org)例如通过使用逻辑或把这样的非标准代码存储在设备的非易失性存储器120而规定或支持的能力的那些特定的值。而且,这里描述的扩展能力描述符123和扩展描述符124给复合设备(例如,具有一个以上的功能的设备,诸如组合的打印机/扫描仪/传真机外围设备)提供一种方法,以用来规定包括单个功能的接口的群组以及允许主机计算系统102寻址整个设备或单独地寻址每个接口。

在实施例中,设备114支持用以按照特定的通信技术规范(例如,usb、蓝牙、ieee1394等等)得到信息的主机特定的设备请求。响应于所述请求,外围设备提供扩展能力描述符123给主机计算系统102。根据扩展能力描述符123的内容,主机计算机102被告知设备114是否支持该组标准描述符122之外的扩展描述符124。例如,在某些实施例中,扩展能力描述符123可包括特定的值,其指示扩展描述符124被支持。扩展能力描述符123还可以包含一组或多组这样的扩展描述符124的标识,例如,其可以与主机计算系统102的不同版本的操作系统一起被使用。扩展描述符的组也可以规定例如设备114的主要的和替换的功能性组,从而允许不同的功能性被选择地使能用于特定的设备。关于扩展能力描述符123的细节将结合图7更详细地讨论;关于扩展能力描述符123和扩展描述符124的示例性装载的细节将在下面结合图8-9被提供。

现在参照图2,应当指出,正如在本公开内容中进一步描述的,如与以前已有的标准描述符以及现有的扩展描述符相比较,本公开内容的扩展能力描述符123和扩展描述符124的使用允许属性在各种范围级别被设置。例如,如图2所示,扩展描述符124可以在设备整个范围202、设备配置范围204、或特定的接口或功能范围206处被设置。其它范围(诸如端点点范围)也是可以被规定的。如图2-6所示,描述符组被组织成描述符子组的嵌套的群组,这些描述符子组可以描述对于它们被包含在的子组的具体范围特定的属性。

如上所述,扩展描述符124可以与设备、设备配置、或功能的任意项相关联。在设备整个范围202的情形下,扩展描述符124可包括与设备相关联的并且具有设备整个范围202的特征描述。在设备配置范围204的情形下,扩展描述符124可描述设备的取决于设备的特定的配置可得到的功能性。类似地,具有功能级别范围206的扩展描述符124可以对应于对于支持扩展能力描述符123的系统可得到的功能或功能子组,如当用os描述符被实施时在设备的接口级别处可得到的那样。

参照图3-6,以及如上所述,扩展描述符124在整体设备整个范围202、设备配置范围204、和特定的接口或功能范围206处被图示(例如,这里被称为“特征”描述符)。如在图3中看到的,一组扩展描述符124的示例性布局在设备级别(例如,级别202)处包含描述符组标题302以及零个或多个特征描述符304a-m。特征描述符304a-m被包括在该组扩展描述符124中,并且不管配置而应用到整个设备。该组扩展描述符还包括零个或多个配置子组306a-n,它们应用到特定的设备配置。通常有在设备级别描述符组中规定的一个或多个特征描述符或配置子组描述符。另外,其它范围(例如,端点级别范围)也可以被使用,被实施的一个或多个描述符类型具有该范围。

描述符组标题302包括描述符索引(windex)和任选地包括操作系统版本识别符,其规定支持描述符组的最小操作系统版本。另外,描述符组的尺寸和版本号也可以被包括在标题302中。特征描述符304a-m可以采取多种形式,如下面讨论的,以及可被规定为在设备级别202处可应用的特征描述符。配置子组306a-n对应于在配置级别204处或在某些情形下在功能级别206处(例如,如果功能子组处于配置子组306a-n之一内,如下面指出的)可应用的特征的定义。

如在图4中看到的,配置级别子组306包括标题402以及应用到特定的usb设备配置(即,配置级别204)的零个或多个扩展的特征描述符404a-m。配置级别子组306也可以在其内包括零个或多个功能子组406a-n,它们的每个应用到设备内(在该配置内)的特定的功能。

配置级别子组306每个包括标题402,它规定配置值(即,描述符应用到的特定的配置)和配置子组的长度。对应的特征描述符404a-m可以是在配置级别204处的任何的各种各样的扩展的能力特征描述符,它们的各种类型在下面进一步被描述。功能子组406a-n规定在该配置内可应用的扩展的功能,并且如图5所图示的那样被构建。

如图5中看到的,每个功能子组406包括标题502,其除了其它元素以外包括功能应用到的接口的接口号(在多功能设备中可使用来识别特定的接口)以及全部功能子组406的长度和标题本身的长度。每个功能子组406还包括零个或多个特征描述符504a-m,它们的每个对应于并且规定在该功能内可应用的扩展的功能。出于本公开内容的目的,功能被规定为一个或多个接口的群组。非复合的设备将具有应用到对于该配置规定的一个或多个接口的一个功能子组。复合的设备可以具有规定功能的一个或多个特征描述符504。每个功能子组通常是在配置子组内,以及仅仅应用到该配置。

现在参照图6,图示了扩展描述符124的描述符组的示例性布局600,其显示如在图3-5中概括的描述符的嵌套。示例性布局600根据在图3-5中的分层安排图示了扩展描述符组124的一个可能的安排,其中显示了设备级别特征描述符和两个功能级别特征描述符。如在布局600中看到的,描述符组标题302是与特征描述符304和配置级别描述符子组306相关联的。配置级别描述符子组306包括配置子组标题402以及在配置级别处的一个或多个特征描述符404(在本例中未示出)。在配置级别描述符子组306内,多个功能子组406被图示为功能子组406a-c,它们的每个包括功能子组标题502和一个或多个特征描述符504。

参照图3-6,应当指出,各种各样的描述符类型可被规定为在设备整个范围202、设备配置范围204、或功能范围206处的特征描述符304a-m、406a-n、504a-m。这些描述符类型例如可包括特征兼容的或模型识别符类型、特征注册表属性类型、特征ccgp设备类型、恢复时间类型、首选的配置类型、和模型识别符类型。

特征兼容类型描述符规定兼容设备类型识别符,以及可包括规定兼容设备识别符或子兼容设备识别符的字符串。兼容识别符描述符可以在设备级别202或功能级别206上被寻址。

在某些示例性实施例中,特别是在使用具有来自microsoft操作系统家族的操作系统的主机系统实施的那些实施例中,特征注册表属性类型描述符添加可以由usb堆栈或设备的驱动器读取的按设备的或按功能的注册表值。特征注册表属性描述符可以在设备侧范围202或功能范围206上被寻址,并且例如可包括受影响的注册表属性的类型、注册表属性的名称、长度、和要被包括在注册表中的属性数据(即,要被设置的注册表值)。属性数据可以规定要被设置的属性的格式,包括属性数据是被空终止、小端模式、大端模式,还是否则被格式化(例如,统一码、整数、自由形式等等)。在替换实施例中,其它类型的操作系统设定或特征可以在这种描述符类型中被规定。

在某些其它实施例中,ccgp设备特征描述符也可以被规定,并且可被使用来指示操作系统应当把返回这样的描述符的设备作为复合设备对待,而与由设备报告的接口的数目无关。这样,ccgp设备特征描述符类型具有设备整个范围。

在再另外的示例性实施例中,恢复时间类型描述符在设备整个范围202处被应用,并且向主机驱动器指示对于高的、完全的、或低的速度设备来说在端口复位或端口重新开始操作后恢复的最小时间量。这个描述符允许设备比例如在usb2.0技术规范中规定的10毫秒的缺省更快地恢复。在示例性实施例中,描述符包括针对在端口复位和端口重新开始以后恢复的最小时间的单独的设定;然而,在替换的实施例中,可以使用同一个最小时间。

在再一个实施例中,模型识别符描述符类型规定设备模型识别符,并且可包括识别物理设备的唯一的识别符。模型识别符描述符可以在设备整个范围202上被寻址。

另外,替换的一组描述符可以在扩展能力描述符中被规定以便使用和被识别,使得当接收到该替换的枚举供应商特定的控制请求时,主机计算系统接收指示:这样的替换描述符应当被检索,以便在枚举usb设备时使用。这可例如被使用来根据由主机计算系统在使用的特定的操作系统来改变设备的类型。在这样的情形下,可以检索替换的一组标准描述符。因此,平台能力描述符可以包含指示对于特定的最小操作系统设备想要不同地表现的信息。主机计算系统然后将发出命令以便通知设备主机正在运行哪个最小os版本。主机然后可以重新启动整体枚举过程,从而允许设备返回完全不同的描述符。在该设备随后的连接上,主机计算系统将缓存关于替换的枚举的信息,以及在检索设备描述符后,它可以立即发出命令。主机计算系统然后只需要重新获取设备描述符,并且然后继续描述符的其余部分。在这样的替换的描述符的情形下,这将改进随后的枚举性能。

在再另外的实施例中,首选的配置索引可被使用来指示当枚举设备时多组描述符的哪组描述符应当被使用,从而允许设备例如根据无论设备被连接到高功率还是低功率usb端口的主机计算设备的操作系统版本使用不同的配置描述符进行枚举。类似于替换的该组描述符,首选的配置索引可被包括在特征描述符中,并且可以向主机计算设备指示:首选的一组附加特征描述符应当被请求用于所述设备的枚举。

除了上述的描述符类型和变例以外,这些扩展描述符可以被扩展到其它类型的变量特征。例如,在某些实施例中,描述符可以根据主机计算设备的计算结构(例如,主机设备是基于x86的还是基于arm的计算设备)设置不同的操作系统设定或使用不同的首选配置。例如,尽管在x86主机系统中可以装载一个或多个驱动器,然而在平板电脑、移动电话、或其它基于arm的主机系统中,描述符可以提供到可下载的应用的链接,其提供设备的预期的usb连接性功能性。也可以使用其它描述符变例,诸如指示在扩展能力描述符内的、而不是在一个或多个扩展描述符中的特定的平台结构。

还应当指出,根据可供使用的描述符,各种操作系统值和能力可以取决于主机系统的特定的操作系统被设置,而不需要从设置信息文件(即,“inf”文件)或单独的更新文件提供的任何设定,由此改进设备的“即插即用”功能性和当该设备被与不同类型的主机系统使用时增强usb设备的操作的定制的量。另外,这里提供的扩展能力描述符不干扰现有的、限于按功能(即,按接口)基础的和导致某些设备兼容性问题的扩展能力描述符功能性。实施支持本公开内容的扩展描述符的操作系统的主机设备因此将为包括那些以前的类型的描述符的设备提供后向兼容性以及与它们互连到的usb设备的改进的兼容性和其定制。

现在参照图7,显示了扩展能力描述符700的示例性逻辑布局。扩展能力描述符700可用于允许usb设备向主机计算系统识别本公开内容的扩展能力描述符组由该特定的设备支持。具体地,扩展能力描述符700提供标题702和一个或多个描述符组识别符704a-c。

标题702通常包括描述符类型、长度、和能力类型信息,以及将所述设备识别为支持这里提供的扩展描述符的类型的特定代码。根据该代码(例如,通用的唯一识别符、或uuid、或其它类型的值),进行接收的主机系统(例如,图1的主机计算系统102)可以确定它是否能够使用被包括在设备中的扩展描述符。伴随的一个或多个描述符组识别符除了其它元素以外可包括被使用来识别能够支持特定的扩展描述符组的最小操作系统级别的操作系统版本识别符、对应的描述符组的尺寸、以及被使用来识别特定的扩展描述符组的供应商代码。在某些实施例中,所述一个或多个描述符组识别符中的每个还可以包括替换的枚举识别符,其指示:当替换的枚举控制转移被接收时,设备是否应当返回用于通信接口(例如,usb)的非缺省描述符。如果主机设备具有由操作系统识别符识别的、足够最新的操作系统,这样的信息以及特别是供应商代码可被主机计算设备使用来发出一个或多个供应商特定的控制请求到设备以便得到对应的扩展描述符组。关于请求扩展能力描述符700和相关联的扩展描述符组的方法的细节在下面被提供,并且在图8-9中显示。

应当指出,因为扩展能力描述符700本身打算在usb技术规范中被支持(虽然规定扩展能力的唯一的代码不被支持),所以从不支持扩展描述符的另外的设备检索扩展能力描述符700不会使得该设备冻结/暂停,并且因此可以改进在所有的usb设备上的可靠的操作。相反,根据在扩展能力描述符700中被检索的值,一个或多个扩展描述符可以被请求并且可结合主机计算系统被使用来枚举设备,其使用操作系统特定的描述符的组、或可以以与否则由缺省的标准描述符的组提供的不同的方式向主计算系统规定设备的替换的描述符。在这样的安排提供的灵活性以外,它也保证与不支持扩展描述符或替换的配置的设备的兼容性,因为这样的描述符将仅仅在确定在设备中存在那些描述符后(如由扩展能力描述符700指示的)才被请求。

现在参照图8-9,描述了关于可以经由usb接口从设备请求扩展能力描述符和相关联的扩展描述符组的过程的另外的细节。在实施例中,图8的方法可以由主机计算设备(例如,主机计算系统102)执行。具体地,图8显示按照本公开内容的用于得到扩展描述符组的示例性过程的顶层方法。通常,方法800包括经由usb接口请求802包括一个或多个扩展能力描述符的标准描述符。所述请求可以从主机计算系统被发送到设备。在标准描述符中,扩展能力描述符可被例如包括在一组二进制设备对象存储(bos)设备能力描述符(其被包括在usb标准内)内。在操作804处,扩展能力描述符被接收,例如连同接收被包括在请求的描述符组中的其它描述符。标准描述符的这种接收例如在主机计算系统处发生。标准描述符包括一个或多个扩展能力描述符,扩展能力描述符进而可包括操作系统版本定义。在实施例中,主机计算系统然后评估扩展能力描述符,以便例如根据被包括在扩展能力描述符内的代码确定本公开内容的扩展描述符是否被支持。

接着,方法800进到操作806,其中对于扩展描述符组作出一个或多个控制请求。在实施例中,主机计算设备可以经由usb接口发出一个或多个设备请求到设备以请求在扩展描述符组中的新规定的扩展描述符中的一个或多个(例如,如下面在图9上讨论的使用供应商特定的控制请求)。控制转移是从主机传送到外围设备的数据结构。控制转移包含以下的字段:

bmrequesttype—掩膜字段,指示(a)在控制转移的随后的阶段中数据转移的方向;(b)请求类型(标准、类别、供应商、或保留的);以及(c)接收者(设备、接口、端点、或其它)。在“请求类型”字段中指定的请求的主要类型是“标准”和“供应商”类型,它们将在下面被讨论。

brequest—请求代码,指示设备响应于的多个不同的命令之一。

wvalue—按照由brequest指定的请求而变化的字段。

windex—按照请求而变化的字段;典型地被使用于作为指定的请求的一部分传递索引或偏移。

wlength—在随后的数据阶段的条件下的转移的字节的数目。

所有的usb设备被设计成支持和响应于在usb技术规范中被支持的并且在这里被称为“usb-特定的”请求的“标准”请求。应当指出,当扩展描述符通过使用其它通信接口被应用时,一组标准请求和标准描述符可以按照用于该替换的接口的技术规范而改变。

在usb特定的请求中,bmrequesttype字段的请求类型部分包含指示“标准”请求类型的预定的值。usb设备任选地可支持“供应商”请求—这里被称为“设备-特定的”请求。在设备-特定的请求中,bmrequesttype字段的请求类型部分包含预定的值以指示供应商”请求类型。在设备-特定的请求的情形下,usb技术规范并不分配请求代码、规定wvalue和windex的意义、或规定返回的数据的格式。相反,每个设备对于设备-特定的请求的意义、功能性、和数据格式具有几乎完全的控制。具体地,设备的供应商或设计者可以规定它自己的请求,并给这些请求分配设备特定的请求代码。这允许设备规定它们自己的设备请求以供主机计算机使用,以及给外围设备的制造商提供灵活性。

在本公开内容的上下文中,根据扩展能力描述符的以前的请求,请求以及特别是wvalue和windex字段可以被填充以特定的值的组。具体地,windex值可被设置为对于由本公开内容的新的扩展能力描述符支持的描述符的已知的索引。应当指出,通常,对于每个标准usb特定的请求代码,usb技术规范阐述wvalue和windex的意义,以及任何返回的数据的格式。另外,对于现在的扩展能力描述符安排的以前的版本,可以使用预定的windex,而不验证对于这样的值的支持,从而导致接收请求的设备将暂停或否则将对于在该设备中未规定的索引值作出错误的反应的可能性。

在操作808处,接收在扩展描述符组中的描述符(例如,设备、配置、和/或功能描述符)。在实施例中,主机计算系统可以从设备接收一个或多个扩展描述符。主机计算系统可以使用那些扩展描述符来规定设备的操作、安装任何的驱动器、和否则枚举设备。应当指出,主机计算系统可以按想要的那样重复供应商特定的控制请求以便按需要从设备得到不同的信息。

现在参照图9,提供了关于请求和确定与本公开内容的扩展描述符的兼容性的另外的细节。特别地,在方法900中,在操作902处,发送对于扩展能力描述符的请求,其例如作为bos描述符组的一部分。这个请求可以例如从主机计算系统发送到设备。在操作904处,所述请求被接收,以及返回对应的扩展能力描述符(例如,连同返回在bos描述符组中的其它描述符)。如果返回的能力描述符的组缺乏扩展能力描述符,或如果返回的扩展能力描述符缺乏指示支持本公开内容的扩展描述符的任何值,则操作906确定主机计算系统可以配置不是操作系统特定的描述符请求。因此,在操作908处,在这种情形下的描述符请求将回到现有的描述符请求过程,这可包括对于仅标准描述符的请求、或者对于使用所述扩展能力描述符(例如,在这里描述的扩展描述符的以前的版本中的)不被支持或识别的扩展描述符的请求。否则,如果扩展能力描述符包括指示对于扩展描述符的支持的代码(例如,uuid),则对于扩展描述符组的请求可以在操作910处例如由主机计算系统生成。这可包括一个或多个扩展描述符组,每个对应于由设备支持的不同的最小操作系统级别。

在操作912处,发送供应商特定的控制请求,所述供应商特定的控制请求包括识别对应于所支持的最小操作系统要求的供应商代码的brequest值。例如,供应商特定的控制请求可以从主机计算系统发送到设备。在操作914处,兼容的设备接收请求,并且被配置成通过返回扩展描述符而响应于这样的请求。扩展描述符例如可以是上面结合图3-6讨论的任何的描述符类型。

更具体地,在操作916处,接收供应商特定的控制请求。例如,根据这样的请求,设备确定供应商实施的请求值是否对应于在供应商特定的控制请求中识别的值(例如,在扩展能力描述符中的供应商代码中规定的brequest值)。响应于所述请求,所请求的一个或多个扩展描述符然后被返回。在这时,在所显示的实施例中,在操作918处,接收扩展能力描述符组,它例如可包括由主机计算设备接收的一个或多个扩展描述符。

在这个系统的可能的实施方案中,设备请求被使用来从设备请求多个可得到的描述符之一。对于扩展描述符的主机特定的请求的brequest字段指示多个可得到的扩展描述符中的哪些将被返回。设备返回brequest提到的描述符。

参照图1-9,通常,以上描述的技术允许操作系统设计者规定设备可以实施来提供关于不直接被usb技术规范寻址的它们自己的数据的附加数据的扩展描述符。例如,以上描述的技术允许操作系统规定图1的扩展描述符123和扩展描述符124。主机系统的操作系统然后使用扩展描述符来识别不被通信接口(例如,usb)支持的设备的特征,该通信接口被支持非标准usbdwg类别代码和/或子类别代码的设备使用来确定一个或多个设备驱动器以控制所述设备。

除了上述内容以外,本公开内容的扩展能力描述符和扩展描述符提供超过现有的扩展描述符的优点。具体地,通过使用被包括在usb技术规范中的现有的、规定的描述符(即,扩展能力描述符)的请求,该描述符将通知允许规定设备、配置、和功能级别能力的操作系统特定的能力是否被支持。这保证后向兼容性(即,它不会引起不支持扩展的能力的usb设备的非预期的实施)。另外,这里讨论的扩展描述符允许设备按整个设备而不是按功能描述它们本身。另外,通过使用本公开内容的扩展能力描述符,设备可以把至少共同性质的特征组暴露给它连接到的每个主机系统,同时提供扩展的功能性给支持的主机设备。

最后,虽然本公开内容将扩展能力描述符和扩展描述符描述为针对在usb接口内使用,但应当认识到,在某些实施例中,扩展能力描述符和扩展描述符并不受限制。例如,扩展能力描述符和扩展描述符可被包括在一个或多个替换的接口类型中,诸如pci、蓝牙、或其它类型的有线或无线接口。

这里描述的实施例和功能性可以经由诸如以上参照图1描述的主机计算系统102和设备114那样的多个计算系统操作,其包括有线和无线计算系统、移动计算系统(例如,移动电话、平板或板式计算机、膝上型计算机等等)。另外,这里描述的实施例和功能性可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能性、存储器、数据存储和检索以及各种处理功能可以在诸如互联网或内联网那样的分布式计算网络上互相远离地被操作。各种类型的用户界面和信息可以经由板上计算设备显示器或经由与一个或多个计算设备相关联的远端显示器单元被显示。例如,各种类型的用户界面和信息可以在墙面上被显示和与其交互,各种类型的用户界面和信息被投影在所述墙面上。与可用其实践本公开内容的实施例的多个计算系统的交互包括击键输入、触摸屏输入、话音或其它音频输入、手势输入,在所述手势输入中相关联的计算设备配备有用于获取和解释用来控制计算设备的功能性的用户手势的检测(例如,照相机)功能性等等。图10到12和相关联的描述提供其中可以实践本发明的实施例的各种操作环境的讨论。然而,相对于图10到12图示和讨论的设备和系统是用于举例和说明,而并不限于可被利用于实践这里描述的公开内容的实施例的大量的计算设备配置。

图10是图示可以用其实践本公开内容的实施例的计算设备1000的示例性物理构件的框图。下面描述的计算设备构件可以适用于以上描述的计算设备,例如,图1的主机计算系统102或设备114。在基本配置中,计算设备1000可包括至少一个处理单元1002和系统存储器1004。取决于计算设备的配置和类型,系统存储器1004可包括但不限于易失性(例如,随机存取存储器(ram))、非易失性(例如,只读存储器(rom))、快闪存储器、或任何组合。系统存储器1004可包括操作系统1005和一个或多个编程模块1006,它们适用于运行应用,诸如客户端应用或服务器应用。操作系统1005例如可以适用于控制计算设备1000的操作。此外,本公开内容的实施例可以结合图形库、其它操作系统、或任何其它应用程序被实践,并且不限于任何特定的应用或系统。这个基本配置在图10中通过虚线1008内的那些构件被图示。

计算设备1000可以具有附加的特征或功能性。例如,计算设备1000还可以包括附加的数据存储设备(可拆卸和/或非可拆卸的),诸如例如磁盘、光盘或磁带。这样的附加的存储装置在图10上通过可拆卸存储装置1009和非可拆卸存储装置1010被图示。

如上所述,许多程序模块和数据文件可被存储在系统存储器1004中,其包括操作系统1005。当在处理单元1002上执行时,编程模块1006可以执行过程,所述过程包括例如在图8-9中讨论的方法的阶段中的一个或多个。上述的过程是例子,以及处理单元1002可以执行其它过程。可以按照本公开内容的实施例被使用的其它编程模块可包括电子邮件和联系应用、文字处理应用、电子表格应用、数据库应用、幻灯片呈现应用、画图或计算机辅助应用程序等等。

通常,与本公开内容的实施例一致,程序模块可包括例行程序、程序、构件、数据结构、和可以执行特定的任务或可以实施特定的抽象数据类型的其它类型的结构。而且,本公开内容的实施例可以用其它计算机系统配置被实践,包括手持式设备、多处理器系统、基于微处理器的或可编程的消费电子、小型计算机、大型计算机等等。本公开内容的实施例也可以在分布式计算环境中被实践,其中任务由通过通信网被链接的远端处理设备执行。在分布式计算环境中,程序模块可被放置在本地和远端存储器存储设备中。

此外,本公开内容的实施例可以在电子电路中或在包含电子元件或微处理器的单个芯片上被实践,所述电子电路包括分立电子元件、包含逻辑门的封装的或集成的电子芯片、利用微处理器的电路。例如,本公开内容的实施例可以经由片上系统(soc)被实践,其中在图10上图示的构件中的每个或多个可被集成在单个集成电路上。这样的soc设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能性,它们全部被集成(或“烧制”)在芯片基板上作为单个集成电路。当经由soc操作时,服务器应用1020或客户端应用1022的功能性可以经由与计算设备1000的其它构件一起集成在单个集成电路(芯片)上的应用特定的逻辑被实施。本公开内容的实施例也可以通过使用能够执行诸如例如与门、或门、以及非门那样的逻辑运算的其它技术而被实践,所述技术包括但不限于机械、光学、流体、和量子技术。另外,本公开内容的实施例可以在通用计算机内或在任何其它电路或系统中被实践。

如这里使用的术语“计算机可读媒体”包括计算机存储媒体。计算机存储媒体可以包括以用于存储诸如计算机可读指令、数据结构或程序模块这样的信息的任何方法或技术实施的易失性和非易失性、可拆卸和非可拆卸媒体。系统存储器1004、可拆卸存储装置1009、和非可拆卸存储装置1010都是计算机存储媒体例子(即,存储器存储装置)。计算机存储媒体可包括ram、rom、电子可擦除只读存储器(eeprom)、快闪存储器或其它存储器技术、cd-rom、数字通用盘(dvd)或其它光存储装置、磁盒、磁带、磁盘存储或其它存储设备、或可包括可被使用来存储信息和可被计算设备1000访问的任何其它制造品。任何这样的计算机存储媒体可以是设备1000的一部分。如这里描述的,计算机存储媒体不包括通信媒体(在此后规定)、或任何传播的数据信号或调制数据信号。计算设备1000也可以具有输入设备1012,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等等。还可以包括输出设备1014,诸如显示器、扬声器、打印机等等。上述的设备是例子,也可以使用其它的设备。

如这里使用的术语“计算机可读媒体”也可以包括通信媒体。通信媒体可以由在诸如载波或其它输送机制那样的调制数据信号中的计算机可读指令、数据结构、程序模块、或其它数据被体现,以及包括任何信息传递媒体。术语“调制的数据信号”可以描述这样的信号,所述信号使一个或多个特性以将信息编码在所述信号中的方式被设置或改变。作为例子但不是限制,通信媒体可包括诸如有线网络或直接连线连接那样的有线媒体,和诸如声学、射频(rf)、红外线、和其它无线媒体那样的无线媒体。计算设备1000可包括允许与其它计算设备1018进行通信的通信连接1016。适当的通信连接1016的例子包括但不限于rf发射机、接收机、和/或收发机电路;通用串行总线(usb)、并行或串行端口、和适合于与可应用的计算机可读媒体一起使用的其它连接。结合本公开内容,应当指出,计算设备1000的操作系统1005可以是操作系统的许多版本之一,并且在这样的情形下,可以使能在其它计算设备1018中的不同的功能性组,其诸如通过使用被存储在系统存储器1004、可拆卸存储装置1009、或非可拆卸存储装置1010中的或由其接收的扩展配置描述符1024和相关联的扩展描述符1025,以及由其它计算设备1018管理的现有的平台能力描述符值而实现。

图11a和11b图示适当的移动计算环境,例如,移动计算设备1100,其诸如智能电话、平板个人计算机、膝上型计算机等等,本公开内容的实施例可以用它们被实践。参照图11a,图示了用于实施所述实施例的示例性移动计算设备1100。在基本配置中,移动计算设备1100是具有输入元件和输出元件的手持式计算机。输入元件可包括触摸屏显示器1105和输入按钮1110,其允许用户把信息输入到移动计算设备1100。移动计算设备1100还可以包含允许另外的用户输入的任选的侧输入元件1115。任选的侧输入元件1115可以是旋转开关、按钮、或任何其它类型的手动输入元件。在替换的实施例中,移动计算设备1100可以包含更多或更少的输入元件。例如,显示器1105在某些实施例中可能不是触摸屏。在再一个替换实施例中,移动计算设备是便携式电话系统,诸如具有显示器1105和输入按钮1110的蜂窝电话。移动计算设备1100还可以包括任选的键盘1135。任选的键盘1135可以是物理键盘或在触摸屏显示器上生成的“软”键盘。

移动计算设备1100包含输出元件,诸如显示器1105,其可以显示图形用户界面(gui)。其它输出元件包括扬声器1125和led1120。另外,移动计算设备1100可以包含振动模块(未示出),它使得移动计算设备1100进行振动以告知用户有事件发生。在再一个实施例中,移动计算设备1100可以包含耳机插孔(未示出),用于提供用来提供输出信号的另一种手段。

虽然这里是结合移动计算设备1100进行描述的,但在替换实施例中,公开内容是结合任何数目的计算机系统被使用的,诸如被使用在台式环境、膝上或笔记本式计算机系统、多处理器系统、基于微处理器的或可编程的消费电子、网络pc、小型计算机、大型计算机等等中。本公开内容的实施例还可以在分布式计算环境中被实践,其中任务由在分布式计算环境中通过通信网被链接的远端处理设备执行;程序可被放置在本地和远端存储器存储设备中。

图11b是图示在一个实施例中使用的、诸如图11a中显示的计算设备那样的移动计算设备的构件的框图。也就是,移动计算设备1100可以包含系统1102来实施某些实施例。例如,系统1102可以被使用在实施“智能电话”中,所述“智能电话”可以运行与台式计算机或笔记本计算机的那些类似的一个或多个应用,诸如例如浏览器、电子邮件、行程安排、瞬间消息传送、和媒体播放器应用。在某些实施例中,系统1102被集成为计算设备,诸如集成的个人数字助理(pda)和无线电话。

一个或多个应用程序1166可被装载到存储器1162中,并且在操作系统1164上或与操作系统关联地运行。应用程序的例子包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等等。这样的应用程序还可以包括在经由外围设备端口与诸如上面的图1的设备114那样的外围设备进行通信时有辅助的应用程序。因此,应用程序1166可被使用来根据由不同的版本的操作系统1164支持的不同的扩展能力描述符组实施不同的功能性组。

系统1102还包括在存储器1162内的非易失性存储装置1168。非易失性存储装置1168可包括计算机存储媒体,并且可被使用来存储如果系统1102断电也不应当丢失的永久信息。应用可被装载到存储器1162以及在设备1100上运行,其包括这里描述的各种客户端和服务器应用。另外,在显示的例子中,包括如上所述的扩展能力描述符或扩展描述符的组的一个或多个os描述符1169可被包括在存储器1162内。

系统1102具有电源1170,它可以被实施为一个或多个电池。电源1170还可以包括外部电源,诸如ac适配器或用来补充或给电池充电的供电对接支架。

系统1102还可以包括执行发射和接收射频通信的功能的无线电1172。无线电1172便利于经由通信载体或服务提供商的、在系统1102与“外面世界”之间的无线连接性。从和向无线电1172的传输可以在操作系统1164的控制下进行。换句话说,由无线电1172接收的通信可以经由操作系统1164被散布到应用程序1166以及反之亦然。

所显示的系统1102的实施例包括两种类型的通知输出设备:可被使用来提供视觉通知的发光二极管(led)1120和可以与扬声器1125一起被使用来提供音频通知的音频接口1174。这些设备可以直接耦合到电源1170,使得当被激活时,它们保持开着达由通知机制命令的一段持续时间,即使处理器1160和其它构件可能关闭以便节省电池功率。led1120可被编程为无限期地保持开着直至用户采取行动指示设备的电源接通状态。音频接口1174被使用来提供可听见的信号给用户和接收来自用户的可听见的信号。例如,除了被耦合到扬声器1125以外,音频接口1174还可以被耦合到麦克风以便接收可听见的输入,诸如以便便于电话交谈。按照本公开内容的实施例,麦克风也可以用作为音频传感器,以便于通知的控制,如将在下面描述的。系统1102还可以包括视频接口1176,它使能操作板上照相机1130来记录静止图像、视频流等等。

实施系统1102的移动计算设备可以具有附加的特征或功能性。例如,移动计算设备1100还可以包括附加的数据存储设备(可拆卸和/或非可拆卸的),诸如磁盘、光盘、或磁带。

由移动计算设备1100生成或获取的并经由系统1102存储的数据/信息可被本地存储在移动计算设备800上,如以上所描述的,或者数据可被存储在任何数目的存储媒体上,这些存储媒体可以由设备经由无线电1172或经由在移动计算设备1100和与移动计算设备1100相关联的单独的计算设备(例如,在诸如互联网这样的分布式计算网络中的服务器计算机)之间的有线连接而被访问。如应当了解的,这样的数据/信息可以经由移动计算设备1100通过无线电1172或通过分布式计算网络被访问。类似地,这样的数据/信息可以按照熟知的数据/信息转移和存储手段容易地在计算设备之间进行转移以用于存储和使用,所述手段包括电子邮件和协作数据/信息共享系统。

图12图示用于提供诸如可下载的驱动器或可用于usb接口配置的web应用那样的远端应用给一个或多个客户端设备的系统结构,如以上描述的。与远端应用相关联地开发的、互动的、或编辑的内容可被存储。例如,各种文档可以通过使用目录服务1222、web门户1224、邮箱服务1226、瞬时消息传送储存器1228和社交联网站点1230而被存储。远端应用可以使用任何的这些类型的系统等等用于使能数据利用,如这里描述的。服务器1220可以提供远端应用给客户端。作为一个例子,服务器1220可以是在web上提供主机应用1020的web服务器。服务器1220可以通过网络1215在web上提供远端应用给客户端。可以访问远端应用的客户端的例子可包括任何通用个人计算机1202、平板计算设备1204、和/或诸如智能电话那样的移动计算设备1206,它们的每个可包括usb或其它相似的接口。任何的这些设备可以从储存器1216得到内容。例如,可下载的驱动器或web应用可被提供给主机计算系统,诸如图1的主机计算系统102,其可以被实施为任何的通用个人计算机1202、平板计算设备1204、和/或移动计算设备1206。

本公开内容的实施例在上面例如是参照按照本公开内容的实施例的方法、系统、和计算机程序产品的框图和/或操作说明被描述的。在方框中指出的功能/动作可以以不同于在任何流程图中显示的次序发生。例如,连续显示的两个方框事实上可以基本上同时被执行,或这两个方框有时可以以相反的次序被执行,其取决于所牵涉到的功能性/动作。

虽然描述了本公开内容的特定实施例,但也可以存在其它实施例。相反,所公开的方法的阶段可以以任何方式被修改,包括通过重新排序阶段和/或插入或删除阶段,而不背离本公开内容。

在本申请中提供的一个或多个实施例的描述和说明不打算以任何方式限制或限定所要求保护的本发明的范围。在本申请中提供的实施例、例子和细节被认为足以传达所有权,并且使得其它人能够作出和利用所要求保护的本发明的最好模式。所要求保护的发明不应当被解释为限于在本申请中提供的任何实施例、例子、或细节。不管是否组合地或单独地被显示和描述,各种特征(结构性的和方法学的)打算被选择地包括或省略,以便产生具有特定的特征的组的实施例。在已经被提供有本申请的描述和说明后,本领域技术人员可以预想落入所要求保护的发明的更广方面的精神以及在本申请中体现的总的发明构思内的没有背离该更广的范围的变例、修改、和替换实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1