Visual C++串口通信技术详解(第2版)
上QQ阅读APP看书,第一时间看更新

1.5 USB总线标准

USB(Universal Serial BUS,通用串行总线)不是一种新的总线标准,而是应用在PC领域的接口技术。

目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好地兼容。USB用一个4针插头作为标准插头,采用菊花链形式,可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB具有传输速度快(USB1.1是12Mbit/s,USB2.0是480Mbit/s,USB3.0是5Gbit/s)、使用方便、支持热插拔、连接灵活、独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等几乎所有的外部设备。

1.5.1 USB总线总体结构

整个USB总线可以分为3个部分进行描述:USB连接、USB设备、USB主机。

1. USB连接

USB连接是指USB主机和USB设备的通信方式与方法,包括:总线拓扑(USB主机和设备之间的连接方式);层内关系(USB总线每一层中的任务);数据流模式(数据在USB总线上的流动方式);USB调度(USB提供一个共享的服从调度的互连)。

USB设备是通过USB总线连接到USB主机上的。USB总线上的物理连接是一个分层的星形拓扑。处于每个星形拓扑中央的是hub(USB集线器)。在主机和一个hub或者一个应用之间以及在hub和其他hub或应用之间都是一个点对点的连接。图1-5表示了USB的拓扑类型。

图1-5 USB总线拓扑类型示意图

2. USB主机

在USB总线中只有一个主机。USB总线与计算机主机系统的接口部分就是主机控制器,它可被看作一个硬件、固件和软件的结合体。主机系统中集成了一个根hub来提供一个或多个连接点。

3. USB设备

首先USB设备可被分为两大类:hub类(提供附加USB接入点的设备)和功能设备类(为系统实现某些功能的设备,如ISDN适配器、数字游戏杆等)。

按照功能,USB设备又可分为很多类,如音频、人机交互、显示、通信、电源、打印机、海量存储、物理反馈等设备。每个USB设备都必须提供自鉴定信息和通用的设置。

USB设备都有一个标准的USB接口,它的作用为:解释USB协议;对标准USB操作的响应,如挂起和设置等;提供设备的一些描述信息。

在实际的设计应用中,USB设备的接口有自已的特点。USB接口的正确设计与设备的性能紧密相关,在USB接口设计之前必须要对设备的功能、指标进行详细的分析。

连接在USB接口上的设备通过基于令牌和主机控制的协议来共同享用整个USB带宽。在其他设备正常工作的前提下,USB允许某设备连接、设置、运行和断开连接。

1.5.2 USB数据传输逻辑结构

USB设备在逻辑上分成了几个层次,分别是设备层、配置层、接口层和节点层。其示意图如图1-6所示。

图1-6 USB设备中各层的逻辑关系

1)节点:每个设备内有一个或多个逻辑连接点,称为节点。

2)接口:一个设备对主机表现为一组合适的节点,一组相关的节点称为一个接口。有多个接口的设备称为组合设备。

3)配置:设备可以有多组接口,每一组称为一个配置,一次只能有一个配置是活动的。但是,当前配置中的所有接口(和它们的节点)可以同时是活动的。大多数设备只有一个配置和一个接口。当一个设备第一次插入系统时,Windows提示用户选择合适的配置。

4)管道:在USB中,传输是在USB设备的某一节点和主机软件之间进行的,这个相关的结构就称为管道,即为设备的一个节点与主机之间的数据传输的模型。管道有两种:流管道和消息管道。其中消息管道的数据结构是USB定义好的,而流管道没有固定的结构。另外,数据传输带宽、传输类型、节点的特性(如方向和缓冲大小)都影响着它的管道特性。大多数的管道在USB设备配置好之后就产生了。其中有一个最重要的消息管理是“缺省控制管道”,这个管道在设备一加电的时候就存在了,它提供设备的配置和状态等信息的控制。

管道可以是单向的也可以是双向的。一个USB设备可以有很多个管道,管道之间是相互独立的,比如设备的一个管道可以从主机接收数据而另一个管道可以发送数据。在一个设备配置中每一个管道(即每一个节点)只能支持下述的一个数据传输类型。

1.5.3 传输类型

USB总线包括4种传输类型(传输管道)。

1)控制传输类型:用于传输控制信息,如:在连接时配置设备,控制其他管道的状态以及完成一些设备自定的用途。

2)块数据传输类型:用于传输相对比较大的和突发性强的数据,一般这种传输的动态范围比较宽。数据传输的可靠性由硬件层错误检测来保证,对错误的数据可进行重复发送。块传输是连续的,它的带宽占用依据其他USB设备的使用情况而不同。这种传输类型一般用于打印机、扫描仪等。

3)中断数据传输类型:数据量小,延迟短,通常用于传输设备反馈回计算机的字符和坐标信息,多用于人机交互设备,如鼠标、键盘、游戏杆等。

4)同步数据传输类型:占用预先分配的带宽,实时传输。对于同步传输管道,带宽的要求与设备的采样率有关,时延的要求与每个节点的缓冲大小有关。为保证数据的实时传输,在传输过程中的一些误码是不被纠正的(如不进行重试等),则实际上USB的错误率是十分小的,它完全可以被忽略掉,不足以形成问题。