lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1354回复:6

usb 通信问题 [200分]

楼主#
更多 发布于:2003-07-18 13:45
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分]

我说怎么看不到人,原来都在新战里,俺不小心回到老站上去了。我在老站上发了一遍本文,发现新站没有,就重发了一遍,板主莫怪。
www.bjjcz.com
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-07-21 17:34
期望大侠们出手。仁者见仁,智者见智。
www.bjjcz.com
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-20 10:48
UP
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-18 16:17
hongsdsp说得不错,主机发送clear feature命令,设备方必须响应并作相应的处理才行,一般是先关闭端点再打开并使能即可。
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-18 15:33
我也遇到同样问题,希望有人回答。
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-18 14:51
我觉得可能你的电源有问题,干扰太大,另外连线是否太长了!
也可以考虑软件方面利用协议的方式进行纠错!
hongsdsp
驱动牛犊
驱动牛犊
  • 注册日期2003-06-24
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于: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的通讯要正常,设备才能收到这个命令
AKAE 嵌入式 Linux 高级实验班第七期开始招生 http://www.akae.cn
游客

返回顶部