您当前的位置:五五电子网电子知识电子学习基础知识电路基础知识USB技术介绍 正文
USB技术介绍

USB技术介绍

点击数:7606 次   录入时间:03-04 11:56:25   整理:http://www.55dianzi.com   电路基础知识

  以USB主机为核心,以外同的USB设备为功能,组成了USB系统模型。主机是USB的核心,每次USB数据通信都必须是由USB主机来发起,由主机管理USB系统。USB在物理上是由两条电源线(vCC,GND)和两条以差分方式产生的信号线(D+,D-)构成,传输率可达12Mbps的串行接口。一个PC主机可以连接多达127个外围设备。USB协议是以令牌包为主的通信协议,12Mbps的总线带宽被分割成Ims的帧,所有任务以时分传输(TDM)来分享总线。
  
  1.USB物理接口的电器特性
  
  USB传送信号和电源是通过一种四线的电缆,如下图所示,其中的两根线是用于发送信号,存在两种数据传输率:

USB传送信号

  (1)USB的高速信号的比特率定为12Mbps;
  
  (2)低速信号传送的模式定为1.5Mbps;
  
  电缆中包括VBUS、GND二条线,向设备提供电源。VBUS使用+5v电源。USB对电缆长度的要求不严,最长可为几米。为了保证足够的输入电压和终端阻抗。重要的终端没备应位于电缆的尾部。在每个端口都可检测终端是否连接或分离,并区分出高速或低速设备。
  
  2.USB编码方式
  
  USB采用不归零翻转(Non Return to Zero Invert,简称NRZI)编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转。为了防止长时间电平不变化(这样不利于时钟信号的索取),在发送数据前要经过位填充(bit stuffing)处理。位填充处理的过程是:当遇到连续6个数据l时,就强制插入一个数据0。经过位填充后的数据,由串行接口引擎(SIF)将数据串行化合NRZI编码后,发送到USB的差分数据线已在接收端,刚好是一个相反的过程。接收端采样数据线,由SIE将数据并行化(反串行化),然后去掉位填充(反位填充),恢复出原来的数据。通常使用现成的USB芯片,如位填充、反串行化、CRC校验等处理过程,由芯片内部的硬件完成。
  
  NRZI编码、位填充过程分析如下:
  
  原数据01100011011111111
  
  位填充.011000110111111011.
  
  NRZI码01110100011111110003.
  
  USB设备的插入检测机制USB主机是如何检测设备的插入呢?首先,在USB集线器的每个下游端口的D+和D-上,分别接了一个15kΩ的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平,而在USB设备端,在D+或者D-上,接有1.5kΩ上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5kΩ的上拉电阻和15kΩ的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就供给USB主控制器(或者通过它上一层的集线器供给USB主控制器),这样就检测到设备的插入了。

  4.USB的枚举过程
  
  USB主机在检测到USB设备插入后,就要对设备进行枚举。枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。
  
  在讨论枚举之前,先大概了解USB的~种传输模式——控制传输。这种传输在USB中是非常重要的,它要保证数据的正确性,在设备的枚举过程中都是使用控制传输的。控制传输分为建立、数据、确认三个阶段。建立(Setup)阶段都是由USB主机发起,它是一个setup数据包,里面包含一些数据请求的命令以及一些数据。如果建立阶段是输入请求,那么数据阶段就要输人数据;如果建立阶段是输出请求.那么数据阶段就要输出数据。如果在数据阶段,即便不需要传送数据,也要发一个“0”长度的数据包。数据阶段过后就是确认阶段。确认阶段刚好跟数据阶段相反,如果是输入请求,则它是一个输出数据包:如果是输出请求,则它是一个输入数据包。确认阶段用来确认数据的正确传输。
  
  5.USB描述符
  
  USB采用USB标准描述符说明一个USB设备,这些描述符包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和报告描述符等。对于高速设备,还包括设备限定描述符和其他速率配置描述符。设备类和供应商也可以自己定义其设备专用描述符,分别称为设备类定义描述符和供应商自定义描述符。
  
  设备描述符(DevICe Descriptor)用于指出USB设备的总体信息,其内容对该设备中同一传输模式下的所有配置都有效。一个设备只能有一个设备描述符。
  
  配置描述符(Configuration Descriptor)为USB设备的配置指出其配置信息,且一个设备允许多个配置描述符。USB设备的一个配置可以包含一个或者多个接口,且每个接口都可以相互独立工作,所有的USB设备都至少支持一个配置描述符,每个配置都必须有自己的配置描述符。当主机请求配置描述符时,其所有相关的接口描述符和端点描述符都将被返回。
  
  接口描述符(Interface DescriPtor)用于指定USB设备中各个接口的特性,设备的每个接口都必须有一个描述符。USB设备的接口是一个端点的集合,负责完成设备的特定功能,接口可以包含一个或者多个可替换配置,它们能够在USB设备处于配置状态时,改变当前接口所含端点的个数和特性。USB设备的同一配置接口间,不能使用相同的端点,但是同一接口的各个可替换配置间,可以使用相同的端点。
  
  端点描述符(EndPointDescriptor)用于指出USB设备端点的特性,如其所支持的传输类型、传输方向等信息。除端点0外,USB设备的每个端点,都必须有一个端点描述符。

7452

  字符串描述符(stringDescriptor)用于保存一些文本信息,它是可选的。在USB设备的其他描述符中,可以含有指向字符串描述符的索引值。
  
  报告描述符(ReportDescriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。USBHID设备是通过报告来传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的.例如USB鼠标将鼠标移动和鼠标点击等信息返回绘电脑,键盘将按键数据返回给电脑等。输出报告是主机发送给USB设备的,例如键盘上的数字键盘锁定灯和大写字母锁定灯等。报告是一个数据包,里面包含所要传送的数据。输入报告是通过中断输入端点输入的,而输出报告是当没有中断输出端点时,可以通过控制输出端点0发送,当有中断输出端点时,通过中断输出端点发出。报告描述符,是描述一个报告以及报告里面的数据,通过它,USBHOST可以分析出报告里面的数据所表示的信息。它通过控制输入端点0返回,主机使用获取报告描述符命令来获取报告描述符,注意:这个请求是发送到接口的,而不是到设备。一个报告描述符可以描述多个报告,不同的报告通过报告ID来识别,报告ID在报告最前面,即第一个字节。当报告描述符中没有规定报告ID时,报告中就没有ID字段,开始就是数据。




本文关键字:技术  电路基础知识电子学习 - 基础知识 - 电路基础知识