现在的位置: 首页 > 综合 > 正文

USB协议中的建立事务

2014年06月05日 ⁄ 综合 ⁄ 共 1187字 ⁄ 字号 评论关闭

USB协议中的建立事务只用于控制通道上的控制传输。每一次控制传输都以一个建立事务为开端。建立事务主要用于主机向设备发关控制请求。一个建立建务包含一个令牌包,一个8字节的DATA0数据包,一个握手包。其具体格式,及其它事务的格式参:http://www.docin.com/p-149698164.html 的第七页和第六页。


此次控制传输中,主机想向设备发出什么控制请求呢?这个信息就包含在8字节的DATA0数据包中。


采用Bus Hound软件可以获得建立事务中8字节DATA0数据包的内容。下面是bus hound抓到的内容:



29.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR   2.2.0



其中CTL是Control的缩写,这表时是一次控制传输。为什么能确定是控制传输呢?有建立事务就是控制传输,两者一对一的关系。

下面的8字节就是DATA0数据包中的内容。


GET DESCRIPTOR表明这是一个获得设备描述符的请求。


这8个字节的格式为:

Offset

Field

Size

Value

Description

0 bmRequestType 1 Bit-Map D7
Data Phase Transfer Direction


0 = Host to Device

1 = Device to Host
D6..5 Type

0 = Standard

1 = Class

2 = Vendor

3 = Reserved
D4..0 Recipient

0 = Device

1 = Interface

2 = Endpoint

3 = Other

4..31 = Reserved

1

bRequest

1

Value

Request

2

wValue

2

Value

Value

4

wIndex

2

Index or Offset

Index

6

wLength

2

Count

Number
of bytes to transfer if there is a data phase

下面我们对照上表,解释那前两个字节(因为后面的字节会因请求的不同,含义也不同):

80  第一字节:传输方向:设备到主机   类型:标准  接收者:对设备的请求

06  第二字节:请求类别:bRequest的描述为:

bmRequestType bRequest wValue wIndex wLength Data

1000 0000b

GET_STATUS (0x00)

Zero

Zero

Two

Device Status

0000 0000b

CLEAR_FEATURE (0x01)

Feature Selector

Zero

Zero

None

0000 0000b

SET_FEATURE (0x03)

Feature Selector

Zero

Zero

None

0000 0000b

SET_ADDRESS (0x05)

Device Address

Zero

Zero

None

1000 0000b

GET_DESCRIPTOR (0x06)

Descriptor Type & Index

Zero or Language ID

【上篇】
【下篇】

抱歉!评论已关闭.