USB是英文Universal SerialBus的简称,中文名称是“通用串行总线”。调查一下中关村的硬件市场,可以列举出一大堆 USB 设备:USB移动硬盘、USB数码相机、USBMP3播放器、USB数码相机、USB键盘、鼠标、游戏手柄……仿佛所有的计算机硬件都沾上了USB的边。USB支持即插即用(PlugandPlay),即允许外设在主机和其他外设工作时进行连接、配置、使用和删除。应用USB总线规范,可以清除PC上过多的I/O接口,而仅以一个串行接口取代,使得PC与外部设备之间的连接变得更加容易。关键词:
(1) 握手应答包(AcknowledgePacket,简写为ACK)。用于USB主机与设备之间数据传输时,指示应答的握手 信号。
(2)缓冲区(Buffer)。计算机或者是嵌入式系统中,用于暂时存储不能及时或大量传送的数据的内存单元。
(3) 批量传输(BulkTransfer)。USB的4种传输类型之一。用于对时间没有特殊要求,但总量很大的数据的 传输。
(4) 总线枚举(BusEnumeration)。USB主机对于USB设备的检测和配置。
(5) 控制传输(ControlTransfer)。USB的4种传输类型之一。主要用于主机与设备之间配置、命令及状态等 数据的传输。
(6)设备(Device)。这是一个非常重要的概念,是指能够实现某种USB功能的逻辑或物理实体。USB协议将设 备分为3个层次:
从最低的层次来讲,设备指的就是单个的元件,比如一个Flash存储设备;
从更高一层次来讲,设备是能够实现某种特定功能的硬件的集合体,比如USB的接口设备;
最高层次上的USB设备,是指其所能够实现的功能。在文中没有特殊提到时,设备指的就是一个USB集线 器或者是一种USB的功能。比如优盘就是一个USB设备,因为它能实现USB的MassStorage的功能。
(7)端点(Endpoint,简写为EP)。又一个重要的概念。从物理机制来说,端点可以是嵌入式系统或PC上的一 个数据缓冲区,用来存放和发送 USB的各种数据;从逻辑上来说,端点可以视为数据的收发器,可以按 照定义的传输方式来交换数据。每个端点都有惟一确定的地址,即端点号。每个端点根据相关硬件芯片 的不同设置成不同的传输特性,比如输入/输出端点、配置端点及批量传输端点等。
(8)域(Field)。USB协议中规定的组成包的单元。
(9)帧(Frame)。这是一个时间概念,指的是从一个SOF令牌开始到下一个SOF发送之间的时间,其中包含了 一系列的数据传送。
(10)功能(Function)。通过USB实现的某种作用或任务。比如USB的数码相机等,它同时也是一个USB的设 备,起到了传输照片数据等的功能。
(11)人机交互设备(HumanInterface Device,简写为HID)。USB协议规定的设备类之一。常见的USB鼠标、 键盘等设备均属于HID。Windows等操作系统对于HID有很好的支持,提供了完整的驱动程序。HID的PC 级开发因此仅需针对应用级用户程序。
(12)主机(Host)。是整个USB体系的核心。它包括主机接口控制器硬件和驱动程序2个层次。
(13)集线器(Hub)。提供USB设备到主机的连接点。能够为相应的 USB 设备提供电源,并在一定程度上检测 和管理连接的USB设备。
(14)同步传输(IsochronousTransfer)。4种USB传输类型之一。适用于对时间有严格要求的数据的传输,比 如音频数据的传输。USB总线能够保证为同步传输提供固定的带宽,并有可能因此占用批量传输等的带 宽,而优先满足同步传输的需要。
(15)最低有效位(LeastSignificant Bit,简写为 LSB)。
(16)微控制器(MicroController Unit ,简写为MCU)。国内俗称单片机。
(17)最高有效位(MostSignificant Bit ,简写为MSB)。
(18)移动式USB(USB On TheGo,简写为OTG)。基于 USB协议2.0的补充版本,用于解决USB点对点通信的瓶 颈。OTG既具有USB主机的功能,又具有 USB设备的功能,并且能够自由地在这两种角色中进行切换。
(19)包(Packet)。USB协议中规定的有一定格式的数据组合。典型的一个包中,包含了该包的信息、传输的数 据和校验纠错信息等3部分。可以说,包是USB数据传输的最基本单位。
(20)个人计算机(PersonalComputer,简写为PC)。
(21)包标志域(PacketIdentified Field,简写为PID)。用于表明包的类型和格式的域。
(22)即插即用(Play andPlug,简写为PnP)。基于PC的一项技术,用于管理I/O地址、内存地址和IRQ等在内 的主机资源,使得外部设备能够使用的PC中没有冲突的某项资源。
(23)端口(Port)。USB设备的接入点,一般由集线器或USB主机的根集线器提供。
(24)事务(Transaction)。USB中基于一个端点的数据发送与接收的行为。注意与Transfer的区别。
(25)传输(Transfer)。USB的各种数据发送的总的格式。包括4种传输类型。传输由1笔或多笔事务组成。
(26)嵌入式USB主机(EmbeddedUSB Host)。随着对USB点对点方案的发展,出现“嵌入式 USB主机”的解决 方案的需求,这也是一个新的提法和名称。指的是在嵌入式系统中实现USB主机的功能,从功能上来 说,它应该完全具备和PC上一样的所有USB主机的功能,但是,从实现的角度来讲,由于PC有很大的不 同,因此,凡是书中叙述有关如此内容的时候,均会严格标注“嵌入式USB主机”。
USB的拓扑结构如下图所示:
USB的拓扑体系由3种元素组成:主机、Hub和设备。在PC平台上的USB中,PC就是主机和根Hub,用户可以将设备和下级Hub与之连接。而这些附加的Hub又可以连接更下一级的Hub和设备,从而构成了星形结构。在USB协议1.1中,一个USB的拓扑网络最多可以支持4个Hub层(包括最后一级设备后共5层)以及127个外设。而在最新的USB协议2.0中,对于Hub层的支持已经达到了6层(包括最后一级设备后共7层)。
下图演示了一个完整的USB系统的软硬件组成以及它们之间的联系:
USB系统的软硬件资源可以分为3个层次,即功能层、设备层和接口层。接口层涉及的是具体的物理层,其主要实现物理信号和数据包的交互,也就是在主机端的USB主控制器和设备端的USB总线接口之间传输实际的数据流。设备层主要提供USB基本的协议栈,执行通用的USB的各种操作和请求命令,从逻辑上讲,就是USB系统软件与USB逻辑设备之间的数据交换。最后,功能层提供每个USB设备所需的特定的功能,主机端的这个功能由用户软件和设备类驱动程序提供,而设备端就由功能单元来实现,它们之间的这种联系看作是逻辑上的数据流。
最后,以下表来总结一下USB系统的所有软硬件资源,并重新加以归类。
|