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

时间:2020-12-29 04:13:04
我有一个USB设备,采用的是Cypress公司的EZUSB芯片,驱动采用的是他自带的EzUsb.sys。

一般情况下我的设备通讯良好,但是如果电气上有干扰,如开关某些电气设备,经常发生通讯中断的情况。我的应用程序再也不能从EzUsb.sys取得数据,我发送ResetPipe、AbortPipe等都无法使通讯正常(我不能确认有没发送成功)。但是只要我重新插拔USB连接线,通讯又正常了。

我是个刚刚开始驱动开发的钝刀,请问各位高手:
一般出现这种情况,我应该怎么办?电气上有什么解决方法,驱动程序或者应用程序上有什么解决方法?

10 个解决方案

#1


补充一点,通讯时,采用的是批量传输,64字节的包。

#2


出现这种情况时,USB设备并没有死机,仍然在运行的,只不过无法通讯了。

#3


up

#4


o

#5


可以在程序中加入保护啊。。。当通讯失败,从新启动 就可以了。。
软件reset。

#6


向:ppcust(@小猪&毛毛虫@)
我的软件不允许重新启动,只能通过驱动程序或者应用程序后台恢复通讯。
不知怎么样实现软件reset呢?

#7


硬件可靠性必须得到保证

#8


检查线路,对应芯片datasheet增加保护电路。
最好拿分析仪器抓到问题点分析。

如果不是high speed,d+,d-上应该是有电容滤波保护的。

#9


可否提供点USB通讯的例子?
qiushenwei88@163.com

#10


可考虑解决硬件上的干扰问题
供电电源抗干扰性差,在开关其它设备时被冲击,给你的设备提供一个好的电源;
换个屏蔽好的USB连接

#1


补充一点,通讯时,采用的是批量传输,64字节的包。

#2


出现这种情况时,USB设备并没有死机,仍然在运行的,只不过无法通讯了。

#3


up

#4


o

#5


可以在程序中加入保护啊。。。当通讯失败,从新启动 就可以了。。
软件reset。

#6


向:ppcust(@小猪&毛毛虫@)
我的软件不允许重新启动,只能通过驱动程序或者应用程序后台恢复通讯。
不知怎么样实现软件reset呢?

#7


硬件可靠性必须得到保证

#8


检查线路,对应芯片datasheet增加保护电路。
最好拿分析仪器抓到问题点分析。

如果不是high speed,d+,d-上应该是有电容滤波保护的。

#9


可否提供点USB通讯的例子?
qiushenwei88@163.com

#10


可考虑解决硬件上的干扰问题
供电电源抗干扰性差,在开关其它设备时被冲击,给你的设备提供一个好的电源;
换个屏蔽好的USB连接