重复的NAK似乎覆盖了有效载荷

时间:2012-03-28 20:19:36

标签: usb windows-ce driver

我是初级驱动程序编程的新手,也是USB的新手。但是,我设法为Windows CE(6.0)编写了一个驱动程序,并且我还可以访问USB-Sniffer来读取主机和设备之间的所有流量。

现在问题发生在某些电路板上(我有3个电路板中有2个): 当设备没有要发送的数据时,我发出中断传输,设备发送ACK。

到目前为止,这是预期的。然而,某些事情(我猜USB控制器或WinCE)似乎会自动发出更多的IN传输(一块板上3块,另一块板上4块),然后我得到后续的ACK。到目前为止,这也不是问题。

但是下一次IN-Transfer也会产生ACK,无论是否有数据要发送,我都会在驱动程序中收到零字节。

然而,当我查看USB-Sniffer时,发送了正确的电报,但是会自动发出2个IN-Transfers,并通过ACK进行响应。所以似乎数据被ACK覆盖了。

我尝试了到目前为止我想到的所有内容:重置管道,关闭并重新打开连接,但似乎没有任何正常工作。然而,重置管道解决了大约一半案例中的问题。我真的没有解决问题的想法。

有没有办法告诉USB控制器(或WinCE或导致此行为的原因)始终只发出一次转移?

修改

原来这是一个线程问题。不幸的是,我不是修理它的人,我无法访问工作解决方案,因此我无法提供进一步的细节。

0 个答案:

没有答案