USB系统结构应用
摘要摘要:通用串行总线(USB)是一种简单的计算机外围接口标准。它具有即插即用、扩展方便等优
点,已成为计算机必备的一个接口。本文简要介绍 USB总线的功能、拓朴结构及其数据传输过程,并举
例说明 USB接口的实际应用。
摘要:通用串行总线 USB接口外围接口标准
一、USB接口背景
在早期的计算机系统上常用串口或并口连接外围设备。每个接口都需要占用计算机的系统资源(如中
断,I/O地址,DMA通道等)。无论是串口还是并口都是点对点的连接,一个接口仅支持一个设备。因此
每添加一个新的设备,就需要添加一个 ISA/EISA或 PCI卡来支持,同时系统需要重新启动才能驱动新
的设备。
USB总线是 INTEL、DEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线标准,主要用于 PC机和
外围设备的互联。USB总线具有低成本、使用简单、支持即插即用、易于扩展等特征,已被广泛地用在
PC机及嵌入式系统上。
二、USB总线优缺点
1.优点
(1)使用简单
所用 USB系统的接口一致,连线简单。系统可对设备进行自动检测和配置,支持热插拔。新添加设备系
统不需要重新启动。
(2)应用范围广
USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种传输方式。一个
USB系统最多可支持 127个物理设备。USB设备的带宽可从几 Kbps到几 Mbps(在 版本,最高可
达几百 Mbps)。一个 USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的 ISDN、语音,
高速的磁盘、图像等(仅 版本支持高速设备)。
(3)较强的纠错能力
USB系统可实时地管理设备插拔。在 USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同
的传输类型来处理传输错误。
(4)总线供电
USB总线可为连接在其上的设备提供 5V电压/100mA电流的供电,最大可提供 500mA的电流。USB设备
也可采用自供电方式。
(5)低成本
USB接口电路简单,易于实现,非凡是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口
低。
2.缺点
USB技术还不是很成熟,非凡是高速设备。市场上现有的 USB设备价格都比较昂贵,但随着 USB技术的
日益成熟,设备的不断增加和广泛应用,其价格将会有所降低。
三、USB系统拓扑结构
一个 USB系统包含三类硬件设备摘要:USB主机(USBHOST)、USB设备(USBDEVICE)、USB集线器
(USBHUB),如图 1所示。
(1)USBHOST
在一个 USB系统中,当且仅当有一个 USBHOST时,USBHOST有以下功能摘要:
管理 USB系统;
每毫秒产生一帧数据;
发送配置请求对 USB设备进行配置操作;
对总线上的错误进行管理和恢复。
(2)USBDEVICE
在一个 USB系统中,USBDEVICE和 USBHUB总数不能超过 127个。USBDEVICE接收 USB总线上的所有数据
包,通过数据包的地址域来判定是不是发给自己的数据包摘要:若地址不符,则简单地丢弃该数据包;
若地址相符,则通过响应 USBHOST的数据包和 USBHOST进行数据传输。
(3)USBHUB
USBHUB用于设备扩展连接,所有 USBDEVICE都连接在 USBHUB的端口上。一个 USBHOST总和一个根
HUB(USBROOTHUB)相连。USBHUB为其每个端口提供 100mA电流供设备使用。同时,USBHUB可以通过端口
的电气变化诊断出设备的插拔操作,并通过响应 USBHOST的数据包把端口状态汇报给 USBHOST。一般来
说,USB设备和 USBHUB间的连线长度不超过 5m,USB系统的级联不能超过 5级(包括 ROOTHUB)。
四、USB总线数据传输
USB总线上数据传输的结构如图 2所示。
从物理结构上,USB系统是一个星形结构;但在逻辑结构上,每个 USB逻辑设备都是直接和 USBHOST相
连进行数据传输的。在 USB总线上,每 ms传输 1帧数据。每帧数据可由多个数据包的传输过程组
成。USB设备可根据数据包中的地址信息来判定是否响应该数据传输。在 USB标准 版本中,规定了
4种传输方式以适应不同的传输需求摘要:
(1)控制传输(controltransfer)
控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、
发送控制命令等功能。全速设备每次控制传输的最大有效负荷可为 64个字节,而低速设备每次控制传
输的最大有效负荷仅为 8个字节。
(2)同步传输(isochronoustransfer)
同步传输仅适用于全速/高速设备。同步传输每 ms进行一次传输,有较大的带宽,常用于语音设备。同
步传输每次传输的最大有效负荷可为 1023个字节。
(3)中断传输(interrupttransfer)
中断传输用于支持数据量少的周期性传输需求。全速设备的中断传输周期可为 1~255ms,而低速设备的
中断传输周期为 10~255ms。全速设备每次中断传输的最大有效负荷可为 64个字节,而低速设备每次中
断传输的最大有效负荷仅为 8个字节。
(4)块数据传输(bulktransfer)
块数据传输是非周期性的数据传输,仅全速/高速设备支持块数据传输,同时,当且仅当总线带宽有效
时才进行块数据传输。块数据传输每次数据传输的最大有效负荷可为 64个字节。
五、典型应用
USB系统的典型应用如图 3所示。
在图 3所示系统中,显示器、Audio、Modem皆为全速设备,键盘、鼠标为低速设备。其数据传输为摘
要:
USBHOST通过控制传输更改显示器属性。
USBHOST通过块数据传输将要显示的数据送给显示器。
USBHOST通过控制传输更改键盘、鼠标属性。
USBHOST通过中断传输要求键盘、鼠标输入读入系统。
USBHOST通过控制传输更改 Audio属性。
USBHOST通过同步传输和 Audio设备传输数据。
USBHOST通过控制传输更改 Modem属性。
USBHOST通过块数据传输和 Modem设备传输数据
六、一个 USBHOST接口的软硬件设计
市场上现已有很多公司提供的 USB接口器件,如 PHILIPS的 PDIUSBD11/PDIUSBD12,OKI的 MSM60581,
NATIONAL的 USBN9602,LUCENT的 USS-820/USS-620,SCANLOGIC的 SL11,等等。
同时也有很多带 USB接口的处理器,如 CYPRESS的 EZ-USB,AMD的 AM186CC,ATMEL的 AT43320,
MOTOROLA的 PPC823/PPC850,等等。下面给出用 SCANLOGIC的 USB接口器件 SL11HT实现嵌入式
USBHOST的例子。
特征
遵从 标准;
支持全速/低速传输;
支持主机/设备端两种模式;
片内包含 256个字节的 SRAM;
48MHz晶振输入。
当 SL11HT被用作 USBHOST接口时,对系统有以下要求摘要:
由系统维护 SOF帧数目;
由系统生成 CRC5效验码;
要求系统中断潜伏期小于 μs。
接口硬件框图
图 4简单地给出了使用 SL11HT扩展 USB接口的框图,更具体的硬件连线图请见参考文献 2,3。
端软件结构
USBHOST端软件结构如图 5所示。
(1)USB接口驱动程序
USB接口驱动程序需实现以下功能摘要:
USB接口器件的初始化;
计算上层数据包的效验和,发送上层的数据包;
发送 SOF帧;
接收从 USB接口传送来的数据,并检查数据的有效性;
将接收到的数据送往上层。
(2)USB协议栈驱动程序
USB协议栈驱动程序需实现以下功能摘要:
提供和设备驱动程序的接口;
读取并解析 USB设备描述符,配置描述符;
为 USB设备分配唯一的地址;
使用默认的配置来配置设备;
支持基本的 USB命令请求;
连接设备和相应的驱动程序;
转发设备驱动程序的数据包。
(3)设备驱动程序
设备驱动程序需实现以下功能摘要:
提供和应用程序的接口;
读取并解析 USB设备特有的描述符,获得设备提供的传输通道;
发送设备特有的和基本的 USB命令请求;
通过设备提供的传输通道和设备进行数据传输;
通过 USB命令请求重新配置设备。