阅读:1956回复:7
请教关于USB设备插上后的枚举过程,主机到底会发来哪些标准请求?设备怎样去应答主机?
我在驱动开发论坛上看到liuzheng的帖子---D12-C51驱动程序开发,感觉对我的帮助很大,现在我有一些问题和困惑冒昧向各位高手请教。
我这里要做的事情是要把PDA上面的三星FLASH做成可即插即用式的USB移动硬盘。三星FLASH我想应该属于MASS STORAGE设备,我采用的USB芯片是D12,只不过PDA上采用的CPU不是8052而已。 我请教了一个做过USB的硬件人员,对开发移动硬盘的过程终于心里有了点轮廓:由于WIN ME 和2000都已经内嵌了对标准 USB mass Storage类设备的主机端驱动程序(即system32\\usbstor.sys),所以ME 和2000上的WDM设备驱动程序不需要我再开发,也就是说当带三星FLASH的PDA通过USB口插到装有ME或2000的PC上时, 根据您讲到的USB设备启动流程: 1.USB设备接入USB口,发出连接USB命令(我这里采用硬连接,设备并没有向主机发命令,主机探测到D12芯片的D+线拉高即可知道设备连上了) 2.主机发出读设备描述符两次。 3.设备根据主机发来的命令,理解这些命令并把设备描述符按主机要求的标准格式分别发给主机。 4.主机根据设备描述符――厂商ID、产品ID,启动相应设备驱动程序。 5.设备驱动程序初始化USB设备: a.读设备描述符 b.读配置描述符 c.选择接口、端点(管道),确定传输方式 主机在完成第五步后,知道是一个USB Mass Storage类的设备连在主机上,主机端的设备驱动程序并会给操作系统WINDOWS分配一个盘符,我的初步工作也就可以实现了。也就是说,在ME和2000的操作系统中,我所要做的事情都集中在第3步了,即设备端如何理解枚举时主机发来的每一次标准请求,然后向主机回复这些请求。看来关键还是得理解主机都发来了哪些请求,关于这部分向各位做过U盘的有经验的高手们请教,希望得到大家的点拨。 |
|
沙发#
发布于:2002-06-11 15:33
看看bulk only 的specifications
|
|
|
板凳#
发布于:2002-06-11 15:37
还有usb 1.1 specifications 的第九章
|
|
|
地板#
发布于:2002-06-12 16:01
你说的这些都已经看过了,也基本上有些理解了,标准请求我也都处理了,可是理论离实践还是有差距,到底来的特定类请求该如何处理?更为糟糕的是我发现主机端根本没有发来特定类请求包。这是什么原因?
|
|
地下室#
发布于:2002-06-12 17:14
你可以看看plasma的代码.写得很清楚.虽然它不是给store用的.但可以参考.
|
|
|
5楼#
发布于:2002-06-13 11:47
plasma的代码是MASS STORAGE类设备,使用BULK ONLY传输协议吗?
|
|
6楼#
发布于:2002-06-13 12:55
不是
|
|
|
7楼#
发布于:2002-06-13 18:43
请问plasma有没有RBC设备开发的经验,望不吝赐教,谢谢
|
|
|