0

我正在为 USB 设备开发 CDC 驱动程序,但偶然发现了一些问题。我在 Windows 端使用的驱动程序使用 Clear endpoint Feature 作为某种 flash 机制或正确获取数据。这给我带来了很多麻烦,因为我无法让它工作。我认为数据切换不同意,并且我错过了一些重要的数据传输,甚至由于清除数据切换错误而没有获得与该端点相关的中断。正如 USB 标准中所指出的,我在设置接口和清除功能时将数据切换重置为 0。当我应该这样做时,还有更多情况吗?或者是否有简单的错误处理无效数据切换的方法。

感谢您的回答。我有 USB 分析仪,但我现在对我没有任何好处。从我能设法收集到的东西来看,我认为正在发生。在清除功能(应该这样做)之后,我在硬件中为对应的端点设置了 datatoggle 位。发送一些数据,在 PC 上接收。我知道这种形式的 USB 分析器,我用端口监视器跟踪了我的 Vcom 驱动程序。然后我等待一些数据,因为一切都已配置(设备枚举等),最初的问题是 anwsered 但下一个问题不是,在明确端点故障后,PC 端再次提出问题。这应该会触发对应端点的 UBS 中断,但它并没有发生,一段时间后再次出现明确的端点功能和相同的包,并且它一次又一次地得到响应,通信协议保持沉默。

我希望我清楚地说明了这个问题,对于哈瓦雷方面,我认为唯一值得关注的是我正在设置的位。它声明“向该位写入 1 以将端点数据切换重置为 0”。好的,我认为(希望)我解决了 Clear 端点故障,其他错误是由其他原因引起的,并且累积问题很难发现。


好的,我前段时间解决了这个问题,现在我什至不记得是什么原因了,但通常情况下 - 这是另外一回事。与anwser相关的每个人都感谢。

4

2 回答 2

1

我建议使用usb snoopy(软件usb分析器)来了解你做错了什么。如果您有任何预算,您最好购买硬件 USB 分析仪,例如LecroyEllisys。或者获取商业 CDC 驱动程序,只有谷歌可用于 cdc 驱动程序。您的问题描述非常笼统,可以直接解决。

于 2009-06-21T14:02:53.313 回答
1

请注意,在某些版本的 usbser.sys 上,Windows 在传输 64 字节的精确倍数后无法正确刷新管道。从您的问题中我并不清楚这是否是您所看到的行为,但是 USB 分析器应该可以帮助您确定是否是这种情况。如果您使用的是 XP SP2,请升级到 SP3。

于 2009-06-22T11:33:51.147 回答