第7章_USB接口_第1页
第7章_USB接口_第2页
第7章_USB接口_第3页
第7章_USB接口_第4页
第7章_USB接口_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 USB通用串行总线概述概述USBUSB系统结构系统结构USBUSB数据流模型数据流模型USBUSB协议层协议层 USBUSB传输管理传输管理USBUSB设备开发设备开发7.1 7.1 概述概述 问题的提出:问题的提出: 外设与外设与CUPCUP的连接存在的连接存在接口标准各自独立接口标准各自独立、互不兼容互不兼容、无、无法共享的连接头问题,并且法共享的连接头问题,并且安装、配置麻烦安装、配置麻烦。如键盘用如键盘用PS/2接口,连接打印机要用接口,连接打印机要用25针的并行接口,鼠标则要针的并行接口,鼠标则要用串行或用串行或PS/2接口接口. 解决基本思路解决基本思路: : 采用采用通用

2、连接器通用连接器和和自动配置自动配置及及热插拔热插拔技术和相应的软件,技术和相应的软件,实现资源共享和外设简单快速连接,提供设备共享接口来实现资源共享和外设简单快速连接,提供设备共享接口来解决解决PCPC机与外部设备连接的通用性。机与外部设备连接的通用性。n针对这一问题的解决,以针对这一问题的解决,以IntelIntel公司为主,并有公司为主,并有CompaqCompaq、MicrosoftMicrosoft、IBM IBM 、DECDEC、NECNEC等公司共等公司共同开发,提出了同开发,提出了USBUSB通用外设接口标准。通用外设接口标准。USBUSB(Universal Serial B

3、usUniversal Serial Bus)的中文含义是)的中文含义是“通用通用串行总线串行总线”. .n于于19941994年年1111月制定了第一个草案,月制定了第一个草案,19961996年年2 2月公月公布了布了USB1.0USB1.0版本,目前,已发展到版本,目前,已发展到2.02.0版版. .n19971997年,微软在年,微软在Windows97Windows97中开始外挂模块形式中开始外挂模块形式提供对提供对USBUSB的支持,的支持,19981998后,随着后,随着Windows98Windows98中中内置了对内置了对USBUSB接口的支持模块,加上接口的支持模块,加上U

4、SBUSB设备日益设备日益增多,增多,USB USB 逐渐流行起来。逐渐流行起来。USB的主要优点:速度快速度快 USB1.1:USB1.1: 有全速和低速两种方式,主模式为全有全速和低速两种方式,主模式为全速模式,速率为速模式,速率为12Mbps12Mbps,另外为了适应一些不需,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,要很大吞吐量和很高实时性的设备,如鼠标等,USBUSB还提供低速方式,速率为还提供低速方式,速率为1.5Mbps1.5Mbps。 USB2.0:USB2.0: 2000 2000年年9 9月推出的月推出的USB2.0USB2.0协议将使其速协议将使其速率

5、达到率达到480Mbps480Mbps,它非常适用于一些视频输入,它非常适用于一些视频输入/ /输出产品,并很有可能替代输出产品,并很有可能替代SCSISCSI接口标准。接口标准。 设备安装和配置容易设备安装和配置容易 安装安装USBUSB设备不必再打开机箱,所有设备不必再打开机箱,所有USBUSB设备支设备支持热拔插,系统对其进行自动配置,彻底抛弃了持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。过去的跳线和拨码开关设置。实现成本低实现成本低 USBUSB对系统与对系统与PCPC的集成进行了优化,适合于开发低的集成进行了优化,适合于开发低成本的外设。成本的外设。易于扩展易

6、于扩展 通过使用通过使用HubHub扩展可驳接多达扩展可驳接多达127127个外设。标准个外设。标准USBUSB电缆长度为电缆长度为3 3米(低速为米(低速为5 5米)。通过米)。通过HubHub或中继器可以或中继器可以使外设距离达到使外设距离达到3030米。米。使用灵活使用灵活 USBUSB共有共有4 4种传输模式:控制传输(种传输模式:控制传输(controlcontrol)、)、同步传输(同步传输(SynchronizationSynchronization)、中断传输)、中断传输(interruptinterrupt)、块传输()、块传输(bulkbulk),以适应不同设备的),以适应

7、不同设备的需要。需要。能够采用总线供电能够采用总线供电 USBUSB工作在工作在5V5V电压下,总线提供最大达电压下,总线提供最大达500mA500mA电流。电流。物理接口和电气特性物理接口和电气特性接口信号线接口信号线 USBUSB总线(电缆)包含总线(电缆)包含4 4根信号线,用以传送信号和提根信号线,用以传送信号和提供电源。其中,供电源。其中,D D+ +和和D-D-为信号线,传送信号,是一对双绞为信号线,传送信号,是一对双绞线;线;V Vbusbus和和GNDGND是电源线,提供电源。是电源线,提供电源。 USBUSB接口插头(座)也比较简单,只有接口插头(座)也比较简单,只有4 4芯

8、。芯。 VBusD+D-GNDVBusD+D-GND(a) 物理接口物理接口 USB USB接口有两种形状的插口,分别称为接口有两种形状的插口,分别称为A A口口 和和B B口。口。其中其中A A口的方向面向主机,而口的方向面向主机,而B B口的方向面向口的方向面向USBUSB外设。外设。与与A A口和口和B B口分别对应有口分别对应有A A插座和插座和B B插座插座 USBUSB输出驱动特性输出驱动特性USBUSB采用差分驱动输出的方式在采用差分驱动输出的方式在USBUSB电缆上传输信号。电缆上传输信号。信号的低电平用信号的低电平用1.5K1.5K电阻接电阻接3.6V3.6V必须低于必须低于

9、0.3V0.3V,信,信号高电平用号高电平用15 K15 K电阻接地必须高于电阻接地必须高于2.8V2.8V。输出驱动必须支持三态工作,以支持双向半双工的数输出驱动必须支持三态工作,以支持双向半双工的数据传输。据传输。 USB接收特性 所有所有USBUSB设备、集线器和主设备、集线器和主机都必须有一个差分数据接机都必须有一个差分数据接收器和两个单极性接收器。收器和两个单极性接收器。差分接收器能分辨差分接收器能分辨D+D+和和D-D-数数据线之间小达据线之间小达200mv200mv的电平的电平差。差。两个单极性接收器分别用于两个单极性接收器分别用于D+D+和和D-D-数据线,它们的开关数据线,它

10、们的开关阈值电压为阈值电压为0.8V0.8V和和2.0V2.0V。 数据编码和解码 USBUSB使用一种不归零反向码使用一种不归零反向码NRZI(None Return Zero Invert)编码方案。编码方案。在该编码方案中,在该编码方案中,“1”1”表示电平不变,表示电平不变,“0”0”表示电表示电平改变。在数据流的每平改变。在数据流的每6 6个连续个连续“1”1”后插入后插入1 1个个“0”0”,强迫强迫NRZI码发生变化,接收端必须去掉这个插入的码发生变化,接收端必须去掉这个插入的“0”。上图列出了一个数据流的上图列出了一个数据流的NRZINRZI编码,在图的第二个波形图编码,在图的

11、第二个波形图中,一开始的高电平表示数据线上的中,一开始的高电平表示数据线上的J J(差分(差分“1”1”)态,后)态,后面就是面就是NRZINRZI编码。编码。“1”不变不变“0”改变变nUSBUSB主机或根主机或根HUBHUB对设备提供的对地电源电压为对设备提供的对地电源电压为4.755.25V4.755.25V。设备能吸入的最大电流值为。设备能吸入的最大电流值为500mA500mA。nUSBUSB设备的电源供给有两种方式:自给方式(设设备的电源供给有两种方式:自给方式(设备自带电源)和总线供给方式。备自带电源)和总线供给方式。USB HubUSB Hub是前一是前一种方式。种方式。nUSB

12、USB主机有一个独立于主机有一个独立于USBUSB的电源管理系统的电源管理系统(APMAPM)。)。USBUSB系统软件通过与主机电源管理系统系统软件通过与主机电源管理系统交互来处理诸如挂起、唤醒等电源事件。交互来处理诸如挂起、唤醒等电源事件。USB的电源OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S PktUSB Packets7.2 USB系统结构USB系统定义: 一个U

13、SB系统为USB主机(host)、USB设备(devices)和USB的互连(Interconnect)三个部分组成。什么叫USB的互连? 是指是指USBUSB设备与主机之间进行连接和通信的操作设备与主机之间进行连接和通信的操作。它。它包括总线拓扑结构、通信各层的任务和相互关系、数据流包括总线拓扑结构、通信各层的任务和相互关系、数据流模型以及主机与多路模型以及主机与多路USBUSB设备通信时的带宽分配等内容。设备通信时的带宽分配等内容。 7.2.1 总线拓扑结构 USBUSB总线连接了总线连接了USBUSB设备和设备和USBUSB主机,主机,USBUSB的物理连接采用的物理连接采用阶梯式星型拓

14、扑阶梯式星型拓扑结构结构。每个集线器是在星型的中心每个集线器是在星型的中心,节点代表功能部件和设备节点代表功能部件和设备, ,从主机到集线从主机到集线器,或是从集线器到集线器器,或是从集线器到集线器( (或设备或设备) ),每条线段是点对点连接每条线段是点对点连接。 逻 辑 设 备主 机逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备主 机逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备逻 辑 设 备在逻辑上,各个设备好象是与主机直接相连 总线的拓扑结构 有的有的USB设备功能单一,直接挂载在设备功能单一,直

15、接挂载在USB Hub上。而有上。而有的的USB设备功能复杂,会将多个设备功能复杂,会将多个USB功能连在一起,成为一功能连在一起,成为一个复合设备,它甚至可以自己内部带一个个复合设备,它甚至可以自己内部带一个Hub,这个,这个Hub下下接多个接多个USB子设备,其和多个子设备作为一个整体当做一个子设备,其和多个子设备作为一个整体当做一个USB设备设备 , 对于对于USB设备来说,每个设备来说,每个USB设备是直接连接到设备是直接连接到USB Host控制器上的控制器上的。复合设备USB逻辑拓扑结构 7.2.2 USB主机在一个在一个USBUSB系统中只有一台主机。主机的系统中只有一台主机。主

16、机的USBUSB接口称为接口称为USBUSB主机控制器,主机控制器,通过它主机和外围通过它主机和外围USBUSB设备进行通信。设备进行通信。USBUSB主机控制器主机控制器/ /根根Hub(USB Host Controller/Root Hub)Hub(USB Host Controller/Root Hub)分别完成对传分别完成对传输的初始化和设备的接入。输的初始化和设备的接入。每个每个PC的主板上都会有多个的主板上都会有多个Host控制器,控制器,这个这个Host控制器其实就是一个控制器其实就是一个PCI设备,挂载在设备,挂载在PCI总线上总线上 .USBUSB主机的功能:主机的功能:l

17、检测检测USBUSB设备的安装和卸载设备的安装和卸载l管理管理USBUSB主机和设备的间的主机和设备的间的控制流、数据流控制流、数据流l收集状态和动作信息收集状态和动作信息l给给USBUSB设备供电设备供电HostRoot HUB1. 帧产生USBUSB系统采用帧同步方式传输数据。系统采用帧同步方式传输数据。主机控制器将时间划分为以主机控制器将时间划分为以1ms1ms为单位的帧,并以每间隔为单位的帧,并以每间隔1ms1ms时间产生帧开始时间产生帧开始SOF(Start-of-Frame) SOF(Start-of-Frame) 令牌标识新的令牌标识新的一帧开始。一帧开始。在在SOFSOF令牌之

18、后,主机控制器传输其它的数据。令牌之后,主机控制器传输其它的数据。 S O FS O FS O FS O FF r a m e N - 1E O F 间 隙F r a m e N ( 1 m s )F r a m e N + 1M ic r o - F r a m e1 2 5 u sS O FS O FS O FS O FF r a m e N - 1E O F 间 隙F r a m e N ( 1 m s )F r a m e N + 1M ic r o - F r a m e1 2 5 u s7.6(c) 帧/微帧的关系 高速连接时,每高速连接时,每隔隔1ms1ms产生产生8 8个微个微

19、帧帧SOFSOF令牌。令牌。7.2.3 USB设备USB设备分成HUB、功能设备两种。1.USB集线器集线器 n每个每个USB Host控制器都会自带一个控制器都会自带一个USB Hub,被称,被称为根为根(Root)Hub n是USB实现即插即用的一个关键部分。每个USB hub有一个面向主机的端口,称为上游端口(Upstream Port);同时还有几个用于和下端USB设备连接的端口,称为下游端口(Downstream Port)。nHUB可以检测到下游端口是否有设备插入,同时也可以禁用某一个或某几个下游端口。每个下游端口可自由连接全速或低速设备。 USB 集线器结构图 HUB功能功能一个

20、一个USBUSB集线器由控制器(集线器由控制器(ControllerController)和中继器)和中继器(Repeater) (Repeater) 两部分组成。两部分组成。中继器是一个上游端口和下游端口之间的开关中继器是一个上游端口和下游端口之间的开关 (Switch)(Switch),由协议控制,由协议控制它能由硬件产生复位(它能由硬件产生复位(ResetReset),休眠(),休眠(SuspendSuspend)和恢)和恢复(复(ResumeResume)信号。控制器提供接口寄存器,用于和主)信号。控制器提供接口寄存器,用于和主机通信。机通信。根据集线器特定的状态,主机使用一定的控制命

21、令可对根据集线器特定的状态,主机使用一定的控制命令可对集线器进行配置,检查各端口并对它们进行控制。集线器进行配置,检查各端口并对它们进行控制。功能设备能在总线上发送和接收数据或控制信息,它是功能设备能在总线上发送和接收数据或控制信息,它是完成完成某项具体功能的硬件设备某项具体功能的硬件设备,如鼠标、键盘等。,如鼠标、键盘等。每个功能设备必须有自己的配置信息,描述自身的功能和资每个功能设备必须有自己的配置信息,描述自身的功能和资源要求。在一个功能设备被起用前,主机必须先对它进行配源要求。在一个功能设备被起用前,主机必须先对它进行配置。置。 每个设备中每个设备中有一个或多个逻辑连接点有一个或多个逻

22、辑连接点,称为端点,称为端点(Endpoint)。端点在硬件上其实是一个有一定深度的)。端点在硬件上其实是一个有一定深度的FIFO。端点和主机共有四种形式的数据传输类型端点和主机共有四种形式的数据传输类型,在设备配置时每,在设备配置时每个端点指明它与主机进行何种类型的传输。个端点指明它与主机进行何种类型的传输。所有设备都有所有设备都有一个端点一个端点0,主机与它通信,对设备进行,主机与它通信,对设备进行配置配置和基本的控制和基本的控制。2. 2. 功能设备功能设备设备设备配置配置1接口接口0端点端点0(管道管道0)端点端点1(管道管道1)其他端点其他端点接口接口1 端点端点其他接口其他接口配置

23、配置2 接口接口其他配置其他配置USB功能设备逻辑结构功能设备逻辑结构 客户软件客户软件(client software)(client software):为一个特定的:为一个特定的USBUSB设备而在主机上运设备而在主机上运行的软件。这种软件由行的软件。这种软件由USBUSB设备的提供者提供,或由操作系统提供。设备的提供者提供,或由操作系统提供。USBUSB系统软件系统软件(USB system software)(USB system software):此软件用于在特定的操作系:此软件用于在特定的操作系统中支持统中支持USBUSB,它由操作系统提供。与具体的,它由操作系统提供。与具体的

24、USBUSB设备无关,也独立于设备无关,也独立于客户软件。客户软件。USBUSB主机控制器主机控制器(USB Host Controller):(USB Host Controller):总线在主机方面的接口,是总线在主机方面的接口,是软件和硬件的总和。用于支持软件和硬件的总和。用于支持USBUSB设备通过设备通过USBUSB连到主机上。连到主机上。USB主机控制器USB系统软件层客户软件层总线接口层USB设备层功能层主机设备逻辑连接逻辑连接物理连接7.2.4 USB7.2.4 USB的通信模型的通信模型 7.3 USB数据流模型1.1.端点端点(Endpoint)(Endpoint)在在US

25、BUSB接口中再也不用考虑接口中再也不用考虑I/OI/O地址空间、地址空间、IRQIRQ线及线及DMADMA通通道的问题。只给每个道的问题。只给每个USBUSB外设分配一个逻辑地址,但并外设分配一个逻辑地址,但并不指定分配任何系统资源。不指定分配任何系统资源。而而USBUSB外设本身应包含一定数量的独立寄存器端口,并外设本身应包含一定数量的独立寄存器端口,并能由能由USBUSB设备驱动程序直接操作。这些寄存器也就是设备驱动程序直接操作。这些寄存器也就是USBUSB设备的端点(设备的端点(EndpointEndpoint)。)。一个设备可以有多个端点,但所有的一个设备可以有多个端点,但所有的US

26、BUSB设备都必须有设备都必须有一个零端点以用于设置,完成一个零端点以用于设置,完成ControlControl类型传送。类型传送。2.2.管道管道(Pipe)(Pipe)n USB USB支持功能性和控制性的数据传送,这些传送发生在支持功能性和控制性的数据传送,这些传送发生在主机软件和主机软件和USBUSB设备的端点之间,我们把设备的端点之间,我们把USBUSB设备的端点和设备的端点和主机软件的联合称为管道主机软件的联合称为管道(PipePipe)。因此,管道是从逻辑)。因此,管道是从逻辑概念上来描述信息传输的通道。概念上来描述信息传输的通道。n一个一个USBUSB设备应有设备应有一个端点来

27、支持接受数据一个端点来支持接受数据的管道,还的管道,还应有应有另一个端点来支持发送数据另一个端点来支持发送数据的管道。的管道。n端点端点0 0所对应的管道所对应的管道( (默认管道默认管道):):主要用于控制类型的传主要用于控制类型的传输输. .主机对外设的控制就是通过默认管道发主机对外设的控制就是通过默认管道发“外设请求外设请求”来实现的。来实现的。3. USB. USB端点端点, ,管道管道, ,通信流通信流USBUSB逻辑设备逻辑设备管道管道端点端点通信流通信流缓冲区缓冲区主机主机客户软件客户软件4. USB数据传输因为因为 USB 系统不是端到端的拓扑结构,所以决定了系统不是端到端的拓

28、扑结构,所以决定了 USB 设备之间不能发送信息,设备只能响应主机的请求设备之间不能发送信息,设备只能响应主机的请求(远程唤(远程唤醒除外)。醒除外)。USB 传输的方向有两种,从设备到主机(传输的方向有两种,从设备到主机(IN) 和从主机到和从主机到设备(设备(OUT)。)。设备要想向主机发送数据,则需将数据填充到设备要想向主机发送数据,则需将数据填充到 IN端点,然后端点,然后等待主机发送等待主机发送IN请求包,如果主机永不发送请求包,如果主机永不发送 IN 包,数据将包,数据将无限期滞留在端点缓冲器中;无限期滞留在端点缓冲器中;如果主机想发送命令或数据到如果主机想发送命令或数据到 USB

29、 设备,则需先发出设备,则需先发出 OUT 令牌,后跟要传输的数据。令牌,后跟要传输的数据。1. 如果设备有空间存放数据且无误接受则发一个如果设备有空间存放数据且无误接受则发一个 ACK 给主机给主机;如果设备忙,则发送;如果设备忙,则发送 NAK ;如果发生错误就什么都不发;如果发生错误就什么都不发回。对于后两种情况,主机在随后重发数据。回。对于后两种情况,主机在随后重发数据。 在在USBUSB线路上传输的最小数据块是包。一个包由同步信线路上传输的最小数据块是包。一个包由同步信号(号(SYNCSYNC),包),包IDID(PIDPID),有时还有一些数据和一些),有时还有一些数据和一些CRC

30、CRC校验字节组成。校验字节组成。传输过程传输过程OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S PktPIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位标志(令牌)包格式标志(令牌)包格式 USBUSB是一种查询(是一种查询(PolledPolled)式的总线,)式的总线,每一次每一次USBUSB数据传输数据传输都都是是由由USBUSB主机控制器发起主机控制

31、器发起。主机总是主机总是用一个令牌(用一个令牌(TOKENTOKEN)包开始一个事务)包开始一个事务。令牌包指定。令牌包指定一个设备地址和端点地址。一个设备地址和端点地址。 所有设备对地址进行解码,与此地址匹配的设备的端点将与所有设备对地址进行解码,与此地址匹配的设备的端点将与主机进行通信。主机进行通信。 最后是沿数据传输的反方向发送一个握手(最后是沿数据传输的反方向发送一个握手(HandshakeHandshake)包。)包。注意:7.4 USB协议层 7.4.1 7.4.1 包字段格式包字段格式0 1 0 1 0 1 0 0PID0IdleSYNC: 所有包的开始都是同步域,所有包的开始都

32、是同步域,输入电路利用它来同步,以便有输入电路利用它来同步,以便有效数据到来时识别,长度为效数据到来时识别,长度为8位。位。同步同步包类型包类型端点端点设备地设备地址址校验校验PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位同步同步包类型包类型端点端点设备地设备地址址校验校验PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位表表7.1 PID 7.1 PID 类型类型PID 类型类型PID 名名PID3:0描述描述令牌令牌(Token)OUT (输出输出)IN (输入输入)SOF (帧开始帧开始)SETUP (建立建立)0001B1001B0101B1101B

33、表示数据方向从主机到设备表示数据方向从主机到设备表示数据方向从设备到主机表示数据方向从设备到主机帧开始标记和帧号帧开始标记和帧号表示这是一个表示这是一个USB标准控制事务包标准控制事务包数据数据(DATA)DATA0 (数据数据0)DATA1 *DATA2MDATA0011B1011B0111B1111B偶数据包偶数据包PID奇数据包奇数据包PID高速传输时数据高速传输时数据高速传输微帧数据高速传输微帧数据握手握手(Handshake)ACK (确认确认)NAK (不确认不确认)STALL (停止停止)NYET0010B1010B1110B0110B表示传输成功完成表示传输成功完成;表示设备表

34、示设备/接收方正忙或暂时没有数据接收方正忙或暂时没有数据端口挂起,或一个控制管道请求不被支持。端口挂起,或一个控制管道请求不被支持。接收方无响应。接收方无响应。专用专用(Special)PRE (前同步前同步)ERR (错误错误)SPLIT(分割事务分割事务)PING1100B1100B1000B0100B主机发送的前同步。打开到低速设备的通信。主机发送的前同步。打开到低速设备的通信。分割事务错误分割事务错误,握手包。握手包。高速分割事务令牌包。高速分割事务令牌包。高速流控制探测令牌包。高速流控制探测令牌包。* *为为USB2.0USB2.0协议协议PIDPID。USB2.0 PIDADDR:

35、设备地址域,确设备地址域,确定包的传输目的地。定包的传输目的地。7个个长度,可有长度,可有128个地址。个地址。同步同步包类型包类型端点端点设备地设备地址址校验校验PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位CRC:检查域,检查域,5位长度,位长度,用于用于ADDR域和域和ENDP域的域的校验。校验。 同步包类型端点设备地址校验PIDSYNCADDRENDPCRC58位8位7位4位5位ENDP:端点域,确定包要传输到设备端点域,确定包要传输到设备的哪个端点。的哪个端点。4位长度,一个设备可有位长度,一个设备可有16个端点号。个端点号。所有的功能部件都必须在端口所有的功能部

36、件都必须在端口0 0提供一个控制管道(缺省控制管提供一个控制管道(缺省控制管道)。道)。对于低速设备,每个功能部件对于低速设备,每个功能部件最多提供最多提供3 3个管道个管道:在端口:在端口0 0的控制管的控制管道加上道加上2 2个附加管道。个附加管道。1.1.全速功能部件全速功能部件可以支持最多可达可以支持最多可达1616个个的任何类型的端口。的任何类型的端口。 7.4.2 包格式令牌包由令牌包由PIDPID、地址、端点和、地址、端点和CRCCRC校验字段组成。校验字段组成。其中地址字段和端点字段唯一确定了某个设备上的某其中地址字段和端点字段唯一确定了某个设备上的某一个端点。一个端点。只有主

37、机才可以发出令牌包。只有主机才可以发出令牌包。OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt令牌包令牌包数据包数据包(Data Packet)(Data Packet) PIDDATACRC168位01023/8192位16位 数据包格式0011 DATA01011 DATA1OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC

38、16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt握手包(Handshake Packet) 握手包(握手包(HandshakeHandshake)由设备用来报告交换的状态。握)由设备用来报告交换的状态。握手包是由数据的接受方发向数据的发送方的。手包是由数据的接受方发向数据的发送方的。 PID8位握手包握手包格式格式握手包有三种类型:握手包有三种类型:确认确认 (ACK)表示表示接受数据正确接受数据正确。发送设备会收到一个。发送设备会收到一个ACK。不确认不确认

39、(NAK)表示表示功能设备不能接受来自功能设备不能接受来自Host的数据的数据,或者没有,或者没有任何数据返回给任何数据返回给Host。1.1.停止(停止(挂起挂起)(STALL)表示表示功能设备无法完成数据传输功能设备无法完成数据传输,并且需,并且需要主机插手来解决故障,以使设备从挂起状态中恢复正常。要主机插手来解决故障,以使设备从挂起状态中恢复正常。 0010B ACK 1010B NAK 1110B STALLOUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketD

40、ATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt帧开始包SOF (Start-of-F Frame Packet) USBUSB的总线时间被划分为帧,一个帧周期可以描述为:在主机发帧开的总线时间被划分为帧,一个帧周期可以描述为:在主机发帧开始标志(帧启动标志)后,总线处于工作状态,主机将发送和接收几个交换,始标志(帧启动标志)后,总线处于工作状态,主机将发送和接收几个交换,交换完毕,然后进入帧结束间隔区,此时总线处空闲状态,等待下一个帧启交换完毕,然后进入帧结束间隔区,此时总线处空闲状态,等待下一个帧启动标志的到来,再开始下一帧。动标志的到来,再

41、开始下一帧。PIDSYNCFRAME NUMBERCRC8位8位07FFH 11位5位帧开始包格式帧开始包格式帧号字段是一个帧号字段是一个1111位的字段,主机每过一帧位的字段,主机每过一帧就将其内容加一。帧号字段达到其最大值就将其内容加一。帧号字段达到其最大值7FFH7FFH时归零,且它仅每个帧最初时刻在时归零,且它仅每个帧最初时刻在SOFSOF标记中被发送。标记中被发送。 0101 SOF(帧开始)SOF EOF 间隙(FRAME N-1) FRAME N FRAME N+1SOFSOFSOF主机控制器有义务将主机控制器有义务将USBUSB时间划分为以时间划分为以1ms1ms为单位的帧。主

42、机控制为单位的帧。主机控制器以每器以每1ms1ms间隙产生间隙产生SOF(Start-of-Frame)SOF(Start-of-Frame)标识以示新的一帧的开标识以示新的一帧的开始始( (如图)。如图)。SOFSOF标识是一帧的开始部份,在标识是一帧的开始部份,在SOFSOF标识之后主机控制器在该帧的标识之后主机控制器在该帧的余下时间内传输其它的东西。当主机控制器处于正常工作状态时,余下时间内传输其它的东西。当主机控制器处于正常工作状态时,SOFSOF标识必须以标识必须以1ms1ms为间隙连续的发送而不管其它的总线活动。为间隙连续的发送而不管其它的总线活动。当总线控制器处于不给总线提供能量

43、的状态时,它不能产生当总线控制器处于不给总线提供能量的状态时,它不能产生SOFSOF标识。当总线控制器不产生标识。当总线控制器不产生SOFSOF标识时,它处于一种节能方式。标识时,它处于一种节能方式。帧序号具有以下各方面的作用帧序号具有以下各方面的作用: :用于将两帧唯一的区别开用于将两帧唯一的区别开, ,在每帧在每帧的结尾处加的结尾处加1;1;对于它的后继帧有效对于它的后继帧有效 . . 传输传输传输传输传输传输事务事务事务事务事务事务令牌包令牌包数据包数据包握手包握手包PIDPID附加信息附加信息CRCCRC 当主机与设备需要通信当主机与设备需要通信时,设备驱动和应用程序便时,设备驱动和应

44、用程序便会启动一个传输会启动一个传输 。 一个传输包括一个或多一个传输包括一个或多个事务,每个事务又包括一个事务,每个事务又包括一个令牌包,可能还有一个数个令牌包,可能还有一个数据和据和/或握手包。或握手包。 每个每个USB事务最多由三事务最多由三个段组成:令牌、数据和握个段组成:令牌、数据和握手。每个段由一个或两个被手。每个段由一个或两个被传输的包组成。所有的包都传输的包组成。所有的包都是以包含了识别信息的一个是以包含了识别信息的一个包包ID(PID)开始。)开始。 7.4.3 事务与传输类型空闲空闲控制传输是双向传输,数据量通常较控制传输是双向传输,数据量通常较小。主要用来进行查询、配置和

45、给小。主要用来进行查询、配置和给USBUSB设备发送通用的命令。设备发送通用的命令。控 制 传 输 有 两 个 或 三 个 阶 段 :控 制 传 输 有 两 个 或 三 个 阶 段 : 设置(设置(SETUPSETUP)、数据()、数据(DATADATA,可选,可选择)、和状态(择)、和状态(STATUSSTATUS)。)。每个控制传输必须有设置和状态阶段每个控制传输必须有设置和状态阶段,可以没有数据阶段,因为需要双向,可以没有数据阶段,因为需要双向传输某些信息,所有消息流程使用了传输某些信息,所有消息流程使用了终端的终端的ININ和和OUTOUT地址。地址。在一个控制写传输中。数据由主机流在

46、一个控制写传输中。数据由主机流向设备。读传输中,数据由设备流向向设备。读传输中,数据由设备流向主机。主机。1、控制传输(Control Transfers) 控制传输发送设备请求信息,主要用于读取设备配置信息及设备状态、设置设备地址,设置设备属性、发送控制命令等功能。控制传输流程控制传输流程: DATA08 bytesSetupDataCRC16Data PacketACKH/S PktSETUPADDRENDPCRC5Token Packetn在在SetupSetup阶段,主机送命令给设备;阶段,主机送命令给设备; SETUPINADDRENDPCRC5Token PacketDATA1Pa

47、yloadDataCRC16Data PacketACKH/S PktDATAStage(optional)2.2.传输的是传输的是SetupSetup阶段所设定的数据阶段所设定的数据控制传输控制传输DATA1OUTADDRENDPCRC5Token PacketCRC16Data PktACKH/S PktSTATUSStage3.Status阶段,设备返回握手信号给主机。2、批传输 是非周期性的数据传输,仅全速/高速设备支持,同时,当且仅当总线带宽有效时才进行。 批(批(BulkBulk)传输是单向,也可以是双向。它用于传送大批数)传输是单向,也可以是双向。它用于传送大批数据,这种数据的时

48、间性不强,但要确保数据的正确性。据,这种数据的时间性不强,但要确保数据的正确性。批处理事务是由批处理事务是由标记,数据和握手包标记,数据和握手包构成的三时相的事务。构成的三时相的事务。在某些流控制和挂起条件下,数据被握手信号替换,从而产在某些流控制和挂起条件下,数据被握手信号替换,从而产生了没有数据传输的两时相的事务生了没有数据传输的两时相的事务INADDRENDPCRC5Token PacketPayloadDataCRC16Data PacketACKADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S

49、PktDATA1IN批量传输流程:主机功能部件空闲注意:在一个空闲的总线上,批量传输是很快的。在全速下以在一个空闲的总线上,批量传输是很快的。在全速下以8 8、1616、3232或或6464字节传输,高速下以字节传输,高速下以512512字节传输。主机在有可用的总线时间字节传输。主机在有可用的总线时间时才安排批量传输。时才安排批量传输。 当主机准备好了接收批处理数据的时候,它发出输入标记。功能当主机准备好了接收批处理数据的时候,它发出输入标记。功能部件端口通过返回数据包,或者如果不能返回数据,则返回部件端口通过返回数据包,或者如果不能返回数据,则返回NAKNAK或或STALLSTALL握手作为

50、应答。握手作为应答。NAKNAK表示功能部件暂时不能返回数据,而表示功能部件暂时不能返回数据,而STALLSTALL表示端口永久地被停止。如果主机收到合法的的数据包,则表示端口永久地被停止。如果主机收到合法的的数据包,则它用它用ACKACK握手来应答。握手来应答。当主机准备好了传送成批数据的时候,它首先发出一个后跟数据当主机准备好了传送成批数据的时候,它首先发出一个后跟数据包的输出标记包。如果数据由功能部件无错地接收到,那么它将包的输出标记包。如果数据由功能部件无错地接收到,那么它将返回三个握手中的一个。返回三个握手中的一个。3、中断传输中断传输用于支持数据量少的周期性传输需求。中断(Inte

51、rrupt)传输是单向的,且仅输入到主机,它用于不固定的、少量的数据传送。INADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKH/S Pkt当设备需要主机为其服务时,向主机发送此类信息以通知主机,像键盘、鼠标之类的输入设备采用这种方式。USB的中断是Polling(查询)类型。中断传输流程:中断方式传输主要用中断方式传输主要用于定时查询设备是否于定时查询设备是否有中断数据要传送。有中断数据要传送。 键盘、操纵杆和鼠标键盘、操纵杆和鼠标就属于这一类型。中就属于这一类型。中断方式传送是单向的断方式传送是单向的并且对于主机来说只并

52、且对于主机来说只有输入的方式。有输入的方式。主机功能部件4 4、同步、同步( (等时等时) )传输(传输(IsochronousIsochronous) 常用于语音设备常用于语音设备 同步传输可以单向也可以双向,用于传送连续性、实时的数据。同步传输可以单向也可以双向,用于传送连续性、实时的数据。同步传输要求恒定速率传输的数据,如声音、音乐等。按时到达对同步传输要求恒定速率传输的数据,如声音、音乐等。按时到达对于同步传输来说最为重要。于同步传输来说最为重要。在每一在每一USBUSB帧中,固定的帧中,固定的USBUSB带宽被留给同步传输。带宽被留给同步传输。 INADDRENDPCRC5Token

53、 PacketDATA0PayloadDataCRC16Data Packet同步传输流程: 注意注意: : 为了减轻开销,同步传输没为了减轻开销,同步传输没有握手有握手(ACK/NAK/STALL)(ACK/NAK/STALL)和重和重试。错误检测仅限于试。错误检测仅限于1616位的位的CRCCRC。同步传输不使用数据翻转机同步传输不使用数据翻转机制。全速同步传输只使用制。全速同步传输只使用DATA0 PIDDATA0 PID。1.1. 在高速模式下,每一个微帧在高速模式下,每一个微帧中最多可以传送三个同步包中最多可以传送三个同步包。主机主机功能部件功能部件7.5 USB设备架构设备架构一个

54、一个USB设备可以在逻辑上分为三层:总线接口层设备可以在逻辑上分为三层:总线接口层(Bus Interface Layer)、设备层()、设备层(Device Layer)和功能层()和功能层(Function Layer)。总线接)。总线接口层处于最底层,它的工作是发送和接收数据包。设口层处于最底层,它的工作是发送和接收数据包。设备层是中间层,它的功能有点象一个路由器,把总线备层是中间层,它的功能有点象一个路由器,把总线接口层的数据派发到各个端点。最上层是功能层,实接口层的数据派发到各个端点。最上层是功能层,实现设备特定的功能。现设备特定的功能。本节主要介绍所有本节主要介绍所有USB设备的中

55、间层的一些共同特设备的中间层的一些共同特征和操作。实际上,设备的功能层正是通过调用这些征和操作。实际上,设备的功能层正是通过调用这些特征和操作来实现和主机的通信的。特征和操作来实现和主机的通信的。 7.5.1 设备的状态图和总线枚举设备的状态图和总线枚举 USB设备有几个可能的状态值,其中某些状态对我们是可见设备有几个可能的状态值,其中某些状态对我们是可见的,而有些是不可见的。对于的,而有些是不可见的。对于USB的实现者,要关心的是那的实现者,要关心的是那些可见的状态(些可见的状态(Visible State)。)。USB设备的设备的可见状态可见状态有:有:插入插入(Attached)、)、上

56、电上电(Powered)、)、缺省缺省(Default)、)、地址地址(Address)、)、被配置被配置(Configured)和)和休眠休眠(Suspended)。)。枚举就是从设备读取一些信息,知道设备是什么样的设备,枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试驱动程序。调试USB设备,很重要的一点就是设备,很重要的一点就是USB的枚举的枚举过程,只要枚举成功了,那么就已经成功大半了。过程,只要枚举成功了,那么就已经成功大半了。插入(插入(Attached)设备插

57、入设备插入USB集线器或主机根集线器的下游集线器或主机根集线器的下游端口后,设备端的程序应让端口后,设备端的程序应让D+和和D-数据线数据线发出一个大于发出一个大于2.5s的闲置(的闲置(Idle)信号,)信号,让主机知道有设备插入。全速设备的闲置信让主机知道有设备插入。全速设备的闲置信号是号是D+高电平,高电平,D-低电平;低速设备与之低电平;低速设备与之相反。这样,主机不仅能检测到是否有设备相反。这样,主机不仅能检测到是否有设备插入,也能同时辨别插入的是全速设备还是插入,也能同时辨别插入的是全速设备还是低速设备。低速设备。上电(上电(Powered)USB协议允许设备有协议允许设备有总线供

58、电总线供电(Bus Powered)和)和自供电自供电(Self-powered)两种供电方式。对于自供电的设备,它自两种供电方式。对于自供电的设备,它自带的电源可以在被插入之前就对设备供电。带的电源可以在被插入之前就对设备供电。但无论哪种方式,设备的但无论哪种方式,设备的USB接口都是由接口都是由主机或集线器通过主机或集线器通过Vbus总线对其供电的。总线对其供电的。所指的上电状态就是指所指的上电状态就是指Vbus开始对设备开始对设备USB接口供电的状态。接口供电的状态。 缺省(缺省(Default)设备上电后,它等待接收来自主机的复位设备上电后,它等待接收来自主机的复位(Reset)信号。

59、复位后,设备处于缺省)信号。复位后,设备处于缺省状态。它具有一个状态。它具有一个缺省地址缺省地址0,等待主机等待主机给它分配一个唯一的非给它分配一个唯一的非0地址地址,并对它进,并对它进行配置。行配置。地址(地址(Address)主机分配给设备一个非主机分配给设备一个非0的唯一地址,使设备的唯一地址,使设备进入地址状态。在分配地址的过程中,主机进入地址状态。在分配地址的过程中,主机仍然用缺省地址仍然用缺省地址0和设备进行通信,读取设备和设备进行通信,读取设备的设备描述符。在设备描述符中,设备报告的设备描述符。在设备描述符中,设备报告主机它的缺省管道端点主机它的缺省管道端点0的有效数据负载。的有

60、效数据负载。 被配置(被配置(Configured)一个设备在被正式起用之前必须被主机配置。一个设备在被正式起用之前必须被主机配置。设备先报告主机它的设备先报告主机它的配置描述符配置描述符(Configuration Descriptor),里面包),里面包括接口和端点的信息。而后,主机根据配置描括接口和端点的信息。而后,主机根据配置描述符,向设备写一个配置值。这时,设备就可述符,向设备写一个配置值。这时,设备就可以正常工作了。当主机要对设备重新配置时,以正常工作了。当主机要对设备重新配置时,它必须对先取消原来的配置。它必须对先取消原来的配置。休眠(休眠(suspend)当设备发现当设备发现3

温馨提示

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

评论

0/150

提交评论