最近打算用STM32F103的USB模块模拟PL2303,使用PL2303的驱动,来实现USB转串口。已经用BUS HOUND抓取了PL2303的协议,可我不太清楚怎么修改STM32 USB固件,望各位大侠指点!抓取的2303协议如下:
Bus Hound 6.01 capture on Windows XP Service Pack 3 (x86). Complements of
www.perisoft.net
cha
Device - Device ID (followed by the endpoint for USB devices)
(12) USB Root Hub
(16) Generic USB Hub
(22) Prolific USB-to-Serial Bridge (COM9)
Phase - Phase Type
CTL USB control transfer
IN Data in transfer
OUT Data out transfer
RESET bus reset
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------ ---------------- ------------------
12.0 CTL a3 00 00 00 01 00 04 00 CLASS 1.1.0
12.0 IN 07 05 00 00 .... 1.2.0
12.0 CTL 23 01 02 00 01 00 00 00 CLASS 2.1.0
12 IN 3.1.0
12.0 CTL a3 00 00 00 01 00 04 00 CLASS 4.1.0(2)
12.0 IN 03 05 04 00 .... 4.2.0
12.0 CTL 23 01 12 00 01 00 00 00 CLASS 6.1.0
16.0 CTL 00 01 01 00 00 00 00 00 CLEAR FEATURE 7.1.0
16.1 IN 02 . 8.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 9.1.0(2)
16.0 IN 01 01 01 00 .... 9.2.0
16.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 11.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 12.1.0(2)
16.0 IN 01 01 00 00 .... 12.2.0
16.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 14.1.0
16.1 IN 02 . 15.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 16.1.0
16.0 IN 03 01 10 00 .... 16.2.0
16.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 17.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 18.1.0(3)
16.0 IN 03 01 00 00 .... 18.2.0
16.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 21.1.0
16.1 IN 02 . 22.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 23.1.0
16.0 IN 03 01 10 00 .... 23.2.0
16.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 24.1.0
16.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 25.1.0
16.0 IN 03 01 00 00 .... 25.2.0
12.0 CTL 80 06 00 02 00 00 ff 00 GET DESCRIPTOR 26.1.0
12.0 IN 09 02 27 00 01 01 00 80 ..'..... 26.2.0
32 09 04 00 00 03 ff 00 2....... 26.2.8
00 00 07 05 81 03 0a 00 ........ 26.2.16
01 07 05 02 02 40 00 00 .....@.. 26.2.24
07 05 83 02 40 00 00 ....@.. 26.2.32
16.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 27.1.0
16.0 IN 00 01 00 00 .... 27.2.0
16.0 CTL a3 00 00 00 03 00 04 00 GET STATUS 28.1.0
16.0 IN 00 01 00 00 .... 28.2.0
16.0 CTL a3 00 00 00 04 00 04 00 GET STATUS 29.1.0
16.0 IN 00 01 00 00 .... 29.2.0
16.0 CTL a3 00 00 00 05 00 04 00 GET STATUS 30.1.0
16.0 IN 00 01 00 00 .... 30.2.0
16.0 CTL a3 00 00 00 06 00 04 00 GET STATUS 31.1.0
16.0 IN 00 01 00 00 .... 31.2.0
22.0 CTL 80 06 00 03 00 00 ff 00 GET DESCRIPTOR 32.1.0(2)
22.0 IN 04 03 09 04 .... 32.2.0
22.0 CTL 80 06 02 03 09 04 ff 00 GET DESCRIPTOR 33.1.0(2)
22.0 IN 2c 03 55 00 53 00 42 00 ,.U.S.B. 33.2.0
2d 00 53 00 65 00 72 00 -.S.e.r. 33.2.8
69 00 61 00 6c 00 20 00 i.a.l. . 33.2.16
43 00 6f 00 6e 00 74 00 C.o.n.t. 33.2.24
72 00 6f 00 6c 00 6c 00 r.o.l.l. 33.2.32
65 00 72 00 e.r. 33.2.40
12.0 CTL 00 03 01 00 00 00 00 00 SET FEATURE 36.1.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 37.1.0
12.0 OUT 00 00 00 00 00 02 07 ....... 37.2.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 38.1.0
12.0 IN 00 . 38.2.0
12.0 CTL 40 01 00 00 00 00 00 00 VENDOR 39.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 40.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 41.1.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 42.1.0
12.0 OUT b0 04 00 00 00 02 07 ....... 42.2.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 43.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 44.1.0
12.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 45.1.0
12.0 IN 12 01 10 01 00 00 00 40 .......@ 45.2.0
7b 06 03 23 00 03 01 02 ...#.... 45.2.8
00 01 .. 45.2.16
12.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 46.1.0
12.0 IN 09 02 27 00 01 01 00 80 ..'..... 46.2.0
32 2 46.2.8
12.0 CTL 80 06 00 02 00 00 27 00 GET DESCRIPTOR 47.1.0
12.0 IN 09 02 27 00 01 01 00 80 ..'..... 47.2.0
32 09 04 00 00 03 ff 00 2....... 47.2.8
00 00 07 05 81 03 0a 00 ........ 47.2.16
01 07 05 02 02 40 00 00 .....@.. 47.2.24
07 05 83 02 40 00 00 ....@.. 47.2.32
12.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 48.1.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 49.1.0
12.0 IN 02 . 49.2.0
12.0 CTL 40 01 04 04 00 00 00 00 VENDOR 50.1.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 51.1.0
12.0 IN 02 . 51.2.0
12.0 CTL c0 01 83 83 00 00 01 00 VENDOR 52.1.0
12.0 IN 00 . 52.2.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 53.1.0
12.0 IN 02 . 53.2.0
12.0 CTL 40 01 04 04 01 00 00 00 VENDOR 54.1.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 55.1.0
12.0 IN 02 . 55.2.0
12.0 CTL c0 01 83 83 00 00 01 00 VENDOR 56.1.0
12.0 IN 00 . 56.2.0
12.0 CTL c0 01 81 00 00 00 01 00 VENDOR 57.1.0
12.0 IN 00 . 57.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 58.1.0
12.0 CTL 40 01 01 00 00 00 00 00 VENDOR 59.1.0
12.0 CTL 40 01 02 00 44 00 00 00 VENDOR 60.1.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 61.1.0
12.0 IN 01 . 61.2.0
12.0 CTL c0 01 81 00 00 00 01 00 VENDOR 62.1.0
12.0 IN 00 . 62.2.0
12.0 CTL c0 01 82 00 00 00 01 00 VENDOR 63.1.0
12.0 IN 44 D 63.2.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 64.1.0
12.0 IN 02 . 64.2.0
12.0 CTL 40 01 04 04 00 00 00 00 VENDOR 65.1.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 66.1.0
12.0 IN 02 . 66.2.0
12.0 CTL c0 01 83 83 00 00 01 00 VENDOR 67.1.0
12.0 IN 00 . 67.2.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 68.1.0
12.0 IN 02 . 68.2.0
12.0 CTL 40 01 04 04 01 00 00 00 VENDOR 69.1.0
12.0 CTL c0 01 84 84 00 00 01 00 VENDOR 70.1.0
12.0 IN 02 . 70.2.0
12.0 CTL c0 01 83 83 00 00 01 00 VENDOR 71.1.0
12.0 IN 00 . 71.2.0
12.0 CTL c0 01 81 00 00 00 01 00 VENDOR 72.1.0
12.0 IN 00 . 72.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 73.1.0
12.0 CTL 40 01 01 00 00 00 00 00 VENDOR 74.1.0
12.0 CTL 40 01 02 00 44 00 00 00 VENDOR 75.1.0
12.0 CTL 00 03 01 00 00 00 00 00 SET FEATURE 76.1.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 77.1.0
12.0 OUT b0 04 00 00 00 02 07 ....... 77.2.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 78.1.0
12.0 IN 01 . 78.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 79.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 80.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 81.1.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 82.1.0(2)
12.0 IN 01 . 82.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 83.1.0(2)
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 86.1.0
12.0 OUT b0 04 00 00 00 02 07 ....... 86.2.0
12.0 CTL 40 01 0b 0b 02 00 00 00 VENDOR 87.1.0
12.0 CTL c0 01 81 00 00 00 01 00 VENDOR 88.1.0
12.0 IN 00 . 88.2.0
12.0 CTL 40 01 09 09 00 00 00 00 VENDOR 89.1.0
12.0 CTL 40 01 08 08 00 00 00 00 VENDOR 90.1.0
12.1 RESET 91.1.0
12.3 RESET 92.1.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 93.1.0
12.0 IN 01 . 93.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 94.1.0
12.0 CTL 21 22 02 00 00 00 00 00 CLASS 95.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 96.1.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 97.1.0
12.0 IN 01 . 97.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 98.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 99.1.0(2)
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 101.1.0
12.0 OUT b0 04 00 00 00 02 07 ....... 101.2.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 102.1.0
12.0 OUT b0 04 00 00 00 00 07 ....... 102.2.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 103.1.0(2)
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 105.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 106.1.0
12.0 CTL 21 22 02 00 00 00 00 00 CLASS 107.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 108.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 109.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 110.1.0(2)
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 112.1.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 113.1.0
12.0 OUT b0 04 00 00 00 00 07 ....... 113.2.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 114.1.0(2)
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 116.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 117.1.0
12.0 CTL 21 22 02 00 00 00 00 00 CLASS 118.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 119.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 120.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 121.1.0(2)
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 123.1.0
12.0 CTL 21 20 00 00 00 00 07 00 CLASS 124.1.0
12.0 OUT b0 04 00 00 00 00 07 ....... 124.2.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 125.1.0(2)
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 127.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 128.1.0
12.0 CTL 21 22 02 00 00 00 00 00 CLASS 129.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 130.1.0
12.0 CTL 21 22 01 00 00 00 00 00 CLASS 131.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 132.1.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 133.1.0
12.0 IN 01 . 133.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 134.1.0
12.0 CTL 21 22 03 00 00 00 00 00 CLASS 135.1.0(2)
12.0 CTL c0 01 81 00 00 00 01 00 VENDOR 137.1.0
12.0 IN 00 . 137.2.0
12.0 CTL c0 01 80 00 00 00 01 00 VENDOR 138.1.0(2)
12.0 IN 01 . 138.2.0
12.0 CTL 40 01 00 00 01 00 00 00 VENDOR 139.1.0(2)
12.0 CTL 21 22 02 00 00 00 00 00 CLASS 142.1.0
12.0 CTL 21 22 00 00 00 00 00 00 CLASS 143.1.0