阅读:1352回复:6
usb 通信问题 [200分]
os: win98
usb chip: an2131 cable: cypress develop kit 附带的屏蔽电缆,< 5m driver: ds 生成 由于设备工作的环境比较恶劣,usb 通信总是出错。有以下问题想请教各位大侠: 1)在 driver 中输出 usbd error 。经常发现 DEV_NOT_RESPONDING. 该endpoint 被置为 err,stall .请问此错误 产生的原因是什么? 2)发现 endpoint 被设为 stall 之后,怎样才能清除? 在pipe.submiturb() 返回错误后,调用 pipe.reset()函数,一样返回错误:ep_stall.不知道各位大侠是如何清除stall endpoint? 3)如果 usb 正在传输数据,拔掉设备,submiturb()将返回什么错 误? 4)submiturb()如果返回错误,我就将 urb.(?).status 打印到调试器上输出,但这样做之后,只要以拔掉设备,pc 就翘翘了:msgserv 无响应。如何处理才能够:既可以将出错信息输出到调试器,拔插设备又不会死机? 5)硬件上有什么有效措施可以提高 usb 传输的可靠性?望各位大侠不吝指教。[100分] 我说怎么看不到人,原来都在新战里,俺不小心回到老站上去了。我在老站上发了一遍本文,发现新站没有,就重发了一遍,板主莫怪。 |
|
|
沙发#
发布于:2003-07-18 14:14
1)在 driver 中输出 usbd error 。经常发现 DEV_NOT_RESPONDING. 该endpoint 被置为 err,stall .请问此错误
产生的原因是什么? 如果DEVICE收到不规范的命令的时候可能会STALL这个端口,既然没收到规范的命令自然HOST就不可能收到RESPONSE,所以,是否HOST和DEVICE的通讯有问题? 2)发现 endpoint 被设为 stall 之后,怎样才能清除? 端口被STALL后,可以通过CLEAR FEATURE 来UNSTALL端口,当然HOST和DEVICE的通讯要正常,设备才能收到这个命令 |
|
|
板凳#
发布于:2003-07-18 14:51
我觉得可能你的电源有问题,干扰太大,另外连线是否太长了!
也可以考虑软件方面利用协议的方式进行纠错! |
|
地板#
发布于:2003-07-18 15:33
我也遇到同样问题,希望有人回答。
|
|
地下室#
发布于:2003-07-18 16:17
hongsdsp说得不错,主机发送clear feature命令,设备方必须响应并作相应的处理才行,一般是先关闭端点再打开并使能即可。
|
|
5楼#
发布于:2003-07-20 10:48
UP
|
|
6楼#
发布于:2003-07-21 17:34
期望大侠们出手。仁者见仁,智者见智。
|
|
|