USB串行总线及其应用_第1页
USB串行总线及其应用_第2页
USB串行总线及其应用_第3页
USB串行总线及其应用_第4页
USB串行总线及其应用_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章USB串行总线及其应用USB系统组成USB系统接口信号与电气特性USB流类型与传输类型USB包格式USB外围芯片及应用4.1USB串行总线概述通用串行总线(UniversalSerialBus,USB〕:连接外部设备的一个串口总线标准,用于在便携设备之间直接交换数据,广泛使用与计算机、机顶盒和游戏机。开发目的:计算机与之间的连接;易用性;端口扩充。特点:支持热插拔(Hotplug)和即插即用(Plug&Play)。USB不完全是一个串口,实际上是一种串行总线。通过USB端口可以连接许多设备,这些设备可以相互连接在一起。而且不同类型的设备组成可以通过USB集线器别离开来,与传统的串口只能链接一个设备有本质区别。USB用来把串口、并口等不同的接口统一起来,使用一个4针插头作为标准插头。通过这个标准插头,采用菊花链形式(星型结构)可以把所有的外设连接起来,并且不会损失带宽。USB设备类型设备类型(deviceclass)设备举例类型常量(Classconstant)音频(audio)扬声器USB_DEVICE_CLASS_AUDIO通信MODEMUSB_DECICE_CLASS_COMMUNICATIONSHID键盘、鼠标USB_DEVICE_CLASS_HUMAN_INTERFACE图像摄相机、扫描仪USB_DEVICE_CLASS_IMAGE显示监视器USB_DEVICE_CLASS_MONITOR物理回应设备动力回馈式游戏操纵杆USB_DEVICE_CLASS_PHYSICAL_INTERFACE电源不间断电源供应USB_DEVICE_CLASS_POWER打印机USB_DEVICE_CLASS_PRINTERBulk存储器硬盘USB_DEVICE_CLASS_STORAGEHUBUSB_DEVICE_CLASS_HUBUSB总线主要性能特点每个USB系统中有一个主机,通过“级联”方式,USB总线可连接多个外部设备。每个USB设备用一个USB插头连接到上一个USB设备的USB插座上,而其本身又提供一或多个USB插座供下一个或多个USB设备连接使用。这种多重连接通过集线器Hub实现的,整个USB网络中最多可连接127个设备,支持多个设备同时操作。USB提供机箱外的热即插即用功能,能自动配置和重新配置外设。USB总线适用带宽范围在几千位/秒(Kb/s)——几百兆位/秒(Mb/s)的设备,可连接键盘、鼠标、摄像头、游戏设备、虚拟现实等低速设备,也可连接、声频、麦克风、压缩视频等全速设备,还可连接视频、存储器、图像采集等高速设备,同时允许复合设备(具有多种功能的外设)连接到PC机。低本钱的电缆和连接器。USB通过一根四芯的电缆传送信号和电源,电缆长度可变,最达5m。USB具有错误检测和处理机制,可识别设备的错误。较低的协议开销提高了总线性能,适于低本钱外设开发。支持主机与设备之间的多数据流和多消息流传输,支持同步和异步传输类型。以往接口方案存在的缺点大多数微型计算机外围设备基于接口实现,这些接口的设计有很多缺陷,不仅给设计者带来了许多麻烦,而且也给用户带来诸多不便。传统的I/O模式,外围设备通常被映射为CPU的I/O地址空间,并且被分配一个指定的IRQ(中断请求),或者是一个DMA通道。系统资源被分配给指定的外围设备,地址分配通常由IBM公司和其他设备制造商指定。这种地址分配方法已成为一种标准。软件开发者要利用这些关于中断请求和DMA通道的信息对指定的设备进行访问。因为PC上的很多设备要求使用中断,许多关键的系统资源问题都涉及到中断请求分配。ISA总线不能可靠地支持共享式中断,所以这点对于通过ISA总线和PC相连的外设尤其重要。基于PCI总线的系统也包括ISA或EISA两种总线。典型的设备占用中断情况表以往接口方案存在的缺点PC环境中,I/O地址冲突十分常见。外围设备通常需要大块的I/O地址单元,才能报告设备的状态信息并给设备发送命令。尽管x86处理器有能力访问64KB的I/O地址单元,但是传统的扩展卡通常只能对16条地址线中的10个进行解码,导致最多只能有1KB的地址空间块可以被ISA的扩展卡所使用。标准PC外设接口支持单个设备连接。一个给定时刻只有一个外设可以连接,,所以新的外设连到电脑上需要通过专用的扩展卡插到扩展总线上,这种扩展外设的方法本钱比较昂贵。终端用户遇到的问题:种类繁多的数据线;扩展卡的安装和配置;外围设备不能热插拔;本钱。USB优点为所有USB外设提供单一的、易于使用的、标准的连接类型,简化USB外设设计和用户使用,实现单一数据通用接口;整个USB系统只有一个端口和一个中断,节省系统资源。USB支持热插拔(hotplug)和PNP(Plug-and-Play),计算机系统可动态地检测外设的插拔,以及动态加载驱动程序USB在设备提供灵活的供电,USB直接连接到Hub,或是连接到Host的设备可通过USB电缆、电池或其它电力设备供电,或使用两种供电方式组合。支持节约能源的挂机和唤醒模式。USB提供全速(12Mbps)、低速(1.5Mbps)、高速(480Mbps)的速率来适应各种不同类型的外设传输速率。USB提供四种不同的数据传输类型:控制传输、Bulk数据传输、中断数据传输和同步数据传输。USB端口有灵活的扩展性,一个USB端口串接上一个USBHub就可以扩展为多个USB端口传输。4.1USB串行总线概述4.1.1USB系统组成USB的互连;USB的设备;USB的主机。USB互联USB的互连指USB设备与主机之间进行连接和通信的操作。总线的拓扑结构:USB设备与主机之间的各种连接方式;内部层次关系:根据性能叠置,USB任务分配到系统每一层次;数据流模式:数据通过USB从产生方到使用方的流动方式;USB的调度:提供一个共享连接,对可使用的物理连接进行调度以支持同步数据传输,防止优先级别判断的开销。USB物理连接:有层次性的星型结构。网络集线器在星型中心,每条线段点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件。USB总线拓扑结构USB互联每个USB系统有且只有一个主机(host),负责管理整个USB系统包括USBDevice的连接与删除,Host与USBDevice的通信总路线的控制等等。Host端有一个RootHub可提供一个或多个USB下行端口,每个端口可以连接一个USBHub或一个USBDevice,USBHub用于USB端口扩展,

可将USB端口扩展为多个端口,一个USB系统最多可连接127个功能(Function)。USB的系统有且只有一个host,

PC端的USB都是Host,两台PC

的USB口通过A-AUSB电缆连接起来不能实现通信。有USB

到USB的设备控制器可以实现两个USBHost的相连。USB总线拓扑结构4.1USB串行总线概述4.1.1USB系统组成2.USB设备USB设备:集线器、分配器或文本设备等。USB可以按高速设备或低速设备设计:High-speed:25Mbps~400Mbps(最大480Mbps[57M])Full-speed:500Kbps~10Mbps(最大12Mbps[1.4M]〕Low-speed:10Kbps~100Kbps(最大1.5Mbps[183k]〕集线器:提供USB连接点。USB功能器件(FunctionDevice):和USB协议完全兼容,可响应标准的USB操作。用于说明USB外设身份的“BIOS”被称为协议层。USBHUB特性

USBHUB特征:1)为自己和其它外设的连接提供可扩展的下行(Downstream)和上行(Upstream)埠。2)支持USB总线的电源管理机制。3)支持总线传输失败的检测和恢复。4)可自动检测下行埠外设的连接和摘除,并向主机报告。5)支持低速外设和高速外设的同时连接。HUB应答器(HUBRepeater):响应主机对USB外设的设置,对连接到它下行端口的USB功能部件的连接(Attached)和摘除(Detached)的检测、分类,并将其端口信息传送给主机,也负责如“总线传输失败检测”这样的错误处理。是上游端口和下游端口之间的协议控制开关。支持复位、挂起、唤醒信号;HUB控制器(HUBController):提供主机到HUB数据传输的物理机制。USBHUB的ROM有用来向主机说明身份的“BIOS”系统,通过USB特征字使主机可以配置USBHUB,并监控它的每一个埠。USB功能器件(FunctionDevice)USB功能器件:为主机系统提供某种功能的USB器件,如USBISDN的调制解调器、或是USB接口的数字摄像机、USB键盘或鼠标等。保持和USB协议的完全兼容,并可以响应标准的USB操作。必有用于说明身份的“BIOS”系统(协议层)。在物理机制上,USB外设由四局部构成:1)用于实现和USB协议兼容的SIE局部。2)用于内存件特征字、存储实现外设特殊功能程序及厂家信息的协议层(ROM)。3)用于实现外设功能的传感器及对资料进行简单处理的DSP局部。4)将外设连接到主机或USBHUB的接口局部。USB主机USB主机通过主机控制器与USB设备进行交互,功能如下:检测USB设备的安装和拆卸;管理在主机和USB设备之间的控制流;管理在主机和USB设备之间的数据流;收集状态和动作信息;提供能量给连接的USB设备。USB主机的系统软件管理USB设备和主机上该设备软件间的相互交互,相互作用方式如下:设备编号和设置;同步数据传输;异步数据传输;电源管理;设备和总线管理信息。USB的连接插口分A型、B型端口和相应的连接器。其中A型用于连接下游方向〔以主机为基准〕的集线器或应用型设备,B型用于连接上游集线器等设备。USB的B型端口和连接器USB的A型端口和连接器引脚编号信号名称缆线颜色1Vcc红2Data-(D-)白3Data+(D+)绿4Ground黑USB集线器(Hub)每个USB集线器有一个B型端口或连线,集线器通过它连接到其上游(主机的根集线器,或另一个集线器)方向;每个USB集线器有一个或多个A型端口,用于连接其下游USB设备。4.1.2USB系统的接口信号与电气特性1.USB外部电气特性USB总线的物理传输介质由一根4线的电缆组成,其中两条(VBus、GND)用于提供设备工作所需电源。VBus在源端的标称电压值为+5V,GND为其对应地线。另两条(V+、V-)为绞线形式的信号传输线,阻抗90Ω。12Mb/S传输时,电缆为屏蔽线,最大长度为5米;1.5Mb/S传输时,电缆的信号线允许是廉价的非屏蔽非双绞线,电缆最大长度为3米。信号以差模方式送入信号线,接收端灵敏度可到达200mv以上。4.1.2USB系统的接口信号与电气特性1.USB外部电气特性USB总线的物理传输介质由一根4线的电缆组成,其中两条(VBus、GND)用于提供设备工作所需电源。VBus在源端的标称电压值为+5V,GND为其对应地线。另两条(V+、V-)为绞线形式的信号传输线,阻抗90Ω。12Mb/S传输时,电缆为屏蔽线,最大长度为5米;1.5Mb/S传输时,电缆的信号线允许是廉价的非屏蔽非双绞线,电缆最大长度为3米。信号以差模方式送入信号线,接收端灵敏度可到达200mv以上。低速数据发送率为1.50Mb/S,低速功能设备所允许的误差为±1.5%(15000ppm)。误差,主要由下面的几种情况所引起:负载电容量的影响;振荡器上电压供给的稳定性影响;温度的影响;器件的老化。USB1.0(1996年)速度只有1.5Mbps;USB1.1(1998年),速度提升到12Mbps;USB2.0(2000年4月)速度480Mbps,USB3.0最大传输带宽高达5.0Gbps,也就是625MB/s,同时在使用A型的接口时向下兼容。4.1.2USB系统的接口信号与电气特性2.信号发送USB总线的物理传输介质由一根4线的电缆组成,其中两条(VBus、GND)用于提供设备工作所需电源。VBus在源端的标称电压值为+5V,GND为其对应地线。另两条(V+、V-)为绞线形式的信号传输线,阻抗90Ω。12Mb/S传输时,电缆为屏蔽线,最大长度为5米;1.5Mb/S传输时,电缆的信号线允许是廉价的非屏蔽非双绞线,电缆最大长度为3米。信号以差模方式送入信号线,接收端灵敏度可到达200mv以上。USB驱动整体结构

USB设备根底构成USB设备在操作系统中被视为一个文件,一个设备拥有一个或多个配置,不同的配置适应不同的任务,一个配置拥有一个或多个接口,不同的接口实现不同的逻辑功能,而每个接口又有0个或多个端点。

USB设备根底构成1.设备端点(Endpoint)USB通信最根本的形式是通过端点实现的,端点是硬件设备上具有一定大小的缓冲区。每个端点对应一个可识别的USB设备,USB端点传输数据只能往一个方向传送,从主机到设备的端点叫输出端点,从设备到主机的端点叫输入端点。几个具有相同属性的端点构成一个USB逻辑设备,主机系统为每个逻辑设备分配一个唯一的地址,而设备中的每个端点在设备内部有唯一的端点号。USB设备在刚接入系统的时候是没有设备地址的,配置工作通过端点0完成,这个特殊端点既作为输入端点又作为输出端点。USB系统通过它端点初始化设备,并在通信中设置控制设备。一个设备依照它的实现,可以拥有除端点0外其他假设干个端点。低速设备可拥有2个可选端点,高速设备最多可具有15个输入端点和15个输出端点。除端点0之外的端点只有在设备被系统配置好之后才可以进行访问。USB设备根底构成2.接口(Interface)具有相同属性的USB端点集合在一起被称为一个接口,即一个逻辑设备。每个USB接口只处理一种逻辑连接。有些物理设备具有多个接口,例如一个USB扬声器可包括两个接口:一个USB键盘用于按键,以及一个USB音频流。每个接口代表了设备的一个根本功能,在系统中每个USB驱动负责控制相应的一个接口。有多个接口的物理设备需几个对应的驱动程序管理。一个接口可以有多种设置,由接口的参数决定。接口的初始状态是编号为O的设置。通过选择不同的设置可以以不同的方式来控制端点。例如为设备保存大小不同的带宽,当高速设备接入到一个低速的USB系统中时,设备就必须通过使用低速环境时的设置来进行通信。3.配置(Config)在接口的根底上,USB接口本身被捆绑成配置。在一个配置下,一个端点不会在接口之间共享,除非端点被同一个接口的不同设置使用。在不同配置的端点,可无此限制。一个配置好后,设备可支持对配置的有限调整,如果一个接口有备选设置,在配置好后可选择不同设置。USB中的描述符USB设备通过描述符反映他们的属性。描述符是定义好格式的数据结构,每一个描述符以一个说明本描述符长度字节开始,紧跟其后是一个字节的描述符类信息。使用描述符使得单个配置的特性存储变得简明,因为每个配置可能会重复使用其它有相同特性的配置描述符的局部或全部,用这种方法,描述符用一个关系数据库来表绘一个个的单独数据记录。在适当的地方,描述符包括了指向字串描述符的引用。字串描述符提供了人能读懂的信息。字串描述符可有可无,但描述符中的字串指引域是不可少的。如果一个设备不支持字串描述符,该域就为0。如果描述符值中的长度域值少于定义值,此描述符非法,不能被主机接受。如果返回的描述符中的长度域值大于定义值,那么过长局部当被忽略,但下一个描述符的位置由返回长度而不是实际长度来决定。USB中的描述符有端点描述符、接口描述符、配置描述符、设备描述符、字符串描述符。USB设备描述符层次结构

USB中的描述符1.端点描述符:每个接口使用的端点都有自己的描述符,被主机用来决定每个节点的带宽需求。每个结点的描述符总是作为配置描述的一局部返回的,端点0无描述符。偏移量域大小值描述0bLength1数字此描述表的字节数1bDescriptorType1常量配置描述表类型2wTotalLength2数字此配置信息的总长(包括配置,接口,端点和设备类及厂商定义的描述表)4bNumInterfaces1数字此配置所支持的接口个数5bCongfigurationValue1数字在SetConfiguration请求中用作参数来选定此配置6iConfiguration1索引描述此配置的字串描述表索引7bmAttributes1位图配置特性:D7:保留(设为1)D6:自给电源D5:远程唤醒D4…0:保留(设为1)一个既用总线电源又有自给电源的设备会在MaxPower域指出需要从总线取的电量。并设置D6为l。运行时期的实际电源模式可由GetStatus(DEVICE)请求得到8MaxPower1mA在此配置下的总线电源消耗量。以2mA为一个单位USB中的描述符2.接口描述符:在一个配置内给出一个接口的信息。如果一个配置支持不止一个接口,端点的描述符会跟在接口描述符后被返回,接口描述符总是作为配置描述符一局部被返回。偏移量域大小值描述0bLengthl数字此表的字节数1bDescriptorTypel常量接口描述表类2bInterfaceNumber1数字接口号,当前配置支持的接口数组索引(从零开始)3bAlternateSetting1数字可选设置的索引值4bNumEndpointsl数字此接口的端点数量,为零则说明此接口只用缺省控制管道。5bInterfaceClass1类类值:零值为将来的标准保留。如果此域的值设为FFH,则此接口类由厂商说明。所有其它的值由USB说明保留6bInterfaceSubClassl子类子类码:这些值的定义视bInterfaceClass域而定。如果bInterfaceClass域的值为零则此域的值必须为零。bInterfaceClass域不为FFH则所有值由USB所保留7bInterfaceProtocoll协议协议码:如果一个接口支持设备类相关的请求此域的值指出了设备类说明中所定义的协议8iInterface1索引描述此接口的字符串描述表的索引值USB中的描述符3.配置描述符:给出了一设备配置的信息,一个USB设备有一个或多个配置。每个配置有一个或多个接口。而每个接口又有0个或多个端点。在一个配置下,一个端点不会在接口之间共享,除非端点被同一个接口的不同配置使用。在不同配置端点,可无此限制。一个配置好后,设备可支持对配置的有限调整,如果一个接口有备选设置,在配置好后可选择不同设置。

偏移量域大小值描述0bLengthl数字此描述表的字节数1bDescriptorTypel常量配置描述表类型2wTotalLength2数字此配置信息的总长(包括配置,接口,端点和设备类及厂商定义的描述表)4bNumInterfacesl数字此配置所支持的接口个数5bCongfigurationValue1数字在SetConfiguration()请求中用作参数来选定配置6iConfigurationl索引描述此配置的字串描述表索引7bmAttributes1位图配置特性:D7:保留(设为一)D6:自给电源D5:远程唤醒D4...0:保留(设为一)一个既用总线电源又有自给电源的设备会在MaxPower域指出需要从总线取的电量。并设置D6为一。运行时期的实际电源模式可由GetStatus(DEVICE)请求得到8MaxPower1mA在此配置下的总线电源耗费量。以2mA为一个单位USB中的描述符4.设备描述符:给出USB设备的一般信息,包括对设备及所有设备配置起全程作用的信息。偏移量域大小值描述0bLength1数字此描述表的字节数lbDecriptorType1常量描述表种类为设备2bcdUSB2BCD码此设备与描述表兼容的USB设备说明版本号(BCD码)4bDeviceClass1类设备类码:如果此域的值为0则一个设置下每个接口指出它自己的类,并且每个接口各自独立工作。如果此域的值处于1到FEH之间,设备在不同的接口上支持不同的类。此值指出了,这些接口集体的类定义。此域设为FFH,则此设备的类由厂商定义5bDeviceSubClassl子类子类码值的具体含义根据bDeviceClass域来看。如bDeviceClass域为零,此域也须为零。如bDeviceClass域为FFH,此域的所有值保留6bDevicePortocol1协议协议码的值视bDeviceClass和bDeviceSubClass的值而定。设备支持设备基础上的类相关的协议,此码标志了设备类说明上的值。此域为零,设备不在设备基础上支持设备类相关的协议。它可能在接口基础上支持设备类相关的协议。此域的值为FFH,此设备使用厂商定义的协议7bMaxPacketSize01数字端点0的最大包大小(仅8,16,32,64为合法值)8idVendor2ID厂商标志(由USB标准赋值)10idProduct2ID产品标志(由厂商赋值)12bcdDevice2BCD码设备发行号(BCD码)14iManufacturer1索引描述厂商信息的字串的索引。15iProductl索引描述产品信息的字串的索引。16iSerialNumber1索引描述设备序列号信息的字串的索引。17bNumConfigurationsl数字可能的设置数USB中的描述符5.字符串描述符:可有可无的。如前所述,设备无字串描述符,其它描述表中有关字串描述符的索引都为0。偏移量域大小值描述0bLengthlN+2此描述表的字节数lbDescriptorTypel常量字串描述表类型2wLANGID[0]2数字语言标识(LANGID)码0……………NwLANGID[x]2数字语言标识(LANGID)码X2.信号发送USB信号发送的最大输入波形由于USB设备上的输入保护设备可能互相排斥,因此当观察数据的输入端口时,可能发现由电压生成器产生的信号波形可能会变形。靠近设备的USB连接器上的D+或D_插口2.信号发送任何驱动状态下,USB设备必须能接收上图所示波形。波形从一个输出阻抗为39Ω的电压源直接进入每个USB数据口。高速USB设备的连接是通过阻抗为90Ω±15%,最大单路时延为26ns的屏蔽双绞线电缆进行,其最大速率为12Mb/s,并且每个驱动器的阻抗必须在28Ω~44Ω之间。低速USB设备在插口端必须要有一个带有串行A口连接器的可控制电缆,速率为1.5Mb/s。当电缆与设备相连时,在D+/D-线上必须要有一个200~450PF的单终端电容器。低速电缆的传播时延必须小于18ns,从而保证信号响在其上升沿或下降沿的第一个中点处产生,以允许电缆与一块电容器相连。低速USB设备时序低速USB设备时序低速驱动器信号波形驱动器信号端口经过信号端的标准输出电平,并有最小映象和阻尼高速USB设备的连接时序高速USB设备的连接时序驱动器信号端口

接收器信号端口

单路长电缆时延单电缆时延后经过信号端口的标准输入电平高速信号波形

高、低速USB设备在集线器的终端位置及其所连的功能设备高、低速USB设备在集线器的终端位置及其所连的功能设备差分信号技术传统的传输方式大多使用“正信号”或者“负信号”二进制表达机制,信号利用单线传输,用不同的信号电平范围来分别表示1和0,它们之间有一个临界值,在数据传输过程中受到中低强度的干扰,上下电平不会突破临界值,信号传输可以正常进行。但如果遇到强干扰,上下电平突破临界值,由此造成数据传输出错。一般说来,总线频率越高,线路间的电磁干扰就越厉害,数据传输失败的发生机率也就越高。差分信号技术必须使用两条线路才能表达一个比特位,用两条线路传输信号的压差作为判断1还是0的依据,具有极强的抗干扰性。倘假设遭受外界强烈干扰,两条线路对应的电平同样会出现大幅度提升或降低,但二者的电平改变方向和幅度几乎相同,电压差值可始终保持相对稳定,因此数据的准确性并不会因干扰噪声而降低。USB系统能自动检测到USB设备连接,并识别出其采用的数据传输速率。USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。当主控制器或集线器的下行端口上没有USB设备连接时,其D+和D-线上的下拉电阻使得这两条数据线的电压都是近地的(0V);当低速/全速设备连接以后,电流流过由集线器的下拉电阻和设备在D+/D-的上拉电阻构成的分压器。由于下拉电阻阻值15KΩ,上拉电阻阻值1.5KΩ,在D+/D-线上会出现大小为(Vcc*15/(15+1.5))的直流高电平电压。USB主机探测到D+/D-线的电压接近高电平,而其它的线保持接地时,就知道全速/低速设备已经连接。高速设备在连接起始时需要以全速速率与主机进行通信,以完成其配置操作,这时需要在D+线上连接1.5KΩ的上拉电阻。当高速设备正常工作时,如采用高速传输的话,D+线不可上拉;但如果仍采用全速传输,那么在D+线上必须使用上拉电阻。所以,为识别出高速设备,需在上拉电阻和D+线间连接一个由软件控制的开关,它通常被集成在USB设备接口芯片的内部。USB信号传送USB数据收发器包含发送数据所需的差模输出驱动器和接收数据用的差模输入接收器。输出信号时,差模输出驱动器向USB电缆传送信号。信号的低输出状态,驱动器稳态输出值必须小于0.3V,且要承担1.5KΩ的负载加到3.6V电源的灌电流。信号的高输出状态,驱动器稳态输出值必须大于2.8V,且要承担15KΩ的负载到地的拉电流。传输数据时,驱动器输出是两个相差180度的信号。即一个输出高电平,另一个为低电平。接收器检测到两条线之间的电压差,当D+比D-高时,信号被定义为差模“1”;当D-比D+高时,信号被定义为差模“0”。驱动器输出还支持三态输出,以保证可以进行双向半双工通信。同时还需高阻抗来将那些正在进行热插入操作,或已经连接了但电源却没有接通的下游设备同端口隔离开来。当两个差模数据输入,以地电位为参考,D+和D-至少在0.8V到2.5V〔此为允许的共模电压范围〕之间时,接收器具有的灵敏度大于200mV。在没有损坏,并以本地地电位为参考的条件下,接收器所能承受的稳态输入电压是-0.5V到3.8V之间。每一条信号线都必须有一个单端接收器,这些接收器必须有一个位于0.8V到2.0V之间〔TTL电平〕的开关阀值电压(称为接收器阀值电压VSE)。USB信号传送数据传输是由差模信号来实现的。在接收器看来,如果数据线的D+至少比D-高200mV就代表一个差模“1”,而一个差模“0”那么由D-至少比D+高200mV来表示。信号的交叉点必须位于1.3V和2.0V之间。数据的J和K状态是系统中用于差模数据通信的两个逻辑电平。差模信号是在数据线的信号交叉点处进行测量的。只要信号的交叉电平位于共模范围之内,差模数据信号就与信号的交叉电平无关。当总线不处在差模信号方式时,数据线必须处在单端接收器开关阀值〔VSE〕范围〔0.8V到2.0V之间〕之外才有效,如“空闲”和“重新开始”状态。注意,空闲和重新开始状态在逻辑上分别等同于J和K状态。而全速率的J和K状态正好与低速率的状态相反。USB信号电平规定如下表所示:〔2〕数据信号数据包开始信号发送波形数据信号的发送通过控制D+和D-线从空闲态到相反的逻辑电平(K态),就可以实现源端口的包发送(SOP:StandardOperationProcedure

[标准作业程序])。同步字中的第一位代表了这种在电平上的转换。当它的重新发送时间低于±5ns时,集线器必须对SOP中第一位的宽度变化有所限制。可以通过使用具有延迟输出使能的集线器来实现数据的匹配,这样可以使数据失真减小到最小。SE0态表示包发送结束(EOP[ENDOFPRODUCTION]),可以通过控制D+和D-两位时到达SE0态,然后控制D+和D-线一位时后到达J态,就可实现EOP信号的发送。从SE0态到J态的变化表示接收端包发送的结束。J态持续一个位时,然后D+和D-上的输出驱动器均处于高阻抗状态,总线尾端的电阻此时控制总线处于空闲态。数据包结束信号发送波形总线空闲包的第一位包的最后一位

EOP的SE0部分EOP端总线驱动到J态总线流动总线空闲总线状态信号电平开始端的源连接器(一位时端)终端的目标连接器需要条件接受条件差分的“1”D+>Voh(min)D-<Vol(max)(D+)-(D-)>200mv(D+)>Vih(min)(D+)-(D-)>200mv差分的“0”D->Voh(min)D+<Vol(max)(D+)-(D+)>200mvD->Vih(min)(D-)-(D+)>200mv单终端“0”(SE0)D+和D-<Vol(max)D+和D-<Vil(max)D+和D-<Vih(min)数据J态:高速低速差分的“0”差分的“1”差分的“0”差分的“1”数据K态:高速低速差分的“1”差分的“0”差分的“1”差分的“0空闲状态:高速低速N.A.D->Vihz(min)D+>Vil(max)D+>Vihz(min)D-<Vil(max)D->Vihz(min)D+<Vih(min)D+>Vihz(min)D-<Vih(min)唤醒状态数据K状态数据K状态包开始(SOP)数据线从空闲态转到K态包结束(EOP)SE0近似地为2位时其后仅接着1位时的JSE0≥1位时,其后仅接着一位时的J态SE0≥1位时,其后仅接着J态段开连接(在下行端口处)N.A.SE0持续时间大于等于2.5微秒连接(在上行端口处)N.A.空闲态持续时间大于等于2毫秒空闲态持续时间大于等于2.5微秒复位D+和D-小于Vol(max)的持续时间大于等于10毫秒D+和D-小于Vil(max)的持续时间大于等于10毫秒D+和D-小于Vil(max)的持续时间大于等于2.5微秒

USB信号电平

〔2〕复位信号复位:将一个信号从挂起态唤醒。集线器信号通过控制端口上的持久的SE0态来实现对下形端口的复位。复位信号去除后,设备都将处于缺省状态。根据USB系统软件的需求,复位信号可在任一个集线器或主机的控制端口产生,复位信号最小持续时间为10ms。复位后,集线器端口将处于能动状态。USB系统软件和主机控制器必须确保发送到根端口的复位信号持续时间足够长,以便通知当前正试图进行唤醒操作的各下行设备。根端口产生的复位信号的持续时间应为50ms,但并不要求它一直是延续的。如果复位信号不是连续的,那么各间断的复位信号间的时间间隔应小于3ms。如果设备上行端口SE0态持续时间超过2.5us,那么把该信号作为复位信号处理。在复位信号发送结束前,它必须已产生作用。端口处于使能状态后,集线器传播一个活动信号到新复位端口。连在该端口的设备必须能识别总线活动性,并能防止被挂起。在复位信号去除后的10ms的复位恢复时间后,集线器必须能接收所有集线器请求,设备也必须能接收一个SetAddress()请求。如果接收这些请求失败,那么设备将不能被USB系统软件所识别。〔3〕挂起信号所有的设备都必须能支持挂起状态,并可从任一电平状态进入挂起态。当设备发现其上行总线上的空闲态持续时间超3.0ms时,便进入挂起态。当设备的所有端口上的总线不活动时间不超过10ms后,设备必须被真正的挂起,此时它仅从总线上获得挂起电流。如果任一其它总线交通缺乏时,SOF令牌将在每帧中出现一次,以防止高速设备被挂起。当任一低速设备交通缺乏时,在SOF令牌出现的每一帧中至少有一个低速设备处于活动态,以防止它们不被挂起。处在挂起状态的设备必须继续为它的D+(高速)或D-(低速)上的Rpu电阻提供电压,维持一个空闲态,这样上形集线器才能为设备维持正确的连结状态。全局挂起:总线上没有通信需要时,用到全局挂起,所有总线都处在挂起状态。主机通过中止它所有的传送(包括SOF令牌)来发送开始全局挂起信号。当总上的每个设备识别总线的空闲态持续适当时间时,它将进入挂起状态。局部挂起:向集线器端口发送SetPortFeature(PORT-SUSPEND),使与其相连的总线局部被挂起,此时设备适当时延后进入挂起状态。(4)唤醒信号处在挂起状态的设备,当它的上行端口接收到任一非空闲信号时,它的操作将被唤醒。如果设备的远程唤醒功能被USB系统软件开启时,它将自动发信号给系统来唤醒操作。唤醒信号由主机或设备使用,以使一个挂起的总线段回到活动态。集线器在唤醒信号的生成和传播中起了十分重要的作用。USB系统软件必须提供10ms的唤醒恢复时间,在这段时间内,它将不对与被唤醒的局部总线相连的任一设备进行操作。端口的中断与连接也可以使集线器发送一个复位信号,从而唤醒系统,但仅当集线器具有远程唤醒使能时,这些事件才能引起集线器发送唤醒信号。3.数据的编码与解码在包传送时,USB数据编码格式称为Non-ReturntoZeroInvertedwhitbitstuffing〔ZRZI无回零反向码〕。它可以确保收发数据不需要每个字节发送一个独立的时钟信号,或以StartandStop位来保持与发送器的同步通信。在NRZI编码的数据格式中,USB定义逻辑0为电压改变,逻辑1为电压保持不变,传送的数据低位先送出。NRZI数据编码位插入:在数据流中每六个连续的‘1’后插入一个‘0’,从而强迫NRZI码发生变化。EOP特别说明:4.1.3USB流类型与传输类型USB层次结构USB层次结构在HSOT端,应用软件〔ClientSW〕不能直接访问USB总线,而必须通过USB系统软件和USB主机控制器来访问USB总线,在USB总线上和USB设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层三个层次。其中功能层完成功能级的描述、定义和行为;设备级那么完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的根本传输;USB总线接口层那么处理总线上的Bit流,完成数据传输的物理层实现和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑上的通讯。物理上,USB设备通过分层的星型总线连接到HOST,但在逻辑上HUB是透明的,各USB设备和HOST直接连接,和HOST上的应用软件形成一对一的关系。各应用软件-功能设备对之间的通讯相互独立,应用软件通过USB设备驱动程序(USBD)发起IRQ请求,请求数据传输。主机控制器驱动程序〔HCD〕接收IRQ请求,并解析成为USB传输和传输事务〔Transaction〕,并对USB系统中的所有传输事务进行任务排定〔因为可能同时有多个应用软件发起IRQ请求〕。主机控制器〔HostController〕执行排定的传输任务,在同一条共享的USB总线上进行数据包的传输。USB系统中数据的传输,宏观的看来是在HOST和USB功能设备之间进行;微观的看是在应用软件的Buffer和USB功能设备的端点之间进行。一般来说端点都有Buffer,可以认为USB通讯就是应用软件Buffer和设备端点Buffer之间的数据交换,交换的通道称为管道。应用软件通过和设备之间的数据交换来完成设备的控制和数据传输。通常需要多个管道来完成数据交换,因为同一管道只支持一种类型的数据传输。用在一起来对设备进行控制的假设干管道称为设备的接口,这就是端点、管道和接口的关系。USB层次结构USB物理设备:USB上的一种硬件,可运行一些用户程序;USB客户软件:为特定的USB设备而在主机上运行的软件;USB系统软件:在操作系统中支持USB,由操作系统提供;USB主机控制器:总线在主机方面的接口,软件和硬件总和。为了描述和管理USB通信,需要首先引入以下重要的概念:总线拓朴(BusTopology):USB的根本物理组成、根本逻辑组成,以及各组成局部之间的相互关系。通信流模型(CommunicationFlowModels):描述主机与设备如何通过USB通信,以及通信所用的四种通信类型。总线访问管理(BUSAccess):主机面对大量的USB设备的各种通信要求。USB通信流〔1〕设备端点:唯一识别USB设备的端口。一系列相互独立的端点在一起构成了USB逻辑设备,每个逻辑设备有一个唯一的地址。这个地址是在设备连上主机时,由主机分配的。一个端点的特性决定了它与客户软件进行的传送的类型,其特性如下:端点的总线访问频率要求;端点的总线延迟要求;端点的带宽要求;端点的端点号;对错误处理的要求;端点能接收或发送的包的最大长度;端点的传送类型;端点与主机的数据传送方向。USB通信流〔1〕设备端点:对0号端点的要求:所有USB设备都需要实现一个缺省的控制方法。这种方法将端点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方法初始化及一般地使用逻辑设备(即设置此设备)。缺省控制通道支持了对控制的传送,一旦设备接上,并加电,且又收到一个总线复位命令,端点0就是可访问的了。对非0号端点的要求:设备可以有除0以外的其它端点,这取决于这些设备的实现。低速设备在0号输入及输出端点外,只能有2个额外的可选端点。而高速设备可具有的额外端点数仅受限于协议的定义(协议中规定,最多15个额外的输入端点和最多15个额外的输出端点)。除缺省控制通道的缺省端点外,其它端点只有在设备被设置后才可使用,对设备的设置是设备设置过程的一局部。〔2〕通道:设备上的一个端点和主机上软件之间的联系。有两种不同的且互斥的通道通信格式:流(Stream):指不具有USB定义的格式的数据流。消息(Message):指具有某种USB定义的格式的数据流。USB不解释在通道中传送的数据的内容。消息通道要求数据组织成USB定义的格式,但它的内容,USB是不管的。以下概念与通道相关:对USB总线访问的申请(claim),带宽的使用情况;传送类型;与通道相连的端点的特性,如端点的数据传送方向,最大数据净负荷区长度。【数据净负荷是总线处理事务(transaction)中,数据包中数据区的数据】。由两个0号端点组成的通道叫缺省控制通道。一旦设备加电并复位后,此通道即可使用。其它通道只在设备被设置后才存在。USB系统软件在决定设备身份、设置要求和设置设备时使用缺省控制通道。设备被设置后,设备的特定软件还可使用该通道。USB系统软件保存缺省控制通道的拥有权,协调其它客户软件对通道的使用。客户软件一般都通过I/O请求包(IRP)来要求数据传送,而IRP的细节是由操作系统来指定的。IRP的细节由操作系统指定。客户软件提出与设备上的端点建立某个方向的数据传送的请求,IRP就可简单地理解为这个请求。一个客户软件可以要求一个通道回送所有的IRP。当关于IRP的总线传送结束时,无论它是成功地完成,还是出现错误,客户软件都将获得通知说IRP完成了。如果通道上没有正在传送的数据,也没有数据想使用此通道,这个通道就处于闲置状态。主机控制器对它不采取任何动作。如果一个非同步通道遇到一个迫使它给主机发STALL的情况,或者在任一个IRP中发现3个总线错误。这个IRP将被中止。其它所有突出的IRP也一同被中止。通道不再接收任何IRP,直到客户软件从这个情况中恢复过来(恢复的方式取决于软件的实现),而且成认这个中止或出现的错误,并发一个USBDCall来说明它已成认。一个适宜的状态信息将通知客户软件IRP的结果———出错或中止。一个IRP可能会需要多个数据净荷区来传递数据。这些数据区除最后一个外,都具有数据净荷区的最大长度,最后一个数据区包含了这个IRP中剩下的数据。(可参见关于传送类型的介绍,以获得更详细的了解)。对这样的一个IRP,短包(也就是说未到达最大长度的数据区)在数据输入时无法填完IRP数据缓冲区。这可能会有二种不同解释,它依赖于客户软件的情况:如果该客户软件可以接受变长的IRP,那么,IRP数据缓冲区未被填满,可以看作一个分限,说明一个IRP已成功结束,主机控制器可以准备接收下一个IRP了。如果该客户软件只收定长的IRP。那么,我们认为发生了一个错误,这IRP将被中止,通道也会被阻塞,通道上的数据都中止。因为对这两种情况,主机控制器会有不同的反响,而且采取何种措施不由控制器决定,所以对每个IRP都必须说明客户软件的具体要求。通道的端点可以用NAK信号来通知主机自己正忙,NAK不能作为向主机反还IRP的中止条件。在一个给定的IRP处理过程中,可以遇到任意多个NAK,NAK不构成错误。流通道流通道中的数据是流的形式,也就是该数据的内容不具有USB要求的结构。数据从流通道一端流进的顺序与它们从流通道另一端流出时的顺序是一样的,流通道中的通信流总是单方向的。在流通道中传送的数据,USB认为它来自同一个客户。USB系统软件不能够提供使用同一流通道的多个客户的同步控制。在流通道中传送的数据遵循先进先出原那么。流管流只能连到一个固定号码的端点上,或者流进,或者流出。(这个号码是由协议层决定的)。而具有这个号码的另一个方向的端点可以被分配给其它流通道。流通道支持同步传送,中断传送和批传送,这些在稍后的章节会进一步解释。消息通道首先,主机向USB设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段。为能够容纳请求/数据/状态的变化,消息通道要求数据有一个格式,保证命令能够被可靠地传送和确认。消息通道允许双方向的信息流,虽然大多数的通信流是单方向的。特别地,缺省控制通道也是一个消息通道。USB系统软件不会让多个请求同时要求同一个消息通道。设备的每个消息通道在一个时间段内,只能为一个消息请求效劳,多个客户软件可以通过缺省控制通道发出它们的请求,但这些请求到达设备的次序是按先进先出的原那么的。设备可以在数据传送阶段和状态阶段控制信息流,取决于这些设备与主机交互的能力。正常情况下,在上一个消息未被处理完之前,是不能向消息通道发下一个消息的。但在有错误发生的情况下,主时机取消这次消息传送,并且不等设备将已收的数据处理完,就开始下一次的消息传送。在操作通道的软件看来,一个IRP中的错误,使这个IRP被取消,并且所有正排队等待的IRP一同也被取消。申请这个IRP的客户被通知IRP结束,且有出错提示。消息通道后有两个相同号码端点,一个用于输入,一个用于输出。消息通道支持控制传送。2.USB传输类型USB规定的数据格式信息流的方向数据净荷区的长度限制总线访问的限制延时的限制出错处理2.USB传输类型USB的传输类型:控制(Control)、同步(isochronous)、中断(interrupt)、大量(bulk),传输主动权在host边。如果从硬件开始来设计系统,需要正确选择传输方式,而书写驱动程序,就只需要弄清楚USB采用何种工作方式就行了。1控制(Control)方式传输:双向传输,数据量通常较小,系统软件主要进行查询、配置和给USB设备发送通用命令。该方式可以包括8、16、32和64字节的数据,依赖于设备和传输速度。典型地应用是主机和USB外设的端点(Endpoint)0的传输。2同步(isochronous)方式传输:提供确定的带宽和间隔时间(latency),用于时间严格并具有较强容错性的流数据传输,或要求恒定的数据传输率的即时应用中,例如执行即时通话的网络。同步数据要求确定的带宽值和确定的最大传输次数,同步传输来的即时数据传递比精度完美和数据完整性更重要。USB传输方式3中断(interrupt)方式传输:主要用于定时查询设备是否有中断数据要传输,设备的端点模式器的结构决定了它的查询频率从1到255ms之间,典型应用是少量的分散的不可预测数据的传输,如键盘操纵杆和鼠标,中断方式传输是单向的,并且对于host来说只有输入的方式。4大量(bulk)传输:主要应用于大量传输和接受数据,同时又没有带宽和间隔时间要求的情况下,要求保证传输。如打印机和扫描仪(传输非常慢和大量被延迟,可以等到所有其它类型的数据传输完成之后,再传输和接收数据)。USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长,每个设备每帧只能传输一个同步的传输包,在完成了系统的配置信息和连接之后,USB的host就会对不同的传输点和传输方式做一个统筹安排,用来适应整个的USB的带宽。通常情况下同步方式和中断方式的传输会占据整个带宽的90%,剩下的就安排给控制方式传输数据。USB传输方式在主机控制器和USBHUB之间还有另外一种传输——别离传输〔SplitTransaction〕,它仅在主机控制器和HUB之间执行,通过别离传输,可以允许全速/低速设备连接到高速主机。别离传输对于USB设备来说是透明的、不可见的。别离传输:把一次完整的事务传输分成两个事务传输来完成。其出发点是高速传输和全速/低速传输的速度不相等,如果使用一次完整的事务来传输,势必会造成比较长的等待时间,从而降低了高速USB总线的利用率。通过将一次传输分成两此,将令牌〔和数据〕的传输与响应数据〔和握手〕的传输分开,这样就可以在中间插入其他高速传输,从而提高总线的利用率。USB协议层标准USB采用littleedian字节顺序,在总线上先传输一个字节的最低有效位,最后传输最高有效位,采用NRZI编码,假设遇到连续的6个1要求进行为填充,即插入一个0。所有的USB包都由SYNC开始,高速包的SYNC宽度为32bit,全速/低速包的SYNC段宽度为8bit。实际接收到的SYNC产度由于USBHUB的关系,可能会小于该值。PID表征了数据包的类型,分为令牌〔Token〕、数据〔Data〕、握手〔Handshacke〕以及特殊包4大类,共16种类型的PID。令牌包的PID之后是7位的地址和4位的端点号。令牌包没有数据域,以5位的CRC校验和结束。SOF是一类特殊的令牌包,PID后跟的是11位的帧编号。数据包的PID之后直接跟数据域,数据域的长度为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论