【问题标题】:ftdi (vcp or d2xx) forward (from PC to ftdi device) latencyftdi(vcp 或 d2xx)转发(从 PC 到 ftdi 设备)延迟
【发布时间】:2014-11-13 18:13:48
【问题描述】:

如 FTDI 网站上所述,要从 FTDI 设备接收字节到 PC,由于这个 64 字节 USB 数据包问题,它可能会有 16 毫秒(超时)+ 1 毫秒(或更多,USB 调度程序时间)的延迟。

如果我理解正确,就从 FTDI 芯片(FTDI_232 或 FTDI_245)到 PC 的连续数据流(无流量控制)而言,最好的方法(避免 16 毫秒超时延迟)是要求:

每 1ms 62 字节,如果 USB 调度程序每 1ms 可靠地调度驱动程序; 如果 USB 调度程序每 2ms 可靠地调度驱动程序,则每 2ms 124 字节; ... 如果 USB 调度程序每 6ms 可靠地调度驱动程序,则每 6ms 372 字节;

我的问题是从 PC 向 FTDI 芯片发送字节的速度有多快?它肯定会受到这种 USB 调度程序延迟的影响。但是否也存在一些 64 字节数据包问题?

换句话说,能够将数据从 PC 连续流式传输到 FTDI 芯片。我应该一次发送 62 个字节吗?

【问题讨论】:

    标签: serial-port ftdi


    【解决方案1】:

    我刚刚阅读了该文档,我的理解是 FTDI 设备计时器的作用是强制将尚未满缓冲区的闪存闪烁到 PC。否则,如果你有一个外围设备,它每小时只发送几个字节而没有事件字符或状态行改变,你将不得不等待一天来填充 64 字节的设备缓冲区并在 PC 端获取数据。

    它似乎只影响读取和可能写入小于 FTDI 设备缓冲区的数据包。如果您想以最大吞吐量流式传输到 FTDI 设备,请使用最大 4K 数据包并继续推送数据。超时设置应该没有效果。

    【讨论】:

      【解决方案2】:

      16ms USB Bulk IN 延迟确实是将部分 64 字节数据块从芯片刷新回 PC。在他们的知识库中,有关于changing this value 的信息,即您可以将最小延迟计时器设置为 1 毫秒,这意味着在每毫秒之后,芯片内部的任何数据都将被发送回 PC。

      延迟计时器仅影响从芯片到 PC 的数据;它不会影响相反方向的数据。

      设备的最大吞吐量将受到您为 UART 设置的波特率的影响。我会和他们谈谈理论上的极限是什么。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-16
        相关资源
        最近更新 更多