分类:
2008-12-18 21:25:17
连接器引脚 | 功能(主机) | 功能(设备) | 颜色 |
1 | Vbus(4.75-5.25) | Vbus(4.4-5.25) | 红色 |
2 | D- | D- | 白色 |
3 | D+ | D+ | 绿色 |
4 | GND | GND | 黑色 |
1 |
VBUS(4.4-5.25V) |
2 |
D- |
3 |
D+ |
4 |
ID |
5 |
接地 |
4.1 端点(endpoint)和管道(pipe)
端点 每一个USB设备在主机看来就是一个端点的集合,主机只能通过端点与设备进行通讯,以使用设备的功能。每个端点实际上就是一个一定大小的数据缓冲区,这些端点在设备出厂时就已定义好。在USB系统中,每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性。其中包括:传输方式、总线访问频率、带宽、端点号、 数据包的最大容量等等。端点必须在设备配置后才能生效(端点0除外)。
端点0通常为控制端点,用于设备初始化参数等,端点1、2等一般用作数据端点,存放主机与设备间往来的数据。
管道 一个USB管道是驱动程序的一个数据缓冲区与一个外设端点的连接,它代表了一种在两者之间移动数据的能力。一旦设备被配置,管道就存在了。管道有两种类型,数据流管道(其中的数据没有USB定义的结构)与消息管道(其中的数据必须有USB定义的结构)。管道只是一个逻辑上的概念。
所有的设备必须支持端点0以作为设备的控制管道。通过控制管道可以获取完全描述USB设备的信息,包括:设备类型、电源管理、配置、端点描述等等。只要设备连接到USB上并且上电,端点0就可以被访问,与之对应的控制管道就存在了。
端点和管道 设备/功能(和集线器)与管道pipe (逻辑通道)联系在一起,管道把主机控制器和被称为端点的逻辑实体连接起来。 管道和比特流(例如的)有着相同的含义,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。
端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能最多有32个活动管道,16个进,16个出。 (出( OUT)指离开控制器,而入(IN)指进入主机控制器。) 两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个USB设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为4类:
· 控制传输——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的0号管道。
· 等时传输——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。
· 中断传输——用于必须保证尽快反应的设备(有限延迟),例如鼠标、键盘。
· 批量传输——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的文件传输。
4.2 Hub
Hub在USB结构中是一个关键,它提供了附加的USB节点,这些节点被称为端口。Hub可以检测出每一个下行端口的状态,并且可以给下端的设备提供电源。
4.3 即插即用
USB设备可以即插即用 但在可以使用之前,必须对设备进行配置,一旦设备连接到某一个USB的节点上,USB就会产生一系列的操作 来完成对设备的配置,这种操作被称为总线枚举过程。
1.设备所连接的Hub检测出端口上有设备连接 通过状态变化管道向主机报告。
2.主机通过询问Hub以获取确切的信息 。
3.主机这时知道设备连接到哪个端口上,于是向这个端口发出复位命令。
4.Hub发出的复位信号结束后,端口被打开 Hub向设备提供100mA的电源这时设备上电,所有的寄存器复位 ,并且以缺省地址0以及端点0响应命令。
5.主机通过缺省地址与端点0进行通讯,赋予设备一个独一的地址,并且读取设备的配置信息。
6.最后主机对设备进行配置,该设备就可以使用了;当该设备被移走时 Hub依然要报告主机,并且关闭端口,一旦主机接到设备移走的报告 就会改写当前结构信息。
4.4 设备的电源
USB设备的电源可以由USB总线供给,也可以自备电源,一个USB设备可以具有这两种供电方式,但同一时刻只能由一种方式供电,这两种供电方式是可以切换的 。
设备的挂起
为了节电,当设备在指定的时间内没有总线传输, USB设备自动进入挂起状态如果设备所接的Hub的端口被禁止了,设备也将进入挂起状态(称之为选择挂起)当然主机也可以进入挂起状态 。
USB设备当总线活动时,就会离开挂起状态。一个设备也可以通过电信号来远程唤醒进入挂起状态的主机。这个能力是可选的,如果一个设备具有这个能力主机有能力禁止或允许使用这种能力。