微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB技术入门

USB技术入门

时间:11-14 来源:互联网 点击:
  一、前言

  随着计算机技术的飞速发展,个人计算机(PC)的用户扩展不断扩大。然而一些系统I/O(如IRQ、DMA和I/O端口地址)限制了它的使用。于是一些新的接口标准如USB、IEEE1394应运而生,本文着重介绍通用串行总线(USB)。对于使用了USB接口的PC,用户不需要打开机盖,手工配置系统I/O,并为不同的外设接口发愁。而只需极其简单的安装与配置即可使用外设。USB提供即插即用(Plug Play)和热插拔功能,可以在不断电的情况下直接将外设连接到USB上,且马上就可以被系统识别使用。所有的USB外设接口“ONE-SIZE-FITS-ALL”,可以简单方便的连接入计算机中。USB系统采用级联星型拓扑结构,每个USB设备用一个USB插头连接到一个外设的插座上,而其本身又提供一个插座供下一个外设连接用。通过这种类似菊花链似的连接,一个USB控制器可以连接多达127个外设,而每个外设间距离(线缆长度)可达5米。为PC的USB外设扩充提供了一个很好的解决方案。

  二、USB基本特性

  USB的硬件结构

  USB采用四线电缆,其中两根是用来传送数据的串行信道,另两根为下流(Downstream)设备提供电源,D+、D- 是串行数据通信线,它支持两种数据传输率,对于高速需要高带宽的外设,USB以全速12Mbps传输数据。对于低速外设,USB则以1.5 Mbps的传输速率传输数据。USB总线会根据外设情况在两种传输模式中自动动态转换。VBUS是通常为+5V的电源,GND是地线。USB是基于令牌的总线,类似于像令牌环网络或FDDI基于令牌的总线。USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接受或发送数据给主机作响应。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑即类菊花链连接

  该拓扑由三个基本部分组成:主机(Host)、集线器(Hub)和功能设备。主机,也被称为根、根结或根Hub.它是做在主板上的,或作为适配卡安装在计算机上。主机包含有主控制器和根集线器(Root hub),它控制着USB总线上的数据和控制信息的流动。每个USB系统只能有一个根集线器,它连接在主控制器上。集线器是USB结构中的特定成分,它提供叫做端口(Port)的点来将设备连接到USB总线上。同时检测连接在总线上的设备,并为这些设备提供电源管理,负责总线故障检测和恢复。集线器或是为总线提供能源,或是自身提供能源(从外部得到电源)。自身提供能源的设备可插入总线提供能源的集线器中,总线提供能源的设备不能插入自身提供能源的集线器或支持超过四个的下游端口中。总线提供能源的设备需要超过的100mA电源时,不能同总线提供电源的集线器连接。功能设备通过端口与总线连接。USB设备同时可做Hub使用。例如,USB监视器可以提供USB鼠标和USB键盘的端口。USB集线器使用A类连接器,设备使用B类连接器。

  USB的软件结构

  USB通信模块的基本流图,主机和设备被分为几层。实箭头表示主机上的实际通信。设备上的相应接口根据不同的仪器而不同。主机和设备间的通信最终发生在物理线上,然而,在每一水平层之间存在着逻辑接口。主机中客户程序软件与设备功能间的通信代表了设备需求与设备能力之间的约定。

  每个USB只有一个主机,它包括以下几层:

  USB总线接口

  USB系统

  USB客户软件

  USB总线接口处理电气层与协议层的互连。从互连的角度来看,相似的总线接口由设备及主机同时给出,例如串行接口机(SIE)。USB总线接口由主控制器实现。

USB系统用主控制器管理主机与USB设备间的数据传输。它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB系统也负责管理USB资源,例如带宽和总线能量。这使客户访问USB成为可能。

  USB系统有三个基本组件:

  主控制器驱动程序(HCD)

  USB驱动程序(USBD)

  主机软件

  主控制器驱动程序能够更容易的将不同主控制器设备映像到USB系统中。因此客户可以在不知其设备连接那个主控制器的情况下与设备相互作用。HCD与USBD间的接口叫HCDI,特定的HCDI由支持不同主控制器的操作系统定义。通用主控制器驱动器(UHCD)处于软结构的最底层,由它来管理和控制主控制器。USB主控制器定义了一个标准硬件接口,以提供一个统一的主控制器可编程接口。UHCD实现了与USB主控制器通信和控制USB主控制器的一些根本细节,并且它对系统软件的其它部分是隐蔽的。系统软件中的更高层通过UHCD的软件接口与主控制器通信。

USB驱动程序(USBD)位于UHCD之上。它提供驱动器级的接口,满足现有设备驱动器设计的要求,USBD所实现的准确细节随不同操作系统环境而有所不同,但USBD在不同操作系统环境下完成的是一样的工作。U

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top