试用bus hound来分析STM32CubeMX来生成USB_HID_Mouse工程
Bus Hound 6.01 capture on Windows Vista Service Pack (x64). Complements of www.perisoft.net STM32_HID_mouse Device - Device ID (followed by the endpoint for USB devices)
() USB 2.0 集线器
() USB 输入设备
() HID-compliant device
() USB 输入设备
Address - FireWire async address or channel number
Length - Total transfer length
Phase - Phase Type
CTL USB control transfer
IN Data in transfer
IRP I/O request packet
STAK IRP stack location
URB USB request block
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data Device Address Length Phase Data Description Cmd.Phase.Ofs(rep)
------ ------------------- -------- ----- -------------------------------------------------- ---------------- ------------------
IRP a0 1.1.
1.1.
STAK e1 POWER 1.2.
1.2.
IRP 2.1.
2.1.
STAK 0f e8 1e fa ff ff INTERNAL IOCTL 2.2.
0f 2.2.
16.0 CTL a3 GET STATUS 3.1.
16.0 IN .... 3.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 3.3.
1b fa ff ff 3.3.
IRP 3.4.
3.4.
STAK 0f e0 cb 0b fa ff ff SUBMIT_URB 3.5.
3.5.
16.0 CTL SET FEATURE 4.1.
16.0 URB 1b fa ff ff CONTROL TRANSFER 4.2.
1b fa ff ff 4.2.
IRP 4.3.
4.3.
STAK 0f e0 cb 0b fa ff ff SUBMIT_URB 4.4.
4.4.
16.1 IN . 5.1.
16.1 URB 1b fa ff ff BULK/INT XFER 5.2.
fa ff ff 5.2.
IRP a0 5.3.
5.3.
STAK 0f e0 1a fa ff ff SUBMIT_URB 5.4.
5.4.
16.0 CTL a3 GET STATUS 6.1.
16.0 IN .... 6.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 6.3.
1b fa ff ff 6.3.
IRP 6.4.
6.4.
STAK 0f e0 cb 0b fa ff ff SUBMIT_URB 6.5.
6.5.
16.0 CTL CLEAR FEATURE 7.1.
16.0 URB 1b fa ff ff CONTROL TRANSFER 7.2.
1b fa ff ff 7.2.
IRP 7.3.
7.3.
STAK 0f e0 cb 0b fa ff ff SUBMIT_URB 7.4.
7.4.
16.1 IN . 8.1.
16.1 URB 1b fa ff ff BULK/INT XFER 8.2.
fa ff ff 8.2.
IRP a0 8.3.
8.3.
STAK 0f e0 1a fa ff ff SUBMIT_URB 8.4.
8.4.
16.0 CTL a3 GET STATUS 9.1.
16.0 IN .... 9.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 9.3.
1b fa ff ff 9.3.
IRP 9.4.
9.4.
STAK 0f e0 0a fa ff ff SUBMIT_URB 9.5.
9.5.
16.0 CTL CLEAR FEATURE 10.1.
16.0 URB 1b fa ff ff CONTROL TRANSFER 10.2.
1b fa ff ff 10.2.
IRP 10.3.
10.3.
STAK 0f e0 0a fa ff ff SUBMIT_URB 10.4.
10.4.
16.0 CTL SET FEATURE 11.1.
16.0 URB 1b fa ff ff CONTROL TRANSFER 11.2.
1b fa ff ff 11.2.
IRP 11.3.
11.3.
STAK 0f e0 0a fa ff ff SUBMIT_URB 11.4.
11.4.
16.1 IN . 12.1.
16.1 URB 1b fa ff ff BULK/INT XFER 12.2.
fa ff ff 12.2.
IRP a0 12.3.
12.3.
STAK 0f e0 1a fa ff ff SUBMIT_URB 12.4.
12.4.
16.0 CTL a3 GET STATUS 13.1.
16.0 IN .... 13.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 13.3.
1b fa ff ff 13.3.
IRP 13.4.
13.4.
STAK 0f e0 0b fa ff ff SUBMIT_URB 13.5.
13.5.
16.0 CTL CLEAR FEATURE 14.1.
16.0 URB 1b fa ff ff CONTROL TRANSFER 14.2.
1b fa ff ff 14.2.
IRP 14.3.
14.3.
STAK 0f e0 0b fa ff ff SUBMIT_URB 14.4.
14.4.
16.0 CTL a3 GET STATUS 15.1.
16.0 IN .... 15.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 15.3.
1b fa ff ff 15.3.
IRP 15.4.
15.4.
STAK 0f e0 e4 0b fa ff ff SUBMIT_URB 15.5.
15.5.
16.0 CTL a3 GET STATUS 16.1.
16.0 IN .... 16.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 16.3.
1b fa ff ff 16.3.
IRP 16.4.
16.4.
STAK 0f e0 e4 0b fa ff ff SUBMIT_URB 16.5.
16.5.
16.0 CTL a3 GET STATUS 17.1.
16.0 IN .... 17.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 17.3.
1b fa ff ff 17.3.
IRP 17.4.
17.4.
STAK 0f e0 e4 0b fa ff ff SUBMIT_URB 17.5.
17.5.
16.0 CTL a3 GET STATUS 18.1.
IRP a0 19.1.
19.1.
STAK 1b e0 QUERY RELATIONS 19.2.
19.2.
IRP a0 20.1.
20.1.
STAK 1b QUERY ID 20.2.
20.2.
IRP a0 21.1.
21.1.
STAK 1b 7d f8 ff ff QUERY CAPS 21.2.
21.2.
IRP a0 22.1.
22.1.
STAK 1b 0c QUERY DEV TEXT 22.2.
22.2.
IRP a0 23.1.
23.1.
STAK 1b 0c QUERY DEV TEXT 23.2.
23.2.
IRP a0 24.1.
24.1.
STAK 1b QUERY ID 24.2.
24.2.
16.0 IN .... 18.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 18.3.
1b fa ff ff 18.3.
IRP 18.4.
18.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 18.5.
18.5.
16.0 CTL a3 GET STATUS 25.1.
IRP a0 26.1.
26.1.
STAK 1b QUERY ID 26.2.
26.2.
IRP a0 27.1.
27.1.
STAK 1b QUERY ID 27.2.
27.2.
IRP a0 28.1.
28.1.
STAK 1b QUERY ID 28.2.
28.2.
IRP a0 29.1.
29.1.
STAK 1b 0b QUERY RES REQ 29.2.
29.2.
16.0 IN .... 25.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 25.3.
1b fa ff ff 25.3.
IRP 25.4.
25.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 25.5.
25.5.
IRP a0 30.1.
30.1.
STAK 1b QUERY BUS INFO 30.2.
30.2.
16.0 CTL a3 GET STATUS 31.1.
IRP a0 32.1.
32.1.
STAK 1b 0a QUERY RESOURCES 32.2.
32.2.
IRP a0 33.1.
33.1.
STAK 1b PNP 33.2.
33.2.
16.0 IN .... 31.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 31.3.
1b fa ff ff 31.3.
IRP 31.4.
31.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 31.5.
31.5.
16.0 CTL a3 GET STATUS 34.1.
IRP a0 35.1.()
35.1.
STAK 1b QUERY ID 35.2.
35.2.
IRP a0 37.1.
37.1.
STAK 1b e0 QUERY LEGACY 37.2.
37.2.
IRP a0 38.1.
38.1.
STAK 1b 0b e0 QUERY RES REQ 38.2.
38.2.
IRP a0 39.1.
39.1.
STAK 1b 0d e0 FILTER RES REQ 39.2.
39.2.
IRP a0 40.1.
40.1.
STAK 1b e0 4d 8b 0b fa ff ff QUERY CAPS 40.2.
40.2.
16.0 IN .... 34.2.
16.0 URB 1b fa ff ff CONTROL TRANSFER 34.3.
1b fa ff ff 34.3.
IRP 34.4.
34.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 34.5.
34.5.
IRP a0 41.1.
41.1.
STAK 1b e0 START DEVICE 41.2.
41.2.
23.0 CTL GET DESCRIPTOR 42.1.
23.0 IN 2b .......@..+W.... 42.2.
.. 42.2.
23.0 URB 0b fa ff ff CONTROL TRANSFER 42.3.
a8 0b fa ff ff 42.3.
IRP a0 42.4.
42.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 42.5.
42.5.
23.0 CTL GET DESCRIPTOR 43.1.
23.0 IN e0 ..".....2 43.2.0
23.0 URB 0b fa ff ff CONTROL TRANSFER 43.3.
a8 0b fa ff ff 43.3.
IRP a0 43.4.
43.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 43.5.
43.5.
23.0 CTL GET DESCRIPTOR 44.1.
23.0 IN e0 ..".....2....... 44.2.0
4a ...!...."J...... 44.2.16
23.0 URB 0b fa ff ff CONTROL TRANSFER 44.3.
a8 0b fa ff ff 44.3.
IRP a0 44.4.
44.4.
STAK 0f e0 e7 0a fa ff ff SUBMIT_URB 44.5.
44.5.
23.0 CTL SET CONFIG 45.1.
23.0 URB 0b fa ff ff SELECT CONFIG 45.2.
b0 dd 5a 0b fa ff ff 45.2.
IRP a0 45.3.
45.3.
STAK 0f e0 f5 0b fa ff ff SUBMIT_URB 45.4.
45.4.
23.0 CTL 0a SET IDLE 46.1.
23.0 URB 0b fa ff ff CONTROL TRANSFER 46.2.
a8 0b fa ff ff 46.2.
IRP a0 46.3.
46.3.
STAK 0f e0 e0 0b fa ff ff SUBMIT_URB 46.4.
46.4.
23.0 CTL 8a GET DESCRIPTOR 47.1.
23.0 IN a1 a1 ..............). 47.2.
..%...u.....u... 47.2.
23.0 URB 0b fa ff ff CONTROL TRANSFER 47.3.
a8 0b fa ff ff 47.3.
IRP a0 47.4.
47.4.
STAK 0f e0 e0 0b fa ff ff SUBMIT_URB 47.5.
47.5.
IRP a0 48.1.
48.1.
STAK 1b e0 d0 7d f8 ff ff QUERY CAPS 48.2.
48.2.
IRP a0 49.1.
49.1.
STAK 1b e0 QUERY DEV STATE 49.2.
49.2.
IRP a0 50.1.
50.1.
STAK 1b e0 QUERY RELATIONS 50.2.
50.2.
IRP a0 51.1.
51.1.
STAK 1b e0 QUERY ID 51.2.
51.2.
IRP a0 52.1.
52.1.
STAK 1b e0 QUERY ID 52.2.
52.2.
IRP a0 53.1.
53.1.
STAK 1b e0 QUERY ID 53.2.
53.2.
IRP a0 54.1.()
54.1.
STAK 1b e0 QUERY ID 54.2.
54.2.
IRP a0 56.1.
56.1.
STAK 1b e0 QUERY RELATIONS 56.2.
56.2.
IRP a0 57.1.
57.1.
STAK 1b e0 QUERY RELATIONS 57.2.
57.2.
对253~255行的分析
截取上面原始数据如下: 253 23.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 42.1.0
254 23.0 18 IN 12 01 00 02 00 00 00 40 83 04 2b 57 00 02 01 02 .......@..+W.... 42.2.0
255 03 01 开始分析:
Setup Data: 80 06 00 01 00 00 12 00
------------------------------------
Direction: Device-to-host
Type: Standard
Recipient: Device
------------------------------------
bRequest: GET_DESCRIPTOR wValue: DEVICE type wIndex: 0x0000 wLength: 18 Data stage (18 bytes) : 12 01 00 02 00 00 00 40 83 04 2b 57 00 02 01 02 03 01
------------------------------------ DEVICE Descriptor
-----------------
Offset| Field | Value | Description
------|--------------------|-------|--------------------
0 | bLength | 0x12 |The size of this
| | |descriptor is 18 bytes
------|--------------------|-------|--------------------
1 | bDescriptorType | 0x01 |DEVICE Descriptor Type
------|--------------------|-------|--------------------
2 | bcdUSB | 0x0200|Device compliant to
| | |the USB
| | |specification
| | |version 2.00
------|--------------------|-------|--------------------
4 | bDeviceClass | 0x00 |Each interface
| | |specifies its own
| | |class information
------|--------------------|-------|--------------------
5 | bDeviceSubClass | 0x00 |Each interface
| | |specifies its own
| | |subclass information
------|--------------------|-------|--------------------
6 | bDeviceProtocol | 0x00 |No protocols on the
| | |device basis
------|--------------------|-------|--------------------
7 | bMaxPacketSize0 | 0x40 |Maximum packet size
| | |for endpoint zero is 64
------|--------------------|-------|--------------------
8 | idVendor | 0x0483|Vendor ID
| | |
------|--------------------|-------|--------------------
10 | idProduct | 0x572B|The Product ID
------|--------------------|-------|--------------------
12 | bcdDevice | 0x0200|The device release
| | |number is 02.00
------|--------------------|-------|--------------------
14 | iManufacturer | 0x01 |The index of the
| | |string descriptor
| | |describing the
| | |manufacturer is 1
------|--------------------|-------|--------------------
15 | iProduct | 0x02 |The index of the
| | |string descriptor
| | |describing the
| | |product is 2
------|--------------------|-------|--------------------
16 | iSerialNumber | 0x03 |The device doesn't
| | |have the string
| | |descriptor
| | |describing the
| | |serial number
------|--------------------|-------|--------------------
17 | bNumConfigurations | 0x01 |The device has 1
| | |possible configurations
------|--------------------|-------|--------------------
试用bus hound来分析STM32CubeMX来生成USB_HID_Mouse工程的更多相关文章
- 利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(1)
现在原来的基础上添加ADC的功能. 现在(利用STM32CubeMX来生成USB_HID_Mouse工程)基础上新增硬件 JoyStick Shield 游戏摇杆扩展板 与STM32F103C8的连接 ...
- 利用STM32CubeMX来生成USB_HID_Mouse工程
硬件开发板:STM32F103C8 软件平台 好了现在开始利用STM32CubeMX来生成我们的工程 1.新建工程 选择MCU的型号 选择选择时钟 开启usb的模块 选择USB的类 配置时钟树(主要是 ...
- 利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(2)【非dma和中断方式】
上回讲到怎么采集一路的adc的数据,这次我们来采集两路的数据. 现在直接修改原先的代码 /* Private variables ----------------------------------- ...
- 利用STM32CubeMX来生成USB_HID_host工程
修改时钟(备注这边使用25mhz的主晶振) 选择debug_level等级为3
- Bus Hound抓包分析,基于HID设备(原创)
Bus Hound数据分析: CTL:表示8字节的USB控制传输的Setup包----------------------------重点分析 控制传输setup(token包)和对应数据包(DATA ...
- 不错的usb分析工具!!!---用bus hound分析usb的枚举过程【转】
转自:http://blog.chinaunix.net/uid-25909619-id-3335199.html 说明:由于分析时是在记事本上分析的,贴到这里出现了格式有点乱,看时请复制到记事本中, ...
- Bus Hound 的使用方法
背景: 最近在研究USB相关协议,需要对USB数据进行抓取分析,Bus Hound是个非常赞的工具,在此将其使用方法记录下来,以备下次快速上手使用. 正文: 主界面如下: 首先关注菜单栏三个选项: C ...
- linux下类似Bus Hound的工具
0推荐在linux大家有时候需要调试usb接口的串口消息,但是没有类似于windows下的bus hound工具,感觉比较痛苦,其实linux内核提供了usbmon这个工具,可以收集串口信息. 1.准 ...
- USB抓包工具Bus Hound
/********************************************************************** * USB抓包工具Bus Hound * 说明: * 之 ...
随机推荐
- 【java】之类加载机制
类加载: 类加载机制是指.class文件加载到jvm,并形成Class对象的机制,之后的应用就可对Class对象进行实例化并调用,类加载机制可在运行时动态加载外部的类,远程网络下载过来的class文件 ...
- STL基础--算法(已排序数据的算法,数值算法)
已排序数据的算法 Binary search, merge, set operations 每个已排序数据算法都有一个同名的更一般的形式 vector vec = {8,9,9,9,45,87,90} ...
- C与C++的部分区别
1.函数无形参情况 void test() { } int main() { test(,); ; } 在C语言中形参括号没有参数时代表接受任意多的参数,而在C++语言中代表void(无参数) 所以上 ...
- Springboot监控之二:Spring Boot Admin对Springboot服务进行监控
概述 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控.类加载.健 ...
- 修改ECSHOP的小数点保留位数
客户站点http://carfa.hk79.2ifree.com 原来的程序直接取整了,现在做下面修改. 首先打开文件 /carfa/web/includes/lib_common.php 第一步:在 ...
- github_地址
网络请求: hongyangAndroid/okhttputils(包含cookie的管理): 图片之压缩: Sunzxyong/Tiny:(http://www.tuicool.com/articl ...
- (转)MTU&MSS
MTU是Maximum Transmission Unit的缩写,意为最大传输单元,通俗的理解就是在网络上传送的最大数据包,单位是字节. 以太网对数据帧的长度都有一个限制,其最大值为1500,这个特性 ...
- java 获取两个日期之间的所有天数
Calendar start = Calendar.getInstance(); start.set(2017, 2, 20); Long startTIme = start.getTimeInMil ...
- 【Unix网络编程】chapter6IO复用
chapter6 6.1 概述 I/O复用典型使用在下列网络应用场合. (1):当客户处理多个描述符时,必须使用IO复用 (2):一个客户同时处理多个套接字是可能的,不过不叫少见. (3):如果一个 ...
- jQuery实现评论弹幕、弹幕漂浮、滚动代码
1.html代码和jquery代码: <!DOCTYPE html> <html> <head lang="en"> <meta char ...