USB协议规范.doc_第1页
USB协议规范.doc_第2页
USB协议规范.doc_第3页
USB协议规范.doc_第4页
USB协议规范.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

USB协议规范1 USB的基本特征1.1 USB系统结构1.2 机械特性、电气特性1.3 USB电源1.4 USB信号2 USB通信协议2.1 USB事务处理2.2 USB数据传输类型2.3 USB描述符2.4 USB设备请求2.5 USB设备枚举USB系统的设计必须遵循USB的协议规范,因此对其进行一定的介绍,只有理解了USB的协议规范内容,才能正确的进行USB系统的设计。1 USB的基本特征1.1 USB系统结构在终端用户看来,USB系统就是外设通过一根USB电缆和PC机连接起来。USB在外设和PC机之间提供通信服务,通常外设称为USB设备,把其所连接的PC机称为主机,并且把指向USB主机的数据传输称为上行通信,把指向USB设备的数据传输称为下行通信。USB主机及主控制器/根集线器(host controller/root hub)是整个USB系统的大脑,负责完成主机和设备间的数据传输。USB根集线器提供USB连接端口给USB设备或USB集线器使用。USB设备(USB device)指各种类型的USB外设。它们可以与USB主机交互数据信息,并为主机提供额外的功能,但在使用前主机必须对其进行配置。USB设备按功能不同,可以分为集线器和功能设备两大类。其中,集线器为USB系统提供额外的连接点,它使得一个USB端口可以连接多个设备;功能设备为主机提供额外的功能,如USB鼠标,USB键盘等等。USB的链接从逻辑上看每个USB设备都是直接和主机相连进行数据传输的,但从物理结构来看。USB链接采用的是呈阶梯式的星状排列(Tiered Star Topology),如图1所示。图中整个USB总线拓扑体系由三个元素组成:主机(host)、集线器(Hub)和功能设备(Function)。Hub是每个星型结构的中心,用于连接主机和设备。在目前的PC应用中,PC就是主机(Host)和根集线器(Root Hub),用户可以将外设或附加的Hub与之连接,一台含有一个USB主控制器的PC机最多可以连接126个外设。Hub在USB结构中是一个关键,它提供了附加的USB节点,这些节点被称为端口(Port)。根据端口在总线拓扑体系中的位置和功能的不同,端口又分为上行端口(UpstreamPort)和下行端口(DownstreamPort)。上行端口用于与上层Hub或根Hub相连,下行端口则用于与下层设备相连。图2是一个通用的集线器。Host RootHubHub2Hub1Hub4Hub3Hub5Hub6FunctionFunctionFunctionFunctionFunctionFunctionFunction 图1Port1 Port2 Port3UpstreamPort Hub Port4 Port7 Port6 Port5 图21.2 机械特性、电气特性USB总线的传输由一根4线的电缆来实现。其中两根线用于提供USB设备工作的电源盒地,另外两个为差动数据信号线,用于传输数据。电气特性,USB使用差分驱动器来发送信号,对应低速USB设备,一般使用束缚型低速电缆进行连接,它不需要外层屏蔽和数据双绞线;全速和高速USB设备在连接是使用有外层屏蔽盒数据双绞的电缆,其差分特性阻抗为90(115%),共模阻抗为30(130%)。USB使用差分接收器来接受USB信号,对应低速和全速传输,D+和D-线上的差分共模电压范围为0.82.5V;对于高速传输,该范围为-50mv500mv。PC主机会以一定的时间间隔不断的查询跟集线器,以了解设备的连接状态。1.3 USB电源 在USB系统中,所有的集线器端口都可以为和其相连的USB设备提供电源,且每个端口的最大电流一般为100mA或者500mA。电源通过USB电缆中的两根电源线Vbus和GND提供给外设,其电压标称值为+5V。对于USB设备来说,既可以使用总线提供的电源,也可以使用单独的本地电源。1.4 USB信号 数据在USB总线上实际传输时,使用的是NRZI编码的差分信号,这种信号有益于保证数据的完整性和消除噪声干扰。这种编码方式不用单独的时钟信号与数据一起发送,它用电平的跳变代表“0”,无跳变代表“1”。2 USB通信协议 本节是从USB信息包开始,由底层向上层地介绍USB通信协议的几个方面。这里包括USB事务处理、数据传输类型、描述符、设备请求和总线列举。2.1 USB事务处理 USB事务处理是USB主机和USB设备数据通信的基础。一个完整的USB事务处理包含3个阶段:令牌阶段、数据阶段、握手阶段。如图3。同步字段 令牌包 EOP同步字段 数据包 EOP同步字段 握手包 EOP令牌阶段数据阶段握手阶段 图3 典型事务处理过程1.USB字段格式在USB协议中,USB数据传输由一系列的字段构成,这些不同功能的字段,按特定的格式组合便可以构成不同的信息包。其中包括:l 同步字段(SYNC):用于数据通信的同步。对应低速/全速传输,其长度为8位,数据为10 000 000B。而对于高速传输长度为32位,数据为8000000H。l 包标识字段(PID):指明信息包类型,可以用于差错控制。长度为8位,低4位为类型字段,高4位为校验字段。l 地址字段(ADDR):指明USB总线上的一个USB设备。长度为7位,共有128个地址值。地址0作为缺省地址,不分配给USB设备。l 端点字段(ENDP):指明USB端点。字段长度4位,共16个端点。端点0主要用于USB设备上电的初期和USB主机进行通信,完成配置。l 帧号字段:指明当前帧的帧号。l 数据字段:包括传输的数据。l CRC字段:循环冗余校验。2.USB信息包USB以信息包为基本传输单元进行USB事务处理。USB数据传输中包括:令牌包、数据包和握手包三种。信息包类型不同其包含的字段也不同,但第一个字段都是同步字段。表1所示。同步字段 具有特定格式的字段 EOP 表1 信息包格式l 令牌包:USB协议中,使用了7中令牌包,IN、OUT、SETUP和PING令牌包,这些令牌包的格式大致相同。如表2。IN令牌包定义了设备到主机的数据传输,OUT和SETUP令牌包定义了主机到USB设备的数据传输。SOF令牌包,格式如表3;SPLIT令牌包和PRE令牌包PID ADDR ENDP CRC 8 7 4 5PID 帧号字段 CRC 8 11 5位数位数 表2 IN、OUT、SETUP和PING令牌包格式 表3 SOF令牌包格式 l 数据包:它由8位包标识字段PID、数据字段、和16位的循环冗余校验字段CRC组成。如表4所示。l 握手包:仅含有PID字段。如表5所示。握手包主要用于在数据传输的末尾报告本次数据传输的状态。之后便是整个事务处理的结束信号EOP.位数PID 数据字段 CRC 8 01024*8 16PID 8位数 表4 数据包格式定义 表5 握手包的定义格式3.USB事务处理在USB事务处理理,令牌包阶段是必须的,USB协议中规定了7种令牌令牌包,因此,可以根据令牌包的类型将USB事务处理分为7种:IN事务处理、OUT事务处理、SETUP事务处理、PING事务处理、SOF事务处理、SPLIT事务处理和PRE事务处理。2.2 USB数据传输类型 USB的协议对USB的数据传输类型按照传输数据量的大小、传输速率的高低以及对时间的要求,可以分为4种传输类型:块传输、中断传输、同步传输和控制传输。表6对这四种传输方式进行了一个简单的比较。传 输 类 型 端 点 类 型 输 出 方 向 所传输数据的特点控制传输 控制端点 IN和OUT 少量、无传输时间要求、传输严格保证中断传输 中断端点 IN或OUT 少量或中量、有周期要求块传输 块端点 IN或OUT 大量、无传输时间和速率要求同步传输 同步端点 IN或OUT 大量、速率恒定、有周期性 表6 USB的4种传输类型1、块传输 USB块传输只能用于高速或全速的USB设备,适合传输大量且对传输时间和传输速率均无要求的数据。在传输过程中,当总线带宽紧张时,会自动为其他传输类型让出自己所占的帧/小帧时间,而本身数据传输将延迟,这时传输速率比较低、占用时间长;当总线空闲时,速率高、时间短。采用差错控制和重试机制来保证数据传输的正确性和可靠性。此传输适合于打印机和扫描仪类的设备。 USB设备在块端点描述符中的wMaxPacketSize字段指明其块事务所支持的最大数据包长度。l 对于全速端点,可以是8字节、16字节、32字节或者64字节;l 对于高速端点,只能为512字节。块事务处理过程包括令牌、数据和握手三个阶段。USB块事务处理是单向的。设备需要双向块传输,则必须使用两个块端点。当主机需要接收数据时,它向USB设备发出一个IN令牌包;当准备发送数据块时,它将向USB设备发出一个OUT令牌包和一个DATAx数据包。2、USB中断传输中断传输可以用于低速、全速和高速设备,适合于传输少量或中量对事务处理周期有要求的数据.USB总线为中断传输保留了总线带宽,以保证它能够在规定的时间内完成。USB中断传输适合于鼠标、键盘类设备,这类设备传输的数据量很少,而且要求响应快,具有固定的事务处理周期。USB设备在中断端点描述符中的wMaxPacketSize字段指明其中断事务所支持的最大数据包长度。l 对于低速端点,最大数据包长度小于等于8字节;l 对于全速端点,最大数据包长度小于等于64字节;l 对于高速端点,最大数据包长度小于等于1024字节。 中断事务处理和块传输一样,都是单向的,都具有令牌、数据和握手3个阶段。中断管道式一条数据流管道,它传输的数据不具有USB定义的格式。当其在USB总线上实际传输时,必须使用数据触发机制来保证数据包发送和接收的同步,以便于发送方能够确认其数据已经被成功接收。3、USB同步传输USB同步传输只能用于高速或全速USB设备,适合于传输大量的、速率恒定的且对服务周期有要求的数据。USB协议为同步传输保留了总线带宽,以保证同步传输一直使用准确的传输速率,因此其传输时间是确定的、可以预测的。此外,同步传输不能保证每次传输都是成功的。此传输适合于音频和视频类设备。USB设备在同步端点描述符中的wMaxPacketSize字段指明其同步事务所支持的最大数据包长度。l 对于全速端点,该最大值必须小于等于1023字节;l 对于高速端点,它必须小于等于1024字节,且高带宽端点可在每小帧中进行两个或3个高速同步事务。同步事务处理也是单向的,其包括IN传输和OUT传输,但只有令牌和数据阶段,没有握手阶段,如图4所示。 IN OUTDATAxDATAx USB总线空闲令牌数据USB主机USB设备出错 图4 同步事务的格式4、USB控制传输USB控制传输适合于低速、全速或高速设备。主要用于传输少量的、对传输时间和传输速率均无要求、但必须保证传输的数据。USB协议为控制传输保留了一定的总线带宽,以确保其能够尽快得到传输。也使用了差错控制和重试机制来保证数据传输的准确性和可靠性。USB控制传输主要用于USB主机和USB设备之间的配置信息通信,包括设备地址、设备描述符和接口描述符等。所以的USB设备都有控制传输方式。在USB协议中,任何USB设备都必须在端点0的缺省管道中支持控制传输。除端点0外,其他端点也可以支持控制传输USB设备在控制端点描述符中的wMaxPacketSize字段指明其控制事务所支持的最大数据包长度。l 对于低速端点,最大值必须为8个字节;l 对于全速端点,可以选择8、16、32和64字节;l 对于高速端点,其只能为64字节。控制事务处理包括建立、数据和状态3个阶段,每个阶段都由特定的事务处理组成。控制事务处理的建立阶段,主机采用SETUP事务向USB设备发送控制请求。SETUP事务的数据字段长度为8字节;数据阶段是可选的,可以包括一个或多个IN/OUT事务,其负责传输具有USB定义格式或设备类、供应商自定义格式的数据。数据阶段的传输方向和长度均是建立阶段指定;最后是状态阶段,由一个IN事务和一个OUT事务组成。在状态阶段中,USB设备向主机报告控制事物建立阶段的传输结果。USB控制传输的报告方向是从USB设备到主机。2.3 USB描述符在USB协议中,USB设备采用标准的USB描述符来说名。这些描述符包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、设备限定描述符和其他速率配置描述符,其中设备限定描述符和其他速率描述符用于高速USB设备。标准USB描述符的类型值如表7所示。描述符类型 值 描述符类型 值 接口描述符 4 字符串描述符 3 其他速率配置描述符 7 配置描述符 2 设备限定描述符 6 设备描述符 1 端点描述符 5表7 标准USB描述符的类型值1、设备描述符USB的设备描述符用于表示USB设备的总体信息,一个USB设备只能有一个设备描述符(Device)。设备描述符中的设置值对该设备中同一传输模式下的所有配置都有效,它由14个字段组成,总长度固定为18个字节。2、配置描述符 在USB协议中,USB设备可以有一个或多个配置,每个配置都必须有一个配置描述符(Configuration)。配置描述符用于表示USB设备的配置信息,它由8个字段组成,长度固定为9个字节。3、字符串描述符 在USB协议中,字符串描述符(String)是可选的。字符串描述符用于保存一些供应商名称、产品序列号等文本信息,它由3个字段组成,其长度随字符串的数量和信息的长度而变化。4、接口描述符 在USB协议中,USB设备的接口是一个端点的集合,负责完成该USB设备的特定功能,例如数据输入和输出。USB设备的每一个接口都必须有一个接口描述符(Interface),接口描述符用来表示USB设备中各个接口的特性,包括接口的端点个数、所属的设备类和子类等。它由9个字段组成,长度固定为9个字节。5、端点描述符在USB协议中,端点描述符(Endpoint)用于指出USB设备端点的特性,包括其所支持的传输类型、传输方向等信息。USB中规定,端点0没有端点描述符,其余端点必须包含端点描述符。它由6个字段组成,其长度固定为7字节。6、设备限定描述符在高速USB系统中,如果USB设备既需要采用高速传输又需要全速传输,则它必须支持设备限定描述符(DeviceQualifier),设备限定描述符用以指出另一传输速率下该设备的总体信息,它由9个字段组成,长度固定为10个字节。7、其他速率配置描述符 在高速USB系统中,如果USB设备既需要采用高速传输又需要全速传输,则必须支持其他速率配置描述符(OtherSpeedConfiguration)。其他速率配置描述符指出了另一个传输速率下该设备的配置信息。它由8个字段组成,长度固定为9字节。2.4 USB设备请求USB功能设备的产品信息和能力在USB描述符中进行了定义。在USB协议中,使用USB设备请求对这些描述符进行读取和写操作。这些设备请求包括标准设备请求和自定义请求两种。标准USB设备请求对每个USB设备都是必需的。在USB协议中,主机对USB设备的各种配置操作是通过设备请求来实现的。对于这些标准的USB设备请求,所有的USB设备必须都支持,并能够对它进行响应。这些控制请求使用控制管道和USB功能设备进行通信。USB中定义了11种标准USB设备请求,见表8。 USB请求 USB请求号 功 能 描 述GetStatus 00H 读取USB设备、接口或端点的状态ClearFeature 01H 清除或禁止USB设备、接口或端点的某些特性SetFeature 03H 设置或使能USB设备、接口或端点的梦写特性SetAddress 05H 分配USB设备地址GetConfiguration 08H 读取USB设备当前的配置值SetDescriptor 07H 更新已有的描述符或添加新的描述符SetConfiguration 09H 为USB设备选择一个合适的配置GetInterface 0AH 读取USB指定接口的当前可替换设置GetDescription 06H 读取设备描述符SynchFrame 0CH 读取USB同步端点所指定的帧序号 SetIntetface 0BH 为USB指定接口选择一个合适的可替换设置 表8 标准U

温馨提示

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

评论

0/150

提交评论