回答

收藏

[结构设计] USB系统结构与应用设计

技术分享 技术分享 653 人阅读 | 0 人回复 | 2008-08-17

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
  摘 要:通用串行总线(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 (在USB2.0版本,最高可达几百Mbps)。一个USB系统可同时支持不同速率的设备,如低速的键盘、鼠标,全速的ISDN、语音,高速的磁盘、图像等(仅USB2.0版本支持高速设备)。
  (3)较强的纠错能力
  USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型来处理传输错误。
  (4)总线供电
  USB总线可为连接在其上的设备提供5V电压/100mA电流的供电,最大可提供500mA的电流。USB设备也可采用自供电方式。
  (5)低成本
  USB接口电路简单,易于实现,特别是低速设备。USB系统接口/电缆也比较简单,成本比串口/并口低。
  2.缺 点
  USB技术还不是很成熟,特别是高速设备。市场上现有的USB设备价格都比较昂贵,但随着USB技术的日益成熟,设备的不断增加和广泛应用,其价格将会有所降低。
  三、USB系统拓扑结构
  一个USB系统包含三类硬件设备: USB主机(USB HOST)、 USB设备(USB DEVICE)、USB集线器(USB HUB),如图1所示。
  (1)USB HOST
  在一个USB系统中,当且仅当有一个USB HOST时,USB HOST有以下功能:
  ◇ 管理USB系统;◇ 每毫秒产生一帧数据;◇ 发送配置请求对USB设备进行配置操作;◇ 对总线上的错误进行管理和恢复。
  (2)USB DEVICE
  在一个USB系统中,USB DEVICE和USB HUB总数不能超过127个。USB DEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USB HOST的数据包与USB HOST进行数据传输。
  (3)USB HUB
  USB HUB用于设备扩展连接,所有USB DEVICE都连接在USB HUB的端口上。一个USB HOST总与一个根HUB (USB ROOT HUB)相连。USB HUB为其每个端口提供100mA电流供设备使用。同时,USB HUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USB HOST的数据包把端口状态汇报给USB HOST.一般来说,USB设备与USB HUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOT HUB)。
  四、USB总线数据传输
  USB总线上数据传输的结构如图2所示。
  从物理结构上,USB系统是一个星形结构;但在逻辑结构上,每个USB逻辑设备都是直接与USB HOST相连进行数据传输的。在USB总线上,每ms传输1帧数据。每帧数据可由多个数据包的传输过程组成。USB设备可根据数据包中的地址信息来判断是否响应该数据传输。在USB标准1.1版本中,规定了4种传输方式以适应不同的传输需求:
  (1)控制传输(control transfer)
  控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、发送控制命令等功能。全速设备每次控制传输的最大有效负荷可为64个字节,而低速设备每次控制传输的最大有效负荷仅为8个字节。
  (2)同步传输(isochronous transfer)
  同步传输仅适用于全速/高速设备。同步传输每ms进行一次传输,有较大的带宽,常用于语音设备。同步传输每次传输的最大有效负荷可为1023个字节。
  (3)中断传输(interrupt transfer)
  中断传输用于支持数据量少的周期性传输需求。全速设备的中断传输周期可为1~255ms,而低速设备的中断传输周期为10~255ms.全速设备每次中断传输的最大有效负荷可为64个字节,而低速设备每次中断传输的最大有效负荷仅为8个字节。
  (4)块数据传输(bulk transfer)
  块数据传输是非周期性的数据传输,仅全速/高速设备支持块数据传输,同时,当且仅当总线带宽有效时才进行块数据传输。块数据传输每次数据传输的最大有效负荷可为64个字节。
  五、典型应用
  USB系统的典型应用如图3所示。
  在图3所示系统中,显示器、Audio、Modem皆为全速设备,键盘、鼠标为低速设备。其数据传输为:
  ◇ USB HOST通过控制传输更改显示器属性。
  ◇ USB HOST通过块数据传输将要显示的数据送给显示器。
  ◇ USB HOST通过控制传输更改键盘、鼠标属性。
  ◇ USB HOST通过中断传输要求键盘、鼠标输入读入系统。
  ◇ USB HOST通过控制传输更改Audio属性。
  ◇ USB HOST通过同步传输与Audio设备传输数据。
  ◇ USB HOST通过控制传输更改Modem属性。
  ◇ USB HOST通过块数据传输与Modem设备传输数据六、一个USB HOST接口的软硬件设计
  市场上现已有很多公司提供的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实现嵌入式USB HOST的例子。
  1.SL11HT特点
  ◇ 遵从USB1.1标准;◇ 支持全速/低速传输;◇ 支持主机/设备端两种模式;◇ 3.3/5.0V供电;◇ 片内包含256个字节的SRAM;◇ 48MHz晶振输入。
  当SL11HT被用作USB HOST接口时,对系统有以下要求:
  ◇ 由系统维护SOF帧数目;◇ 由系统生成CRC5效验码;◇ 要求系统中断潜伏期小于1.5μs.
  2.SL11HT接口硬件框图
  3.USB HOST端软件结构
  (1)USB接口驱动程序
  USB接口驱动程序需实现以下功能:
  ◇ USB接口器件的初始化;◇ 计算上层数据包的效验和,发送上层的数据包;◇ 发送SOF帧;◇ 接收从USB接口传送来的数据,并检查数据的有效性;◇ 将接收到的数据送往上层。
  (2)USB协议栈驱动程序
  USB协议栈驱动程序需实现以下功能:
  ◇ 提供与设备驱动程序的接口;◇ 读取并解析USB设备描述符,配置描述符;◇ 为USB设备分配唯一的地址;◇ 使用默认的配置来配置设备;◇ 支持基本的USB命令请求;◇ 连接设备与相应的驱动程序;◇ 转发设备驱动程序的数据包。
  (3)设备驱动程序
  设备驱动程序需实现以下功能:
  ◇ 提供与应用程序的接口;◇ 读取并解析USB设备特有的描述符,获得设备提供的传输通道;◇ 发送设备特有的和基本的USB命令请求;◇ 通过设备提供的传输通道与设备进行数据传输;◇ 通过USB命令请求重新配置设备。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

郑重声明:本站属技术交流,非赢利性网站。
本站言论纯属发表者个人意见,与“建筑在线”立场无关。
涉及政治言论一律删除,请所有会员注意. 本站资源由会员从网上收集整理所得,版权属于原作者。
本站所有资源是进行学习和科研测试之用,请在下载后24小时删除
本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权
请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!