延迟取决于什么标准?
缓冲,数据成帧,传输,协议和超时我想可能是主要的。
正如其他评论者所提到的,至少您有协议翻译延迟。您将需要考虑端点和网桥数据的缓冲,重新编码,协议开销和传输时间。延迟将受传输前是否缓冲整个数据帧以及内部超时的影响。这些可以在某些设备中配置。
它还将取决于以太网协议是使用UDP,TCP还是自定义协议。这将取决于该协议是否支持重传,以及它是否添加了额外的完整性或信令信息。同样,这些可以在某些设备中配置。不用看,我猜想低端设备将倾向于使用没有任何完整性的UDP或重新传输,并且倾向于在某些内部超时情况下缓冲完整的UDP数据帧,以在数据流停止时发送部分帧。
延迟是否取决于波特率?
这实际上取决于您要测量的延迟时间。串行数据速率的差异可能对您的吞吐量的影响比对延迟的影响更大。是的,它确实会影响延迟,但请记住,以9600bps的字节传输大约需要1ms。
我应该在DataSheets中检查什么来确定(大约)延迟?
制造商是否提供延迟信息?
工业应用程序的网桥有时确实会提供有关延迟和/或吞吐量的信息。例如,一个这样的产品页面引用2ms的延迟。也有一些公司赞助的测试报告,例如2003年竞争比较或2002年报告,它们比较了几种设备的延迟。他们的测试延迟范围从几毫秒到平均861ms。
无论如何,听起来您的根本问题是串行端口超时,而不是延迟问题。从您所说的内容来看,我暂时怀疑软件或配置错误。串行接口库中通常指定几个超时,例如字节间计时,多字节读取时间和写入时间。如果没有足够快地清空缓冲的数据,则还会有缓冲区溢出错误。如您所知,通常可以调整或禁用串行客户端中的每个超时。
我将首先确定错误的来源。您还可以将速度降低到9600,因为便宜的适配器并不总是能在其最大额定值下发挥良好的性能。