USB协议PPT(原创).pdf
USB2.0 USB2.0 USB2.0 USB2.0 协议概述协议概述 制作:周清海制作:周清海 导师:朱明程导师:朱明程 徐渊徐渊Email:Email:Email:Email:深圳大学深圳大学 EDAEDA中心中心 2010.09.012010.09.01提纲提纲背景及特点USB系统组成通信流信息包事务处理传输类型差错控制设备状态背景背景USB产生之前,外设与PC机通信通过各种接口来实现:ISA,PCI,PS/2,串行接口、并行接口等,存在很多缺陷:1.非共享式-同一时间一个接口只能连接一个外设 -无法满足大量外设2.体积庞大 不利于PC外设小型化3.规格不一 使用时要面对种类繁多的I/O扩展槽和外部 口,不方便 4.采用传统的I/O模式,映射为CPU的I/O地址并分配一个IRQ(中断请求)带来I/O地址冲突、所指定的IPQ被别的外设占用特点特点 1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出了USB1.0。与传统接口相比,优点:1)热插拔热插拔。2)即插即用即插即用。自动配置,外设接入,操作系统自动检测加载驱动3)共享式接口共享式接口。USB端口支持多个外设连接,采用“菊花瓣”式连接方式,通过USB集线器,一个USB主控制器最多可连接126个外设。4)体积小体积小。与RS232,并行接口等比较,更小且薄5)节省系统资源节省系统资源。一个主控制器只需一根IRQ和一些I/O地址空间6)灵活灵活。支持三种传输速率:低速1.5Mb/s,全速12Mb/s,高速48Mb/s;4种传输类型:块传输,同步传输,中断传输,控制传输。使得能适合多种外设7)低成本低成本。功能强大,但组件和电缆并不贵8)性能可靠性能可靠。通过硬件设计和数据传输协议两方面保证可靠性9)提供电源。提供电源。总线供电总线供电 自供电自供电10)向下兼容向下兼容。低速外设连接在高速主机上时不影响高速外设速度速度应用特性低速(LS)交互设备10100kb/s键盘、鼠标输入笔游戏外设价格低廉易于使用热插拔可支持多种外设全速(FS)电话、音频500K10Mb/sISBNPBXPOTS音频(同上)保证带宽保证延时高速(HS)视频、磁盘25400Mb/s视频磁盘(同上)高带宽USBUSBUSBUSB应用范围和特性应用范围和特性USBUSBUSBUSB系统组成系统组成USB体系:主机host,设备devices,物理连接interconnect三部分主机主机:提供USB接口和接口管理功能的硬件、软件、固件的复合体。PC机或OTG设备。一个USB系统只能有一个主机。设备设备:1.集线器HUB:扩展主机接口,设备可以通过其接入主机;2.功能设备物理连接物理连接:即USB电缆。USB使用差分信号传输数据,全速/高速模式电缆必要外层屏蔽和铜漏线,且差分数据线双绞。一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500mA USBUSBUSBUSB层次星型总线拓扑结构层次星型总线拓扑结构层次星型拓扑结构,可防止环形连接,主控制器(根集线器)是结构起点以hub为中心每层都是功能设备到hub的点对点连接最多7层(包括根层)最多支持127个USB设备(包括根集线器,去掉0端点)除根集线器,最多5个HUB相连在USB2.0系统中,高速集线器有一个特殊的作用:把全速/低速信号与高速信号隔开。Hub下行端口允许直接连接全速/低速USB设备,通信也仍是全速/低速,hub与主控制器通信却始终是高速下图描述了高速、全速、低速USB设备的混合连接USBUSBUSBUSB系统分层系统分层互连互连主机主机USBUSBUSBUSB设备设备客户软件客户软件功能单元功能单元USBUSBUSBUSB系统软件系统软件USBUSBUSBUSB逻辑设备逻辑设备USBUSBUSBUSB总线接口总线接口USBUSBUSBUSB总线接口总线接口实际通信流实际通信流逻辑通信流逻辑通信流功能层功能层USBUSBUSBUSB设备层设备层USBUSBUSBUSB总线接口层总线接口层终端用户看来,USB系统是USB设备到主机的简单连接,但对开发人员说,这种连接可分为三个逻辑层:功能层,USB设备层,USB总线接口层,每一层都由主机和USB设备不同功能模块组成。这种分层简化了USB通信机制。USBUSBUSBUSB主机:客户软件,系统软件,总线接口主机:客户软件,系统软件,总线接口(1 1 1 1)客户软件:)客户软件:1.USB设备驱动软件负责和USB系统软件进行接口。向USB总线驱动程序发出I/O请求包(IRP)启动一次数据传输,IN或OUT。根据数据方向,提供空内存或数据。它并不知道USB的串行传输机制2.界面应用程序和1进行接口,以操纵USB设备,向用户提供可视化操作,最上层,只能看到USB设备发送和接收的原始数据 USBUSBUSBUSB主机:客户软件,系统软件,总线接口主机:客户软件,系统软件,总线接口(2 2 2 2)USBUSBUSBUSB系统软件系统软件1.USB总线驱动程序(USBD)USBUSBUSBUSB设备使用前,要初始化,称为设备使用前,要初始化,称为USBUSBUSBUSB设备的配置。在设备的配置。在该过程,该过程,USBDUSBDUSBDUSBD会检测设备特性,并与设备建立通信管道。会检测设备特性,并与设备建立通信管道。另外,另外,USBDUSBDUSBDUSBD理解理解USBUSBUSBUSB通信机制,当收到通信机制,当收到USBUSBUSBUSB设备驱动程设备驱动程序发来的序发来的IRPsIRPsIRPsIRPs,会把这些,会把这些I/OI/OI/OI/O请求的数据重新组织,使具请求的数据重新组织,使具有有USBUSBUSBUSB特定格式特定格式事务处理(如下图事务处理(如下图)2.USB主控制器驱动程序(HCD)它的存在,使客户软件数据传输不必知道它的存在,使客户软件数据传输不必知道USBUSBUSBUSB主控制器硬主控制器硬件细节。件细节。HCDHCDHCDHCD负责把负责把USBDUSBDUSBDUSBD建立的事务处理安排在建立的事务处理安排在USBUSBUSBUSB总总线上,方法是建立一系列事务处理列表。以帧线上,方法是建立一系列事务处理列表。以帧/小帧为单小帧为单位,可包含一个或多个事务处理。位,可包含一个或多个事务处理。(如下图如下图)3.非USB主机软件(可选)事务处理1事务处理2事务处理3*IRPIRP中事务处理 事务处理1 令牌,数据,握手 事务处理2 令牌,数据,握手帧/小帧事务处理列表 USBUSBUSBUSB主机:客户软件,系统软件,总线接口主机:客户软件,系统软件,总线接口(3 3 3 3)USBUSBUSBUSB总线接口总线接口1.主控制器负责读取HCD建立的事务处理列表,并安排在一系列长度为1ms的帧(全速)/125us小帧(高速),发送到USB总线上低速在全速环境实现,看不到帧 把带宽分成多个帧,以SOF令牌开始,EOF状态结束。全速,1ms发出SOF,高速125us.除此,还负责对传输数据进行串行编解码,差错控制等SOFSOFSOFSOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOF帧/小帧N-1帧/小帧N帧/小帧N+12.根集线器为主机提供附加的USB端口,usb1.1:控制器和中继器,USB2.0增加了事务处理翻译器 USBUSBUSBUSB设备设备为了正确描述USB设备的特性,USB提出了设备构架的概念。认为,USB设备由一些配置,接口,端点组成USB设备用各种描述符来说明其设备构架,包括设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符设备设备配置配置配置配置接口接口接口接口接口接口接口接口端点端点端点端点端点端点端点端点端点端点端点端点端点端点端点端点USB设备架构抽象1.设备 代表一个USB设备,由一个或多个配置组成。一个USB设备,只能有一个设备描述符。如果高速设备既用高速又用全速,则还须支持设备限定描述符,以指出另一传输速率下设备总体信息。2.配置 一个USB设备可包含一个或多个配置,如USB设备的低功耗模式和高功耗模式分别对应一个配置3.接口 一配置可含一个或多个接口,如一个光盘驱动器可含一个大容量存储接口和音频接口,接口是一个端点的集合,每一接口必有一个接口描述符4.端点 USB设备中实际物理单元,USB数据传输就是在主机和USB各端点之间进行。端点一般由接口芯片提供,每端点都有唯一的端点号,传输方向也是确定的。利用设备地址,端点号和传输方向可指定一个端点。端点的特性决定了与主机通信的传输类型。如控制端点只能使用控制传输。0号端点:特殊,有IN,OUT两个物理单元,但只有一个端点号0,只支持控制传输,用作缺省控制管道,对逻辑设备进行配置。对USB系统软件,它在设备连接,上电,复位后就有效。但对客户软件,只在设备正确配置后才可使用它。非0端点:低速设备最多2个,全速/高速最多15个。无论系统软件还是客户软件都必须在设备正确配置后才能使用非0端点。下一页下一页例、设备描述符struct _DEVICE_DESCRIPTOR_STRUCTBYTE bLength;/设备描述符的字节数大小,为0 x12BYTE bDescriptorType;/描述符类型编号,为0 x01WORD bcdUSB;/USB版本号BYTE bDeviceClass;/USB分配的设备类代码,0 x010 xfe为标准设备类,0 xff为厂商自定义类型 /0 x00不是在设备描述符中定义的,如HID BYTE bDeviceSubClass;/usb分配的子类代码,同上,值由USB规定和分配的 BYTE bDeviceProtocl;/USB分配的设备协议代码,同上 BYTE bMaxPacketSize0;/端点0的最大包的大小 WORD idVendor;/厂商编号 WORD idProduct;/产品编号 WORD bcdDevice;/设备出厂编号 BYTE iManufacturer;/描述厂商字符串的索引 BYTE iProduct;/描述产品字符串的索引 BYTE iSerialNumber;/描述设备序列号字符串的索引 BYTE bNumConfiguration;/可能的配置数量 返回返回管道管道 在在USBUSBUSBUSB系统的分层结构中,可以认为数据传输是在主机软件(系统的分层结构中,可以认为数据传输是在主机软件(USBUSBUSBUSB系统软系统软件或客户软件)和件或客户软件)和USBUSBUSBUSB设备的各个端点之间进行的,它们之间的连接称为设备的各个端点之间进行的,它们之间的连接称为管道。是对主机和管道。是对主机和USBUSBUSBUSB设备通信流的抽象,表示主机的设备通信流的抽象,表示主机的数据缓冲区数据缓冲区和和USBUSBUSBUSB设备的端点设备的端点之间存在逻辑数据传输,实际的传输是由之间存在逻辑数据传输,实际的传输是由USBUSBUSBUSB总线接口层还完总线接口层还完成的。成的。流管道 不具USB定义的结构,可用作 块传输,同步传输,中断传输,单向消息管道 USB定义的结构,保用作 控制传输,双向,既支持IN传输,又支持OUT传输,0号端点就是消息管道主机客户软件缓冲区管道功能单元通信流端点管道 USBUSBUSBUSB系统详细描述系统详细描述 客户软件客户软件 (管理一个接口管理一个接口)主控制器SIESIE缓冲区缓冲区无无USBUSBUSBUSB格式格式一组管道一组管道缺省控制管道缺省控制管道0 0 0 0USBUSBUSBUSB系统软件系统软件 (管理软件管理软件)具有具有USBUSBUSBUSB格式格式传输传输USBUSBUSBUSB总线接口总线接口具有USB格式事务处理事务处理USBUSBUSBUSB电缆电缆USBUSBUSBUSB总线接口总线接口USBUSBUSBUSB逻辑设备逻辑设备(端点集合)功能单元功能单元 (接口集合)接口接口 X指定的指定的接口接口无无USBUSBUSBUSB格式格式 每个端点每个端点的数据的数据具有具有USBUSBUSBUSB格式格式端点端点 0管道逻辑数据传输实际数据传输主机主机 互连互连 USBUSBUSBUSB设备设备 NRZINRZINRZINRZI编码编码USB总线上传输的数据进行NRZI编码,确保数据传输完整性。不需单独的时钟信号与数据一起发送,用电平的跳变表“0”,无跳变表“1”.用数据流中的跳变表同步信号,可保证发、收方的同步。长串1导致无电平跳变,引起接收失去同步信号使用位填充机制位填充机制原始数据原始数据总线空闲0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 00 1 1 0 1 0 1 0 0 0 1 0 0 1 1 00 1 1 0 1 0 1 0 0 0 1 0 0 1 1 00 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0NRZINRZINRZINRZI编码编码总线空闲位填充位填充 避免NRZI丢失同步信号,每6个连续“1“后加一“0”,检测时,6个连续“1”后的“0”抛掉原始数据原始数据位填充数据位填充数据同步字段同步字段传输数据传输数据6个连续的1填充位 USBUSBUSBUSB通信流通信流总线上,所有与设备功能单元的数据传输都是由客户软件启动,经过主机USB系统软件与USB总线接口模块才能到过USB设备。USB数据IRPs传输事务处理信息包软/硬件 接口USBD接口HCD接口客户软件USBDHCD事务处理列表主控制器(1)客户软件把数据放入缓冲区,向USB总线驱动程序USBD发出IRP(I/O请求包)(2)USBD响应客户软件发出的IRP,把数据转换为具有USB格式的事务处理,向下传(3)主控制器驱动器程序HCD为这些事务处理建立一系列以帧/小帧为单位事务处理列表,并保证不超过USB带宽(4)主控制器读取事务处理列表,以信息包为单位发送到USB总线,可为低,全,高速(5)USB设备收到信息包后,由SIE自动解包并放入指定端点的接收缓冲内,由芯片固件对其处理 信息包信息包USB事务处理是主机和USB设备间数据传输基本单位基本单位基本单位基本单位,由一系列具有特点格式的信息包组成,如SETUP包,ACK包。根据信息包的种类,事务分三个阶段:(1)令牌阶段令牌阶段:事务处理开始,并定义传输类型(2)数据阶段数据阶段:传送相关数据,长度具体而定,最长1024字节(3)握手阶段握手阶段:报告事务处理状态,数据接收是否成功同步字段令牌包EOP主机同步字段数据包EOP主机/USB设备同步字段握手包EOPUSB设备/主机一个典型的事务处理在某些情况下,事务处理可能不具有三个阶段,如数据丢失,事务处理可能不含数据包和握手包。包的组成单元包的组成单元-字段字段字段字段或域域是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型:1、同步域(SYNC):7个连续“0”和一个“1”,值固定为0000 0001,用于本地时钟与输入同步,NRZI编码后为KJKJKJKK形式,总线从空闲转到K表SOP包开始,最后两个KK表同步字段结束,并PID开始。中间JK跳转提供时钟2、标识域(PID):由四位标识符+四位标识符反码构成,表明包的类型和格式,USB的标识码有16种,反码用于检验,因而PID不用CRC检验。PID0PID1PID2PID3PID4PID5PID6(LSb)(MSb)包标识字段,USB先发送LSb 3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址0缺省地址,任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此一个USB主机只能接127个设备。4、端点域(ENDP):四位,由此可知一个USB设备有的端点数量最大为16个。在IN,OUT,SETUP,SPLIT,PING必须指明端点否则令牌包被忽略 5、帧号域(FRAM):11位,每一个帧都有一个特定的帧号,帧号域最大容量 7FFH,对于同步传输有重要意义。6、数据域(DATA):长度为01023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度7、校验域(CRC):对令牌包和数据包(对于包的分类请看下面)中非PID域进行校验的一种方法,令牌包使用CRC5,数据包CRC16同步字段特定格式EOP信息包组成下面的信息包只指”特定格式“部分 信息包格式信息包格式IN,OUT,SETUP,PING令牌包:字段PIDADDRENDPCRC5位数8745LSbSOF令牌包:字段PID帧号字段CRC5位数8115LSbLSb用于主机和接有低速/全速的高速集线器之间。分别为开始和结束,略不同字段SPLIT PIDHubAddrSCPortSEETCRC5位数87171125SSPLIT包CSPLIT包为USPLIT(SSPLIT,CSPLIT)令牌包:通过SPLIT集线器可把低速/全速从高速分离出来,低速/全速传输环境下集线器通过禁止低速端口的方法阻止全速事务在低速设备上运行。主机在开始低速事务前必先发一PRE令牌包(前导包)表其后传一低速包,集线器会激活低速端口,而其它USB会忽略前导包。只含PID,且无CRC字段PID位数8LSbPRE令牌包根据PID不同有四种类型DATA0,DATA1支持数据触发机制。SPLIT使用DATA0,DATA1,MDATA。高速同步四种DATA0,DATA1,DATA2,MDATA字段PID数据字段CRC16位数8最大1024字节16LSb数据包数据包仅含8位PID之后是EOP信号,无CRC字段PID位数8LSb握手包握手包PRE令牌包数据包数据包握手包握手包事务处理事务处理IN事务处理:IN令牌包DATAX数据包ACK握手包主机 USB设备 主机令牌阶段 数据阶段 握手阶段IN令牌是否损坏IN端点是否停止设备是否能发数据USB设备响应是-不响应否是-返回STALL包否否否返回NAK否否是发送数据USBUSBUSBUSB设备在设备在ININININ事务响应事务响应数据包是否损坏主机是否能接收数据主机响应是-丢弃数据,不应答否否丢弃数据,不应答否是接收数据,返回ACK主机在主机在ININININ事务响应事务响应7 7 7 7种事务处理种事务处理事务处理OUT事务处理:OUT令牌包DATAX数据包ACK握手包令牌阶段 数据阶段 握手阶段USBUSBUSBUSB设备在设备在OUTOUTOUTOUT事务响应事务响应主机 主机 USB设备OUT令牌或数据包是否损坏OUT端点是否被停止数据触发位是否匹配OSB设备是否能接收数据USB设备响应是-不应答否是-返回STALL否否否-丢弃数据,ACK否否是否NAK否否是是接收数据,ACK事务处理PING事务处理:在低速/全速OUT事务中,如设备暂时不能接收主机数据,则返回NAK,而主机过一定时间后会重试该事务。如果传输数据包容量很大,这种NAK协议会占用大量的总线时间。即低速/全速OUT-NAK事务处理中,USB总线利用率低。为在高速OUT事务中避免这种情况,使用PING协议。在高速OUT中,如设备返回NYET握手包,表暂时没有空间响应OUT事务,这时主机停止发OUT令牌,改发PING令牌,开始PING事务。发PING令牌,如返回ACK表设备有空间,则主机停止PING事务,而开始一个OUT事务;NAK,过一定时间重发PING;STALL表设备该OUT端点已被停止,主机认为设备有错误,将不重试PING事务。如果设备收到的PING令牌包有错误,则忽略。块/控制端点描述符bInterval字段指明了最大NAK-OUT发送率,一个bInterval间隔最多一次NAK握手包。PING令牌包ACK/NAK/STALL握手包 主机 USB设备 令牌阶段 握手阶段PINGPINGPINGPING事务处理事务处理事务处理SETUP事务处理:SETUP事务处理是一种特殊的数据传输,传输的数据具USB定义格式,适用于USB控制传输的建立阶段。三个阶段:令牌,数据(USB定义格式),握手SETUP令牌包DATA0数据包ACK握手包 主机 主机 USB设备 令牌阶段 数据阶段 握手阶段传输成功的SETUP事务处理如USB设备接到SETUP令牌包有错误,则忽略该信息包,不作应答。一旦接收了SETUP令牌包,则一定要接收后面的数据包,且必须返回ACK。设备永远不能对SETUP事务返回STALL,NAK事务处理SOF事务处理:SOF事务处理表USB帧/小帧开始,仅含主机或集线器事务翻译器发出的SOF令牌包,不需要USB设备返回任何握手包。SOFSOFSOFSOF令牌包令牌包主机令牌阶段SOFSOFSOFSOF事务处理事务处理低速低速/全速全速传输帧长1ms,SOF令牌每1ms产生一次。高速高速传输全帧长也为1ms,每帧包含8个小帧125us,SOF令牌每7个小帧产生一次,在1ms时间可看到SOF8次,且具相同帧号,也可定义小帧号USBUSBUSBUSB帧和小帧的关系帧和小帧的关系高速小帧开始(1/8全速帧)高速传输的数据全速帧开始全速传输的数据低速/全速帧(1ms)高速小帧(125us)事务处理SPLIT事务处理:SPLIT事务把低速/全速事务从高速事务中分离出来,适用于主机和高速集线器间数据传输,使主机可在高速事务中开始一低速/全速事务,而不必等低速/全速事务结束就可处理别处高速事务。高速集线器低速/全速设备高速低速高速设备高速主机SPLIT事务SSPLIT令牌低速/全速 令牌包DATAx数据包握手包令牌阶段CSPLIT令牌低速/全速 令牌包令牌阶段DATAx数据包握手包或SSPLIT事务事务CSPLIT事务事务事务处理PRE事务处理:低速/全速事务协议大体相同,只是低速只支持中断和控制传输,数据包最长8字节,低速设备不能接收SOF令牌。正常情况下,低速端口被禁止,当需要向低速端口下行传输时,必先发PRE前导包和IN/OUT令牌,让集线器全能低速端口,使IN/OUT令牌包到达低速端口。PRE事务只有集线器才能识别,不需返回握手包,且不用于高速PREPREPREPRE令牌包令牌包主机令牌阶段PREPREPREPRE事务处理事务处理传输类型不同的USB设备对数据传输提出了不同要求,如数据量,速率,需同步或突发传输等。根据这些要求USB2.0具有四种传输类型:控制传输,中断传输,同步传输,块传输。低速USB只支持控制控制和中断中断传输传输类型端点类型传输方向所传输的数据特点块传输块端点IN或OUT大量,无传输时间和速率要求中断传输中断端点IN或OUT少量或中量,有周期同步传输同步端点IN或OUT大量,速率恒定,有周期控制传输控制端点IN或OUT少量,无传输时间要求,传输有保证四种传输类型四种传输类型传输类型块传输块传输适合传输大量,对传输时间、速率无要求的数据。当USB总线带宽紧张会为其它传输让出所占用的帧/小帧,本身被延迟,此时块传输效率低,费时长。当总线空闲时,会以很快速率传输,传输时间很短,适用打印机打印机,扫描仪扫描仪等。INOUTPINGDATA0/DATA0/DATA0/DATA0/DATA1DATA1DATA1DATA1NAKSTALLACKDATA0/DATA0/DATA0/DATA0/DATA1DATA1DATA1DATA1NAK STALLACKNAKSTALLACKNYET总线总线空闲空闲idleidleidleidle高速出错数据出错空闲空闲出错数据出错高速空闲出错主机主机USBUSBUSBUSB设备设备块事务格式块事务格式令牌令牌数据数据握手握手传输类型中断传输中断传输适用少量或中量,对服务周期服务周期有要求的数据传输。USB为中断传输保留了总线带宽,以保证其在规定周期等到服务,但不一定使用准确速率。适用键盘、鼠标类。采用差错控制差错控制,和重传重传机制来保证传输的正确性INOUTDATA0/DATA0/DATA0/DATA0/DATA1DATA1DATA1DATA1NAKSTALLACKDATA0/DATA0/DATA0/DATA0/DATA1DATA1DATA1DATA1NAKSTALLACK总线总线空闲空闲idleidleidleidle出错数据出错空闲空闲出错数据出错主机主机中断事务格式中断事务格式USBUSBUSBUSB设备设备令牌令牌数据数据握手握手传输类型同步传输同步传输适用大量,速率恒定,服务周期适用大量,速率恒定,服务周期有要求的数据传输。USB为其保留了总线带宽,保证能在每帧/小帧内都得到服务。与中断不同,一直使用准确速率,传输时间可预测。为保证及时性,不采用不采用不采用不采用差错控制和重试机制,不保证每次传输都成功,适用音频,视频设备INOUTDATAxDATAxDATAxDATAxDATAxDATAxDATAxDATAx总线空闲总线空闲idleidleidleidle出错空闲主机主机同步事务格式同步事务格式USBUSBUSBUSB设备设备令牌令牌数据数据数据包采用四种:DATA0、DATA1、DATA2、MDATA不采用数据触发机制但发送顺序有要求高速同步IN数据包顺序高速同步OUT数据包顺序传输类型控制传输控制传输少量,传输时间和速率不要求,保证数据准确。USB保留了带宽,系统软件动态调整所需帧时间,尽快传输。差错控制和重试机制。用于收发与USBUSBUSBUSB设备配置有关设备配置有关的数据(设备地址,配置描述符),也可用作其它控制事务处理含建立建立,数据数据,状态状态三个阶段,每个阶段由特定事务组成.(1 1 1 1),建立建立阶段完成主机向设发送控制请求,具USB定义格式,由一个SETUP事务组成。设备一旦接收了SETUP包,一定要接收后面的数据且只能只能返回ACK。如SETUP损坏,不响应。SETUP的数据总使用DATA0,长度固定为8字节,指明了主机向设备发出的控制请求,包括11种标准USB设备请求,设备类请求,厂商自定义请求。SETUP的任务就是发送这些请求给设备以完成特定功能,如设备不能完成该控制请求,返回STALL,在接收到下一个SETUP自动恢复,“协议STALL”SETUPDATA0DATA0DATA0DATA0总线空闲总线空闲idleidleidleidle出错空闲主机主机SETUP事务处理格式事务处理格式USBUSBUSBUSB设备设备令牌令牌数据数据ACKACKACKACK握手握手传输类型控制传输控制传输(2 2 2 2)数据阶段)数据阶段可选,如有,将包括一个一个或或多个多个IN/OUT事务,用于建立阶段要求的具有USB定义格式的数据。数据阶段的事务有相同方向,即含的事务处理必须全是IN或全是OUT。与块传输有相同的协议规则。控制IN/OUT传输的数据量大于控制端点所支持的最大数据包长度,则主控制器会将其分成多个IN/OUT事务,除最后一个事务处,其它IN/OUT事务数据包长度等于端点支持最大包。最后一个如小于最大包,则表数据阶段结束。如最后一个包等于最大包,则还需发一个长度为0数据包,以表数据阶段结束。(3 3 3 3)状态阶段)状态阶段是控制事务处理最后一阶段,由一个IN事务或OUT事务组成,总是使用DATA1数据包。状态阶段传输方向与数据阶段相反,即如数据为IN,则状态为OUT,用来报告建立阶段和数据阶段的传输结果。USB设备的状态控制OUT(在数据阶段发送)控制IN(在握手阶段发送)USB设备忙NAK握手包NAK握手包USB设备有错误STALL握手包STALL握手包USB设备成功处理零长度的数据包ACK握手包差错控制数据在通过USB实际传输时,可能会出现各种错误,如握手包丢失,传输超时,数据收发不同步。为了能检测这些错误并从中恢复出来,USB提供了一系列差错控制机制,主要有(1)信息包错误控制机制:忽略或丢弃以超时重试等(2)总线超时控制机制:主机或设备收到的包有错误,则它们会丢弃该包不作任何应答,包发送方将得不到任何响应,这里它就会认为该包在传输过程发生了错误,这种错误情况就称为总线超时。(3)EOP错误控制机制(4)数据触发机制:通过DATA0,DATA1数据包以及收发方的数据触发位来完成。设备状态根据USB设备所实现的功能,可含若干状态,如上电,采集等,有的状态是外部可见的,的只适用于设备内部。下面的状态对于设备是可见的,包括:连接,上电,缺省,地址,配置,挂起,下表对此进行了说明。连接上电缺省地址配置挂起说明否-设备尚未连接到USB是否-已连接到USB,但未上电是是否-已连接,上电,但未复位是是是否-已连接,上电,复位,但未分配唯一的地址,使用缺省地址是是是是否-已连接,上电,复位,地址分配,但尚未被配置是是是是是否连接,上电,复位,分配地址,配置完成,未挂起,主机可使用设备功能是是-是1已连接,上电,3ms无总线活动,进入挂起2处缺省,地址,配置状态时也可进入挂起3设备挂起时,主机不能使用设备功能USBUSBUSBUSB设备状态间的转换USBUSBUSBUSB设备速度识别设备速度识别主机或集线器的主机或集线器的下行端口下行端口USB电缆USBUSBUSBUSB设备设备D+D-RpdRpdRpd=15KRpdpdpdpd=1.5kRpuVcc:3.03.6VD+D-低速低速RpuVcc:3.03.6V全速全速Vcc:3.03.6VRpu高速高速检测到相应的数据线上有电压检测到相应的数据线上有电压(15/(15+1.5)Vcc)(15/(15+1.5)Vcc)(15/(15+1.5)Vcc)(15/(15+1.5)Vcc)并持续并持续2.5us2.5us2.5us2.5us以上,就认为以上,就认为低速低速/全速全速已连接已连接 高速设备高速设备连接起始需以全速速率与主机通信,连接起始需以全速速率与主机通信,完成配置需在完成配置需在D+D+D+D+上拉电阻,设备正常工作后,上拉电阻,设备正常工作后,如采用高速传输则不可上拉,如仍用全速则必如采用高速传输则不可上拉,如仍用全速则必在上拉电阻在上拉电阻USB3.0USB3.0USB3.0USB3.0超过超过超过超过300MB/s 300MB/s 300MB/s 300MB/s