如FTDI网站上所述,要从FTDI设备接收字节到PC,由于此64字节USB数据包问题,可能会有延迟16ms (超时)+ 1ms (或更多,USB调度器时间)。
如果我理解正确的话,在从FTDI芯片(FTDI_232或FTDI_245)到PC的连续数据流(没有流量控制)方面,(为了避免16ms超时延迟),最好的办法是要求:
如果USB调度器每1ms可靠调度驱动程序,则每1ms 62字节;如果USB调度器每2ms可靠调度驱动程序,则每2ms调度驱动程序124字节;如果USB调度器每6ms可靠地调度驱动程序,则每6ms调度驱动程序372字节;
我的问题是,从PC向FTDI芯片发送字节的速度有多快?它肯定会受到这个USB调度器延迟的影响。但是,是否也存在一些64字节的数据包问题?
换句话说,能够连续地将数据从PC传输到FTDI芯片。我应该一次发送62个字节吗?
发布于 2015-11-14 13:13:33
我刚刚读了那篇文档,我的理解是FTDI设备计时器的作用是强制闪存,而不是对PC进行完全的缓冲。否则,如果您的外设每小时只发送几个字节,而没有事件字符或状态行更改,则必须等待一天才能填满64字节的设备缓冲区并获取PC端的数据。
它似乎只影响比FTDI设备缓冲区小的读取和写入数据包。如果您想以最大吞吐量流式传输到FTDI设备,请使用最大4K包,并不断推送数据。超时设置应该不起作用。
发布于 2016-06-09 18:56:36
16ms USB Bulk IN延迟实际上是将部分64字节块的数据从芯片刷新回PC。在他们的知识库中有关于changing this value的信息,例如,你可以将最小延迟定时器设置为1ms,这意味着在每隔1ms之后,芯片内部的任何数据都将被发送回PC。
延迟计时器仅影响从芯片到PC的数据;它不会影响相反方向的数据。
设备的最大吞吐量将受您为UART设置的波特率的影响。我会和他们谈谈理论上的限制是什么。
https://stackoverflow.com/questions/26915672
复制相似问题