阅读:1319回复:15
帮忙分析一下用bus hound捕获的自定义请求数据!!!
我用bus hound捕获的d12评估板自定义操作数据时发现:同是自定义向量请求,为啥主机发送的请求数据的第一个字节不相同,按照usb协议,主机发送的setup包的第一个字节应该是指定请求类型的,像GET DESCRIPTOR请求的第一个字节总为:80、SET ADDRESS请求的第一字节总为00。为啥我捕获的自定义向量请求的数据有的第一个字节为40,有的第一个字节的为c3,如下:
12.0 CTL 40 06 00 00 00 00 00 00 VENDOR 49.1.0 ; 12.0 CTL c0 03 00 00 00 00 01 00 VENDOR 4383.1.0 ; 指定控制传输为自定义向量请求的第一个字节的值难道不是定值吗? 请教啦!!! |
|
|
沙发#
发布于:2004-09-21 08:32
0x80 + 0x40 = 0xc0
没问题的,只不过是说明是设备到主机而已。 |
|
板凳#
发布于:2004-09-21 08:35
你的不是标准命令,而是VENDOR命令.
|
|
|
地板#
发布于:2004-09-21 15:03
谢谢两位大侠!但是我还是不太明白呀!请问:
0x80 + 0x40 = 0xc0,这个算式说明啥问题呀? VENDOR命令命令的第一个字节是如何定义的?没有定值吗? 期待..... |
|
|
地下室#
发布于:2004-09-21 16:11
0x80 + 0x40 = 0xc0 这个算法怎么来的??? |
|
|
5楼#
发布于:2004-09-21 16:20
设置阶段的第一个数据
BmRequestType D7方向..........D[6:5]类型......................D[4:0]接收端 0 主机到设备....00 标准请求 1 设备到主机....01 群组请求 ................10 制造商请求(也就是上面的0x40) ................11 保留 也就是说 0x40 说明这个包是制造商请求,也就是你在固件中,自己定义的请求。 我说的 0x80 + 0x40 意思是制造商请求,但是方向是设备到主机。 [编辑 - 9/21/04 by wdy9927] |
|
6楼#
发布于:2004-09-21 16:27
指定控制传输为自定义向量请求的第一个字节的值难道不是定值吗?
不是定值,根据我上面写的,可以组合成好多种情况。 但一般枚举的时候都是标准的,也就是 D[6:5] 是00,这样就有2种,一是主机到设备 0x00,一种是设备到主机 0x80 而0x40,0xc0 一般是枚举完成后,制造者提供的非标准的请求。这些是可有可无的。 |
|
7楼#
发布于:2004-09-21 18:02
wdy9927大侠真是诲人不倦呀,非常感谢!!剩下的分全部奉送啦!!!
|
|
|
8楼#
发布于:2004-09-21 18:08
版主,我咋找不到给分和改分的按钮啦,没法送剩余的分数啦!!
|
|
|
9楼#
发布于:2004-09-22 08:04
分给过了就不能给了。
大虾可不敢当,本人系菜鸟一个! 菜鸟英文怎么说? |
|
10楼#
发布于:2004-09-22 08:45
菜鸟=DISH BIRD
|
|
|
11楼#
发布于:2004-09-22 10:15
哈哈,metalwing 英语也很强啊。
|
|
12楼#
发布于:2004-09-22 12:37
为什么大家都这么谦虚呢?太谦虚啦可就是骄傲呀!!!
|
|
|
13楼#
发布于:2004-09-22 15:00
我倒~
就俺这水平。。。想骄傲也骄傲不起来~ :( |
|
14楼#
发布于:2004-09-22 18:56
wdy9927,metalwing就是大虾,而且是很热心的大虾,不得不承认。
|
|
|
15楼#
发布于:2004-09-22 19:19
赞同zgfish大虾的看法!!!
|
|
|