通过ip发送NON_STOP串行流时的累积延迟 - 实时问题?

时间:2017-01-19 09:09:27

标签: c++ linux serialization real-time

我用C ++ / Qt编写了一个程序,它从串口(ttyS0)读取数据并通过网络(在特定的TCP端口上)写入。 在网络的另一端,我从相应的套接字读取数据并通过串口将其写回。

我'我基本上在ip网络上创建了一个透明的串口到串口桥接器。 到目前为止一切都很好。

当输入的串行数据进入非停止状态时,问题就开始了。通过网络(@ 100Mbps)发送不间断串行流(@ 19200bps)并通过远程串行端口(@ 19200bps)返回会产生累积延迟。

第一个串行数据包通过REMOTE SERIAL接口发送,延迟可以忽略不计(即从接收串行数据@本地端到我通过远程串行端口写入的时间的总延迟可以忽略不计) 但延迟只是加起来,经过一段时间后," SERIAL pkts"在远程串​​口可以看到当地收到的延误很大(按照#34;分钟和#34;并且计数完毕)!!

一些注意事项:

  • 我正在使用2个直接连接的Linux机箱(因此网络延迟不是问题)
  • 过程中没有pkt /串行数据丢失(唯一的问题是累积延迟)
  • 我的操作系统不是实时的,这是否与reat time问题有关!!

我认为问题源于导致远程串口在短时间内变得空闲的小延迟 由于数据可以离开系统@ 19200 bps,因此可能导致远程串行端口空闲的任何延迟都会导致累积延迟。

但我不知道如何衡量延误或使计划及时运作。 任何帮助/提示都非常受欢迎

0 个答案:

没有答案