Linux驱动设计硬件基础(四)接口与总线之USB

2.3.4 USB

    USB(通用串行总线)是Intel、Microsoft等厂商为解决计算机外设种类的日益增加与有限的主板插槽和端口之间的矛盾于1995年提出的,它具有数据传输率高、易扩展、支持即插即用和热插拔的优点。

    USB 1.1包含全速和低速两种模式,低速方式的速率为1.5Mbit/s,支持一些不需要很大数据吞吐量和很高实时性的设备,如鼠标等。全速模式为12Mbit/s,可以外接速率更高的外设。在USB 2.0中,增加了一种高速方式,数据传输率达到480Mbit/s,半双工,可以满足更高速外设的需要。而USB 3.0(也被认为是Super Speed USB)的最大传输带宽高达5.0Gbit/s(即640MB/s),全双工。

    USB 2.0总线的机械连接非常简单,采用4芯的屏蔽线,一对差分线(D+、D-)传送信号,另一对(VBUS、电源地)传送+5V的直流电。USB 3.0线缆则设计了8条内部线路,除VBUS、电源地之外,其余3对均为数据传输线路。其中保留了D+与D-这两条兼容USB 2.0的线路,新增了SSRX与SSTX专为USB3.0所设的线路。

    在嵌入式系统中,电路板若需要挂接USB设备,则需提供USB主机(Host)控制器和连接器;若电路板需要作为USB设备,则需提供USB设备适配器和连接器。大多数SoC集成了USB主机控制器(以连接USB外设)和设备适配器(如手机充当U盘)。由USB主机、设备和Hub组成的USB系统的物理拓扑结构如图2.14所示。


图2.14 USB的物理拓扑结构

    每一个USB设备会有一个或者多个逻辑连接点在里面,每个连接点叫端点。USB提供了多种传输方式以适应各种设备的需要,一个端点可以选择如下一种传输方式。

1.控制(Control)传输方式

控制传输是双向传输,数据量通常较小,主要用来进行查询、配置和给USB设备发送通用命令。所有USB设备必须支持标准请求(Standard Request),控制传输方式和端点0。

2.同步传输方式

同步传输提供了确定的带宽(计算机网络带宽指的是网络可以通过的最高数据率,每秒多少比特)和间隔时间,它用于时间要求严格并具有较强容错性的流数据传输,或者用于要求恒定数据传送率的即时应用。例如进行语音业务传输时,使用同步传输方式是很好的选择。同步传输也常称为“Streaming Real-time”传输。

3.中断(Interrupt)传输方式

中断方式传送是单向的,对于USB主机而言,只有输入。中断传输方式主要用于定时查询设备是否有中断数据要传送,该传输方式应用在少量分散的、不可预测的数据传输场合,键盘、游戏杆和鼠标属于这一类型。

4.批量(Bulk)传输方式

批量传输主要应用在没有带宽、间隔时间要求的批量数据的传送和接收中,它要求保证传输。打印机和扫描仪属于这种类型。

而USB 3.0则增加了一种Bulk Streams传输模式,USB 2.0的Bulk模式只支持1个数据流,而Bulk Streams传输模式则可以支持多个数据流,每个数据流被分配一个Stream ID(SID),每个SID与一个主机缓冲区对应。

在USB架构中,集线器负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机报告。一旦获悉有新设备连接上来,主机就会发送一系列请求给设备所挂载的集线器,再由集线器建立起一条连接主机和设备之间的通信通道。然后主机以控制传输的方式,通过端点0对设备发送各种请求,设备收到主机发来的请求后回复相应的信息,进行枚举操作。因此USB总线具备热插拔的能力。
















猜你喜欢

转载自blog.csdn.net/xiezhi123456/article/details/80236249