资源预览内容
第1页 / 共130页
第2页 / 共130页
第3页 / 共130页
第4页 / 共130页
第5页 / 共130页
第6页 / 共130页
第7页 / 共130页
第8页 / 共130页
第9页 / 共130页
第10页 / 共130页
亲,该文档总共130页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
USB2.0协议详解Daxiang_201110311USB2.0协议中文详解协议中文详解序USB发展历史 传统的串口、并口通讯方式逐渐不能满足现有系统或者设备的数据传输速率需求。以Intel为首的七家公司于1994年推出了USB(Universal Serial Bus,通用串行总线协议)概念,并在随后的几年内不断的对USB协议进行改进,成功推行USB 1.1;2004年底,正式推出了USB 2.0协议。接口与USB1.1兼容;2007秋季,正式推出了USB 3.0协议。2USB2.0协议中文详解协议中文详解序USB 1.1与USB 2.0之间的差别3USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范4USB2.0协议中文详解协议中文详解USB 体系简介USB 是一种支持热插拔的高速串行传输总线,使用差分信号来传输数据,最高速度可达 480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,USB2.0设备最多可以获得500mA的电流;USB2.0 被设计成为向下兼容的模式,当有全速 (USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB以及USB功能设备。5USB2.0协议中文详解协议中文详解USB 体系简介USB 体系包括“主机”、“设备”以及“物理连接”三个部分。主机是一个提供USB接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。一个USB 系统中仅有一个USB主机;设备包括 USB功能设备和 USB HUB,最多支持 127个设备;物理连接即指的是USB 的传输线。 在USB 2.0系统中,要求使用屏蔽的双绞线。USB 体系采用分层的星型拓扑来连接所有USB设备6USB2.0协议中文详解协议中文详解USB 体系简介以 HOST-ROOT HUB为起点,最多支持 7 层(Tier),也就是说任何一个USB 系统中最多可以允许 5个 USB HUB 级联。一个复合设备(Compound Device)将同时占据两层或更多的层。ROOT HUB 是一个特殊的 USB HUB,它集成在主机控制器里,不占用地址。“复合设备(Compound Device)”可以占用多个地址。所谓复合设备其实就是把多个功能设备通过内置的 USB HUB 组合而成的设备,比如带录音话筒的 USB 摄像头等。一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个 USB HOST 最多可以同时支持 127 个地址,如果一个设备只占用一个地址,那么可最多支持 127个 USB 设备(含USB HUB)。7USB2.0协议中文详解协议中文详解USB 体系简介8USB2.0协议中文详解协议中文详解USB 体系简介USB USB 采用轮询的广播机制传输数据采用轮询的广播机制传输数据 所有的传输都由主机发起,任何时刻整个USB体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包;USB USB 采用采用“令牌包令牌包”-“-“数据包数据包”-“-“握手包握手包”的传输机制的传输机制在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。握手包表示了传输的成功与否。数据包:USB 总线上数据传输的最小单位,包括 SYNC、数据及 EOP 三个部分。其中数据的格式针对不同的包有不同的格式。但都以 8 位的 PID 开始。PID 指定了数据包的类型(共 16种)。令牌包即指 PID 为 IN/OUT/SETUP的包。端点(Endpoint):是 USB 设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传输。设备支持端点的数量是有限制的,除默认端点外低速设备最多支持 2 组端点(2 个输入,2 个输出),高速和全速设备最多支持 15 组端点。9USB2.0协议中文详解协议中文详解包包的基本格式包结尾字段包结尾字段(EOP)(EOP)CRCCRC字段字段数据数据字段字段PIDPID字段字段同步字段同步字段(SYNC)(SYNC)USB 体系简介10USB2.0协议中文详解协议中文详解令牌(token)包CRC5CRC5ENDPENDPADDRADDRPIDPIDSYNCSYNC5 5位位4 4位位7 7位位8 8位位8 8位位PIDUSB 体系简介11USB2.0协议中文详解协议中文详解数据包CRC16CRC16DATADATAPIDPIDSYNCSYNC1616位位0102301023字节字节8 8位位8 8位位/32/32位位PIDSYNC8位位8 8位位/32/32位位SYNC:Low/FuSYNC:Low/Full speedll speed为为8 8位;位;Hi-Hi-speedspeed为为3232位;位;PID握手包PIDUSB 体系简介12USB2.0协议中文详解协议中文详解USB 体系简介管道(管道(Pipe)管道是主机和设备端点之间数据传输的模型,共有两种类型的管道;无格式的流管道(Stream Pipe)有格式的信息管道Message Pipe)。任何USB设备一旦上电就存在一个信息管道,即默认的控制管道,USB 主机通过该管道来获取设备的描述、配置、状态,并对设备进行配置。USB 设备连接到 HOST 时,HOST必须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。USB 设备的即插即用特性即依赖于此。13USB2.0协议中文详解协议中文详解USB 体系简介USB 体系四种传输类型的控制传输:主要用于在设备连接时对设备进行枚举以及其他因设备而异的特定操作。中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。批量传输:用于对延迟要求宽松,游戏手柄等大量数据的可靠传输,如U盘等。 同步传输:用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、可占用USB 带宽的限制以及最大包长度有一定的差异。 14USB2.0协议中文详解协议中文详解USB 体系简介USB 设备通过管道和HOST 通信,在默认控制管道上接受并处理以下三种类型的请求:标准请求:一共有11 个标准请求,如得到设备描述、设置地址、得到配置描述等。所有USB 设备均应支持这些请求。HOST 通过标准请求来识别和配置设备。类(class)请求:USB 还定义了若干个子类,如HUB 类、大容量存储器类等。不同的类又定义了若干类请求,该类设备应该支持这些类请求。设备所属类在设备描述符中可以得到。 厂商请求:这部分请求并不是 USB 规范定义的,而是设备生产商为了实现一定的功能而自己定义的请求。15USB2.0协议中文详解协议中文详解USB 体系简介USB 接口扩展接口扩展USB HUB提供了一种低成本、低复杂度的USB 接口扩展方法。HUB的上行PORT 面向 HOST,下行 PORT 面向设备(HUB 或功能设备)。在下行 PORT 上,HUB 提供了设备连接检测和设备移除检测的能力,并给各下行PORT供电。HUB可以单独使能各下行PORT,不同PORT 可以工作不同的速度等级(高速/全速/低速)。USB HUBHUB由HUB重发器(HUB Repeater)、转发器(Transaction Translator)以及HUB 控制器(HUB Controller)三部分组成。HUB Repeater是上行PORT 和下行PORT之间的一个协议控制的开关,它负责高速数据包的重生与分发; HUB 控制器负责和 HOST的通信,HOST通过 HUB 类请求和 HUB 控制器通讯,获得关于 HUB 本身和下行 PORT 的 HUB 描述符,进行HUB和下行PORT 的监控和管理。转发器提供了从高速和全速/低速通讯的转换能力,通过 HUB 可以在高速 HOST 和全速/低速设备之间进行匹配。HUB 在硬件上支持 Reset、Resume、Suspend。16USB2.0协议中文详解协议中文详解USB 体系简介USB HOST 在USB体系中负责设备连接/移除的检测、HOST 和设备之间控制流和数据流的管理、传输状态的收集、总线电源的供给。 17USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范18USB2.0协议中文详解协议中文详解USB 数据流模型USB 体系在实现时采用分层的结构19USB2.0协议中文详解协议中文详解USB 数据流模型在 HSOT端,应用软件(Client SW)不能直接访问 USB 总线,而必须通过USB系统软件和USB主机控制器来访问 USB 总线,在 USB总线上和USB 设备进行通讯。从逻辑上可以分为功能层、设备层和总线接口层三个层次。功能层完成功能级的描述、定义和行为;设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输;USB 总线接口层则处理总线上的Bit流,完成数据传输的物理层实现和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑上的通讯。 20USB2.0协议中文详解协议中文详解USB 数据流模型物理上,USB设备通过分层的星型总线连接到 HOST,但在逻辑上HUB是透明的,各USB 设备和HOST直接连接,和 HOST上的应用软件形成一对一的关系。如下图所示:各应用软件-功能设备对之间的通讯相互独立,应用软件通过USB设备驱动程序(USBD)发起 IRQ 请求,请求数据传输。主机控制器驱动程序(HCD)接收 IRQ 请求,并解析成为 USB传输和传输事务(Transaction),并对 USB 系统中的所有传输事务进行任务排定 (因为可能同时有多个应用软件发起 IRQ 请求)。主机控制器(Host Controller)执行排定的传输任务,在同一条共享的 USB 总线上进行数据包的传输。如右图所示。21USB2.0协议中文详解协议中文详解USB 数据流模型USB 端点、管道和接口的关系。USB 系统中数据的传输,宏观的看来是在HOST 和 USB 功能设备之间进行;微观的看是在应用软件的 Buffer 和 USB 功能设备的端点之间进行。一般来说端点都有 Buffer,可以认为USB通讯就是应用软件Buffer和设备端点Buffer之间的数据交换,交换的通道称为管道。应用软件通过和设备之间的数据交换来完成设备的控制和数据传输。通常需要多个管道来完成数据交换,因为同一管道只支持一种类型的数据传输。用在一起来对设备进行控制的若干管道称为设备的接口;一个 USB 设备可以包括若干个端点,不同的端点以端点编号和方向区分。不同端点可以支持不同的传输类型、访问间隔以及最大数据包大小。除端点 0外,所有的端点只支持一个方向的数据传输。端点 0是一个特殊的端点,它支持双向的控制传输。管道和端点关联,和关联的端点有相同的属性,如支持的传输类型、最大包长度、传输方向等。22USB2.0协议中文详解协议中文详解USB 数据流模型四种传输类型(控制/中断/批量/同步传输)1. 控制传输: 控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。 控制传输通过控制管道在应用软件和 Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。其他三种传输类型都没有格式定义。 控制传输对于最大包长度有固定的要求。对于高速设备该值为 64Byte;对于低速设备该值为 8;全速设备可以是 8或 16或 32或 64。高速端点的控制传输不能占用超过 20%的微帧,全速和低速的则不能超过 10%的帧。 在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。23USB2.0协议中文详解协议中文详解USB 数据流模型2. 中断传输:中断传输是一种轮询的传输方式,是一种单向 的传输,HOST通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。 中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。 对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。 高速中断传输不得占用超过 80%的微帧时间,全速和低速不得超过 90%。 中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是 1255mS,低速端点为 10255mS,高速端点为(2*interval-1)*125uS,其中 interval取 1到 16之间的值。 除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达 3072 字节的数据。 24USB2.0协议中文详解协议中文详解USB 数据流模型3. 批量传输:批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。 低速 USB 设备不支持批量传输,高速批量端点的最大包长度为 512,全速批量端点的最大包长度可以为 8、16、32、64。 批量传输在访问 USB 总线时,相对其他传输类型具有最低的优先级,USB HOST 总是优先安排其他类型的传输,当总线带宽有富余时才安排批量传输。 高速的批量端点必须支持PING 操作,向主机报告端点的状态,NYET 表示否定应答,没有准备好接收下一个数据包,ACK 表示肯定应答,已经准备好接收下一个数据包。25USB2.0协议中文详解协议中文详解USB 数据流模型4. 同步传输: 同步传输是一种实时的、不可靠的传输,不支持错误重发机制。只有高速和全速端点支持同步传输,高速同步端点的最大包长度为 1024,全速的为 1023。 除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达 3072 字节的数据。 全速同步传输不得占用超过 80%的帧时间,高速同步传输不得占用超过 90%的微帧时间。 同步端点的访问也和中断端点一样,有固定的时间间隔限制。在主机控制器和 USB HUB 之间还有另外一种传输分离传输(Split Transaction),它仅在主机控制器和 HUB之间执行,通过分离传输,可以允许全速/低速设备连接到高速主机。分离传输对于USB 设备来说是透明的、不可见的。26USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范27USB2.0协议中文详解协议中文详解USB接口A A型连接头型连接头1234B B型连接头型连接头1 12 24 43 3黑黑GroundGround4 4绿绿Data+(D+)Data+(D+)3 3白白Data-(D-)Data-(D-)2 2红红VccVcc1 1缆线颜色缆线颜色信号名称信号名称引脚编号引脚编号USB物理规范物理规范28USB2.0协议中文详解协议中文详解USB物理规范物理规范注:注:Mini USBMini USB接口和接口和Micro USBMicro USB接口不属于接口不属于USB2.0USB2.0协议范围;目前多数手机厂商已宣布统一使用协议范围;目前多数手机厂商已宣布统一使用 Micro USBMicro USB接口接口作为手机充电器标准接口。作为手机充电器标准接口。29USB2.0协议中文详解协议中文详解USB物理规范物理规范USB连接器支持热拔插;高速/全速USB线缆要求使用内含双绞线的屏蔽线,而且必须打上符合USB使用标记;低速USB推荐但非要求使用双绞线和屏蔽线;30USB2.0协议中文详解协议中文详解USB物理规范物理规范USB 合法cable 标准可分离的USB cable=A Plug + B PlugCable最大长度取决于信号衰减和传播延迟,同时受电压跌落限制(cable跌落电压125mV);31USB2.0协议中文详解协议中文详解USB物理规范物理规范高速/全速 不可分离 USB cableA plug+线或客户定义端A plug端与线的定义同标准USB cable,都是必须适用与高速/全速;Cable 差分线间skew100ps;满足高速/全速的阻抗特性要求;电压跌落,衰减和传播延迟等也要满足相关要求;32USB2.0协议中文详解协议中文详解USB物理规范物理规范低速不可分离 USB cableA plug+线或客户定义端满足阻抗特性和负载cap要求(单端cap:200450pf);cable最大长度取决于低速信号的上升和下降时间(即传播延迟18ns,以满足Tr/Tf要求);差分skew65%;Low-speed cable;l电源线:2820AWG,不要求绞线;l信号线:28AWG,推荐双绞线;l排扰线( drain wire ):28AWG镀锡铜线;l镀锡铜编织层:有效区65%,推荐使用;35USB2.0协议中文详解协议中文详解USB物理规范物理规范额定电压30V (rms)操作温度范围: 0 to +50 存储温度: -20 to +60 电阻:36USB2.0协议中文详解协议中文详解USB物理规范物理规范USB接地USB的屏蔽线必须与插头的机壳地相连;用户可以选择USB Device与Cable的接地机制以满足实际需求和安规/ EMI /ESD /RFI等要求;37USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范38USB2.0协议中文详解协议中文详解USB 电气规范信号发送高速信号发送简介支持480Mbps的高速信号传送,差分线每条线末端采用45 ohm端接,合计差分阻抗为90ohm;HUB下行端口,必须支持高速、全速和低速;HUB上行端口,必须支持高速、全速,不支持低速;所以上行端口的D-线不允许上拉1.5K;39USB2.0协议中文详解协议中文详解USB 电气规范Example High-speed Capable Transceiver Circuit40USB2.0协议中文详解协议中文详解USB 电气规范USB驱动器特性FS &LS输出的低电平电压00.3V;输出高电平电压2.8V3.6V;HS输出的差分低电平电压-10+10mV;输出差分高电平电压360440mV;USB Port信号还必须能连续耐受与Vbus、GND或其他数据线的短路;USB Port信号在任何驱动状态都必须能连续耐受如下电压波形;USB信号发送的最大输出波形41USB2.0协议中文详解协议中文详解USB 电气规范FS 驱动器特性连接要求用屏蔽的双绞线,差分阻抗90ohm15%;共模阻抗3030%;单线最大延迟26ns;不支持HS的,每条线驱动器的阻抗要求2844ohm;支持HS的,每条线驱动器的阻抗要求40.549.5ohm;42USB2.0协议中文详解协议中文详解USB 电气规范FS信号波形43USB2.0协议中文详解协议中文详解USB 电气规范LS 驱动器特性连线与device组合电容, 450pFD+或D-线电容200pF;无阻抗控制要求;Cable传播延迟小于18nS;LS信号波形44USB2.0协议中文详解协议中文详解USB 电气规范HS (480Mbps)驱动器特性输出驱动器单端阻抗4510%,差分阻抗9010%;D+或D-输出高电平:400mV10%;输出低电平:010mV;电流驱动方式,D+或D-正常驱动电流17.78mA;下行端口D+或D-下拉15K 10%电阻到GND(要关注IC是否内部集成此电阻,参考如下摘录);要求使用屏蔽线。要求差分阻抗90ohm15%,共模阻抗30ohm30%;单线路延迟26ns;PCB板内走线控制差分阻抗90ohm,延迟可达4ns(长度约20inch以上);45USB2.0协议中文详解协议中文详解USB 电气规范信号的上升时间/下降时间FS/LSTr/Tf (10%90%)时间:420ns1.3VVCRS300K;FS/LS HUB&HOST下行端口的D+或D-电容150pf;FS Device上行端口D+或D-电容:可分离cable100pF; 集成cable75pF;LS Device D+或D-电容(集成Cable)450pF;FS的D+或D-线上加铁氧体bead is discouraged ;55USB2.0协议中文详解协议中文详解USB 电气规范HS D+或D-的DC阻抗:40.5 ZHSDRV 49.5 .HS 差分端接阻抗: 80 ZHSTERM 100 HS D+或D-对地CAP10pF; 差分CAP5pF;HS的D+或D-线上加铁氧体 bead is strongly discouraged ;HS 负载等效电路56USB2.0协议中文详解协议中文详解USB 电气规范信号电平FS/LS电平57USB2.0协议中文详解协议中文详解USB 电气规范- HS 电平电平58USB2.0协议中文详解协议中文详解USB 电气规范连接和断开信号59USB2.0协议中文详解协议中文详解USB 电气规范HS 设备是通过检测到信号线上出现双倍的信号电压来判断连接断开的;525mVVHSDSC625mV;60USB2.0协议中文详解协议中文详解USB 电气规范上电与连接时序t1:t1:上电电源切换时间;上电电源切换时间;t2:t2:电源稳定到信号连接时间;电源稳定到信号连接时间;t3:resett3:reset前的确保机电稳定预留时间;前的确保机电稳定预留时间;t4:t4:无活动挂起时间;无活动挂起时间;t5:Hubt5:Hub发送发送resetreset到到devicedevice的时间;的时间;t6:resett6:reset时间;时间;10ms minimum10ms minimum61USB2.0协议中文详解协议中文详解USB 电气规范数据信号发送USB数据包采用差分信号传输;低速/全速数据信号发送The start of a packet (SOP) is The start of a packet (SOP) is signaled by the originating port by signaled by the originating port by driving the D+ and D- lines from driving the D+ and D- lines from the Idle state to the opposite logic the Idle state to the opposite logic level (K state). level (K state). 8bit8bit(L/FL/F)/32bit(FULL) SYNC /32bit(FULL) SYNC signal for a packet startsignal for a packet start;The SE0 state is used to signal an The SE0 state is used to signal an end-of-packet (EOP). EOP=2bit end-of-packet (EOP). EOP=2bit SE0+1 bit J stateSE0+1 bit J state;then ,bus then ,bus recover to Idle staterecover to Idle state;62USB2.0协议中文详解协议中文详解USB 电气规范高速数据信号发送 SOP: 即由Idle切换到K状态来宣告开始发送包;其“K”是SYNC电平 (NRZI 序列 KJKJKJKJ KJKJKJKJ KJKJKJKJ KJKJKJKK) 的第一个symbol; EOP:对非SOF的EOP,共8bit;其第1bit为EOP前最后一个symbol取反,其余7bit 与EOP前最后一个symbol相同,类似NRZI码的“”;对SOF的EOP, 为40bit;其第1bit为EOP前最后一个symbol取反,其余bits 与EOP前最后一个symbol相同;类似NRZI码的“01111111 11111111 11111111 11111111 11111111. ”EOP结束后,BUS恢复到Idle状态; Idle:D+和D-为“GND”;63USB2.0协议中文详解协议中文详解USB 电气规范复位信号发送集线器信号通过控制端口上的持久的SE0态来实现对下形端口的复位。复位信号清除后,设备都将处于缺省状态。复位信号可在任一个集线器或主机的控制端口产生,该复位信号的最小持续时间为10ms。一个设备如果见其上形端口的SE0态持续时间超过2.5us,则它就把该信号作为复位信号处理。在复位信号清除后的10ms的复位恢复时间后,集线器必须能接收所有集线器请求,设备也必须能接收一个SetAddress()请求。如果接收这些请求失败,则设备将不能被USB系统软件所识别。64USB2.0协议中文详解协议中文详解USB 电气规范高速Hub或Device的复位协议先确认是高速device;Hub开始发出SE0信号;视为T0点;Device检测SE0信号如果是从挂起状态唤醒,则device在检查到2.5us的reset信号后,启动高速检测握手进程;如果是从全速的非挂起状态唤醒;则device在检查到2.5us3ms的reset信号后,启动高速检测握手进程;如果是从高速的非挂起状态唤醒;则device切换到全速前,必须等待3ms3.125ms;在切换到全速后的100 s 875 s间,如果检测到SE0信号,启动高速检测握手进程;65USB2.0协议中文详解协议中文详解USB 电气规范高速检测握手进程(对低速device无效)高速device让D+上拉,断开高速端接,往Bus上发送Chirp K (时间17ms,从T0计算);Hub检测到的Chirp K必须大于2.5us;否则会持续发SE0信号,直到reset结束;Bus结束Chirp K状态后100us内,Hub必须不间断的交替发送Chirp Ks and Chirp Js信号,以保证Bus处于激活状态而不会挂起;J或K信号时长4060us, Chirp J/K交替信号必须持续到reset结束前100500us;Hub发完Chirp信号后,发送SE0信号直到reset结束;复位结束前Hub必须切换到高速状态;Device发完chirp后,device必须接收到hub的交替Chirp K-J-K-J-K-J 信号,且每位信号的长度大于2.5us;如果检测OK,device会在500us内,断开D+上拉,回复高速端接,进入高速default状态;如果device在发完自己的chirp后1ms2.5ms后检测Fail,device会切换到全速default状态直到reset结束。66USB2.0协议中文详解协议中文详解USB 电气规范挂起 所有的设备都必须能支持挂起状态,并可从任一电平状态进入挂起态。当设备发现它们的上行总线上的空闲态持续时间超3.0ms时,它们便进入挂起态。当设备的所有端口上的总线不活动时间不超过10ms后,设备必须被真正的挂起,此时它仅从总线上获得挂起电流。如果总线缺少其他的通信流量时,SOF令牌将在每(微)帧中出现一次,以防止全速/高速设备被挂起。当任一低速设备缺乏通信流量时,在SOF令牌出现的每一帧中至少有一个低速设备处于活动态,以避免它们不被挂起。 当处在挂起状态时,设备必须继续为它的D+(高速)或D-(低速)上的Rpu电阻提供电压从而维持一个空闲态,这样上行集线器才能为设备维持正确的连结状态。67USB2.0协议中文详解协议中文详解USB 电气规范高速设备挂起额外要求高速device如果检测到Bus为Idle状态大于3ms,device将在idle开始后的3.125us内转换到全速配置;切换到全速后的100us875us期间,device会采样Bus状态,如果是全速下的J状态,device会继续挂起;高速device或下行端口从挂起唤醒后,必须回复到高速状态;68USB2.0协议中文详解协议中文详解USB 电气规范挂起又可分为全局挂起和局部挂起。全局挂起 当在总线的任何地方没有通信需要时,就要用到全局挂起,此时所有总线都处在挂起状态。主机通过中止它所有的传送(包括SOF令牌)来发送开始全局挂起信号。当总上的每个设备识别总线的空闲态持续适当时间时,它将进入挂起状态。 局部挂起 可以通过向集线器端口发送SetPortFeature(PORT-SUSPEND)来使与其相连的总线部分被挂起,此时处于那部分的设备经过上面所说的适当时延后进入挂起状态。69USB2.0协议中文详解协议中文详解USB 电气规范唤醒 处在挂起状态的设备,当它的上行端口接收到任一非空闲信号时,它的操作将被唤醒。特别地,如果设备的远程唤醒功能被USB系统软件开启时,它也可以发信号给系统来完成唤醒操作。唤醒信号由主机或设备使用,以使一个挂起的总线段回到活动态。集线器在唤醒信号的生成和传播中起了十分重要的作用。设备唤醒时总有一个先后次序,我们将在后面详细介绍。 USB系统软件必须提供10ms的唤醒恢复时间,在这段时间内,它将不对与被唤醒的部分总线相连的任一设备进行操作。 端口的中断与连接也可以使集线器发送一个复位信号,从而唤醒系统,但仅当集线器具有远程唤醒使能时,这些事件才能引起集线器发送唤醒信号。70USB2.0协议中文详解协议中文详解USB 电气规范数据的编码与解码数据的编码与解码在包传送时,USB使用一种NRZI(None Return Zero Invert,即无回零反向码)编码方案。在该编码方案中,“1”表示电平不变,“0”表示电平改变。图8列出了一个数据流及其它的NRII编码,在该图的第二个波形图中,一开始的高电平表示数据线上的J态,后面就是NRZI编码。NRZI数据编码71USB2.0协议中文详解协议中文详解USB 电气规范位插入位插入为了确集信号发送的准确性,当在USB上发送一个包时,传送设备就要进行位插入操作。所谓位插入操作是指在数据被编码前,在数据流中每六个连续的1后插入一个0,从而强迫NRZI码发生变化,如图所示。 位插入数据编码序列数据编码序列 原始数据 位插入数据 同步块 数据包NRZI编码后的数据位插入72USB2.0协议中文详解协议中文详解USB 电气规范位插入操作从同步格式(如图10所示)开始,贯穿于整个传送过程,在同步格式端的数据1作为真正数据流的第一位。位插入操作是由传送端强制执行的,是没有例外的。如果严格遵守位插入规则,甚至在EOP信号结束前也要插入一位0位。 同步格式NRZI数据编码同步格式空闲73USB2.0协议中文详解协议中文详解USB 电气规范接收端必须能对NRZI数据进行解码,识别插入位并去掉它们。如果接收端发现包中任一处有七个连续的“1”,则将会产生一个位插入错误,该数据包将被忽略。 关于位的插入有一个特例,那就是刚好在EOP前的时间间隔,EOP前的最后一个数据位可能被集线器的转换偏移而拉长,这种情况如图11所示。 传送的数据接收的特别位,没有错 从传送器来的数据 接收端数据对对EOP前的特别位的说明前的特别位的说明74USB2.0协议中文详解协议中文详解USB 电气规范同步pattern全速/低速:KJKJKJKK;共8bits;高速:15个KJ对+2个KK;32bits;每个Hub允许丢4bit;经过5级Hub后,最少可能只有12bits;75USB2.0协议中文详解协议中文详解USB 电气规范数据信号的发送速率高速数据发送率通常为480.000Mb/s,主机,集线器和高速设备的数据率误差为0.05%(500ppm)。对支持高速USB的主机,集线器和设备,工作在任何速率下数据率误差为0.05%(500ppm)。全速数据发送率通常为12.000Mb/s,主机,集线器和高速设备的数据率误差为0.25%(2500ppm)。集线器控制器的数据率应该准确地知道,其误差最好控制在0.05%(500ppm)内。 低速数据发送率为1.50Mb/s,低速功能设备所允许的误差为1.5%(15000ppm)。 以上所述的误差,主要由下面的几种情况所引起:初始频率精度; crystal负载电容量的影响 振荡器上电压供应的稳定性影响 温度的影响 器件的老化76USB2.0协议中文详解协议中文详解USB 电气规范帧与帧间隔( Frame Interval )在低速、全速模式下,主机每间隔1ms(这个1ms称为一帧,允许误差0.005ms)发送一个帧开始令牌包SOF(Start of Frame)。包含SOF标记、帧序列号及CRC5校验码 。在高速模式下,主机每间隔1/8ms(即为一微帧,允许误差0.0625 s)发送一个帧开始令牌包SOF。 相邻帧间隔时间差0.5bit time(full speed);相邻微帧间隔时间差4bits time(high speed);77USB2.0协议中文详解协议中文详解USB 电气规范数据源的抖动在数据发送的边缘时间内,数据源可能发生一些变化(即抖动)。处在任何数据变化集间的时间为N*Tperiod抖动时间,其中N为发生变化的位数,Tperiod为具有一定范围的数据率的实际时间段。数据抖动的测量与计算最大上升沿和下降沿时所用的负载相同,并且它们在数据线的交叉点处进行测量,如图12。对高速传送,Jitter需要满足眼图要求; 对于全速传送,任何连续的差分数据变化的抖动时间为必须在2.0ns内,对于任何一个成对出现的差分数据变化(Jk到下一个Jk的变化或kJ到下一个kJ的变化)的抖动时间必须在1.0ns内。 对于低速传送,任何连续的差分数据变化的抖动时间必须在25ns内,而任一成对出现差分数据变化的抖动时间必须在10ns内。 这些抖动的现象包括时间的变化,主要归咎于差分缓冲器的延迟和上升沿及下降沿时间的不匹配,内部时钟抖动,噪声及其他随机因素的影响。78USB2.0协议中文详解协议中文详解USB 电气规范 差分数据线 抖动数据抖动分类连续变化成对的变化Tperiod的整数多元化桥接点79USB2.0协议中文详解协议中文详解USB 电气规范接收端数据的抖动 当抖动存在时,任何设备类型的数据接收必须能正确地对差分数据进行解码。这种情况的抖动可能是由上面所说的时延不匹配所引起,也可能是由源端和目标端数据速率的不匹配所引起。在特定的应用中,只要抖动条件满足,输出驱动器的抖动可能对设备时钟的精确性产生影响。详细的全速/低速接收端Jitter 预算请参考USB spec 2.0 Table 7-4和7-5;高速接收端在BER=82ns; 低速SE0时间应=670ns; 高速EOP81USB2.0协议中文详解协议中文详解USB 电气规范电缆的延迟 USB中传送信号的电缆所允许的时延为26ns,对于一个标准的USB可分电缆,其时延由从串行A口连接器端到串行B口连结端计算而得,并且其值小于26ns;而对于其它电缆,其时延由从串行A口连结器端到该电缆所连设备端计算而得。电缆延迟必须5.2ns/米;即标准USB 2.0 电缆最大可以支持到5M以上;低速USB cable 延迟必须18ns;电缆的信号衰减对于进行高速信号发送的每根电缆而言,信号对(D+,D-)所允许的最大衰减量右表所示。信号信号时延延Cable允许的最大衰减82USB2.0协议中文详解协议中文详解USB 电气规范USB最大端到端信号延迟全速/低速:Host等待响应的最大时间为18 bits time;高速:721bits time;83USB2.0协议中文详解协议中文详解USB 测试模式顺应性测试需要:高速的USB Hub,Host和的Device才必须支持USB Test Mode;USB全速和低速没有test mode;USB test mode下的端口会反复发送如下数据,SI眼图测测试即可完成;84USB2.0协议中文详解协议中文详解USB 电气规范电源分布所有USB设备的缺省电压为低电压,当设备要从低电压变化到高电压时,则是由软件来控制的。在允许设备达到高电压之前,软件必须保证有足够的电压可供使用USB支持一定范围的电压来源和电压消耗供应者,包括如下的部分。根端口集线器:它是直接与USB主机控制器相连的,并与其相同的电源来源。从外部获得操作电压(AC或DC)的系统,在每个端口至少支持五个单位负载,这些端口称为高电压端口。由电池组提供电压的系统可以支持一个或五个单位负载。哪些只能支持一个单位负载的端口称为低电压端口。从总线获得电压的集线器:它的所有内部功能设备和下形端口都从它的上形端口的Vbus上获得电压。在电压升高时,它可以接一个单位负载,经过初始设置后,它可以接五个单位负载。初始设置电压被分配给了集线器,任一固定功能设备和外部端口。它的外部端口只能接一个单位负载,当集线器处于活动或挂起态时,它必须为这个端口提供电流。该种集线器如图所示。注:一个单位负载为100mA?85USB2.0协议中文详解协议中文详解USB 电气规范上行数据端口上行Vbus可接五个单位负载下行数据端口 集线器控制器调节器不可移动功能设备一个单位负载一个单位负载/端口下行Vbus总线提供电压的集线器86USB2.0协议中文详解协议中文详解USB 电气规范自给电压集线器:如图所示,它的任一内部功能设备和下形端口不再从Vbus上获得电压,但当它的其余部分电压下降时,它的USB接口可接一个单位负载并从Vbus处获得电压,以允许该接口能工作。从外部(从USB)获得操作电压的集线器,可在每个端口接五个单位负载。由电池组提供电压的集线器,每端口可接一个或五个单位负载。Host和自供电Hub必须有OCP,OCP值要=4.75V;90USB2.0协议中文详解协议中文详解USB 电气规范挂起与唤醒期间的电源控制低电压设备或高电压设备工作于低电压下时,它们所允许的挂起电流限制为500uA,如果一个设备被初始设置为高电压并且具有远程唤醒功能,则在挂起期间,它的电流可达到2.5mA.在挂起状态下允许间隔1s以上的,电流达到100mA(或500mA)的瞬间脉冲电流;脉冲电流100mA/uS; 当一个集线器处在挂起状态时,它必须仍能为每个端口提供最大电流值。对于具有远程唤功能的设备,当它的电压在升高而系统的其余部分仍处于挂起态时,上面的要求是十分必要的。 当设备被唤醒时(远程唤醒或由唤醒信号唤醒),它们此时必须能限制Vbus上的inrush电流,集线器内Vbus所允许的最大电压落差为330mV。设备必须有足够的bypass电容器或要有一个可控制的上电时序,以便当设备正在被唤醒的任一时间内,从集线器输入的电流不能超过端口的最大电流允许值。91USB2.0协议中文详解协议中文详解USB 电气规范设备的动态加载与卸载插入或拨掉一个集线器或其它功能设备时,不应影响网络中其余设备的正常工作为前提。卸载掉一个功能设备将中止设备与主机间的通信,此时集线器向主机警告该端口已被中断。动态加载某设备可能会产生强电流,因而会使HUB上的其他端口的Vbus低于它的最小工作电压,因此必须引用一些限流装置。Hub内 Vbus允许的最大跌落电压为330mV; 下行端口允许的最大负载为10uF+44;每个Hub的下行端口电源线必须带有大于120uF的low ESR 的Bypass电容; 在动态加载期间,通过使连结器上的信号端口处于空闲,以使其免受强电流的破坏,这样为了使电压端口首先进行联系。这就保证,在信号端口连接前,分布在下行设备上的电压是可用的。另外,在连接期间,信号线均处于高阻抗状态,因此标准信号线上此时没有电流。92USB2.0协议中文详解协议中文详解USB 电气规范 设备从网络中卸去时,电缆的电感系统将在设备电缆的开口端产生一个很大的回流电压,它是没有破坏性的。但在电缆设备的末端必须有一些小容量的电容器(大于1uF),以保证产生的回流电压不会引起设备端电压极性的改变。但回流电压会产生噪音,通常利用分流电容器进行适当分流以减少噪音,分流电容器对回流电压及其产生的噪声进行缓和。93USB2.0协议中文详解协议中文详解USB 电气规范电气特性详细要求参考USB2.0协议Page 206 Table 7-7. DC Electrical Characteristics;94USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范95USB2.0协议中文详解协议中文详解USB 协议层规范USB 采用 little edian字节顺序,在总线上先传输一个字节的最低有效位,最后传输最高有效位,采用NRZI编码,若遇到连续的 6个 1 要求进行人为填充,即插入一个 0(详见NRZI编码.pdf)。 96USB2.0协议中文详解协议中文详解USB 协议层规范所有的 USB 包都由 SYNC 开始,高速包的 SYNC 宽度为 32bit(31bits“0”+1bit“1”),全速/低速包的 SYNC段度为 8bit(0000,0001)。实际接收到的 SYNC长度由于USB HUB 的关系,可能会小于该值。USB 数据包的格式 97USB2.0协议中文详解协议中文详解USB 协议层规范PID 表征了数据包的类型,分为令牌(Token)、数据(Data)、握手(Handshacke)以及特殊包 4大类,共 16种类型的PID。98USB2.0协议中文详解协议中文详解USB 协议层规范99USB2.0协议中文详解协议中文详解USB 协议层规范对于令牌包来说,PID之后是 7位的地址和 4位的端点号。令牌包没有数据域,以 5 位的 CRC 校验和结束。SOF是一类特殊的令牌包,PID 后跟的是11 位的帧编号。对于数据包来说,PID 之后直接跟数据域,数据域的长度为N字节,数据域后以 16 位的 CRC 校验和结束;握手包仅有PID 域,没有数据也没有校验和。分离传输会用到一类特殊的包,Start-Split和 Complete-Split包,格式如下:在Start-Split和Complete-Split包中主要指定了此次分离传输所在的HUB的地址和下行端口编号以及端点类型(控制、中断、批量、同步)。以及此次传输中数据包在整个数据中的位置(第一个包、中间的包、末尾的包)。100USB2.0协议中文详解协议中文详解USB 协议层规范数据在 USB总线上的传输以包为单位,包只能在帧内传输。高速USB 总线的帧周期为125uS,全速以及低速 USB 总线的帧周期为 1mS。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。EOF不是一个包,而是一种电平状态,EOF期间不允许有数据传输。 注意:虽然高速 USB总线和全速/低速 USB总线的帧周期不一样,当时 SOF包中帧编号的增加速度是一样的,因为在高速 USB系统中,SOF包中帧编号实际上取得是计数器的高 11位,最低三位作为微帧编号没有使用,因此其帧编号的增加周期也为 1mS。 101USB2.0协议中文详解协议中文详解USB 协议层规范1. 批量事务传输102USB2.0协议中文详解协议中文详解USB 协议层规范批量传输是可靠的传输,需要握手包来表明传输的结果。若数据量比较大,将采用多次批量事务传输来完成全部数据的传输,传输过程中数据包的PID 按照 DATA0-DATA1-DATA0-的方式翻转,以保证发送端和接收端的同步。USB 允许连续 3次以下的传输错误,会重试该传输,若成功则将错误次数计数器清零,否则累加该计数器。超过三次后,HOST 认为该端点功能错误(STALL),放弃该端点的传输任务。一次批量传输(Transfer)由 1 次到多次批量事务传输(Transaction)组成。 翻转同步:发送端按照 DATA0-DATA1-DATA0-的顺序发送数据包,只有成功的事务传输才会导致 PID 翻转,也就是说发送段只有在接收到 ACK 后才会翻转 PID,发送下一个数据包,否则会重试本次事务传输。同样,若在接收端发现接收到到的数据包不是按照此顺序翻转的,比如连续收到两个 DATA0,那么接收端认为第二个 DATA0 是前一个 DATA0 的重传。103USB2.0协议中文详解协议中文详解USB 协议层规范2. 控制传输(Transaction)一次控制传输分为三(或两个)个阶段:建立(Setup)、数据(DATA)(可能没有)以及状态(Status)。每个阶段都由一次或多次(数据阶段)事务传输组成(Transaction)右图为建立阶段的事务传输流程图。可以看出:与批量传输相比,在流程上并没有多大区别,区别只在于该事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。104USB2.0协议中文详解协议中文详解USB 协议层规范建立阶段过后,可能会有数据阶段,这个阶段将会通过一次或多次控制传输事务,完成数据的传输。同样也会采用PID翻转的机制。建立阶段,Device只能返回 ACK包,或者不返回任何包。最后是状态阶段,通过一次方向与前一次相反的控制事务传输来表明传输的成功与否。如果成功会返回一个长度为 0 的数据包,否则返回 NAK或 STALL。下图为整个控制传输的示意图:105USB2.0协议中文详解协议中文详解USB 协议层规范3.中断传输 中断传输在流程上除不支持PING 之外,其他的跟批量传输是一样的。他们之间的区别也仅在于事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。 主机在排定中断传输任务时,会根据对应中断端点描述符中指定的查询间隔发起中断传输。中断传输有较高的优先级,仅次于同步传输。同样中断传输也采用PID翻转的机制来保证收发端数据同步。下图为中断传输的流程图。106USB2.0协议中文详解协议中文详解USB 协议层规范中断传输流程图中断传输流程图107USB2.0协议中文详解协议中文详解USB 协议层规范4.同步传输 同步传输是不可靠的传输,所以它没有握手包,也不支持PID翻转。主机在排定事务传输时,同步传输有最高的优先级。108USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构 USB 主机:硬件和软件USB HUB 规范109USB2.0协议中文详解协议中文详解USB 设备架构在 USB 设备架构中,规范主要定义了 USB 设备的各种状态、常用操作、USB 设备请求、描述符、设备类等。110USB2.0协议中文详解协议中文详解USB 设备架构枚举的过程介绍连接了设备的 HUB 在 HOST 查询其状态改变端点 时返回对应的 bitmap,告知HOST 某个PORT状态发生了改变。 主机向 HUB 查询该PORT的状态,得知有设备连接,并知道了该设备的基本特性。 主机等待(至少 100mS)设备上电稳定,然后向 HUB 发送请求,复位并使能该PORT。 HUB执行PORT复位操作,复位完成后该PORT就使能了。现在设备进入到defalut状态,可以从Vbus获取不超过 100mA 的电流。主机可以通过 0地址与其通讯。 主机通过0地址向该设备发送get_device_descriptor标准请求,获取设备的描述符。111USB2.0协议中文详解协议中文详解USB 设备架构主机再次向 HUB 发送请求,复位该PORT。 主机通过标准请求 set_address给设备分配地址。 主机通过新地址向设备发送 get_device_descriptor标准请求,获取设备的描述符。 主机通过新地址向设备发送其他 get_configuration请求,获取设备的配置描述符。根据配置信息,主机选择合适配置,通过 set_configuration请求对设备而进行配置。这时设备方可正常使用。112USB2.0协议中文详解协议中文详解USB 设备架构USB 设备的常用操作包括:设备连接、设备移除、设备配置、地址分配、数据传输、设备挂起、设备唤醒等。USB 的请求包括标准请求、类请求以及厂商请求三类。所有的请求都通过默认管道发送,按照控制传输的三个阶段进行。首先HOST 通过一次控制事务传输向Device发送一个8 字节的 Setup 包,这个包说明了请求的具体信息,如请求类型、数据传输方向、接收目标(Device/Interface/Endpoint等)。USB 标准请求共包括 11 个请求,如清除特性(Clear_Feature)、得到配置(Get_Configuration)、得到描述(Get_Descriptor)、设置地址(Set_Address)等。113USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范114USB2.0协议中文详解协议中文详解USB 主机 :硬件和软件主要定义了USB 主机的硬件和软件组成及其在 USB 传输中的行为,这部分的硬件设计主要指 EHCI 的设计,软件的设计主要是设备驱动程序和 USB 系统软件的设计。其中 USB 系统软件一般由操作系统提供。由于跟项目硬件设计关联不大,此处略去。115USB2.0协议中文详解协议中文详解USB2.0 协议USB 体系简介USB 数据流模型USB 物理规范USB 电气规范USB 协议层规范USB 设备架构; USB 主机:硬件和软件USB HUB 规范116USB2.0协议中文详解协议中文详解USB HUB 规范这一章描述了 USB HUB 的架构,主要从 HUB Repeater、HUB Controller 以及Transaction Translator三个方面展开。另外还包括USB HUB类的请求及描述符。从功能上来说,HUB 必须支持连接行为、电源管理、设备连接/移除检测、总线错误检测和恢复、高/全/低速设备支持。 117USB2.0协议中文详解协议中文详解USB HUB 规范USB HUB 自身的工作速度由上行PORT的连接速度决定。从结构上分,USB HUB由 HUB Repeater 、 HUB Controller 及Transaction Translator 三部分组成。HUB Repeater 主要负责连接的建立和撤销,即完成上行PORT和下行PORT工作在相同速度的连接管理。同时还支持错误的检测与恢复以及设备连接/移除的检测。HUB Controller负责与 HOST通讯,完成与 HOST的交互(请求的响应)、HUB 的控制及管理。Transaction Translator 主要负责高速的分离传输,并把它们分发到连接了全/低速设备的下行 PORT。Routing Logic负责将下行PORT 连接到HUB Repeater或者Transaction Translator(TT)当 USB HUB的上行PORT 连接在全速/低速时,TT不工作,HUB Repeater工作在全速/低速模式。当USB HUB 的上行PORT连接在高速时,TT 工作,HUB Repeater工作在高速模式。 118USB2.0协议中文详解协议中文详解USB HUB 规范数据的转发下行方向上:USB HUB 采用广播的方式向所有使能的、工作与上行 PORT 相同速度的下行PORT转发来自上行PORT的数据包。上行方向上:USB HUB将在下行PORT接收到的数据包,递交到上行PORT,而不向其他PORT 转发。唤醒信号的转发唤醒信号(Resume)的转发采用完全广播的方式,在任何PORT收到的唤醒信号USB HUB都会向其他PORT 转发。 119USB2.0协议中文详解协议中文详解USB HUB 规范USB HUB 的帧同步USB HUB 必须与HOST保持同步,拥有和 HOST相同的帧周期,这是通过帧同步的操作来实现的。在USB HUB 内有两个计数器一个寄存器,计数器都是用 USB HUB的本地时钟驱动的。其中一个计数器向上计数,用来测量来自上行PORT连续两个 SOF包的时间间隔;寄存器用来存储此时间间隔,每次SOF包到来都会被更新;另一个计数器从测得的时间间隔开始向下计数,计到0 时即认为新的一帧开始了。然后加载寄存器中存储的值,重新计数。 120USB2.0协议中文详解协议中文详解USB HUB 规范数字系统的时钟抖动、计数器量化误差都会带来帧周期的抖动,为防止该抖动引起传输错误,USB 规范规定系统中所有部件引起的抖动必须在一定限制范围内,并采取了一定的措施来预防该问题,如EOF1 和 EOF2 时刻的引入。 EOF1 和 EOF2 是两个安全时间,比实际的 EOF时间稍早。USB HUB 在转发数据包时需要参考这两个时间,晚于这两个时间发送的包有可能因为抖动而产生 EOF期间的干扰。121USB2.0协议中文详解协议中文详解USB HUB 规范HUB RepeaterHUB Repeater将接收到数据Repeat出去,这个 repeat是双向的,既包括从上行PORT 到下行PORT的 repeat,又包括型下行PORT到上行PORT的 repeat。需要用 USB HUB 的本地时钟从 PORT 上接收数据,然后再用本地时钟将数据放到 PORT 上去。下图为HUB Repeater的框图。 122USB2.0协议中文详解协议中文详解USB HUB 规范USB PHY 芯片完成了 HUB Repeater大部分的电气层功能,如数据恢复、包检测等。在高速连接中, USB 规范要求从上行PORT到下行PORT 的连接在 SOP (Start of Packet)到来时建立,且延迟不超过 36bit time。实际实验过程中发现即使USB HUB 的Repeater延迟超过40bit time也未导致功能失败。 123USB2.0协议中文详解协议中文详解USB HUB 规范HUB ControllerHUB Controller124USB2.0协议中文详解协议中文详解USB HUB 规范图中右上方是端点 0,即默认的控制端点,HOST 通过向该端点发送标准请求和HUB类请求完成 USB HUB的枚举和控制。如复位某个下行PORT、使能某个下行 PORT、给某个下行PORT 上电等。 图中左上方是一个中断型的状态改变端点,该HUB自身和各下行PORHOST 通过以固定的时间间隔向该端点发起IN的中断传输查询T的状态是否改变。当没有状态改变时,该端点返回NAK的握手包;当有状态改变时返回一个反应了 HUB 自身和各下行 PORT 状态改变信息的 Bitmap。每个 PORT 映射到该Bitmap 中的一位,当该PORT 的状态有改变时,对应的位置 1,这是由 USB HUB 硬件完成的。125USB2.0协议中文详解协议中文详解USB HUB 规范Transaction Translator(TT) TT 在USB HUB中主要负责从高速到全/低速传输事务的转发,完成速度的匹配。从传输的角度来说,主要就是完成分离事务传输(Split Transaction)。下图为 TT的基本结构。 126USB2.0协议中文详解协议中文详解USB HUB 规范和大部分速度匹配逻辑一样,TT 也采用 Buffer 的方式来完成速匹配。Buffer 的一端是一个高速Handler,处理高速数据收发;另一端是全速/低速Handler 处理全速/低速数据的收发。针对传输类型的不同,TT 采用多个 Buffer 来缓存数据。其中同步传输和中断传输的 Start-Split(S-Split)阶段和 Complete-Split(C-Split)阶段分别用一个 Buffer,批量传输和中断传输的 S-Split 和 C-Split 不分开存储,但是在一个 TT 中至少有 2 个用于批量传输和中断传输的 Buffer。 分离传输仅在 HOST 和 HUB 之间发生,对于设备全速/低速设备来说是透明的。一个USB HUB可以有多个 TT,这在 USB协议中是允许的。 127USB2.0协议中文详解协议中文详解USB HUB 规范按照处理方式的区别,TT 中的分离传输可以分为两类周期分离传输和非周期分离传输。周期分离传输指的是同步分离传输和中断分离传输,非周期分离传输指的是批量分离传输和控制分离传输。 同步传输和中断传输被归为周期传输是因为它们的传输是有周期的,HOST 以固定的间隔向同步端点和中断端点发起传输。相对应的,批量传输和控制传输没有固定的周期。128USB2.0协议中文详解协议中文详解ThanksThanksQ&AQ&A129USB2.0协议中文详解协议中文详解此课件下载可自行编辑修改,供参考!此课件下载可自行编辑修改,供参考!感谢你的支持,我们会努力做得更好!感谢你的支持,我们会努力做得更好!
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号