快速异步串行通信

Fast asynchronous serial communication

本文关键字:通信 异步      更新时间:2023-10-16

我有一个控制器设计应用程序,我从3个USB设备(在windows下被视为虚拟com端口)获得数据,处理它,然后将动作发送到第4个USB设备(也是虚拟com端口)。我需要处理的数据,一旦我收到它与最小的延迟。我决定在windows嵌入式系统上使用c++,并使用。net System::IO::Ports和DataReceived事件来进行串行通信。我只使用一个USB设备测试我的代码性能,USB设备向计算机发送一个字节,然后计算机将其发送回来。我测量时差,它完全是不确定的。有时2毫秒,有时20毫秒。注意:进程优先级设置为实时

在保证最大延迟的情况下,这是获得确定性延迟的更好方法吗?可能是另一个API适合实时串行通信在windows嵌入式?

Thanks in advance

在Windows中,您无法获得确定性延迟。你不能有任何保证。因为它不是实时操作系统。

如果你想保证你的项目是强制性的,你可以将实时部分导出到一个较小的设备,如Arduino(开源,一些用户用它制作了一个实时操作系统)或Beck芯片(商业,与实时miniOS一起交付);或者你可以安装RealTime Linux,这会带来一定的延迟。