阅读:2691回复:6
关于USB得到通讯
由于设备简陋,所以遇到的莫名奇妙的问题其多。不知道有谁能说说在USB device插入HOST时他们的信号过程吗?
我老是看见那个SOF RECEIVE过程不断的被接受但是它确是有反应的,最后结果是USB DEVICE停止响应了。不知道哪位大虾有空能 和我好好说说。 |
|
|
沙发#
发布于:2001-06-29 17:00
win98下,设备枚举的正确顺序如下:
1.getdevicediscriptor(8字节) 2.getdevicediscriptor(8字节)(可能没有) 主机主要对length感兴趣,但发送的内容一定正确,特别是第2字节type一定为0x01,device,否则主机将不响应或再重复2次后放弃,你可检查一下你对EP0的RX、TX设置次序 3,setaddress 一般为02或03,对此项处理你可按照NSC提供的源代码一样处理,往FAR寄存器写入新地址,并enable.以后的操作使用新地址. 4连续3次getdevicediscriptor,读取全部设备描述符,一般为18字节 如果不正确,主机将不响应或再重复2次后放弃. 5.getconfigdiscriptor(8字节),注意第2字节type一定为0x02,config. 6.getstringdiscriptor(可能没有),依你在设备描述符是否有sting索引而定,一般先读取languageid,再读product string. 7.读取全部getconfigdiscriptor,次数根据你的描述符大小而定,如果不正确,主机将不响应或再重复2次后放弃. 8.如果以上步骤都正确,主机将有找到新设备,提示安装驱动程序,否则找到未知设备,不可用. 安装驱动程序后,以后的每次plugin ,枚举次序将与以上略有不同. |
|
板凳#
发布于:2001-06-29 20:16
听君一席话思路清晰多了。可是我的哪个怪东东却不是和你描述的一样而是差太远了。
我的那个,在手到GET DESCRIPTOR后也能送信息回去,但是之后就歇着了。而且在开始的时候回收到无数个SOF_RECEVIE INTERRUT 然后也会手收到GET DESCRIPTOR COMMAND而且是PC端TMD也能收到 这个描述表结果也是对的。但是TNND的就是接下来就在没动静了,除非再一次插拔,然后又是。。。 痛苦呀!老兄帮帮忙分析、分析。还能不能和你有另一种交流方式,这种方式太慢了。 谢谢了!!!! |
|
|
地板#
发布于:2001-07-10 14:32
我的email:pdfan@china.com
欢迎指教!!! |
|
|
地下室#
发布于:2001-07-10 14:33
是pdfan@china.com
不好意思搞错了. |
|
|
5楼#
发布于:2001-07-11 15:05
你有无别的e_mail???
我发的邮件总是被退回。 |
|
|
6楼#
发布于:2001-07-13 09:59
还可以是pdfan@263.net
|
|
|