COM 端口延迟的有用性

问题描述

正如您在本教程中看到的,COM 端口的认延迟计时器为 16 毫秒。
COM Port Latency

但在大多数情况下,我们希望延迟最小。

在互联网上我们看到很多关于为什么这个值应该尽可能小的解释,但什么时候选择大值是好的

那么为什么认值是 16ms 而它可能是 1ms 呢?

解决方法

以更大的块传输数据会更节省 CPU。如果您有 1 毫秒的延迟,您的串行端口可能会导致每秒多达 1000 次通过操作系统的传输(中断、下层处理程序、上下文切换、用户回调等)。如果延迟为 16 毫秒,您将仅在 60 次传输中处理相同数量的数据,每次传输处理一个更大的块。

减少中断计数在现代多核系统上的用处远不如在单核上有用,因为在串行(或 USB)中断上花费的所有时间都意味着延迟处理其他 I/O,例如磁盘传输。现在,工作可以在多个内核之间分配,尽管低效处理仍然对例如电池寿命。

,

您正在查看的功能是由供应商的硬件和设备驱动程序专门提供的,大多数其他供应商不支持。

RS232C 端口和标准软件 API 没有等效的功能。

向提供它的供应商询问更多信息是个好主意,例如它为什么提供该功能以及如何使用它。