wince 6 USB-批量传输问题(批量输入管道上无传输令牌帧)

wince 6 USB-批量传输问题(批量输入管道上无传输令牌帧),usb,windows-ce,bulk,Usb,Windows Ce,Bulk,我们正在为以太网网络设备开发WinCE 6.0 USB驱动程序。设备有1个控制、1个中断(IN)和4个批量端点(3个输出和1个输入)。基本功能与驱动程序配合良好 但当我们运行大量流量(使用iperf)一段时间时,我们会看到一个问题,即无法从端点中的批量接收来自目标的任何数据。此时,主机仍然能够通过批量输出端点发送数据 我们有一个USB分析仪来检查主机和设备之间的事务。我们从捕获中发现,当我们遇到这种情况时,主机已停止在端点中批量发送令牌帧以读取数据。尽管它仍然能够通过批量输出管道推送数据,并从设

我们正在为以太网网络设备开发WinCE 6.0 USB驱动程序。设备有1个控制、1个中断(IN)和4个批量端点(3个输出和1个输入)。基本功能与驱动程序配合良好

但当我们运行大量流量(使用iperf)一段时间时,我们会看到一个问题,即无法从端点中的批量接收来自目标的任何数据。此时,主机仍然能够通过批量输出端点发送数据

我们有一个USB分析仪来检查主机和设备之间的事务。我们从捕获中发现,当我们遇到这种情况时,主机已停止在端点中批量发送令牌帧以读取数据。尽管它仍然能够通过批量输出管道推送数据,并从设备获得成功的确认

就在我们遇到这种情况之前,我们看到了NAK令牌帧中(当设备没有数据发送到主机时)或有效数据令牌中的正常行为

  • 这表明设备固件仍有响应。什么会导致HCD停止发送令牌帧
  • 如何从这种局部故障中恢复
  • 有没有关于如何进一步调试的建议

    提前谢谢

    谢谢


    杰夫·法斯迈尔

    我们已经解决了这个问题

    在初始化期间,向HCD驱动程序提供缓冲区,以便在端点中批量接收数据。当我们运行高流量时,我们遇到了一个条件,即提交给HCD的所有缓冲区都返回给驱动程序,但没有返回给HCD。由于没有缓冲区来接收该管道的数据,HCD驱动程序不发送任何令牌传输帧