http://bbs.eeworld.com.cn/316/ShowPost.aspx
USB接口技术(一)
USB总线协议
USBUniversal Serial Bus总线协议是以Intel为主并有Compaq,Microsoft,IBM,DEC,Northern Telecom连同***NEC等共七家公司一起定制的串行接口标准1994年11月定制了第一个草案1996年2月公开了USB规范版本1.0,USB可把多达127个外设同时联到您的系统上,通过协议来共享USB的带宽其12Mbps的带宽对于键盘鼠标等低中速外设是完全足够的,在1999年2月发布的USB规范版本2.0草案中已建议将12Mbps的带宽提升到120-240Mbps,USB允许外设在主机和其他外设工作时进行连接配置使用及移除(即所谓的即插即用Plug & Play)同时USB总线的应用能够清除PC上过多的I/O端口而以一个串行通道取代使PC和外设之间的连接更容易。
一. 总线拓扑结构
USB总线的物理连接是一种分层的菊花链结构集线器(hub)是每个星形结构的中央,PC机就是主机和根Hub,用户能够将外设或附加的Hub和之相连,这些附加的Hub能够连接另外的外设连同下层Hub,USB支持最多5个Hub层连同127个外设。
二. USB的物理层
USB的物理接口包括电气特性和机械特性:USB通过一个四线电缆来传输信号和电源。其中D 和D-是一对差模的信号线而VBus和GND则提供了5V的电源,他能够给一些设备(包括Hub)供电。当然要有一定的条件限制。USB提供了两种数据传输率:一种是12Mb的高速(full speed)模式,另一种是1.5Mb的低速模式。这两种模式能够同时存在于一个USB系统中,而引入低速模式主要是为了降低需要不高的设备的成本,比如:鼠标键盘等等。USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m。而在低速模式中能够使用不带屏蔽或不是双绞的线,但最长不能超过3m。这主要是由于信号衰减的限制,为了提供信号电压确保连同和终端负载相匹配,在电缆的每一端都使用了不平衡的终端负载,这种终端负载也确保了能够检测外设和端口的连接或分离并且能够区分高速和低速设备。任何的设备都有上行的接口。上行和下行的接头是不能互换的,这确保了不会有非法的连接出现。插头和插座有两个系列分别为A和B系列。A用于基本固定的外围设备,而系列B用于经常拔插的设备。这两个系列是不能互换的。
三.USB设备
USB设备包括Hub和功能设备,而功能设备又能够细分为定位设备和字符设备等等。为了进一步叙述,我们给出端点(endpoint)和管道(pipe)的概念。
端点:每一个USB设备在主机看来就是个端点的集合。主机只能通过端点和设备进行通讯,以使用设备的功能。每个端点实际上就是个一定大小的数据缓冲区,这些端点在设备出厂时就已定义好。在USB系统中每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性,其中包括传输方式,总线访问频率,带宽端点号,数据包的最大容量等等。端点必须在设备配置后才能生效(端点0除外)。
端点0通常为控制端点,用于设备初始化参数等。端点1,2等一般用作数据端点,存放主机和设备间往来的数据。 管道: 一个USB管道是驱动程式的一个数据缓冲区,和一个外设端点的连接。他代表了一种在两者之间移动数据的能力。一旦设备被配置,管道就存在了。管道有两种类型:数据流管道,其中的数据没有USB定义的结构,和消息管道,其中的数据必须有USB定义的结构。管道只是个逻辑上的概念。任何的设备必须支持端点0以作为设备的控制管道。通过控制管道,能够获取完全描述USB设备的信息。包括设备类型,电源管理配置端点描述,等等。只要设备连接到USB上,并且上电,端点0就能够被访问。和之对应的控制管道就存在了。一个USB设备能够分为三个层。最底层是总线接口,用来发送和接收包。中间层处理总线接口和不同的端点之间的数据流。通一个端点是数据最终的使用者或提供者。他能够看作数据的源或接收端。最上层就是USB设备所提供的功能,比如:鼠标或键盘等。
USB接口技术(二)
Hub
Hub在USB结构中是个关键。他提供了附加的USB节点。这些节点被称为端口。Hub能够检测出每一个下行端口的状态。并且能够给下端的设备提供电源。
即插即用
USB设备能够即插即用,但在能够使用之前,必须对设备进行配置。一旦设备连接到某一个USB的节点上,USB就会产生一系列的操作来完成对设备的配置。这种操作被称为总线枚举过程。
1.设备所连接的Hub检测出端口上有设备连接,通过状态变化管道向主机报告。
2.主机通过询问Hub以获取确切的信息。
3.主机这时知道设备连接到哪个端口上,于是向这个端口发出复位命令。
4.Hub发出的复位信号结束后,端口被打开,Hub向设备提供100mA的电源。这时,设备上电任何的寄存器复位,并且,以缺省地址0连同端点0响应命令。
5.主机通过缺省地址和端点0进行通讯。赋予设备一个独一的地址,并且读取设备的配置信息。
6.最后主机对设备进行配置,该设备就能够使用了。当该设备被移走时,Hub依然要报告主机,并且关闭端口。一旦主机接到设备移走的报告,就会改写当前结构信息。
设备的电源
USB设备的电源能够由USB总线供给,也能够自备电源。一个USB设备能够具备这两种供电方式。但同一时刻只能由一种方式供电。这两种供电方式是能够转换的。
设备的挂起
为了节电,当设备在指定的时间内没有总线传输,USB设备自动进入挂起状态。假如设备所接的Hub的端口被禁止了,设备也将进入挂起状态(称之为选择挂起)。当然,主机也能够进入挂起状态。
USB设备当总线活动时,就会离开挂起状态。一个设备也能够通过电信号来远程唤醒进入挂起状态的主机。这个能力是可选的。假如一个设备具备这个能力,主机有能力禁止或允许使用这种能力。(To Be Continued)
USB接口技术(三)
USB主机
USB主机在USB系统中处于中央地位。并且,对USB及其连接的设备有着特别的责任。主机控制着任何对USB的访问一个外设。只有主机允许才有权力访问总线。主机同时也监测着USB的结构。USB主机包括三层:设备驱动程式,USB系统软件,USB主控制器(主机的总线接口)。另外,更有两个软件接口:USB驱动USBD接口,主机控制驱动(HCD)接口。
USB数据流
从逻辑上讲,USB数据的传输是通过管道进行的。USB系统软件通过缺省管道(和端点0相对应)管理设备。设备驱动程式通过其他的管道来管理设备的。功能接口实际的数据传输过程是这样的:设备驱动程式通过对USBD接口(USB driver interface)的调用,发出输入输出请求(IRPI/O Request Packet)。USB驱动程式接到请求后调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP能够包含一个或多个USB传输; 然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是,任何的数据传输都是由主机开始的,任何外设都无权开始一个传输。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



