我有一个控制器设计应用程序,我从3个USB设备(在Windows下看作虚拟COM端口)获取数据,处理它,然后将操作发送到第4个USB设备(也是虚拟COM端口)。一旦我以最小延迟接收数据,我需要处理该数据。 我决定在嵌入式Windows上使用C ++,并使用.Net System :: IO :: Ports和DataReceived事件进行串行通信。我只使用一个USB设备测试了我的代码性能,其中USB设备向计算机发送一个字节,然后计算机将其发回。我衡量时差,这是完全不确定的。有时2毫秒,有时20毫秒。 注意:进程优先级设置为实时。
在确保最大延迟的情况下获得确定性延迟是否更好?可能是另一个适用于嵌入式Windows上的实时串行通信的API?
提前致谢
答案 0 :(得分:0)
在Windows中,您无法获得确定的延迟延迟。你不能保证。因为它不是一个实时操作系统。
如果您需要某些项目必需的保证,您可以将实时部分逐出到较小的设备,例如Arduino(开源,some users made a Real Time OS with it)或{{3 (商业,随Beck chip递送);或者您可以安装Real Time miniOS,这会带来一些保证延迟。