首页 文章

威胁CE USB堆栈性能问题

提问于
浏览
0

我们正在为WinCE 6开发用于以太网设备的USB驱动程序 .

我们正在发现性能问题,并可以使用代码分析缩小到USB Stack . Tx路径中95%的时间是在IssueBulkTransfer中获取的,这会导致驱动程序在内部对数据包进行排队 . TX-COMPLETE例程调用与IssueBulkTransfer不同步 .

我们使用USB分析仪检查USB带宽使用情况,发现它占总带宽的20-30% . 因此硬件足够快,可以通过接口传输数据 .

有了上述发现,瓶颈似乎在USB总线驱动程序和USB HCD驱动程序中 .

  • WinCE 6 USB协议栈是否存在任何已知的性能限制?

  • 使用WinCE 6.0 USB堆栈的高速设备(USB 2.0)可以达到的最高速度是多少?

1 回答

  • 0

    你在使用同步传输吗?如果使用异步的,则可以为tx或rx排队多个数据包,主机驱动程序不必等到驱动程序收到completition通知以发出新的tx或rx请求 . 这可能允许您使用更多带宽 . 您还可以使用HalAllocateCommonBuffer或为缓冲区保留一些物理内存范围来分配缓冲区 . 这样,如果驱动程序可以使用DMA,则可以避免驱动程序中的副本 . 您没有提供有关您的硬件架构的详细信息,很难估计您可能期望的性能级别 .

相关问题