当前位置:文档之家› USB协议规范

USB协议规范

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是一个通用的集线器。

图1图21.2 机械特性、电气特性USB总线的传输由一根4线的电缆来实现。

其中两根线用于提供USB设备工作的电源盒地,另外两个为差动数据信号线,用于传输数据。

电气特性,USB使用差分驱动器来发送信号,对应低速USB设备,一般使用束缚型低速电缆进行连接,它不需要外层屏蔽和数据双绞线;全速和高速USB设备在连接是使用有外层屏蔽盒数据双绞的电缆,其差分特性阻抗为90(1±15%)Ω,共模阻抗为30(1±30%)Ω。

USB使用差分接收器来接受USB信号,对应低速和全速传输,D+和D-线上的差分共模电压范围为0.8~2.5V ;对于高速传输,该范围为-50mv ~500mv 。

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。

图3 典型事务处理过程B 字段格式在USB 协议中,USB 数据传输由一系列的字段构成,这些不同功能的字段,按特定的格式组合便可以构成不同的信息包。

其中包括:同步字段(SYNC ):用于数据通信的同步。

对应低速/全速传输,其长度为8位,数据为10 000 000B 。

而对于高速传输长度为32位,数据为8000000H 。

● 包标识字段(PID ):指明信息包类型,可以用于差错控制。

长度为8位,低4位为类型字段,高4位为校验字段。

● 地址字段(ADDR):指明USB 总线上的一个USB 设备。

长度为7位,共有128个地址值。

地址0作为缺省地址,不分配给USB 设备。

● 端点字段(ENDP ):指明USB 端点。

字段长度4位,共16个端点。

端点0主要用于USB 设备上电的初期和USB 主机进行通信,完成配置。

● 帧号字段:指明当前帧的帧号。

● 数据字段:包括传输的数据。

● CRC 字段:循环冗余校验。

B 信息包USB 以信息包为基本传输单元进行USB 事务处理。

USB 数据传输中包括:令牌包、数据包和握手包三种。

信息包类型不同其包含的字段也不同,但第一个字段都是同步字段。

表1所示。

表1 信息包格式● 令牌包:USB 协议中,使用了7中令牌包,IN 、OUT 、SETUP 和PING 令牌包,这些令牌包的格式大致相同。

如表2。

IN 令牌包定义了设备到主机的数据传输,OUT 和SETUP 令牌包定义了主机到USB 设备的数据传输。

SOF 令牌包,格式如表3;SPLIT 令牌包和PRE 令牌包表2 IN 、OUT 、SETUP 和PING 令牌包格式 表3 SOF 令牌包格式 ● 数据包:它由8位包标识字段PID 、数据字段、和16位的循环冗余校验字段CRC 组成。

如表4所示。

● 握手包:仅含有PID 字段。

如表5所示。

握手包主要用于在数据传输的末尾报告本次数据传输的状态。

之后便是整个事务处理的结束信号EOP.表4 数据包格式定义表5 握手包的定义格式B事务处理在USB事务处理理,令牌包阶段是必须的,USB协议中规定了7种令牌令牌包,因此,可以根据令牌包的类型将USB事务处理分为7种:IN事务处理、OUT 事务处理、SETUP事务处理、PING事务处理、SOF事务处理、SPLIT事务处理和PRE事务处理。

2.2 USB数据传输类型USB的协议对USB的数据传输类型按照传输数据量的大小、传输速率的高低以及对时间的要求,可以分为4种传输类型:块传输、中断传输、同步传输和控制传输。

表6对这四种传输方式进行了一个简单的比较。

表6 USB的4种传输类型1、块传输USB块传输只能用于高速或全速的USB设备,适合传输大量且对传输时间和传输速率均无要求的数据。

在传输过程中,当总线带宽紧张时,会自动为其他传输类型让出自己所占的帧/小帧时间,而本身数据传输将延迟,这时传输速率比较低、占用时间长;当总线空闲时,速率高、时间短。

采用差错控制和重试机制来保证数据传输的正确性和可靠性。

此传输适合于打印机和扫描仪类的设备。

USB设备在块端点描述符中的wMaxPacketSize字段指明其块事务所支持的最大数据包长度。

●对于全速端点,可以是8字节、16字节、32字节或者64字节;●对于高速端点,只能为512字节。

块事务处理过程包括令牌、数据和握手三个阶段。

USB块事务处理是单向的。

设备需要双向块传输,则必须使用两个块端点。

当主机需要接收数据时,它向USB设备发出一个IN令牌包;当准备发送数据块时,它将向USB设备发出一个OUT令牌包和一个DATAx数据包。

2、USB中断传输中断传输可以用于低速、全速和高速设备,适合于传输少量或中量对事务处理周期有要求的数据.USB总线为中断传输保留了总线带宽,以保证它能够在规定的时间内完成。

USB中断传输适合于鼠标、键盘类设备,这类设备传输的数据量很少,而且要求响应快,具有固定的事务处理周期。

USB设备在中断端点描述符中的wMaxPacketSize字段指明其中断事务所支持的最大数据包长度。

●对于低速端点,最大数据包长度小于等于8字节;●对于全速端点,最大数据包长度小于等于64字节;●对于高速端点,最大数据包长度小于等于1024字节。

中断事务处理和块传输一样,都是单向的,都具有令牌、数据和握手3个阶段。

中断管道式一条数据流管道,它传输的数据不具有USB定义的格式。

当其在USB总线上实际传输时,必须使用数据触发机制来保证数据包发送和接收的同步,以便于发送方能够确认其数据已经被成功接收。

3、USB同步传输USB同步传输只能用于高速或全速USB设备,适合于传输大量的、速率恒定的且对服务周期有要求的数据。

USB协议为同步传输保留了总线带宽,以保证同步传输一直使用准确的传输速率,因此其传输时间是确定的、可以预测的。

此外,同步传输不能保证每次传输都是成功的。

此传输适合于音频和视频类设备。

USB设备在同步端点描述符中的wMaxPacketSize字段指明其同步事务所支持的最大数据包长度。

●对于全速端点,该最大值必须小于等于1023字节;●对于高速端点,它必须小于等于1024字节,且高带宽端点可在每小帧中进行两个或3个高速同步事务。

同步事务处理也是单向的,其包括IN传输和OUT传输,但只有令牌和数据阶段,没有握手阶段,如图4所示。

图4 同步事务的格式4、USB控制传输USB控制传输适合于低速、全速或高速设备。

主要用于传输少量的、对传输时间和传输速率均无要求、但必须保证传输的数据。

USB协议为控制传输保留了一定的总线带宽,以确保其能够尽快得到传输。

也使用了差错控制和重试机制来保证数据传输的准确性和可靠性。

USB控制传输主要用于USB主机和USB设备之间的配置信息通信,包括设备地址、设备描述符和接口描述符等。

所以的USB 设备都有控制传输方式。

在USB协议中,任何USB设备都必须在端点0的缺省管道中支持控制传输。

除端点0外,其他端点也可以支持控制传输USB设备在控制端点描述符中的wMaxPacketSize字段指明其控制事务所支持的最大数据包长度。

●对于低速端点,最大值必须为8个字节;●对于全速端点,可以选择8、16、32和64字节;●对于高速端点,其只能为64字节。

控制事务处理包括建立、数据和状态3个阶段,每个阶段都由特定的事务处理组成。

控制事务处理的建立阶段,主机采用SETUP事务向USB设备发送控制请求。

相关主题