这里给出的两个设备枚举过程,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
差别在于STM32已经实现完善,BOT和SCSI协议均实现,且可以当一个读卡器使用;而基本D12的U盘仅仅是实现的枚举相关部分,BOT和SCSI协议未实现;
转载请注明出处:青藤门客播报站,http://blog.ednchina.com/walnutcy/
先看下SETUP数据包的格式吧,都为8个字节长,具体定义如下诸表:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
Table 9-3. Standard Device Requests
没有废话,下面就分析下在枚举的过程中PC机发给Device的数据,
=======================================
STM32 USB Data
// 这里的数据都是PC机发送给Device器件的
80 06 0001 0000 0040 => GET_DESCRIPTOR,
// 因为设备描述符的长度不等,这里取一包用以更具体地判断,
00 05 0100 0000 0000 => SET_ADDRESS, Device的地址设置为0010
80 06 0001 0000 0012 => GET_DESCRIPTOR, 取Device描述,
// 注意,这里的18字节长,是第一次取设备描述时Device告诉PC的。
80 06 0002 0000 0009 => GET_ DESCRIPTOR , 取Configuration 的Initial描述,
// 注意,这里的主要目的在于得到Device的配置信息的确切长度,便于后边应用。// 在建立过程中,有多处都是有两次取设备相关描述信息的,两处都只是长度不同,详加注意就会发现,后面的那个长度才是我们写的Device固件中的实际长度.
80 06 0003 0000 00FF => GET_ DESCRIPTOR , 取String描述,
80 06 0303 0904 00FF => GET_ DESCRIPTOR , 取String的第3个描述,
// 注意,0904是language ID, PC是在上一次取String描述时得到的,后边的同。
80 06 0002 0000 00FF => GET_ DESCRIPTOR , 取Configuration 的完整描述,
80 06 0006 0000 000A
80 06 0003 0000 00FF
80 06 0203 0904 00FF
80 06 0003 0000 00FF
80 06 0203 0904 00FF
80 06 0001 0000 0012
80 06 0002 0000 0009
80 06 0002 0000 0020
80 06 0003 0000 0002
80 06 0003 0000 0004
80 06 0303 0904 0002
80 06 0303 0904 001A
00 09 0100 0000 0000 => SET_CONFIGURATION 为第1个
A1 FE 0000 0000 0001
D12 USB Data // 这里的数据都是PC机发送给Device器件的
//=======================================
Serial Baud rate is 57600
Build date : Oct 22 2008 - 09:41:09
type ? for help
\>Find Pdiusbd12, chip id = 0x1210
80060001-00004000
00050100-00000000
80060001-0000<?xml:namespace prefix = st1 ns = "Tencent" />1200
80060002-00000900
80060002-0000FF00
80060001-00001200
80060002-00000900
80060002-00002000
00090100-00000000
A1FE0000-00000100
A1FE0000-00000100
A1FE0000-00000100
80060001-00004000
00050200-00000000
80060001-00001200
80060002-00000900
00090100-00000000
80060001-00004000
00050100-00000000
80060001-00001200
80060002-00000900
00090100-00000000
80060001-00004000
00050200-00000000
80060001-00001200
80060002-00000900
00090100-00000000
文章评论(0条评论)
登录后参与讨论