打印

如何解决因干扰引起的USB通讯中断?

[复制链接]
3754|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoyt|  楼主 | 2010-8-8 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我有一个USB设备,采用的是Cypress公司的EZUSB芯片,驱动采用的是他自带的EzUsb.sys。

一般情况下我的设备通讯良好,但是如果电气上有干扰,如开关某些电气设备,经常发生通讯中断的情况。我的应用程序再也不能从EzUsb.sys取得数据,我发送ResetPipe、AbortPipe等都无法使通讯正常(我不能确认有没发送成功)。但是只要我重新插拔USB连接线,通讯又正常了。
沙发
guoyt|  楼主 | 2010-8-8 16:45 | 只看该作者
是个刚刚开始驱动开发的钝刀,请问各位高手:
一般出现这种情况,我应该怎么办?电气上有什么解决方法,驱动程序或者应用程序上有什么解决方法?

使用特权

评论回复
板凳
zhanglli| | 2010-8-8 17:05 | 只看该作者
通讯怎么传输的?

使用特权

评论回复
地板
guoyt|  楼主 | 2010-8-8 17:10 | 只看该作者
通讯时,采用的是批量传输,64字节的包。

使用特权

评论回复
5
guoyt|  楼主 | 2010-8-8 17:12 | 只看该作者
出现这种情况时,USB设备并没有死机,仍然在运行的,只不过无法通讯了。

使用特权

评论回复
6
llia| | 2010-8-8 17:13 | 只看该作者
可以在程序中加入保护啊。。。当通讯失败,从新启动   就可以了。。
软件reset。

使用特权

评论回复
7
guoyt|  楼主 | 2010-8-8 17:16 | 只看该作者
我的软件不允许重新启动,只能通过驱动程序或者应用程序后台恢复通讯。
不知怎么样实现软件reset呢?

使用特权

评论回复
8
hanwe| | 2010-8-8 17:17 | 只看该作者
硬件可靠性必须得到保证

使用特权

评论回复
9
yufe| | 2010-8-8 17:17 | 只看该作者
查线路,对应芯片datasheet增加保护电路。
最好拿分析仪器抓到问题点分析。

使用特权

评论回复
10
yufe| | 2010-8-8 17:18 | 只看该作者
如果不是high   speed,d+,d-上应该是有电容滤波保护的。

使用特权

评论回复
11
李冬发| | 2010-8-8 17:20 | 只看该作者
换个非USB的产品,USB产品在这块上是绝对弱项,没有跟治办法。

使用特权

评论回复
12
langgq| | 2010-8-8 17:28 | 只看该作者
可考虑解决硬件上的干扰问题
供电电源抗干扰性差,在开关其它设备时被冲击,给你的设备提供一个好的电源

使用特权

评论回复
13
langgq| | 2010-8-8 17:28 | 只看该作者
换个屏蔽好的USB连接

使用特权

评论回复
14
李冬发| | 2010-8-8 20:31 | 只看该作者
有些USB设备,断开后,即使关机重启都不管用。

使用特权

评论回复
15
linqing171| | 2010-8-9 12:29 | 只看该作者
但是如果电气上有干扰,如开关某些电气设备

解决的办法就是,电器上不要有干扰,开关某些电器设备的时候,不要有任何干扰过来。
特别开关的电器设备和USB设备之间,不要有任何的电源耦合。信号线上能过电流的地方也都隔离。
另外USB设备上,加大的电容,提高其他设备电源带来的冲击。

使用特权

评论回复
16
yewuyi| | 2010-8-9 13:44 | 只看该作者
呵呵,不知道怎么回事情,原来我们用CP2XXX转232的时候,也是这样,不过电路上增加一些措施后可以改善但难以根治。

俺们对USB不懂,所以当时不能从底层分析,不知道底层是不是可以用软件RST,后来制订协议格式的时候,特别规定,如果10S内接不到PC通过USB返回的数据包,就强制性的把CP2XXX断电一次。

使用特权

评论回复
17
李冬发| | 2010-8-9 14:24 | 只看该作者
我有用过3G网卡,中兴的,那可是不跟别的地方相联的啊,不存在共地问题。可一般2、3天就一定玩完。重新启机都不管用的啊,得在开机时带电插拔一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

粉丝