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

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

我们科学合作的一名成员设计了一个数据采集盒,它有 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 个通道。

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

答案1

USB 2.0 串行。它真的比串行更快吗?

你的用语很混乱。
“通过 USB 2.0 串行”可以参考使用 USB 转 RS232 适配器,或者参考疾病预防控制中心/美国医学协会.
您最后提到“连续”大概是 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 连接进行传输,并且没有任何故障。

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

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

哪些因素决定了这一点?

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

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

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

相关内容