USB协议中的建立事务 bus hound

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
0bmRequestType1Bit-MapD7 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的描述为:
bmRequestTypebRequestwValuewIndexwLengthData
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
Descriptor Length
Descriptor
0000 0000b
SET_DESCRIPTOR (0x07)
Descriptor Type & Index
Zero or Language ID
Descriptor Length
Descriptor
1000 0000b
GET_CONFIGURATION (0x08)
Zero
Zero
1
Configuration Value
0000 0000b
SET_CONFIGURATION (0x09)
Configuration Value
Zero
Zero
None


可知06代表Get Descriptor.

参考资料: http://www.beyondlogic.org/usbnutshell/usb6.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值