我有一个在带有IMX6处理器的主板上运行WinCE7的系统。偶尔当系统负载很重时,我在USB跟踪器上看到,大约2秒内,看不到IN令牌(只看到SOF表示总线处于活动状态)。 在驱动程序的某个地方调用函数" IssueBulkTransfer"是我认为通过Microsoft库并到达BSP。 我的问题是,如果我告诉主机控制器发送一个IN令牌,控制器的微代码是否会继续发送IN令牌,如果它收到NAK,而我的驱动程序不必每次都重新发送IN令牌(因此使用CPU)时间)?
由于
答案 0 :(得分:0)
从描述中我假设你在谈论EHCI控制器。 回答两点 -
1 - 是的,控制器将连续发送NAK的IN令牌,直到该终点的NAC计数器达到0。
2 - 我想也是你所看到的闲置时期。请参阅EHCI规范第4.9节中的引用。
请注意,当所有队列头都在异步计划中时 耗尽所有转移或所有NakCnt都归零,然后是主机 控制器将检测到空的异步调度和空闲 计划遍历(参见第4.8.3节)。
因此控制器将停止遍历计划列表,这可能是您看到的2秒空闲时间。当控制器再次开始遍历时,它会重新加载NAK计数器并再次以IN令牌启动。