首页 文章

USB清除 endpoints 功能[关闭]

提问于
浏览
0

我正在开发USB设备的CDC驱动程序,我偶然发现了一些问题 . 我在Windows端使用的驱动程序使用Clear endpoint Feature作为某种flish机制或正确获取数据 . 这给我带来了很多因素,因为我无法让它发挥作用 . 我认为数据切换不一致,我错过了一些重要的数据传输,即使没有因为清除数据切换错误而得到相关的中断 . 如USB标准所述,我在设置接口和清除功能时将数据切换为0 . 我应该这样做的时候还有更多的情况吗?或者是否有简单的错误处理方法来处理无效数据切换 .

谢谢你的回复 . 我有USB分析仪,但我现在对我没有好处 . 从我可以设法收集,我认为正在发生 . 在相应 endpoints 的清除功能(应该这样做)之后,我在hardvare中设置数据切换位 . 发送一些数据,它在PC上获取 . 我知道这种形式的USB分析仪,我用端口监视器跟踪我的Vcom驱动程序 . 然后我等待一些数据,因为一切都已配置(设备枚举等),初始问题是未经过验证但下一个问题不是,在明确的 endpoints 功能之后,PC端再次提出问题 . 这应该触发相应 endpoints 的UBS中断,但它不会发生,在一段时间之后有一个明确的 endpoints 功能和相同的包,并且它一次又一次得到响应,并且通信协议上有静音 . 我计算了请求的转移与丢失中断的比例,并且比率恰好是2:1所以我认为数据切换在一半的时间内设置错误,但是如果我每次获得清晰的 endpoints 功能时设置数据切换位,怎么会发生这种情况 .

我希望我能清楚地说出这个问题,因为哈维尔方面我认为唯一令人讨厌的事情就是我所设定的那一点 . 它指出“将1写入此位以将 endpoints 数据切换为0” . 好吧,我认为(希望)我解决了Clear endpoints 的特征,其他错误是由其他事情引起的,累积问题很难理解 .


好的,我前一段时间已经解决了这个问题,现在我甚至不记得原因是什么,但通常情况是 - 这是别的东西 . 每个与anwser相关的人都要感谢 .

2 回答

  • 1

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

  • 1

    我建议使用usb snoopy(软件usb分析器)来了解你做错了什么 . 如果你有任何预算,你最好得到硬件usb分析仪,例如我们LecroyEllisys . 或者获得一个商业CDC驱动程序有很多可用只是谷歌的CDC驱动程序 . 您的问题描述非常一般,可以直接解决 .

相关问题