1、USB接口介绍接口介绍主讲人:王雷主讲人:王雷地点:实验室地点:实验室2016.11.08USB定义USB发展USB分类USB设计l接口回路lUSBPower设计LAYOUTUSB2.0协议l概述l主机l设备l物理特性l通信协议22目录目录定义定义USB,是英文UniversalSerialBus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。32013/12/03发展发展USB版本
2、理论最大传输速率速率称号最大输出电流推出时间USB1.01.5Mbps(192KB/s)低速(Low-Speed)5V/500mA1996年1月USB1.112Mbps(1.5MB/s)全速(Full-Speed)5V/500mA1998年9月USB2.0480Mbps(60MB/s)高速(High-Speed)5V/500mA2000年4月USB3.05Gbps(500MB/s)超高速(Super-Speed)5V/900mA2008年11月/2013年12月USB3.1Gen210Gbps(1280MB/s)2 超高速+(Super-speed+)20V/5A2013年12月42013/1
3、2/03发展发展lUSB3.0是一种USB规范,该规范由英特尔等公司发起。USB3.0也被认为是SuperSpeedUSB为那些与PC或音频/高频设备相连接的各种设备提供了一个标准接口。只是个硬件设备,计算机内只有安装USB3.0相关的硬件设备后才可以使用USB3.0相关的功能!从键盘到高吞吐量磁盘驱动器,各种器件都能够采用这种低成本接口进行平稳运行的即插即用连接,用户基本不用花太多心思在上面。新的USB3.0在保持与USB2.0的兼容性的同时,还提供了下面的几项增强功能:极大提高了带宽高达5Gbps全双工(USB2.0则为480Mbps半双工)。实现了更好的电源管理。能够使主机为器件提供更多
4、的功率,从而实现USB充电电池、LED照明和迷你风扇等应用。能够使主机更快地识别器件。新的协议使得数据处理的效率更高。25lUSB3.1是最新的USB规范,该规范由英特尔等大公司发起。与现有的USB技术相比,新USB技术使用一个更高效的数据编码系统,并提供一倍以上的有效数据吞吐率(USBIF协会)。它完全向下兼容现有的USB连接器与线缆。USB3.1作为下一代的USB传输规格,通常被称为“SuperSpeed+”,将在未来替代USB3.0。lUSB3.1(SuperSpeed+)将供电的最高允许标准提高到了20V/5A,供电100W。提供更快的充电。lUSB3.1支持高达10Gbps的传输速率
5、,具有更快的传输速度。lUSB3.1新增USBA/V影音传输,支持手机显示输出。lUSB3.1是一个万能的通用接口,是手机、平板等小型设备所需要的,能够极大提升设备的连接性。而从目前来看,USB3.1中的Type-C最有可能成为未来的连接标准,提供数据传输、外设连接、显示输出等一体化的连接方案。26发展发展271.USB 2.0 60MB/S=480Mbps/8 bit2.对于USB3.0 速度并不是除以8,由于USB3.0传输是10bit模式故为 5Gbps/10bit=500MB/S3.为了区别USB2.0与USB3.0接口,一般将USB3.0颜色设置为蓝色。补充说明分类分类lType-A
6、:标准的Type-A是电脑、电子配件中最广泛的介面标准,鼠标、U盘、数据线上大的一方都是此接口,体积也最大。lType-B:一般用于打印机、显示器USBHUB等诸多外部USB设备lType-C:它拥有比Type-A及Type-B均小得多的体积,其大小甚至能与Mini-USB及Micro-USB相媲美,是最新的USB接口外形标准。另外,Type-C是一种既可以应用在PC(主设备)又可以应用在外部设备(从设备)的接口类型,这是划时代的。82013/12/03分类分类l伴随USB2.0传输协议诞生也衍生了Mini-USB及Micro-USB接口。它们也都分别分为Type-A和Type-B。到了USB
7、3.0时代,由于传输速度的提升带来了针脚位的提升,因此仅有Type-AUSB3.0接口保持与以往形状一样,Type-B和Micro-USB都改变了外形(体积增大)。92013/12/03分类分类此外,对于USB接口又分为公口和母口。公口一般是外设的端口,母口一般是主机上接口。例如电脑自带的就是USB母口。(具体见下一页图示)102013/12/03211分类分类设计接口回路l我们公司笔记本一般使用的是Type-A和Type-C类型母口。对于Type-A类型接口,目前公司配备USB3.0接口。回路如下:122013/12/03lType-A接口在硬件回路上由一组USB2.0差分信号信号USB_P
8、N2,USB_PP2以及两组USB3.0差分信号USB32_RX_N,USB32_RX_P,USB32_TX_N,USB32_TX_P组成。在功能上该接口向下兼容USB2.0功能。l一般USB的POWER接5VS或5VAlUSB差分线接BEAD或者共模电感一般为EMI需要。末端接TVS是安规要求。213设计l对于Type-C接口回路如下:设计142013/12/03l在NFSV15XX系列机种上,Type-C3.0和Type-C3.1共用同一接口。由于现有平台PCH没有USB3.1接口,故在使用USB3.1通信时需要外加一个转换芯片ASM1142。l在NFSV15XX上Type-C3.1包含U
9、SB3.1输出传输的功能,但是不支持5V/20A供电输出。l同Type-A接口一样,差分信号线接BEAD或者共模电感一般为EMI需要。末端接TVS是安规要求。215设计ASM1142USBPOWER设计216设计l在电脑插入adapter或者battery时候,+3.3VA_PCH提供Enable信号,5VA(5VS)电源正常供电。l在末端加保险丝,进行过流保护。217设计lUSB2.0218LAYOUT219LAYOUTlUSB2.0lUSB3.0LAYOUT220LAYOUT注意事项l布线时信号线不能走在时钟、振荡器、IC以及电磁元件下面;l布线时候相似的信号要布在一起;l不同层的线距线宽
10、可能会有所不同,一般DesignGuide会有说明;221LAYOUT222USB2.0协议概述lUSB网络采用阶梯式星形拓扑结构,如图示。一个USB网络中只能有一个主机。主机内设置了一个根集线器,提供了主机上的初始附属点。集线器集线器(复合设备)(复合设备)游戏杆游戏杆USBUSB设备设备(根阶梯根阶梯)阶梯阶梯0 0扫描仪扫描仪鼠标鼠标集线器集线器USBUSB设备设备阶梯阶梯1 1阶梯阶梯2 2PCPC主机主机(根集线器)(根集线器)223USB2.0协议l主机定时对集线器的状态进行查询。当一个新设备接入集线器时,主机会检测到集线器状态改变,主机发出一个命令使该端口有效并对其进行设置。位于
11、这个端口上的设备进行响应,主机收到关于设备的信息,主机的操作系统确定对这个设备使用那种驱动程序,接着设备被分配一个唯一标识的地址,范围从0127,其中0为所有的设备在没有分配惟一地址时使用的默认地址。主机向它发出内部设置请求。当一个设备从总线上移走时,主机就从其可用资源列表中将这个设备删除。l总的来说USB网络由主机和设备组成。224USB2.0协议概括USB网络主机设备客户软件USB总线接口USB系统软件设备端点配置接口字符串管道225USB2.0协议USB主机USB的所有数据通信(不论是上行通信还是下行通信)都由USB主机启动,所以USB主机在整个数据传输过程中占据着主导地位。在USB系统
12、中只允许有一个主机。从开发人员的角度看,USB主机可分为三个不同的功能模块:客户软件、USB系统软件和USB总线接口。l客户软件客户软件负责和USB设备的功能单元进行通信,以实现其特定功能。一般由开发人员自行开发。客户软件不能直接访问USB设备,其与USB设备功能单元的通信必须经过USB系统软件和USB总线接口模块才能实现。客户软件一般包括USB设备驱动程序和界面应用程序两部分。226USB2.0协议lUSB系统软件 USB系统软件负责和USB逻辑设备进行配置通信,并管理客户软件启动的数据传输。USB逻辑设备是程序员与USB设备打交道的部分。USB系统软件一般包括USB总线驱动程序和USB主控
13、制器驱动程序这两部分。这些软件通常由操作系统提供,开发人员不必掌握。lUSB总线接口USB总线接口包括主控制器和根集线器两部分。根集线器为USB系统提供连接起点,用于给USB系统提供一个或多个连接点(端口)。主控制器负责完成主机和USB设备之间数据的实际传输,包括对传输的数据进行串行编解码、差错控制等。该部分与USB系统软件的接口依赖于主控制器的硬件实现,开发人员不必掌握。227USB2.0协议USB设备一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备和功能单元。这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);USB逻辑设备被USB系统软件看作是一个端点的集合;
14、功能单元被客户软件看作是一个接口的集合。SIE、端点和接口都是USB设备的组成单元。为了更好地描述USB设备的特征,USB提出了设备架构的概念。从这个角度来看,可以认为USB设备是由一些配置、接口和端点组成的,即一个USB设备可以含有一个或多个配置,在每个配置中可含有一个或多个接口,在每个接口中可含有若干个端点。其中,配置和接口是对USB设备功能的抽象,实际的数据传输由端点来完成。在使用USB设备前,必须指明其采用的配置和接口。这个步骤一般是在设备接入主机时设备进行自举时完成的,我们在后面会进一步介绍。USB设备使用各种描述符来说明其设备架构,包括设备描述符、配置描述符、接口描述符、端点描述符
15、以及字符串描述符,它们通常被保存在USB设备的固件程序中。228USB2.0协议l设备设备代表一个USB设备,它由一个或多个配置组成。设备描述符用于说明设备的总体信息,并指明其所含的配置的个数。一个USB设备只能有一个设备描述符。l配置一个USB设备可以包含一个或多个配置,如USB设备的低功耗模式和高功耗模式可分别对应一个配置。在使用USB设备前,必须为其选择一个合适的配置。配置描述符用于说明USB设备中各个配置的特性,如配置所含接口的个数等。USB设备的每一个配置都必须有一个配置描述符。l接口一个配置可以包含一个或多个接口,如对一个光驱来说,当用于文件传输时使用其大容量存储接口;而当用于播放
16、CD时,使用其音频接口。接口是端点的集合,可以包含一个或多个可替换设置,用户能够在USB处于配置状态时,改变当前接口所含的个数和特性。接口描述符用于说明USB设备中各个接口的特性,如接口所属的设备类及其子类等。USB设备的每个接口都必须有一个接口描述符。229USB2.0协议l端点端点是USB设备中的实际物理单元,USB数据传输就是在主机和USB设备各个端点之间进行的。端点一般由USB接口芯片提供,例如Freescale的MC68HC908JB8。USB设备中的每一个端点都有唯一的端点号,每个端点所支持的数据传输方向一般而言也是确定的:或是输入(IN)或是输出(OUT),也有些芯片提供的端点的
17、数据方向是可以配置的,例如MC68HC908JB8包含有两个用于数据收发的端点:端点1和端点2。其中端点1只能用于数据发送,即支持输入(IN),端点2既能用于数据发送也可用于数据接收,即支持输入(IN)和输出(OUT)操作。需要注意的是,在这里数据的传输方向是站在主机的立场上来看得。比如端点1只能发送数据,在主机看来是端点1向主机输入数据,即IN操作;当端点2配置为接收数据时,主机向端点2输出数据,即OUT操作。这一点是初学者比较容易产生混淆的地方。利用设备地址、端点号和传输方向就可以指定一个端点,并和它进行通信。0号端点比较特殊,它有数据输入IN和数据输出OUT两个物理单元,且只能支持控制传
18、输。230USB2.0协议l字符串在USB设备中通常还含有字符串描述符,以说明一些专用信息,如制造商的名称、设备的序列号等。它的内容以UNICODE的形式给出,且可以被客户软件所读取。对USB设备来说,字符串描述符是可选的。l管道在USB系统结构中,可以认为数据传输是在主机软件(USB系统软件或客户软件)和USB设备的各个端点之间直接进行的,它们之间的连接称为管道。管道是在USB设备的配置过程中建立的。管道是对主机和USB设备间通信流的抽象,它表示主机的数据缓冲区和USB设备的端点之间存在着逻辑数据传输,而实际的数据传输是由USB总线接口层来完成的。管道和USB设备中的端点一一对应。一个USB
19、设备含有多少个端点,其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管道中数据的传输类型,如中断端点对应中断管道,且该管道只能进行中断传输。传输类型在后面会介绍。不论存在着多少条管道,在各个管道中进行的数据传输都是相互独立的。231USB2.0协议物理特性lUSB接口USB使用一根屏蔽的4线电缆与网络上的设备进行互联。数据传输通过一个差分双绞线进行,这两根线分别标为D+和D-,另外两根线是Vcc和Ground,其中Vcc向USB设备供电。使用USB电源的设备称为总线供电设备,而使用自己外部电源的设备叫做自供电设备。为了避免混淆,USB电缆中的线都用不同的颜色标记,如下表所示。232U
20、SB2.0协议物理特性lUSB信号USB2.0使用差分信号。其特点如下:传统的传输方式大多使用“正信号”或者“负信号”二进制表达机制,这些信号利用单线传输。用不同的信号电平范围来分别表示1和0,它们之间有一个临界值,如果在数据传输过程中受到中低强度的干扰,高低电平不会突破临界值,那么信号传输可以正常进行。但如果遇到强干扰,高低电平突破临界值,由此造成数据传输出错。差分信号技术最大的特点是:必须使用两条线路才能表达一个比特位,用两条线路传输信号的压差作为判断1还是0的依据。这种做法的优点是具有极强的抗干扰性。倘若遭受外界强烈干扰,两条线路对应的电平同样会出现大幅度提升或降低的情况,但二者的电平改
21、变方向和幅度几乎相同,电压差值就可始终保持相对稳定,因此数据的准确性并不会因干扰噪声而有所降低。233USB2.0协议物理特性lUSB通信格式USB的数据包使用反向不归零编码(NRZI)。上图描述了在USB电缆段上传输信息的步骤。反向不归零编码由传送信息的USB代理程序完成;然后,被编码的数据通过差分驱动器送到USB电缆上;接着,接收器将输入的差分信号进行放大,将其送给解码器。使用该编码和差动信号传输方式可以更好地保证数据的完整性并减少噪声干扰。在USB电缆上使用双向不归零编码和差动信号的传输 NRZI编码器电缆段差分驱动器NRZI解码器差分驱动器D+D-234USB2.0协议物理特性使用反向
22、不归零编码方式可以保证数据传输的完整性,而且不要求传输过程中有独立的时钟信号。反向不归零编码不是一个新的编码方式。它在许多方面都有应用。上图给出了一个数据流和编码之后的结果。在反向不归零编码时,遇到“0”转换,遇到“1”保持。反向不归零码必须保持与输入数据的同步性,以确保数据采样正确。反向不归零码数据流必须在一个数据窗口被采样,无论前一个位时间是否发生过转换。解码器在每个位时间采样数据以检查是否有转换。反向不归零编码 空闲数据反 向 不归零码01101000111010235USB2.0协议物理特性若重复相同的“1”信号一直进入时,就会造成数据长时间无法转换,逐渐的积累,而导致接收器最终丢失同
23、步信号的状况,使得读取的时序会发生严重的错误。因此,在NRZI编码之间,还需执行所谓的位填充的工作。位填充要求数据流中如果有连续的六个“1”就要强行转换。这样接收器在反向不归零码数据流中最多每七个位就检测到一次跳转。这样就保证了接收器与输入数据流保持同步。反向不归零码的发送器要把“0”(填充位)插到数据流中。接收器必须被设计成能够在连续的六个“1”之后识别一个自动跳转,并且立即扔掉这六个“1”之后的“0”位。在在USB电缆上使用双向不归零编码和差动信号的传输电缆上使用双向不归零编码和差动信号的传输00011111111011数据数据空闲空闲双向不归零码双向不归零码填充后数填充后数据据填充位填充
24、位236USB2.0协议物理特性l检测设备连接和速度在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率。USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。USB支持三种类型的传输速率:1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。如图后面图所示。当主控制器或集线器的下行端口上没有USB设备连接时,其D+和D-线上的下拉电阻使得这两条数据线的电压都是近地的(0V);当全速/低速设备连接以后,电流流过由集线器的下拉电阻和设备在D+/D-的上拉电阻构成的分压器。由于下拉电阻的阻值是15K,上拉电阻的阻值是1.5K,所以在D+
25、/D-线上会出现大小为(Vcc*15/(15+1.5)的直流高电平电压。当USB主机探测到D+/D-线的电压已经接近高电平,而其它的线保持接地时,它就知道全速/低速设备已经连接了。237USB2.0协议物理特性l检测设备连接和速度 USB主机主机USB低速低速设备设备USB数据线数据线+5VD+D-15千千欧欧1.5千千欧欧VccD+D-地地15千千欧欧USB主机主机USB全速全速设备设备USB数据线数据线+5VD+D-15千千欧欧1.5千千欧欧VccD+D-地地15千千欧欧238USB2.0协议USB通信协议l包包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线
26、上传输的。USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:1.SYNC字段:由8位组成,作为每个数据封包的前导,用来产生同步作用,使USB设备与总线的包传输率同步,它的数值固定为00000001。2.PID字段:用来表示数据封包的类型。包标识符中的校验字段是通过对类型字段的每个位求反码产生的,PID字段如下图所示:239USB2.0协议USB通信协议l包PID字段包的类型240USB2.0协议USB通信协议l包 3.数据字段:是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输
27、类型的不同而各不相同。在USB包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。(1)设备地址(ADDR)数据域ADDR数据域由7位组成,可用来寻址多达127个外围设备。(2)端点(ENDP)数据域ENDP数据域由4位组成。通过这4个位最多可寻址出32个端点。这个ENDP数据域仅用在IN、OUT与SETUP令牌信息包中。对于慢速设备可支持端点0以及端点1作为中断传输模式,而全速设备则可以拥有16个输入端点(IN)与16个输出端点(OUT)共32个端点。(3)帧序列号当USB令牌包的PID为SOF时,其数据字段必须为11
28、位的帧序列号。帧序列号由主机产生,且每个数据帧自动加一,最大数值为0 x7FF。当帧序列号达到最大数时将自动从0开始循环。(4)数据它仅存于DATA信息包内,根据不同的传输类型,拥有不同的字节大小,从0到1023字节(实时传输)。241USB2.0协议USB通信协议l包4.循环冗余码CRC字段由不同数目的位所组成。根据不同的信息包类型,CRC数据域由不同数目的位所组成。其中重要的数据信息包采用CRC16的数据域(16个位),而其余的信息包类型则采用CRC5的数据域(5个位)。其中的循环冗余码校验CRC,是一种错误检测技术。由于数据在传输时,有时候会发生错误,因此CRC可根据数据算出一个校验值,
29、然后依此判断数据的正确性。5.包结尾字段即发送方在包的结尾发出包结尾信号。USB主机根据EOP判断数据包的结束。242USB2.0协议USB通信协议l信息包格式1令牌(token)包在USB系统中,只有主机才能发出令牌包。令牌包定义了数据传输的类型,它是事务处理的第一阶段。令牌包中较为重要的是SETUP、IN和OUT这三个令牌包。它们用来在根集线器和设备端点之间建立数据传输。一个IN包用来建立一个从设备到根集线器的数据传送,一个OUT包用来建立从根集线器到设备的数据传输。令牌包格式如下:2数据(data)包数据封包含有4个域:SYNC、PID、DATA与CRC16。DATA数据域的位值是根据U
30、SB设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。格式如下:243USB2.0协议USB通信协议l信息包格式3.握手(Handshake)包握手信息包是最简单的信息包类型。在这个握手信息包中仅包含一个PID数据域而已,它的格式如下所列:244USB2.0协议USB通信协议l事务定义:在USB上数据信息的一次接收或发送的处理过程类型:事务处理的类型包括输入(IN)事务处理、输出(OUT)事务处理、设置(SETUP)事务处理和帧开始、帧结尾等类型。处理流程:在输出(OUT)事务处理和设置(SETUP)
31、事务处理中,紧接着SETUP和OUT包后的是DATA包,DATA0和DATA1包是交替地发送的,在DATA包后面,设备将回应一个握手信号,如果设备可以接收数据,就回应ACK包,如果设备忙,就回应NAK包,如果设备出错,则回应STALL包;在IN事务中,IN包后面是设备发来的DATA包或NAK包或STALL包,若设备忙或出错,就发NAK包或STALL包给主机,若设备数据准备好发送,则发DATA包,DATA0和DATA1包也是交替地发送的,紧接着DATA包后面是主机发给设备的握手包,ACK表示主机可以接收数据,NAK包代表主机忙,STALL包代表主机出错。具体详见下图:245USB2.0协议USB
32、通信协议l事务1输入(IN)事务处理输入事务处理表示USB主机从总线上的某个USB设备接收一个数据包的过程。正常的输入事务处理设备忙时的输入事务处理设备出错时的输入事务处理 246USB2.0协议USB通信协议l事务2输出(OUT)事务处理正常的输出事务处理设备忙时的输出事务处理设备出错时的输出事务处理 247USB2.0协议USB通信协议l事务3设置(SETUP)事务处理正常的设置事务处理设备忙时的设置事务处理设备出错时的设置事务处理 248USB2.0协议USB通信协议lUSB传输类型在USB的传输中,制定了4种传输类型:控制传输、中断传输、批量传输以及等时传输。控制传输类型分为23个阶段
33、:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。根据数据阶段的数据传输的方向,控制传输又可分为3种类型:控制读取(读取USB描述符)、控制写入(配置USB设备)以及无数据控制。1控制传输控制传输是USB传输中最重要的传输。它包含3种类型:控制读取、控制写入以及无数据控制。这3种控制传输类型又分为23个阶段:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。阶段一:设置阶段主机从USB设备获取配置信息,并设置设备的配置值。设置阶段的数据交换包含了SETUP令牌封包、紧随其后的DATA0数据封包以及ACK握手封包。它的作用是执行一个设置(概念含糊)的数据交换,并定义此控制传输的内容
34、。249USB2.0协议USB通信协议lUSB传输类型阶段二:数据传输阶段数据传输阶段用来传输主机与设备之间的数据。控制读取是将数据从设备读到主机上,读取的数据USB设备描述符。该过程如下图所示。对每一个数据信息包而言,首先,主机会发送一个IN令牌信息包,表示要读数据进来。然后,设备将数据通过DATA1数据信息包回传给主机。最后,主机将以下列的方式加以响应:当数据已经正确接收时,主机送出ACK令牌信息包;当主机正在忙碌时,发出NAK握手信息包;当发生了错误时,主机发出STALL握手信息包。控制写入则是将数据从主机传到设备上,所传的数据即为对USB设备的配置信息,该过程如下图所示。对每一个数据信
35、息包而言,主机将会送出一个OUT令牌信息包,表示数据要送出去。紧接着,主机将数据通过DATA0数据信息包传递至设备。最后,设备将以下列方式加以响应:当数据已经正确接收时,设备送出ACK令牌信息包;当设备正在忙碌时,设备发出NAK握手信息包;当发生了错误时,设备发出STALL握手信息包。250USB2.0协议USB通信协议lUSB传输类型主机主机(PC)(PC)USBUSB设备设备1.IN1.IN令牌封包令牌封包2.DATA12.DATA1数据封包数据封包3.ACK3.ACK握手封包握手封包主机主机(PC)(PC)USBUSB设备设备1.OUT1.OUT令牌封包令牌封包2.DATA12.DATA
36、1数据封包数据封包3.ACK3.ACK握手封包握手封包251USB2.0协议USB通信协议lUSB传输类型阶段三:状态阶段状态阶段用来表示整个传输的过程已完全结束。状态阶段传输的方向必须与数据阶段的方向相反,即原来是IN令牌封包,这个阶段应为OUT令牌封包;反之,原来是OUT令牌封包,这个阶段应为IN令牌封包。对于控制读取而言,主机会送出OUT令牌封包,其后再跟着0长度的DATA1封包。而此时,设备也会做出相对应的动作,送ACK握手封包、NAK握手封包或STALL握手封包。相对地对于控制写入传输,主机会送出IN令牌封包,然后设备送出表示完成状态阶段的0长度的DATA1封包,主机再做出相对应的动作:送ACK握手封包、NAK握手封包或STALL握手封包。252USB2.0协议USB通信协议lUSB传输类型2实时传输实时传输适用于必须以固定速率抵达或在指定时刻抵达,可以容忍偶尔错误的数据上。实时传输一般用于麦克风、喇叭等设备。实时传输只需令牌与数据两个信息包阶段,没有握手包,故数据传错时不会重传。3批量传输用于传输大量数据,要求传输不能出错,但对时间没有要求,适用于打印机、存储设备等。4中断传输中断传输方式总是用于对设备的查询,以确定是否有数据需要传输。因此中断传输的方向总是从USB设备到主机,常用于如键盘、游戏手柄等。