用于多功能设备枚举的系统和方法.pdf

上传人:Y0****01 文档编号:1004841 上传时间:2018-03-25 格式:PDF 页数:19 大小:678.30KB
返回 下载 相关 举报
摘要
申请专利号:

CN201080013484.3

申请日:

2010.01.29

公开号:

CN102362241A

公开日:

2012.02.22

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 3/00申请公布日:20120222|||实质审查的生效IPC(主分类):G06F 3/00申请日:20100129|||公开

IPC分类号:

G06F3/00

主分类号:

G06F3/00

申请人:

施克莱无线公司

发明人:

理查德·托马斯·卡瓦诺

地址:

加拿大不列颠哥伦比亚

优先权:

2009.02.02 US 61/149,283; 2009.03.27 US 12/413,500

专利代理机构:

北京康信知识产权代理有限责任公司 11240

代理人:

余刚;吴孟秋

PDF下载: PDF下载
内容摘要

本发明公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。该多功能外围设备可以包括连接到主机接口的类属和非类属功能单元。该设备可以在其非易失存储器中存储用于非类属功能单元的一个或多个驱动程序。该外围设备可以进一步包括控制器,其控制类属和非类属功能单元展露至主机系统和在主机系统上枚举的顺序。该控制器可以包括开关,该开关可操作地接通和切断类属和非类属功能单元,从而控制这些单元展露至主机系统并在主机系统上枚举的顺序。

权利要求书

1: 一种用于在主机系统上枚举多功能外围设备的方法, 该多功能外围设备具有类属功 能单元和非类属功能单元, 所述方法包括 : 将所述外围设备连接至所述主机系统 ; 向所述主机系统展露所述外围设备的所述类属功能单元 ; 在所述主机系统上枚举经展露的所述类属功能单元 ; 定位用于所述外围设备的所述非类属功能单元的驱动程序 ; 向所述主机系统展露非类属功能单元 ; 以及 在所述主机系统上枚举经展露的所述非类属功能单元。
2: 根据权利要求 1 所述的方法, 其中, 展露所述类属功能单元包括切断所述外围设备 的所述非类属功能单元。
3: 根据权利要求 2 所述的方法, 其中, 展露所述非类属功能单元包括切断所述外围设 备的所述类属功能单元。
4: 根据权利要求 2 所述的方法, 其中, 展露所述非类属功能单元包括接通所述类属功 能单元并且接通所述非类属功能单元。
5: 根据权利要求 3 所述的方法, 其中, 枚举所述类属功能单元包括向所述主机系统上 传瘦驱动程序, 该瘦驱动程序被配置为定位用于所述外围设备的所述非类属功能单元的驱 动程序。
6: 根据权利要求 5 所述的方法, 其中, 所述驱动程序的位置包括以下各项之一 : 所述主 机系统的存储器、 所述外围设备的存储器、 安装 CD 以及网络服务器。
7: 根据权利要求 6 所述的方法, 进一步包括 : 在所述主机系统上安装用于所述非类属 功能单元的驱动程序。
8: 根据权利要求 1 所述的方法, 其中, 所述类属功能单元和所述非类属功能单元通过 单个接口连接至所述主机系统。
9: 根据权利要求 8 所述的方法, 其中, 所述接口包括有线接口和无线接口之一。
10: 一种用于在主机系统上枚举多功能外围设备的方法, 该多功能外围设备具有类属 功能单元和非类属功能单元, 所述方法包括 : 切断所述外围设备的所述非类属功能单元 ; 接通所述外围设备的所述类属功能单元 ; 在所述主机系统上枚举所述类属功能单元 ; 在所述主机系统上加载用于所述非类属功能单元的驱动程序 ; 接通所述外围设备的所述非类属功能单元 ; 以及 在所述主机系统上枚举所述非类属功能单元。
11: 根据权利要求 10 所述的方法, 其中, 枚举所述非类属功能单元包括重置和重新枚 举所述外围设备的所述类属功能单元。
12: 根据权利要求 11 所述的方法, 其中, 枚举所述类属功能单元包括向所述主机系统 上传瘦驱动程序, 该瘦驱动程序可操作地定位用于所述外围设备的所述非类属功能单元的 驱动程序。
13: 根据权利要求 12 所述的方法, 其中, 所述驱动程序的位置包括以下各项之一 : 所述 主机系统的存储器、 所述外围设备的存储器、 安装 CD 以及网络服务器。 2
14: 根据权利要求 13 所述的方法, 进一步包括 : 在所述主机系统上安装用于所述非类 属功能单元的驱动程序。
15: 根据权利要求 10 所述的方法, 其中, 所述类属功能单元和所述非类属功能单元通 过单个接口连接至所述主机系统。
16: 根据权利要求 15 所述的方法, 其中, 所述接口包括有线接口和无线接口之一。
17: 一种用于在主机系统上枚举多功能外围设备的方法, 该多功能外围设备具有类属 功能单元和非类属功能单元, 所述方法包括 : 向所述主机系统展露所述外围设备的所述类属功能单元 ; 在所述主机系统上枚举经展露的所述类属功能单元 ; 向所述主机系统提供瘦驱动程序, 该瘦驱动程序可操作地定位并在所述主机系统上加 载用于所述外围设备的所述非类属功能单元的设备驱动程序 ; 向所述主机系统展露非类属功能单元 ; 在所述主机系统上枚举经展露的所述非类属功能单元 ; 以及 在所述主机系统上安装用于所述非类属功能单元的驱动程序。
18: 根据权利要求 17 所述的方法, 其中, 展露所述类属功能单元包括切断所述外围设 备的所述非类属功能单元。
19: 根据权利要求 18 所述的方法, 其中, 展露所述非类属功能单元包括切断所述外围 设备的所述类属功能单元。
20: 根据权利要求 17 所述的方法, 其中, 展露所述非类属功能单元包括接通所述类属 功能单元以及所述非类属功能单元。
21: 根据权利要求 17 所述的方法, 其中, 所述驱动程序的位置包括以下各项之一 : 所述 主机系统的存储器、 所述外围设备的存储器、 安装 CD 以及网络服务器。
22: 根据权利要求 17 所述的方法, 其中, 所述类属功能单元和所述非类属功能单元通 过单个接口连接至所述主机系统。
23: 根据权利要求 22 所述的方法, 其中, 所述接口包括有线接口和无线接口之一。
24: 一种用于在主机系统上枚举多功能外围设备的方法, 该多功能外围设备具有类属 功能单元和非类属功能单元, 所述方法包括 : 检测所连接的所述外围设备的、 经展露的所述类属功能单元 ; 枚举所述外围设备的、 检测到的所述类属功能单元 ; 加载瘦驱动程序, 该瘦驱动程序可操作地定位并在所述主机系统上加载用于所述外围 设备的所述非类属功能单元的设备驱动程序 ; 检测所连接的所述设备的、 经展露的所述非类属功能单元 ; 以及 枚举所述外围设备的、 检测到的所述非类属功能单元。
25: 根据权利要求 24 所述的方法, 进一步包括 : 安装用于所述非类属功能单元的设备 驱动程序。
26: 根据权利要求 25 所述的方法, 其中, 所述设备驱动程序的位置包括以下各项之一 : 所述主机系统的存储器、 所述外围设备的存储器、 安装 CD 以及网络服务器。
27: 根据权利要求 26 所述的方法, 其中, 所述类属功能单元和所述非类属功能单元通 过单个接口连接至所述主机系统。 3
28: 根据权利要求 27 所述的方法, 其中, 所述接口包括有线接口和无线接口之一。
29: 一种多功能外围设备, 包括 : 主机接口, 用于与主机系统通信 ; 第一功能单元, 连接至所述主机接口 ; 第二功能单元, 连接至所述主机接口 ; 非易失性存储器, 用于存储用于所述第一功能单元和所述第二功能单元中至少一个的 一个或多个设备驱动程序 ; 以及 控制器, 用于控制所述第一功能单元和所述第二功能单元展露至所述主机系统及其在 所述主机系统上被枚举的顺序。
30: 根据权利要求 29 所述的设备, 其中, 所述控制器包括开关, 该开关可操作地接通和 切断所述设备的所述第一和第二功能单元, 从而控制所述功能单元展露至所述主机系统及 其在所述主机系统上被枚举的顺序。
31: 根据权利要求 30 所述的设备, 其中, 所述开关包括自动开关和用户操作的手动开 关之一。
32: 根据权利要求 29 所述的设备, 其中, 所述第一功能单元是类属功能单元, 所述第二 功能单元是非类属功能单元。
33: 根据权利要求 32 所述的设备, 其中, 所述类属功能单元包括大容量存储单元。
34: 根据权利要求 33 所述的设备, 其中, 所述大容量存储单元包括安装器应用程序, 该 安装器应用程序可操作地在所述主机系统上安装用于所述外围设备的所述非类属功能单 元的设备驱动程序。
35: 根据权利要求 29 所述的设备, 其中, 所述存储器进一步包括瘦驱动程序, 该瘦驱动 程序可操作地定位用于所述第一和第二功能单元之一的设备驱动程序。
36: 根据权利要求 35 所述的设备, 其中, 所述设备驱动程序的位置包括以下各项之一 : 所述主机系统的存储器、 所述外围设备的存储器、 安装 CD 以及网络服务器。
37: 根据权利要求 29 所述的设备, 其中, 所述主机接口包括有线接口和无线接口之一。
38: 根据权利要求 29 所述的设备, 其中, 所述多功能外围设备嵌入所述主机系统。

说明书


用于多功能设备枚举的系统和方法

    技术领域 本发明涉及计算机系统领域, 更具体地, 涉及在主机系统上枚举多功能外围或嵌 入式设备中的各种功能单元的系统和方法。
     背景技术 由于设备制造商期望通过向外围设备添加各种功能单元以增加其产品的价值和 附加性能, 因此多功能外围和嵌入式设备变得日益流行。许多这种多功能设备通过单个 物理接口来展露它们的各种功能单位, 其中该单个物理接口支持在设备枚举期间由主机将 描述符或配置表读出设备的性能。具有这些能力的设备接口的一些实例包括 USB 和 Fire Wire(IEEE1394)。
     外围设备的描述符或配置表通常包含对于主机要确定必须加载哪个驱动程序以 枚举、 展露和控制外围设备的每个功能单元所必需的信息。 通常, 设备的非类属功能单元需 要特有的一组销售商专有和 / 或主操作系统 (OS) 本机驱动程序 (driver)、 与同父多功能设 备的一个或多个其它功能共享驱动程序, 或是这两者的组合。
     当这些多功能设备在主机中被枚举时, 它们通常被配置为同时枚举设备的每个功 能单元。然而, 有时也可能期望只向主机展露设备中一个或多个功能单元而不是全部功能 单元。 因此, 存在着对于以下机制的需求 : 该机制对多功能设备的功能单元展露至主机并在 主机上被枚举的顺序进行控制。
     发明内容
     公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。 在一个示意 性实施方式中, 多功能外围设备可以包括连接到主机接口的类属以及非类属功能单元。设 备可以在其非易失性存储器中存储用于非类属功能单元的一个或多个驱动程序。 外围设备 可以进一步包括 : 控制器, 用于控制类属以及非类属功能单元展露至主机并在其上枚举的 顺序。 该控制器可以包括 : 可操作地接通和切断类属以及非类属功能单元的开关, 从而控制 这些单元展露和枚举的顺序。该开关可以包括自动开关或手动操作开关。
     在一个示意性实施方式中, 用于将具有类属功能单元和非类属功能单元的多功能 外围设备在主机上枚举的方法包括 : 将外围设备连接到主机系统。该方法进一步包括 : 将 外围设备的类属功能单元展露至主机并在其上进行枚举。然后, 定位 (locate, 查找出 ) 用 于外围设备的非类属功能单元的驱动程序。 该方法进一步包括将非类属功能单元展露至主 机并在其上枚举。在一个示意性实施方式中, 展露类属功能单元包括切断外围设备的非类 属功能单元。在另一示意性实施方式中, 展露非类属功能单元包括切断外围设备的类属功 能单元。
     在另一示意性实施方式中, 用于将具有类属功能单元和非类属功能单元的多功能 外围设备在主机上枚举的方法包括 : 切断外围设备的非类属功能单元以及接通外围设备的 类属功能单元。 该方法进一步包括 : 在主机上枚举类属功能单元, 并且在主机上加载用于非类属功能单元的驱动程序。 该方法进一步包括接通外围设备的非类属功能单元并在主机系 统上枚举非类属功能单元。在一个示意性实施方式中, 枚举非类属功能单元包括重置以及 重新枚举外围设备的类属功能单元。
     在另一示意性实施方式中, 用于将具有类属功能单元和非类属功能单元的多功能 外围设备在主机上枚举的方法包括 : 将外围设备的类属功能单元向主机展露并将其在主机 上枚举。 该方法进一步包括向主机系统提供可操作地在主机系统上定位并加载用于外围设 备的非类属功能单元的设备驱动程序的瘦驱动程序 (thin driver)。该方法进一步包括将 非类属功能单元向主机系统展露并将其枚举在主机系统上。 该方法进一步包括安装用于非 类属功能单元的驱动程序。
     此外, 在另一示意性实施方式中, 用于将具有类属功能单元和非类属功能单元的 多功能外围设备在主机上枚举的方法包括 : 检测连接的外围设备的、 经展露的类属功能单 元并枚举检测到的类属功能单元。该方法进一步包括 : 加载可操作地在主机系统上定位并 加载用于外围设备的非类属功能单元的设备驱动程序的瘦驱动程序。该方法进一步包括 : 检测连接的设备的、 经展露的非类属功能单元并将该经展露的非类属功能单元枚举在主机 上。该方法进一步包括安装用于被枚举的非类属功能单元的设备驱动程序。 所公开的系统和方法使多功能外围设备在初始的设备枚举处理期间、 在设备确定 是否展露非类属功能单元之前, 能够确定所有所需设备驱动程序是否存在于主机的系统存 储器中, 因此缩短了在外围设备连接到主机之后初始化外围设备所需的时间, 从而增强了 整体设备枚举的用户体验。根据附图和以下示意性实施方式的详细描述, 本发明的其他优 势对于本领域技术人员而言是显而易见的。
     附图说明
     通过参考以下描述以及用于阐明本发明实施方式的附图可以充分地理解本发明。
     附图中 :
     图 1 是主机系统的一个示意性实施方式的示图。
     图 2 是外围设备的一个示意性实施方式的示图。
     图 3A 至图 3C 是切换机制的示意性实施方式的示图。
     图 4 至图 6 是枚举处理的示意性实施方式的流程图。 具体实施方式
     图 1 所示的计算机系统 100 的一个示意性实施方式包括 : 主机 105 以及多个多功 能外围或嵌入式设备 110A、 110B、 110C。主机 105 可以包括, 但不限于 : 台式计算机、 服务器 计算机、 移动计算机、 个人数字助理 (PDA)、 蜂窝电话、 网络路由器、 无线接入点、 游戏机或其 它类型的数据处理设备。设备 110A、 110B、 110C 中的一个或多个可以包括, 但不限于 : 内部 或外部调制解调器、 打印机、 诸如磁盘和闪存驱动的存储设备、 扫描仪、 麦克风、 扬声器、 照 相机、 PCI 扩展卡以及扩展主机 105 功能的其它类型设备。
     在一个示意性实施方式中, 主机 105 可以包括 : 处理设备 115、 系统存储器 120 以 及将处理设备 115 与系统存储器 120 互连的系统总线 125。系统总线 125 可以包括, 但不限 于: 16 位、 32 位、 64 位或其它类型的平行连接器。主机 105 可以进一步包括 : 将主机 105 与其外围设备 110A、 110B、 110C 互连的一个或多个输入 / 输出总线 130A、 130B、 130C。I/O 总 线可以包括但不限于 : PCI、 PCI 扩展、 USB、 ISA、 AGP、 串行 ATA、 以太网、 IEEE1394 以及其它 类型的通信接口。
     计算机 105 的处理设备 115 被配置为解释各种计算机程序、 运行应用程序、 以及 将数据和指令导入诸如系统存储器 120 和外围 / 嵌入式设备 110A、 110B、 110C 的其它设备 或从这些其它设备中导出数据和指令。在一个示意性实施方式中, 处理设备 115 可以包括 通用处理器, 诸如英特尔双核 (TMDual-CoreTM) 或奔腾处理器、 AMD 炫龙(Turion )64 位处理器或其它类型的微处理器。 在另一示意性实施方式中, 处理设备 115 可 以包括特定用途集成电路 (ASIC)、 现场可编程门阵列 (FPGA)、 可编程逻辑器件 (PLD) 和其 它类型的客户定制电路。
     系统存储器 120 可以包括, 但不限于 : 随机存储器 (RAM)、 只读存储器 (ROM)、 可编 辑 ROM(PROM)、 可擦除 PROM(EPROM)、 FLASH-EPROM 以及其它类型的动态、 易失和非易失信 息存储介质。在一个示意性实施方式中, 系统存储器 120 可以存储操作系统 (OS)135, 诸如 Unix、 Linux 或其它类型 OS。系统存储器 120 还可以存储一个或多个设 备驱动程序 145, 它包括允许主机 105 与外围或嵌入式设备 110A、 110B、 110C 或者可以连接 到主机 105 的其它设备的一个或多个功能单元进行通信的程序子例程。
     图 2 描述了多功能外围设备 210 的一个示意性实施方式。本文所使用的术语 “外 围设备” 还包括嵌入主机系统的设备。设备 210 可以包括 I/O 通信接口 215, 诸如 PCI、 PCI 扩展、 USB、 ISA、 AGP、 串行 ATA、 以太网、 IEEE1394 或用于与主机 205 的对应 I/O 总线进行通 信的其它类型的有线或无线接口。多功能设备 210 可以包括数个功能单元, 诸如类属功能 单元 220 和非类属功能单元 230。类属功能单元 220 通常是由主机 205 的 OS 本机支持的功 能单元。这种类属功能单元可以包括大容量存储、 输入 / 输出、 音频 / 视频和其它功能。非 类属功能单元 230 提供不由主机 205 的 OS 本机支持的销售商专有功能, 诸如光学扫描、 游 戏功能、 TV 调谐和其它功能。
     在一个示意性实施方式中, 多功能外围设备可以包括存储器 240, 诸如 RAM、 ROM、 PROM、 EPROM、 FLASH-EPROM 和其它类型的动态、 易失性和非易失性信息存储介质。在一个示 意性实施方式中, 存储器 240 可由功能单元 220 和 230 共享。可替换地, 每个功能单元可以 具有其自己的存储器 240 专用部分。在一个示意性实施方式中, 存储器 240 可以用来存储 设备驱动程序 245A 和 245B、 安装器应用程序 255 以及其他事项。设备驱动程序 245A、 245B 包括允许主机 205 与设备 210 的一个或多个功能单元通信的程序子例程。安装器应用程序 255 实现设备驱动程序 245A、 245B 在主机系统上的安装。 在一个示意性实施方式中, 设备驱动程序 245A 可以与类属功能单元 220 关联, 设 备驱动程序 245B 可以与非类属功能单元 230 关联。例如, 实现音频和游戏端口性能的附加 声卡可能作为两个对于主机 205 独立的设备出现。在一个示意性实施方式中, 由功能单元 220 提供的类属音频功能可以由音频驱动程序 245A 支持。可替换地, 类属音频功能可能由 主机 205 利用存储在主机存储器 120 中的本机驱动程序 145 来本机支持。由功能单元 230 提供的非类属游戏功能可以由游戏端口驱动程序 245B 支持。
     在另一示意性实施方式中, 驱动程序 245A、 245B 可以与非类属功能单元 230 关联。 例如, 非类属功能单元 230 可能需要数个 OS 专用驱动程序, 从而允许设备 210 与运行不同
     操作系统的主机 205 通信。例如, 驱动程序 245A 可以提供允许非类属功能单元 230 与运行 微软 操作系统的主机 205 进行操作的程序子例程, 以及驱动程序 245B 可以提供 允许非类属功能单元 230 与运行 Mac OS、 Unix 或其它操作系统的主机 205 进行操作的程 序子例程。 本领域技术人员会认识到存在着功能单元可能需要数个不同驱动程序的其它情 况。
     首先, 在多功能外围或嵌入式设备 210 连接到主机 205 时, 主机 205 的操作系统通 常试图枚举连接的设备中所有独立功能单元。在枚举处理期间, OS 135 可以识别连接的设 备中一个或多个功能单元, 载入相应的设备驱动程序、 分配所需系统资源以及执行其它设 备初始化服务。对于类属功能单元 220, OS 135 可以载入通常存储在主机 205 的系统存储 器 120 中的本机驱动程序 145。对于非类属功能单元 230 来说, OS 135 可以载入销售商专 有驱动程序 245A、 245B, 该驱动程序可以由非类属功能单元 230 提供、 可以从安装 CD 中获得 或经由互联网从设备制造商的服务器下载。
     在将驱动程序安装在主机 205 期间, 类属功能单元 220 有时可以自动安装用于一 个或多个非类属功能单元 230 的销售商专有或非 OS 本机驱动程序。一个实例为, 当在主机 205 上执行时, 类属 USB 大容量存储功能单元 ( 其通常展露安装器应用程序 255) 可以预加 载用于一些非类属功能单元 230 的所需驱动程序。然而, 在一些实例中, 在安装类属功能单 元期间, 当展露一个或多个非类属功能单元 230 时, 设备 210 可能不具有支持这些单元的能 力。这可能引起致命的异常、 性能问题和 / 或不期望的用户体验。在这种情况下, 期望抑制 一些非类属功能单元的枚举, 但仍枚举多功能设备 210 的其它功能。 为此, 在一个示意性实施方式中, 多功能设备 210 可以包括控制各种功能单元操 作的功能单元控制器 225。更具体地, 控制器 225 可以控制功能单元 220 和 230 在主机 205 上的枚举。例如, 控制器 225 可以控制在设备枚举处理期间, 设备接口描述符或配置表向主 机 205 展露的顺序。在一个示意性实施方式中, 控制器 225 可以包括, 但不限于 : 通用处理 器、 特定用途集成电路 (ASIC)、 现场可编程门阵列 (FPGA)、 可编程逻辑器件 (PLD) 和其它类 型的软件实现控制逻辑或硬件实现控制逻辑。
     在一个示意性实施方式中, 控制器 225 可以包括功能单元切换机制, 它可以实现 为 2- 路、 3- 路或 N- 路开关, 其中 N 取决于设备 210 的功能单元的数量以及可以操作这些单 元的组合。在一个示意性实施方式中, 切换机制可操作地选择一个或多个预定义的设备接 口描述符或配置表以在设备枚举处理期间向主机 205 展露。在另一示意性实施方式中, 切 换机制可操作地选择被展露的功能单元的、 通过设备接口描述符或配置表报告给主机 205 的一个或多个属性。
     切换机制可以由几种不同方式实现。在一个示意性实施方式中, 切换机制可以实 现为用户可用的物理开关, 从而用户能拨动开关以选择通过单个设备接口 215 要在主机 205 上枚举的功能单元。 在另一示意性实施方式中, 切换机制能够以作为设备安装程序一部 分的软件来实现, 这样用户能够通过 GUI 选择在设备安装期间要被枚举在主机 205 上的一 个或多个功能单元。然而, 在另一示意性实施方式中, 切换机制可以由主机 205 驱动, 正如 将在本文描述的。本领域技术人员可以认识到存在实现用于多功能设备 210 的切换机制的 其它方式。
     图 3A、 图 3B 和图 3C 描绘了使用上述切换机制的设备枚举处理的数个示意性实施
     方式。切换机制可以实现为物理 ( 或基于软件的 )3- 路开关 235。该开关可以暴露于设备 210 外部, 并且其适于用户通过物理或基于软件的图形用户界面进行拨动。 开关 235 的当前 拨动状态是通过诸如通用 I/O(GPIO) 信号 ( 未示出 ) 的接口输入多功能设备 210。每个可 能的开关设置选项均可以触发设备 210 在设备枚举处理期间向主机 205 展露不同的描述符 或配置表。
     在图 3A 中, 用户可以拨动开关 235 以触发控制器 225 只向主机 205 展露类属功能 单元 220( 诸如, 大容量存储功能单元 )。作为响应, 控制器 225 可以在主机 205 上运行安装 程序 255, 该程序使用来自系统存储器 120 的设备驱动程序 145 安装类属功能单元 220。在 设备安装期间, 类属功能单元 220 被枚举在主机 205 上。另外, 安装程序 255 可以从设备存 储器 240 中检索用于非类属功能单元 230 的各种驱动程序包 245A 和 / 或 245B 并且将它们 预加载到系统存储器 120 中。如果所需驱动程序不能在设备 210 上获得, 则安装程序可以 提示用户指定可以加载驱动程序的另一位置 ( 诸如, 安装 CD 或设备制造商的网站 )。 然后, 仅有设备 210 的类属功能对主机 205 可用, 如总线 250 所表示的, 象征性信息在主机 205 与 设备 210 之间的交换。
     接下来, 用户可以拨动开关 235 以触发多功能设备 210 向主机 205 展露不同的设 备配置。例如, 可以拨动开关以展露类属功能单元 220 和非类属功能单元 230 这两者, 如图 3B 所示。设备 210 可能需要与主机 205 进行重新枚举, 从而使主机读取新的设备配置。这 可以在检测到开关位置变化时由用户手动完成或由设备通过内部重置操作自动完成。 主机 205 从设备 210 读取新的配置之后, 主机枚举非类属功能单元 230 并且安装在类属功能单元 220 的枚举期间预加载的所需驱动程序。然后, 设备 210 的两种功能均对主机 205 可用, 如 总线 250 和 260 所表示, 象征性信息在主机 205 和设备 210 之间交换。
     在另一示例性实施方式中, 用户可以拨动开关 235 以触发多功能设备 210 从而只 展露一个或多个非类属功能单元 230, 而隐藏类属功能单元 220, 如图 3C 所示。可以预期的 是, 例如, 如果以这种方式实现主机 205、 设备 210、 和 / 或与类属功能单元 220 关联的驱动 程序, 当枚举类属功能单元 220 时, 会对主机 205 的整体功耗产生不利影响。如果用户意识 到这点并且当前没有对于类属功能单元 220 的需求, 则用户可以拨动开关 235 从而隐藏类 属单元。当然, 如本领域技术人员所知, 对于在主机 205 枚举期间或之后切断设备 210 的一 个或多个功能单元 220 还存在其它原因。例如, 当用于非类属功能单元的设备驱动程序在 设备 210 的存储器中可获得并且在初始的设备安装期间可以由主机 205 的 OS 直接加载和 安装时, 可以使用该开关配置。然后, 仅有设备 210 的非类属功能对主机 205 可用, 如总线 260 所表示, 象征性信息在主机 205 和设备 210 之间交换。
     图 4 描绘了使用上述切换机制的多功能外围 ( 或嵌入式 ) 设备的枚举处理的一个 示意性实施方式。处理 400 开始于步骤 402, 其中设备被连接到主机。在步骤 404 中, 主机 OS 检测新的多功能设备并确定设备 ID。在步骤 406 中, OS 确定所需设备驱动程序是否存 在于主机的系统存储器中。如果设备之前未枚举类属功能单元和 / 或非类属功能单元被切 断 ( 如图 3A 所示 ), 则非类属功能单元驱动程序未存在于主机上进而 OS 向设备报告需要 专用的设备驱动程序 ( 步骤 410)。如果所需设备驱动程序存在于设备或主机上 ( 步骤 412 或步骤 420), 非类属功能单元可以向主机枚举 ( 步骤 430)。所需设备驱动程序加载并安装 在主机上 ( 步骤 432)。然后, 多功能设备的非类属功能单元准备好被使用 ( 步骤 434)。然而, 如果在设备中未找到非类属设备驱动程序 ( 步骤 412), 则设备可以使用其 类属功能单元 ( 诸如大容量存储单元 )、 使用存储在主机系统存储器中的本机设备驱动程 序来枚举 ( 步骤 414)。一旦枚举了类属功能单元, 该类属功能单元就可以在主机上运行安 装器应用程序从而枚举设备的非类属功能单元 ( 步骤 416)。具体地, 安装器应用程序可以 定位或提示用户定位所需的非类属设备驱动程序。 一旦定位了非类属设备驱动程序并将其 载入主机系统存储器中, 安装器应用程序就可以向设备发布请求从而显示其非类属功能单 元 ( 步骤 418)。然后, 枚举非类属功能单元 ( 步骤 430), 安装所需驱动程序 ( 步骤 432) 并 且设备的所有非类属功能单元准备好被使用 ( 步骤 434)。
     在一个示意性实施方式中, 多功能外围 ( 或嵌入式 ) 设备可以采用 “瘦” 驱动程序 使主机能够控制初始的设备枚举。更具体地, 瘦驱动程序可以使主机的操作系统能够间接 地与设备通信, 从而控制类属和非类属功能单元的枚举。该瘦驱动程序可以经由 I/O 总线 标准化消息、 I/O 总线销售商专用消息, 经由销售商专用扩展、 I/O 总线标准化消息的数据 载荷中封装的消息、 或本领域技术人员所熟知的其它方法与多功能设备通信。
     在一个示意性实施方式中, 瘦驱动程序可实现为用于微软操作系统的本机大容量储存驱动程序堆栈中一个驱动程序的上层级或下层级过滤驱动程序, 或用于被 配置为代替或取代用于标准大容量储存装置类别中特定装置组的本机大容量储存装置驱 动程序的独立大容量储存装置驱动程序。 本领域技术人员可以认识到在其它实施方式中可 以不同地实现瘦驱动程序。 图 5 描绘了具有瘦驱动程序的多功能外围 ( 或嵌入式 ) 设备枚举处理的另一示意 性实施方式。 枚举处理 500 开始于步骤 510, 首先, 设备连接到主机, 其中非类属功能单元被 切断 ( 如图 3A 所示 )。在步骤 512 中, 主机的 OS 检测新的多功能设备并确定设备 ID。由 于所有的非类属功能单元被切断, 因此设备仅枚举其类属功能单元 ( 步骤 514)。在枚举期 间, 设备可以在主机上加载瘦驱动程序 ( 步骤 516)。首先, 瘦驱动程序可以确定非类属设 备驱动程序和 / 或应用程序组件是否存在于主机的系统存储器中 ( 步骤 518)。如果主机 中不存在所需驱动程序 ( 步骤 520), 瘦驱动程序可以检查这种驱动程序是否存在于设备上 ( 步骤 530)。如果在主机或设备上找到了所需驱动程序, 则瘦驱动程序可以向设备发布请 求从而展露其非类属功能单元 ( 步骤 550)。然后, 设备在主机上枚举非类属功能单元 ( 步 骤 552)。所需设备驱动程序加载和安装在主机上 ( 步骤 554)。然后, 多功能设备的非类属 功能单元准备好被使用 ( 步骤 556)。
     然而, 如果未找到非类属设备驱动程序 ( 步骤 520 以及 530), 则设备可以使用其 类属功能单元 ( 诸如, 大容量存储单元 )、 使用存储在主机系统存储器中的本机设备驱动程 序来枚举 ( 步骤 540)。一旦枚举了类属功能单元, 该类属功能单元可以在主机上运行安装 器应用程序从而枚举设备的非类属功能单元 ( 步骤 542)。具体地, 安装器应用程序可以定 位或提示用户定位所需的非类属设备驱动程序。 一旦定位了非类属设备驱动程序并将其载 入主机系统存储器中, 安装器应用程序就可以向设备发布请求从而展露其非类属功能单元 ( 步骤 544)。然后, 枚举非类属功能单元 ( 步骤 552), 安装所需驱动程序 ( 步骤 554), 以及 准备使用设备的所有非类属功能单元 ( 步骤 556)。
     图 6 描绘了使用上述切换机制和瘦驱动程序的多功能外围 ( 或嵌入式 ) 设备的枚 举处理的另一示意性实施方式。当接通多功能设备的所有功能单元 ( 如图 3B 所示 ) 时, 可
     以在初始的设备枚举期间使用处理 600。如果主机操作系统不支持存在于类属功能单元存 储器中的安装器包, 也可以应用处理 600。 瘦驱动程序能通过阻止设备仅枚举会对这种操作 系统没有用处的类属功能单元来服务于操作系统和主机, 并且还因此阻止设备展露将通过 其他传统或非传统方式将驱动程序和应用程序部件载入主机的非类属功能单元。
     正如所描绘的, 在步骤 605 中, 首先, 设备连接到主机, 其中所有类属功能单元接 通。在步骤 610 中, 主机的 OS 检测新的多功能设备并确定设备 ID。由于所有非类属功能 单元被接通, 因此设备从枚举类属功能单元开始枚举所有功能单元 ( 步骤 615)。在枚举期 间, 设备可以将瘦驱动程序载入到主机上的本机类属设备驱动程序 ( 步骤 620)。该瘦驱动 程序可以向设备发布请求从而展露其非类属功能单元 ( 步骤 625)。然后, 设备在主机上枚 举非类属功能单元 ( 步骤 630)。从安装 CD 或互联网中获得所需设备驱动程序, 并将其加 载和安装到主机上 ( 步骤 635)。然后, 多功能设备的非类属功能单元准备好被使用 ( 步骤 640)。
     在一个示意性实施方式中, 可以由存在于外围设备的类属存储器存贮功能单元的 存储器中的安装器包来安装用于特定操作系统的瘦驱动程序。 该安装器包可以包含或不包 含非类属功能单元所需的、 用于相同操作系统的所需驱动程序和应用程序部件。如果该安 装器包包含所需驱动程序, 则瘦驱动程序可用来辅助设备确定如何初始枚举 ( 如处理 500 中所示 )。如果该安装器包没有所需驱动程序, 则一旦加载和安装瘦驱动程序, 则该瘦驱动 程序就可用于请求设备以连接非类属功能单元 ( 如处理 600 所示 )。 在另一示意性实施方式中, 用于特定操作系统的瘦驱动程序可以是该操作系统的 一部分, 因此可能不是独立地需要将该瘦驱动程序加载到主机系统存储器。在又一示意性 实施方式中, 可以通过更传统的方法 ( 诸如安装 CD 或互联网 ) 安装瘦驱动程序。本领域普 通技术人员应该理解, 存在加载和安装瘦驱动程序的其他方式。
     本领域普通技术人员应该理解, 所公开的系统和方法的示意性实施方式为主机提 供了一种有效方式, 从而在借助于或没有用户帮助的情况下确定是否以及何时枚举多功能 设备的各种功能单元, 缩短了向稳定且可用的功能连接组枚举设备所需的时间, 改善了整 体自身部件安装的用户体验、 降低了对于在短时间内枚举不同组功能单元的外围或嵌入式 设备的操作系统中特殊情况处理失败的风险。
     此外应理解, 所公开的系统和方法允许外围设备借助于主机或用户、 基于主机系 统是否已经具有用于设备的非类属功能的所需设备驱动程序以及该设备是否已在设备的 类属存储器存储功能的存储器中包括了用于主机当前操作系统的驱动安装包来确定它是 应该初始枚举仅作为类属 ( 本机 ) 设备 ( 例如, 大容量存储设备 ) 还是也应当允许枚举其 非类属 ( 专有的 ) 功能单元。这个性能可以在已安装用于设备的驱动程序后减少程序步骤 以及设备后续枚举所需的时间, 从而改善了设备枚举的用户体验。该性能还可以防止设备 在运行操作系统 ( 其中, 该设备中没有用于该操作系统的安装器包 ) 的主机系统上仅枚举 作为存储器贮存设备, 从而减轻了用户对于这类操作系统的挫败感。
     在一个示意性实施方式中, 在主机的系统存储器中定位设备驱动程序的能力可以 扩展为检查与外围设备相关联的应用程序部件 ( 其还可能在设备的类属存储器存储功能 单元的非易失存储器中得到 )。 在另一示意性实施方式中, 检查驱动程序和应用程序部件的 能力可以扩展为在主机的系统存储器中存在的一个或多个部件已经过时并且需要在主机
     能够利用设备的非类属功能单元之前进行更新的情况下检查这些部件的特定最低版本存 储。
     为了表述清晰, 未示出和描述外围设备枚举机制的实现方式的全部特征。 当然, 应 该理解的是, 在设备枚举处理的任何这种实际实现方式的开发过程中, 必须做出多种特定 实现方式的决定, 以实现开发者的特定目标 ( 诸如, 符合与应用、 系统、 设备以及商业相关 的约束 ), 并且这些特定目标视实现和开发者变化而变化。 再者, 应该理解的是, 开发努力可 能是复杂并且耗时的, 但是对于从本公开发明中受益的计算机系统领域的普通技术人员来 说不过是常规工程程序。
     根据本公开发明, 本文描述的部件、 处理步骤、 和 / 或数据结构可以利用各种类型 的操作系统、 计算平台、 外围或嵌入式设备、 计算机程序、 和 / 或通用机器来实现。此外, 本 领域普通技术人员将认识到, 在不背离本文公布的发明概念的范围和精神的前提下还可以 使用通用性较低的设备, 诸如硬连线设备、 现场可编辑门阵列 (FPGA)、 特定用途集成电路 (ASIC) 或类似设备。 其中, 包括一系列处理步骤的方法可以由计算机或机器实现, 并且这些 处理步骤可以作为一系列机器可读指令存储在有形介质中。
     另外, 应该注意的是, 本文描述的系统和模块可以包括软件、 固件、 硬件、 或任何适 用本文所描述目的的软件、 固件、 硬件的组合。 软件和其它模块可以驻留在服务器、 工作站、 个人电脑、 平板电脑、 PDA 和适用于此本文所描述目的的其它设备上。软件和其它模块可以 经由本地存储器、 经由网络、 经由浏览器或 ASP 语境中的其它应用程序、 或适用于本文所描 述目的的其它方式存取。 本领域普通技术人员应该认识到, 用于多功能设备枚举的系统和方法的描述仅用 作说明并不旨在以任何方式进行限制。 其它实施方式将容易地将其自身向从本公开发明中 受益的普通技术人员进行暗示。另外, 从本公开发明中受益的本领域技术人员应该显而易 见的是, 在不背离本文公开的发明概念的情况下可能做出比上述更多的修改。 因此, 除了所 附权利要求的精神外, 不应限制本发明。
    

用于多功能设备枚举的系统和方法.pdf_第1页
第1页 / 共19页
用于多功能设备枚举的系统和方法.pdf_第2页
第2页 / 共19页
用于多功能设备枚举的系统和方法.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《用于多功能设备枚举的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于多功能设备枚举的系统和方法.pdf(19页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102362241A43申请公布日20120222CN102362241ACN102362241A21申请号201080013484322申请日2010012961/149,28320090202US12/413,50020090327USG06F3/0020060171申请人施克莱无线公司地址加拿大不列颠哥伦比亚72发明人理查德托马斯卡瓦诺74专利代理机构北京康信知识产权代理有限责任公司11240代理人余刚吴孟秋54发明名称用于多功能设备枚举的系统和方法57摘要本发明公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。该多功能外围设备可以包括连接到主机接口的类属和非。

2、类属功能单元。该设备可以在其非易失存储器中存储用于非类属功能单元的一个或多个驱动程序。该外围设备可以进一步包括控制器,其控制类属和非类属功能单元展露至主机系统和在主机系统上枚举的顺序。该控制器可以包括开关,该开关可操作地接通和切断类属和非类属功能单元,从而控制这些单元展露至主机系统并在主机系统上枚举的顺序。30优先权数据85PCT申请进入国家阶段日2011092386PCT申请的申请数据PCT/US2010/0226672010012987PCT申请的公布数据WO2010/088567EN2010080551INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书8页附图。

3、7页CN102362258A1/3页21一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括将所述外围设备连接至所述主机系统;向所述主机系统展露所述外围设备的所述类属功能单元;在所述主机系统上枚举经展露的所述类属功能单元;定位用于所述外围设备的所述非类属功能单元的驱动程序;向所述主机系统展露非类属功能单元;以及在所述主机系统上枚举经展露的所述非类属功能单元。2根据权利要求1所述的方法,其中,展露所述类属功能单元包括切断所述外围设备的所述非类属功能单元。3根据权利要求2所述的方法,其中,展露所述非类属功能单元包括切断所述外围设备的所述类属功。

4、能单元。4根据权利要求2所述的方法,其中,展露所述非类属功能单元包括接通所述类属功能单元并且接通所述非类属功能单元。5根据权利要求3所述的方法,其中,枚举所述类属功能单元包括向所述主机系统上传瘦驱动程序,该瘦驱动程序被配置为定位用于所述外围设备的所述非类属功能单元的驱动程序。6根据权利要求5所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。7根据权利要求6所述的方法,进一步包括在所述主机系统上安装用于所述非类属功能单元的驱动程序。8根据权利要求1所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机。

5、系统。9根据权利要求8所述的方法,其中,所述接口包括有线接口和无线接口之一。10一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括切断所述外围设备的所述非类属功能单元;接通所述外围设备的所述类属功能单元;在所述主机系统上枚举所述类属功能单元;在所述主机系统上加载用于所述非类属功能单元的驱动程序;接通所述外围设备的所述非类属功能单元;以及在所述主机系统上枚举所述非类属功能单元。11根据权利要求10所述的方法,其中,枚举所述非类属功能单元包括重置和重新枚举所述外围设备的所述类属功能单元。12根据权利要求11所述的方法,其中,枚举所述类属功能。

6、单元包括向所述主机系统上传瘦驱动程序,该瘦驱动程序可操作地定位用于所述外围设备的所述非类属功能单元的驱动程序。13根据权利要求12所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。权利要求书CN102362241ACN102362258A2/3页314根据权利要求13所述的方法,进一步包括在所述主机系统上安装用于所述非类属功能单元的驱动程序。15根据权利要求10所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。16根据权利要求15所述的方法,其中,所述接口包括有线接口和无线接口之一。17一。

7、种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括向所述主机系统展露所述外围设备的所述类属功能单元;在所述主机系统上枚举经展露的所述类属功能单元;向所述主机系统提供瘦驱动程序,该瘦驱动程序可操作地定位并在所述主机系统上加载用于所述外围设备的所述非类属功能单元的设备驱动程序;向所述主机系统展露非类属功能单元;在所述主机系统上枚举经展露的所述非类属功能单元;以及在所述主机系统上安装用于所述非类属功能单元的驱动程序。18根据权利要求17所述的方法,其中,展露所述类属功能单元包括切断所述外围设备的所述非类属功能单元。19根据权利要求18所述的方法。

8、,其中,展露所述非类属功能单元包括切断所述外围设备的所述类属功能单元。20根据权利要求17所述的方法,其中,展露所述非类属功能单元包括接通所述类属功能单元以及所述非类属功能单元。21根据权利要求17所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。22根据权利要求17所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。23根据权利要求22所述的方法,其中,所述接口包括有线接口和无线接口之一。24一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所。

9、述方法包括检测所连接的所述外围设备的、经展露的所述类属功能单元;枚举所述外围设备的、检测到的所述类属功能单元;加载瘦驱动程序,该瘦驱动程序可操作地定位并在所述主机系统上加载用于所述外围设备的所述非类属功能单元的设备驱动程序;检测所连接的所述设备的、经展露的所述非类属功能单元;以及枚举所述外围设备的、检测到的所述非类属功能单元。25根据权利要求24所述的方法,进一步包括安装用于所述非类属功能单元的设备驱动程序。26根据权利要求25所述的方法,其中,所述设备驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。27根据权利要求26所述的方法,其中,所述类。

10、属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。权利要求书CN102362241ACN102362258A3/3页428根据权利要求27所述的方法,其中,所述接口包括有线接口和无线接口之一。29一种多功能外围设备,包括主机接口,用于与主机系统通信;第一功能单元,连接至所述主机接口;第二功能单元,连接至所述主机接口;非易失性存储器,用于存储用于所述第一功能单元和所述第二功能单元中至少一个的一个或多个设备驱动程序;以及控制器,用于控制所述第一功能单元和所述第二功能单元展露至所述主机系统及其在所述主机系统上被枚举的顺序。30根据权利要求29所述的设备,其中,所述控制器包括开关,该开关可。

11、操作地接通和切断所述设备的所述第一和第二功能单元,从而控制所述功能单元展露至所述主机系统及其在所述主机系统上被枚举的顺序。31根据权利要求30所述的设备,其中,所述开关包括自动开关和用户操作的手动开关之一。32根据权利要求29所述的设备,其中,所述第一功能单元是类属功能单元,所述第二功能单元是非类属功能单元。33根据权利要求32所述的设备,其中,所述类属功能单元包括大容量存储单元。34根据权利要求33所述的设备,其中,所述大容量存储单元包括安装器应用程序,该安装器应用程序可操作地在所述主机系统上安装用于所述外围设备的所述非类属功能单元的设备驱动程序。35根据权利要求29所述的设备,其中,所述存。

12、储器进一步包括瘦驱动程序,该瘦驱动程序可操作地定位用于所述第一和第二功能单元之一的设备驱动程序。36根据权利要求35所述的设备,其中,所述设备驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。37根据权利要求29所述的设备,其中,所述主机接口包括有线接口和无线接口之一。38根据权利要求29所述的设备,其中,所述多功能外围设备嵌入所述主机系统。权利要求书CN102362241ACN102362258A1/8页5用于多功能设备枚举的系统和方法技术领域0001本发明涉及计算机系统领域,更具体地,涉及在主机系统上枚举多功能外围或嵌入式设备中的各种功能单元。

13、的系统和方法。背景技术0002由于设备制造商期望通过向外围设备添加各种功能单元以增加其产品的价值和附加性能,因此多功能外围和嵌入式设备变得日益流行。许多这种多功能设备通过单个物理接口来展露它们的各种功能单位,其中该单个物理接口支持在设备枚举期间由主机将描述符或配置表读出设备的性能。具有这些能力的设备接口的一些实例包括USB和FIREWIREIEEE1394。0003外围设备的描述符或配置表通常包含对于主机要确定必须加载哪个驱动程序以枚举、展露和控制外围设备的每个功能单元所必需的信息。通常,设备的非类属功能单元需要特有的一组销售商专有和/或主操作系统OS本机驱动程序DRIVER、与同父多功能设备。

14、的一个或多个其它功能共享驱动程序,或是这两者的组合。0004当这些多功能设备在主机中被枚举时,它们通常被配置为同时枚举设备的每个功能单元。然而,有时也可能期望只向主机展露设备中一个或多个功能单元而不是全部功能单元。因此,存在着对于以下机制的需求该机制对多功能设备的功能单元展露至主机并在主机上被枚举的顺序进行控制。发明内容0005公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。在一个示意性实施方式中,多功能外围设备可以包括连接到主机接口的类属以及非类属功能单元。设备可以在其非易失性存储器中存储用于非类属功能单元的一个或多个驱动程序。外围设备可以进一步包括控制器,用于控制类属以及非类属。

15、功能单元展露至主机并在其上枚举的顺序。该控制器可以包括可操作地接通和切断类属以及非类属功能单元的开关,从而控制这些单元展露和枚举的顺序。该开关可以包括自动开关或手动操作开关。0006在一个示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括将外围设备连接到主机系统。该方法进一步包括将外围设备的类属功能单元展露至主机并在其上进行枚举。然后,定位LOCATE,查找出用于外围设备的非类属功能单元的驱动程序。该方法进一步包括将非类属功能单元展露至主机并在其上枚举。在一个示意性实施方式中,展露类属功能单元包括切断外围设备的非类属功能单元。在另一示意性实施方式中,。

16、展露非类属功能单元包括切断外围设备的类属功能单元。0007在另一示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括切断外围设备的非类属功能单元以及接通外围设备的类属功能单元。该方法进一步包括在主机上枚举类属功能单元,并且在主机上加载用于非说明书CN102362241ACN102362258A2/8页6类属功能单元的驱动程序。该方法进一步包括接通外围设备的非类属功能单元并在主机系统上枚举非类属功能单元。在一个示意性实施方式中,枚举非类属功能单元包括重置以及重新枚举外围设备的类属功能单元。0008在另一示意性实施方式中,用于将具有类属功能单元和非类属功能。

17、单元的多功能外围设备在主机上枚举的方法包括将外围设备的类属功能单元向主机展露并将其在主机上枚举。该方法进一步包括向主机系统提供可操作地在主机系统上定位并加载用于外围设备的非类属功能单元的设备驱动程序的瘦驱动程序THINDRIVER。该方法进一步包括将非类属功能单元向主机系统展露并将其枚举在主机系统上。该方法进一步包括安装用于非类属功能单元的驱动程序。0009此外,在另一示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括检测连接的外围设备的、经展露的类属功能单元并枚举检测到的类属功能单元。该方法进一步包括加载可操作地在主机系统上定位并加载用于外围设备的。

18、非类属功能单元的设备驱动程序的瘦驱动程序。该方法进一步包括检测连接的设备的、经展露的非类属功能单元并将该经展露的非类属功能单元枚举在主机上。该方法进一步包括安装用于被枚举的非类属功能单元的设备驱动程序。0010所公开的系统和方法使多功能外围设备在初始的设备枚举处理期间、在设备确定是否展露非类属功能单元之前,能够确定所有所需设备驱动程序是否存在于主机的系统存储器中,因此缩短了在外围设备连接到主机之后初始化外围设备所需的时间,从而增强了整体设备枚举的用户体验。根据附图和以下示意性实施方式的详细描述,本发明的其他优势对于本领域技术人员而言是显而易见的。附图说明0011通过参考以下描述以及用于阐明本发。

19、明实施方式的附图可以充分地理解本发明。0012附图中0013图1是主机系统的一个示意性实施方式的示图。0014图2是外围设备的一个示意性实施方式的示图。0015图3A至图3C是切换机制的示意性实施方式的示图。0016图4至图6是枚举处理的示意性实施方式的流程图。具体实施方式0017图1所示的计算机系统100的一个示意性实施方式包括主机105以及多个多功能外围或嵌入式设备110A、110B、110C。主机105可以包括,但不限于台式计算机、服务器计算机、移动计算机、个人数字助理PDA、蜂窝电话、网络路由器、无线接入点、游戏机或其它类型的数据处理设备。设备110A、110B、110C中的一个或多个。

20、可以包括,但不限于内部或外部调制解调器、打印机、诸如磁盘和闪存驱动的存储设备、扫描仪、麦克风、扬声器、照相机、PCI扩展卡以及扩展主机105功能的其它类型设备。0018在一个示意性实施方式中,主机105可以包括处理设备115、系统存储器120以及将处理设备115与系统存储器120互连的系统总线125。系统总线125可以包括,但不限于16位、32位、64位或其它类型的平行连接器。主机105可以进一步包括将主机105与说明书CN102362241ACN102362258A3/8页7其外围设备110A、110B、110C互连的一个或多个输入/输出总线130A、130B、130C。I/O总线可以包括但。

21、不限于PCI、PCI扩展、USB、ISA、AGP、串行ATA、以太网、IEEE1394以及其它类型的通信接口。0019计算机105的处理设备115被配置为解释各种计算机程序、运行应用程序、以及将数据和指令导入诸如系统存储器120和外围/嵌入式设备110A、110B、110C的其它设备或从这些其它设备中导出数据和指令。在一个示意性实施方式中,处理设备115可以包括通用处理器,诸如英特尔双核DUALCORETM或奔腾处理器、AMD炫龙TURIONTM64位处理器或其它类型的微处理器。在另一示意性实施方式中,处理设备115可以包括特定用途集成电路ASIC、现场可编程门阵列FPGA、可编程逻辑器件PL。

22、D和其它类型的客户定制电路。0020系统存储器120可以包括,但不限于随机存储器RAM、只读存储器ROM、可编辑ROMPROM、可擦除PROMEPROM、FLASHEPROM以及其它类型的动态、易失和非易失信息存储介质。在一个示意性实施方式中,系统存储器120可以存储操作系统OS135,诸如UNIX、LINUX或其它类型OS。系统存储器120还可以存储一个或多个设备驱动程序145,它包括允许主机105与外围或嵌入式设备110A、110B、110C或者可以连接到主机105的其它设备的一个或多个功能单元进行通信的程序子例程。0021图2描述了多功能外围设备210的一个示意性实施方式。本文所使用的术。

23、语“外围设备”还包括嵌入主机系统的设备。设备210可以包括I/O通信接口215,诸如PCI、PCI扩展、USB、ISA、AGP、串行ATA、以太网、IEEE1394或用于与主机205的对应I/O总线进行通信的其它类型的有线或无线接口。多功能设备210可以包括数个功能单元,诸如类属功能单元220和非类属功能单元230。类属功能单元220通常是由主机205的OS本机支持的功能单元。这种类属功能单元可以包括大容量存储、输入/输出、音频/视频和其它功能。非类属功能单元230提供不由主机205的OS本机支持的销售商专有功能,诸如光学扫描、游戏功能、TV调谐和其它功能。0022在一个示意性实施方式中,多功。

24、能外围设备可以包括存储器240,诸如RAM、ROM、PROM、EPROM、FLASHEPROM和其它类型的动态、易失性和非易失性信息存储介质。在一个示意性实施方式中,存储器240可由功能单元220和230共享。可替换地,每个功能单元可以具有其自己的存储器240专用部分。在一个示意性实施方式中,存储器240可以用来存储设备驱动程序245A和245B、安装器应用程序255以及其他事项。设备驱动程序245A、245B包括允许主机205与设备210的一个或多个功能单元通信的程序子例程。安装器应用程序255实现设备驱动程序245A、245B在主机系统上的安装。0023在一个示意性实施方式中,设备驱动程序。

25、245A可以与类属功能单元220关联,设备驱动程序245B可以与非类属功能单元230关联。例如,实现音频和游戏端口性能的附加声卡可能作为两个对于主机205独立的设备出现。在一个示意性实施方式中,由功能单元220提供的类属音频功能可以由音频驱动程序245A支持。可替换地,类属音频功能可能由主机205利用存储在主机存储器120中的本机驱动程序145来本机支持。由功能单元230提供的非类属游戏功能可以由游戏端口驱动程序245B支持。0024在另一示意性实施方式中,驱动程序245A、245B可以与非类属功能单元230关联。例如,非类属功能单元230可能需要数个OS专用驱动程序,从而允许设备210与运行。

26、不同说明书CN102362241ACN102362258A4/8页8操作系统的主机205通信。例如,驱动程序245A可以提供允许非类属功能单元230与运行微软操作系统的主机205进行操作的程序子例程,以及驱动程序245B可以提供允许非类属功能单元230与运行MACOS、UNIX或其它操作系统的主机205进行操作的程序子例程。本领域技术人员会认识到存在着功能单元可能需要数个不同驱动程序的其它情况。0025首先,在多功能外围或嵌入式设备210连接到主机205时,主机205的操作系统通常试图枚举连接的设备中所有独立功能单元。在枚举处理期间,OS135可以识别连接的设备中一个或多个功能单元,载入相应的。

27、设备驱动程序、分配所需系统资源以及执行其它设备初始化服务。对于类属功能单元220,OS135可以载入通常存储在主机205的系统存储器120中的本机驱动程序145。对于非类属功能单元230来说,OS135可以载入销售商专有驱动程序245A、245B,该驱动程序可以由非类属功能单元230提供、可以从安装CD中获得或经由互联网从设备制造商的服务器下载。0026在将驱动程序安装在主机205期间,类属功能单元220有时可以自动安装用于一个或多个非类属功能单元230的销售商专有或非OS本机驱动程序。一个实例为,当在主机205上执行时,类属USB大容量存储功能单元其通常展露安装器应用程序255可以预加载用于。

28、一些非类属功能单元230的所需驱动程序。然而,在一些实例中,在安装类属功能单元期间,当展露一个或多个非类属功能单元230时,设备210可能不具有支持这些单元的能力。这可能引起致命的异常、性能问题和/或不期望的用户体验。在这种情况下,期望抑制一些非类属功能单元的枚举,但仍枚举多功能设备210的其它功能。0027为此,在一个示意性实施方式中,多功能设备210可以包括控制各种功能单元操作的功能单元控制器225。更具体地,控制器225可以控制功能单元220和230在主机205上的枚举。例如,控制器225可以控制在设备枚举处理期间,设备接口描述符或配置表向主机205展露的顺序。在一个示意性实施方式中,控。

29、制器225可以包括,但不限于通用处理器、特定用途集成电路ASIC、现场可编程门阵列FPGA、可编程逻辑器件PLD和其它类型的软件实现控制逻辑或硬件实现控制逻辑。0028在一个示意性实施方式中,控制器225可以包括功能单元切换机制,它可以实现为2路、3路或N路开关,其中N取决于设备210的功能单元的数量以及可以操作这些单元的组合。在一个示意性实施方式中,切换机制可操作地选择一个或多个预定义的设备接口描述符或配置表以在设备枚举处理期间向主机205展露。在另一示意性实施方式中,切换机制可操作地选择被展露的功能单元的、通过设备接口描述符或配置表报告给主机205的一个或多个属性。0029切换机制可以由几。

30、种不同方式实现。在一个示意性实施方式中,切换机制可以实现为用户可用的物理开关,从而用户能拨动开关以选择通过单个设备接口215要在主机205上枚举的功能单元。在另一示意性实施方式中,切换机制能够以作为设备安装程序一部分的软件来实现,这样用户能够通过GUI选择在设备安装期间要被枚举在主机205上的一个或多个功能单元。然而,在另一示意性实施方式中,切换机制可以由主机205驱动,正如将在本文描述的。本领域技术人员可以认识到存在实现用于多功能设备210的切换机制的其它方式。0030图3A、图3B和图3C描绘了使用上述切换机制的设备枚举处理的数个示意性实施说明书CN102362241ACN10236225。

31、8A5/8页9方式。切换机制可以实现为物理或基于软件的3路开关235。该开关可以暴露于设备210外部,并且其适于用户通过物理或基于软件的图形用户界面进行拨动。开关235的当前拨动状态是通过诸如通用I/OGPIO信号未示出的接口输入多功能设备210。每个可能的开关设置选项均可以触发设备210在设备枚举处理期间向主机205展露不同的描述符或配置表。0031在图3A中,用户可以拨动开关235以触发控制器225只向主机205展露类属功能单元220诸如,大容量存储功能单元。作为响应,控制器225可以在主机205上运行安装程序255,该程序使用来自系统存储器120的设备驱动程序145安装类属功能单元220。

32、。在设备安装期间,类属功能单元220被枚举在主机205上。另外,安装程序255可以从设备存储器240中检索用于非类属功能单元230的各种驱动程序包245A和/或245B并且将它们预加载到系统存储器120中。如果所需驱动程序不能在设备210上获得,则安装程序可以提示用户指定可以加载驱动程序的另一位置诸如,安装CD或设备制造商的网站。然后,仅有设备210的类属功能对主机205可用,如总线250所表示的,象征性信息在主机205与设备210之间的交换。0032接下来,用户可以拨动开关235以触发多功能设备210向主机205展露不同的设备配置。例如,可以拨动开关以展露类属功能单元220和非类属功能单元2。

33、30这两者,如图3B所示。设备210可能需要与主机205进行重新枚举,从而使主机读取新的设备配置。这可以在检测到开关位置变化时由用户手动完成或由设备通过内部重置操作自动完成。主机205从设备210读取新的配置之后,主机枚举非类属功能单元230并且安装在类属功能单元220的枚举期间预加载的所需驱动程序。然后,设备210的两种功能均对主机205可用,如总线250和260所表示,象征性信息在主机205和设备210之间交换。0033在另一示例性实施方式中,用户可以拨动开关235以触发多功能设备210从而只展露一个或多个非类属功能单元230,而隐藏类属功能单元220,如图3C所示。可以预期的是,例如,如。

34、果以这种方式实现主机205、设备210、和/或与类属功能单元220关联的驱动程序,当枚举类属功能单元220时,会对主机205的整体功耗产生不利影响。如果用户意识到这点并且当前没有对于类属功能单元220的需求,则用户可以拨动开关235从而隐藏类属单元。当然,如本领域技术人员所知,对于在主机205枚举期间或之后切断设备210的一个或多个功能单元220还存在其它原因。例如,当用于非类属功能单元的设备驱动程序在设备210的存储器中可获得并且在初始的设备安装期间可以由主机205的OS直接加载和安装时,可以使用该开关配置。然后,仅有设备210的非类属功能对主机205可用,如总线260所表示,象征性信息在主。

35、机205和设备210之间交换。0034图4描绘了使用上述切换机制的多功能外围或嵌入式设备的枚举处理的一个示意性实施方式。处理400开始于步骤402,其中设备被连接到主机。在步骤404中,主机OS检测新的多功能设备并确定设备ID。在步骤406中,OS确定所需设备驱动程序是否存在于主机的系统存储器中。如果设备之前未枚举类属功能单元和/或非类属功能单元被切断如图3A所示,则非类属功能单元驱动程序未存在于主机上进而OS向设备报告需要专用的设备驱动程序步骤410。如果所需设备驱动程序存在于设备或主机上步骤412或步骤420,非类属功能单元可以向主机枚举步骤430。所需设备驱动程序加载并安装在主机上步骤4。

36、32。然后,多功能设备的非类属功能单元准备好被使用步骤434。说明书CN102362241ACN102362258A6/8页100035然而,如果在设备中未找到非类属设备驱动程序步骤412,则设备可以使用其类属功能单元诸如大容量存储单元、使用存储在主机系统存储器中的本机设备驱动程序来枚举步骤414。一旦枚举了类属功能单元,该类属功能单元就可以在主机上运行安装器应用程序从而枚举设备的非类属功能单元步骤416。具体地,安装器应用程序可以定位或提示用户定位所需的非类属设备驱动程序。一旦定位了非类属设备驱动程序并将其载入主机系统存储器中,安装器应用程序就可以向设备发布请求从而显示其非类属功能单元步骤4。

37、18。然后,枚举非类属功能单元步骤430,安装所需驱动程序步骤432并且设备的所有非类属功能单元准备好被使用步骤434。0036在一个示意性实施方式中,多功能外围或嵌入式设备可以采用“瘦”驱动程序使主机能够控制初始的设备枚举。更具体地,瘦驱动程序可以使主机的操作系统能够间接地与设备通信,从而控制类属和非类属功能单元的枚举。该瘦驱动程序可以经由I/O总线标准化消息、I/O总线销售商专用消息,经由销售商专用扩展、I/O总线标准化消息的数据载荷中封装的消息、或本领域技术人员所熟知的其它方法与多功能设备通信。0037在一个示意性实施方式中,瘦驱动程序可实现为用于微软操作系统的本机大容量储存驱动程序堆栈。

38、中一个驱动程序的上层级或下层级过滤驱动程序,或用于被配置为代替或取代用于标准大容量储存装置类别中特定装置组的本机大容量储存装置驱动程序的独立大容量储存装置驱动程序。本领域技术人员可以认识到在其它实施方式中可以不同地实现瘦驱动程序。0038图5描绘了具有瘦驱动程序的多功能外围或嵌入式设备枚举处理的另一示意性实施方式。枚举处理500开始于步骤510,首先,设备连接到主机,其中非类属功能单元被切断如图3A所示。在步骤512中,主机的OS检测新的多功能设备并确定设备ID。由于所有的非类属功能单元被切断,因此设备仅枚举其类属功能单元步骤514。在枚举期间,设备可以在主机上加载瘦驱动程序步骤516。首先,。

39、瘦驱动程序可以确定非类属设备驱动程序和/或应用程序组件是否存在于主机的系统存储器中步骤518。如果主机中不存在所需驱动程序步骤520,瘦驱动程序可以检查这种驱动程序是否存在于设备上步骤530。如果在主机或设备上找到了所需驱动程序,则瘦驱动程序可以向设备发布请求从而展露其非类属功能单元步骤550。然后,设备在主机上枚举非类属功能单元步骤552。所需设备驱动程序加载和安装在主机上步骤554。然后,多功能设备的非类属功能单元准备好被使用步骤556。0039然而,如果未找到非类属设备驱动程序步骤520以及530,则设备可以使用其类属功能单元诸如,大容量存储单元、使用存储在主机系统存储器中的本机设备驱动。

40、程序来枚举步骤540。一旦枚举了类属功能单元,该类属功能单元可以在主机上运行安装器应用程序从而枚举设备的非类属功能单元步骤542。具体地,安装器应用程序可以定位或提示用户定位所需的非类属设备驱动程序。一旦定位了非类属设备驱动程序并将其载入主机系统存储器中,安装器应用程序就可以向设备发布请求从而展露其非类属功能单元步骤544。然后,枚举非类属功能单元步骤552,安装所需驱动程序步骤554,以及准备使用设备的所有非类属功能单元步骤556。0040图6描绘了使用上述切换机制和瘦驱动程序的多功能外围或嵌入式设备的枚举处理的另一示意性实施方式。当接通多功能设备的所有功能单元如图3B所示时,可说明书CN1。

41、02362241ACN102362258A7/8页11以在初始的设备枚举期间使用处理600。如果主机操作系统不支持存在于类属功能单元存储器中的安装器包,也可以应用处理600。瘦驱动程序能通过阻止设备仅枚举会对这种操作系统没有用处的类属功能单元来服务于操作系统和主机,并且还因此阻止设备展露将通过其他传统或非传统方式将驱动程序和应用程序部件载入主机的非类属功能单元。0041正如所描绘的,在步骤605中,首先,设备连接到主机,其中所有类属功能单元接通。在步骤610中,主机的OS检测新的多功能设备并确定设备ID。由于所有非类属功能单元被接通,因此设备从枚举类属功能单元开始枚举所有功能单元步骤615。在。

42、枚举期间,设备可以将瘦驱动程序载入到主机上的本机类属设备驱动程序步骤620。该瘦驱动程序可以向设备发布请求从而展露其非类属功能单元步骤625。然后,设备在主机上枚举非类属功能单元步骤630。从安装CD或互联网中获得所需设备驱动程序,并将其加载和安装到主机上步骤635。然后,多功能设备的非类属功能单元准备好被使用步骤640。0042在一个示意性实施方式中,可以由存在于外围设备的类属存储器存贮功能单元的存储器中的安装器包来安装用于特定操作系统的瘦驱动程序。该安装器包可以包含或不包含非类属功能单元所需的、用于相同操作系统的所需驱动程序和应用程序部件。如果该安装器包包含所需驱动程序,则瘦驱动程序可用来。

43、辅助设备确定如何初始枚举如处理500中所示。如果该安装器包没有所需驱动程序,则一旦加载和安装瘦驱动程序,则该瘦驱动程序就可用于请求设备以连接非类属功能单元如处理600所示。0043在另一示意性实施方式中,用于特定操作系统的瘦驱动程序可以是该操作系统的一部分,因此可能不是独立地需要将该瘦驱动程序加载到主机系统存储器。在又一示意性实施方式中,可以通过更传统的方法诸如安装CD或互联网安装瘦驱动程序。本领域普通技术人员应该理解,存在加载和安装瘦驱动程序的其他方式。0044本领域普通技术人员应该理解,所公开的系统和方法的示意性实施方式为主机提供了一种有效方式,从而在借助于或没有用户帮助的情况下确定是否以。

44、及何时枚举多功能设备的各种功能单元,缩短了向稳定且可用的功能连接组枚举设备所需的时间,改善了整体自身部件安装的用户体验、降低了对于在短时间内枚举不同组功能单元的外围或嵌入式设备的操作系统中特殊情况处理失败的风险。0045此外应理解,所公开的系统和方法允许外围设备借助于主机或用户、基于主机系统是否已经具有用于设备的非类属功能的所需设备驱动程序以及该设备是否已在设备的类属存储器存储功能的存储器中包括了用于主机当前操作系统的驱动安装包来确定它是应该初始枚举仅作为类属本机设备例如,大容量存储设备还是也应当允许枚举其非类属专有的功能单元。这个性能可以在已安装用于设备的驱动程序后减少程序步骤以及设备后续枚。

45、举所需的时间,从而改善了设备枚举的用户体验。该性能还可以防止设备在运行操作系统其中,该设备中没有用于该操作系统的安装器包的主机系统上仅枚举作为存储器贮存设备,从而减轻了用户对于这类操作系统的挫败感。0046在一个示意性实施方式中,在主机的系统存储器中定位设备驱动程序的能力可以扩展为检查与外围设备相关联的应用程序部件其还可能在设备的类属存储器存储功能单元的非易失存储器中得到。在另一示意性实施方式中,检查驱动程序和应用程序部件的能力可以扩展为在主机的系统存储器中存在的一个或多个部件已经过时并且需要在主机说明书CN102362241ACN102362258A8/8页12能够利用设备的非类属功能单元之。

46、前进行更新的情况下检查这些部件的特定最低版本存储。0047为了表述清晰,未示出和描述外围设备枚举机制的实现方式的全部特征。当然,应该理解的是,在设备枚举处理的任何这种实际实现方式的开发过程中,必须做出多种特定实现方式的决定,以实现开发者的特定目标诸如,符合与应用、系统、设备以及商业相关的约束,并且这些特定目标视实现和开发者变化而变化。再者,应该理解的是,开发努力可能是复杂并且耗时的,但是对于从本公开发明中受益的计算机系统领域的普通技术人员来说不过是常规工程程序。0048根据本公开发明,本文描述的部件、处理步骤、和/或数据结构可以利用各种类型的操作系统、计算平台、外围或嵌入式设备、计算机程序、和。

47、/或通用机器来实现。此外,本领域普通技术人员将认识到,在不背离本文公布的发明概念的范围和精神的前提下还可以使用通用性较低的设备,诸如硬连线设备、现场可编辑门阵列FPGA、特定用途集成电路ASIC或类似设备。其中,包括一系列处理步骤的方法可以由计算机或机器实现,并且这些处理步骤可以作为一系列机器可读指令存储在有形介质中。0049另外,应该注意的是,本文描述的系统和模块可以包括软件、固件、硬件、或任何适用本文所描述目的的软件、固件、硬件的组合。软件和其它模块可以驻留在服务器、工作站、个人电脑、平板电脑、PDA和适用于此本文所描述目的的其它设备上。软件和其它模块可以经由本地存储器、经由网络、经由浏览。

48、器或ASP语境中的其它应用程序、或适用于本文所描述目的的其它方式存取。0050本领域普通技术人员应该认识到,用于多功能设备枚举的系统和方法的描述仅用作说明并不旨在以任何方式进行限制。其它实施方式将容易地将其自身向从本公开发明中受益的普通技术人员进行暗示。另外,从本公开发明中受益的本领域技术人员应该显而易见的是,在不背离本文公开的发明概念的情况下可能做出比上述更多的修改。因此,除了所附权利要求的精神外,不应限制本发明。说明书CN102362241ACN102362258A1/7页13图1说明书附图CN102362241ACN102362258A2/7页14图2说明书附图CN102362241ACN102362258A3/7页15图3A图3B说明书附图CN102362241ACN102362258A4/7页16图3C说明书附图CN102362241ACN102362258A5/7页17图4说明书附图CN102362241ACN102362258A6/7页18图5说明书附图CN102362241ACN102362258A7/7页19图6说明书附图CN102362241A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1