通过 USB 2.0 串行。它真的比标准串行更快吗?

The*_*ist 1 usb serial serial-port

我们科学合作的一名成员设计了一个具有 4 个通道 @ 1 kHz 的数据采集盒,可与 GPS 同步时间。他使用USB 2.0让盒子与计算机进行通信,并使用波特率为115200的COM串行接口以ASCII格式将数据传输到计算机。制造商将此称为 USB 2.0 上的“虚拟串行”。因此,奇偶校验、工作流程控制等所有配置...在串行接口中并不重要,但只需将波特率设置为 115200 即可使其工作。

我的问题是:这个数字 115200 真的代表每秒可以通过该端口最大传输的字节数,从而限制了 USB 2.0 端口的功能吗?或者这个数字真的不重要,实际传输速率约为标准 USB 2.0 的 480 Mbits/s吗?

决定这一点的因素有哪些?

为什么问?该盒子目前使用单向串行通信来传输数据,这会导致有时在计算机过载时丢失字节的问题。可靠的解决方案是使用校验和建立双向连接,并请求数据包并在数据损坏时重新请求。然而,如果我们确实受到 115 kB/s 的限制,这意味着我们无法以 1 kHz 传输 4 个通道。

如果您需要任何其他信息,请询问。

saw*_*ust 5

通过 USB 2.0 串行。它真的比串口快吗?

你的术语很草率。
“通过 USB 2.0 串行”可以指使用 USB 转 RS232 适配器,或指CDC/ACM
您最后一次提到的“串行”可能是指 RS-232。

我的问题是:这个数字 115200 真的代表每秒可以通过该端口最大传输的字节数,从而限制了 USB 2.0 端口的功能吗?

115200 是波特率,(在本例中)是每秒位数(而不是每秒字节数)。
由于这是一个异步通道,每个字符/字节都单独由一个起始位和 1/1.5/2 个停止位构成。因此,帧开销为 25%(假设 8N1 的典型配置)。

USB 是一种总线,可以处理多个数据通道。
异步 RS-232 数据被打包以便通过同步 USB 传输,并共享 USB 2.0 的 480 Mbs 总带宽。(尽管典型的 USB 转 RS232 适配器仅使用 USB 1.1。)

我亲眼目睹了四个同步 115200 波特率 RS-232 通道通过单个 USB 1.1 连接进行传输,没有出现任何问题。

或者这个数字真的不重要,实际传输速率约为标准 USB 2.0 的 480 Mbits/s?

该数字确实很重要,因为它是为该通道配置的波特率。

决定这一点的因素有哪些?

最大波特率通常受到硬件和支持软件的限制。

为什么问?该盒子目前使用单向串行通信来传输数据,这会导致有时在计算机过载时丢失字节的问题。

您的数据丢失似乎是系统缓冲区溢出的情况。 数据到达的速度比应用程序读取/处理的速度快。 数据通道上未采用流量控制来防止溢出。