1

我正在使用USB进行通信。我们的设备发送 100k/s 的数据(ARM7,非常小的内存大小),PC 需要接收并处理所有数据。

我之前的设计是作为大容量存储设备实现的,并扩展了通信协议的命令。PC 软件运行一个带有循环的线程来接收数据。

问题是:有时它会丢失数据。

所以我们使用了另一种解决方案:usb sim com (RS232)。

但是在我使用 MFC(或 pyserial)获取之前,我不知道操作系统是否可以包含那么多数据。如何获取/设置缓冲区大小?

4

1 回答 1

0

我们经常通过我们的 USB CDC 实现以大约 100KByte/sec 的速度冲孔,PC 的速度足以接收所有数据。但似乎 USB 串行 (CDC) 的内置限制低于大容量存储协议(在我们的示例中为 ~600KB/s 与 ~100KB/s CDC)。

PC 接收线程应该有一个“足够大”的缓冲区。

编辑:不过,我不知道 Windows 的缓冲区大小,也不知道如何获取它们。

于 2010-09-15T07:32:30.853 回答