以太网到RS232适配器中的延迟


2

要求: 我的Windows上运行了一个软件,该软件使用RS232端口与外部设备通信。硬件接收从PC发送的命令,然后响应回PC。如果在计算机和硬件之间使用普通电缆,而没有任何适配器,则发送和接收将完成,例如50毫秒。使用以太网到RS232适配器时,总通信时间为(50 + x)ms,延迟为x ms。

在线提供了很多产品,我浏览了一些产品数据表。有关于以太网和串行通信参数(如数据位,波特率,速度)的信息,但是我找不到任何地方等待时间信息。

到目前为止, 我已经使用适配器(最大波特率230.4 kbps)来测试我的软件,但是遇到了串行端口超时异常。

延迟取决于什么标准?

延迟是否取决于波特率?

我应该在DataSheets中检查什么来确定(大约)延迟?

制造商是否提供延迟信息?


2
延迟是一种影响,是指从流程开始到完成之间的时间量。因此,它因视角而异,并且从来都不是设计/指定的东西(尽管通常是不可避免的),因此它不是任何给定系统都可以指定的东西。从大多数角度来看,它不像特定的电缆具有特定的“延迟”。传播延迟是最接近的,它是指信号从介质一端移到另一端所花费的时间,但这是网络标准(例如802.3 / Ethernet或您的情况下为RS-232)的规范中内置的。
弗兰克·托马斯

据我了解,您正在将RS232信号转换为以太网数据流,然后再转换回RS232信号,对吗?这样,至少将转换所需的延迟(无论将什么定义为命令)打包/解包……两次(每次结束一次)。
赛斯

Answers:


0

延迟取决于什么标准?

缓冲,数据成帧,传输,协议和超时我想可能是主要的。

正如其他评论者所提到的,至少您有协议翻译延迟。您将需要考虑端点和网桥数据的缓冲,重新编码,协议开销和传输时间。延迟将受传输前是否缓冲整个数据帧以及内部超时的影响。这些可以在某些设备中配置。

它还将取决于以太网协议是使用UDP,TCP还是自定义协议。这将取决于该协议是否支持重传,以及它是否添加了额外的完整性或信令信息。同样,这些可以在某些设备中配置。不用看,我猜想低端设备将倾向于使用没有任何完整性的UDP或重新传输,并且倾向于在某些内部超时情况下缓冲完整的UDP数据帧,以在数据流停止时发送部分帧。

延迟是否取决于波特率?

这实际上取决于您要测量的延迟时间。串行数据速率的差异可能对您的吞吐量的影响比对延迟的影响更大。是的,它确实会影响延迟,但请记住,以9600bps的字节传输大约需要1ms。

我应该在DataSheets中检查什么来确定(大约)延迟?

制造商是否提供延迟信息?

工业应用程序的网桥有时确实会提供有关延迟和/或吞吐量的信息。例如,一个这样的产品页面引用2ms的延迟。也有一些公司赞助的测试报告,例如2003年竞争比较2002年报告,它们比较了几种设备的延迟。他们的测试延迟范围从几毫秒到平均861ms。

无论如何,听起来您的根本问题是串行端口超时,而不是延迟问题。从您所说的内容来看,我暂时怀疑软件或配置错误。串行接口库中通常指定几个超时,例如字节间计时,多字节读取时间和写入时间。如果没有足够快地清空缓冲的数据,则还会有缓冲区溢出错误。如您所知,通常可以调整或禁用串行客户端中的每个超时。

我将首先确定错误的来源。您还可以将速度降低到9600,因为便宜的适​​配器并不总是能在其最大额定值下发挥良好的性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.