您所在的位置: 首页>>读书频道>>设计开发>>其它开发>>

17.1.2 USB连接拓扑结构

http://book.51cto.com  2008-07-07 08:52  张帆/史彩成等编著  IT时代周刊  我要评论(0)
  • 摘要:《Windows驱动开发技术详解》第17章USB设备驱动,这一章首先介绍USB协议,使大家对USB协议有个整体认识,然后介绍USB设备在WDM中的开发框架,本节为大家介绍的是USB连接拓扑结构。
  • 标签:Windows  驱动  开发  技术  Windows驱动开发技术详解

17.1.2  USB连接拓扑结构

USB设备的连接如图17-2所示,对于每个PC来说,都有一个或者多个称为Host控制器的设备,该Host控制器和一个根Hub作为一个整体。这个根Hub下可以接多级的Hub,每个子Hub又可以接子Hub。每个USB作为一个节点接在不同级别的Hub上。

(1)USB Host控制器:每个PC的主板上都会有多个Host控制器,这个Host控制器其实就是一个PCI设备,挂载在PCI总线上。Host控制器的驱动由微软公司提供,如图17-3所示,这是笔者PC中的Host控制器及USB Hub的驱动。值得注意的是,这里Host分别有两种驱动,一种是1.0,另一种是2.0,分别对应着USB协议1.0和USB协议2.0。

 
(点击查看大图)图17-2  USB连接拓扑结构
(2)USB Hub:每个USB Host控制器都会自带一个USB Hub,被称为根(Root)Hub。这个根Hub可以接子(Sub)Hub,每个Hub上挂载USB设备。一般PC有8个USB口,通过外接USB Hub,可以插更多的USB设备。当USB设备插入到USB Hub或从上面拔出时,都会发出电信号通知系统。这样可以枚举USB设备,例如当被插入的时候,系统就会创建一个USB物理总线,并询问用户安装设备驱动。如图17-4所示为一个典型的USB Hub的示意图。
 
(点击查看大图)图17-3  USB Host和USB Hub驱动 
 
(点击查看大图)图17-4  USB Hub示意图

(3)USB设备:USB设备就是插在USB总线上工作的设备,广义地讲USB Hub也算是USB设备。每个根USB Hub下可以直接或间接地连接127个设备,并且彼此不会干扰。对于用户来说,可以看成是USB设备和USB控制器直接相连,之间通信需要满足USB的通信协议。

有的USB设备功能单一,直接挂载在USB Hub上。而有的USB设备功能复杂,会将多个USB功能连在一起,成为一个复合设备,它甚至可以自己内部带一个Hub,这个Hub下接多个USB子设备,其和多个子设备作为一个整体当做一个USB设备,如图17-5所示。

以上是USB的物理拓扑结构,但对于用户来说,可以略去USB Hub的概念,或者说USB Hub的概念对于用户可以看成是透明的。用户只需要将USB设备理解成一个USB Host连接多个逻辑设备。可能逻辑设备1和逻辑设备2是集中在第一个物理设备里,例如有的手机连接计算机后,系统会当做多个USB设备加载。因此,作为用户需要用如图17-6所示的逻辑拓扑结构理解USB拓扑结构。

 
图17-5  符合设备
 
图17-6  USB逻辑拓扑结构
但对于具体USB设备来说,每个USB设备的传输绝对不会影响其他USB设备的传输。例如,在有USB设备传输的时候,其他USB设备的带宽不会被占用。对于USB设备来说,每个USB设备是直接连接到USB Host控制器上的。因此,应该用如图17-7所示的视角考虑USB设备的通信。
 
图17-7  用户对USB设备的观察
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
深入Vista应用程序开发
Hyper-V 虚拟化技术专题
让你的代码“炫”起来——WPF开发教程
重复数据删除技术
2008年上半年IT技术图书阅读排行大盘点
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有