USB清除端点功能

USB清除端点功能,usb,usbserial,Usb,Usbserial,我正在为USB设备开发CDC驱动程序,我偶然发现了一些问题。 我在windows端使用的驱动程序使用Clear endpoint特性作为某种flish机制或正确获取数据。那会让我很烦躁,因为我不能让它工作。我认为数据切换不一致,我错过了一些重要的数据传输,甚至没有得到与端点相关的中断,因为糟糕的清除数据切换。 我在设置接口和清除功能时将数据切换重置为0,正如USB标准中所指出的。 我应该这样做的时候还有更多的情况吗?或者是否有简单的错误处理方法来处理无效数据切换 谢谢你的邀请。我有usb分析仪,

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

谢谢你的邀请。我有usb分析仪,但现在对我没有任何好处。从我所能收集到的,我认为正在发生的事情。我在hardvare中为响应端点的Clear特性(应该这样做)后设置datatoggle位。发送一些数据,然后在PC上接收。我知道这张表格是USB分析仪,我用端口监视器跟踪了我的Vcom驱动程序。 然后我等待一些数据,因为所有配置都已完成(设备枚举等),初始问题已回答,但下一个问题未回答,在清除端点故障后,PC端将再次提问。这应该会触发UBS对共同响应端点的中断,但它不会发生,一段时间后,再次出现了明确的端点功能和相同的包,并且这一次得到响应,通信协议上再次出现沉默。我计算了请求的传输与丢失的中断,比率正好是2:1,所以我认为数据切换设置错误的时间有一半,但如果每次我获得清除端点功能时都设置数据切换位,这怎么可能发生呢

我希望我清楚地说明了这个问题,对于哈瓦雷方面,我认为唯一值得注意的是我设置的位。它表示“将1写入该位以将端点数据切换重置为0。” 好吧,我想(希望)我解决了清晰端点的问题,其他错误是由其他因素引起的,累积问题很难抓住


好吧,我在一段时间前就解决了这个问题,现在我甚至不记得是什么原因了,但通常情况下,是其他原因造成的。所有与anwser联系的人都表示感谢。

我建议使用(软件usb分析仪),以了解您做错了什么。如果你有任何预算,你最好有硬件usb分析仪,如我们或。或者找一个商业的CDC驱动程序——只有谷歌的CDC驱动程序就有很多。
您的问题描述非常笼统,可以直接解决

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

courice但我的情况更简单,故障明显是端点疲劳和无法处理,其次我的USB堆栈中的任务处理有问题,因此出现了奇怪的行为。