Electronic Joint Business

Solution for E-Business

usb

USB 协议详解之一 基础知识

在 USB 出现前,计算机上就已经存在众多接口标准,比如串口、并口、PS2 等等,各接口从硬件形状和软件设置都不兼容,因此 USB 的设计目标之一,就是希望通过它方便地实现设备之间的互联。从而解决接口标准太多的弊端,这也是 USB 中的 Universal 一词的含义。

USB 使用一个 4 针的标准插头,采用菊花瓣形式把所有外设连接起来,它使用串行方式传输数据,支持多数据流和多个设备并行操作并允许外设热插拔。

基础知识
从物理结构上,USB 系统是一个分层的星形结构,它包含三类硬件设备:主机(HOST)、 设备(DEVICE)和集线器(HUB)。处于每个星形拓扑中央的是集线器,而在主机与集线器之间,集线器与集线器之间,集线器与设备之间都是点对点连接。1

各个设备在系统中的作用如下:

  • USB 主机 的主要作用包括: 提供电源,同时进行节电管理;检测设备,包括设备的接入与断开;管理数据传输,包括控制流和数据流;发送配置请求对 USB 设备进行配置操作;对总线上的错误进行管理和恢复等等。
  • USB 设备:在一个 USB 系统中,设备和集线器的总数不能超过 127 个。USB 设备接收 USB 总线上所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应主机的数据包来和 USB 主机进行数据传输。
  • USB 集线器:集线器用于设备扩展连接,所有 USB 设备都连接在 USB 集线器的端口上。一个 USB 主机总与一个根集线器 (USB ROOT HUB)相连。USB 集线器为其每个端口提供 100mA 电流供设备使用。同时,USB 集线器可以通过端口的电气变化来判断出设备的插拔操作,并通过响应 USB 主机的数据包把端口状态汇报给主机。一般来说,USB 设备与USB 集线器间的连线长度不能超过 5米,USB 系统的级联不能超过5层(包括ROOT HUB)。

USB 功能
USB 是一种串行接口协议,它依靠 D+/D- 两条数据线构成的差分线来进行数据传输,这和我们熟悉两线 RS232/485 协议有何区别呢?了解这种区别有助于深入理解 USB 。所以首先让我们回想一下 RS232 的数据是如何传送的,如图1-2:

>>> 阅读全文

 

, ,

WDF USB设备驱动开发指南

USB 的全称是 Universal Serial BUS(通用串行总线), 它有两个重要的特点:串行数据传输、支持热拔插。从 1996 年 1 月至今,USB 已经经历了四个版本:1.0、1.1、2.0 和 3.0。其应用遍及各个领域, USB 采用主从结构。两个可以互联的设备,一定有主从之分。这导致了两台主机(主设备)或者两个 U 盘之间没有办法互联,只能在设备(U盘)和主机之间建立主从互联关系。

要成为 USB 主机,就一定有两种设备:USB 主控制器、USB 根集线器。主控制器用来处理根集线器上的数据,交给系统处理;根集线器用来连接多个外部设备。请注意:根集线器和普通 USB 集线器是不同的,普通 USB 集线器也是 USB 外部设备的一种,不是主机的组成部分。

我们在使用的电脑,每台电脑都有若干个控制器,控制器上有一个或多个根集线器,集线器上又对外暴露出一个或多个 USB A 型接口让外部设备连接。在设备管理器的视图模式选择 “按连接排序设备” 后,可看到和图 1-1 类似的”设备->集线器–>控制器->系统”层次结构。

最上层是 USB EHCI 接口的控制器,中间层是控制器上唯一的根集线器,最下层是连接在根集线器上的设备(包括普通集线器)。 每个 USB 控制器是一个 USB 族群的核心,其驱动程序负责为子设备分配总线地址。总线地址为 7 位宽,由于控制器自己占一个地址,故而最多可提供(2^7 -1 = 127)个子设备地址,也就是说,每个控制器上最多能连接 127 个子设备。并且这个数目包含了根集线器。

USB 电气特性和枚举
标准 USB 接口有 4 个金属针脚,对应着 USB 线中,就是 4 根金属线:两根电源线(5V的 VBus 和地线 GND )和两根数据线(D+ 和 D-)。这两根数据线实现了数据的差分传输,其实等于是一根线,但是提高了稳定性,这也就是“串行”之由来了。 USB 设备可以自己供电,也可以从总线获取电源,即通过 5V 电源线传过来的。像 U 盘、鼠键这类小型设备,5V 电源或者 100mA 电流足以满足其设备需求,故而多从总线获取电源;移动硬盘、打印机、USB 声卡这种较大设备,往往需要外置电源。

>>> 阅读全文

 

, ,