串口rs232的最大潜在速度

时间:2012-11-02 11:07:38

标签: serial-port electronics

现代PC上rs232串口的潜在最大速度是多少?我知道规范说它是115200 bps。但我相信它会更快。是什么影响了rs232端口的速度?我相信它是石英谐振器,但我不确定。

3 个答案:

答案 0 :(得分:14)

这可以追溯到最初的IBM PC。设计它的工程师需要一种廉价的方法来产生稳定的频率。转向当时广泛使用的水晶,用于美国的任何彩色电视。用于在NTSC电视标准中color burst frequency运行振荡器电路的晶体。这是315/88 = 3.579545兆赫兹。从那里开始,它首先通过一个可编程分频器,你改变它来设置波特率。然后,UART将其除以16,以生成数据线的子采样时钟。

因此,您可以获得的最高波特率是将分频器设置为最小值,2。产生3579545/2/16 = 111861波特。理想波特率误差为2.3%。但足够接近,时钟速率不一定非精确。异步信号点,UART中的A,起始位总是重新同步接收器。

获得真正的 RS-232硬件以115200波特率可靠运行是一项重大挑战。电气标准对噪声非常敏感,没有尝试消除感应噪声,也没有尝试创建阻抗匹配的传输线。建议的最大电缆长度为9600波特,仅为50英尺。在115200,实际上只有非常短的电缆。为了更进一步,你需要一种不同的方法,比如RS-422的差分信号。

这是古老的历史,并不再完全适用于现代硬件。基于像16550这样的UART芯片的真正串行硬件已经迅速消失,取而代之的是USB仿真器。哪个有自定义驱动程序来模拟串行端口。它们接受波特率选择,但只是忽略了USB总线本身,它只适用于插入设备的加密狗中的最后半英寸。无论驱动程序是否接受115200作为最大值是驱动程序实现细节,它们通常接受更高的值。

答案 1 :(得分:3)

最大速度受UART硬件规格的限制。

我相信16550中的“经典”PC UART(modern implementations)可以处理至少1.5 Mbps。如果您使用基于USB的串行适配器,则不涉及16550,当然,限制是由适配器中使用的特定芯片设置的。

我经常使用运行速度为460,800 bps的RS232链接,并使用基于USB的适配器。

回应关于时钟的评论(有一点需要注意:我是软件人员):异步串行通信不会传输时钟(那是异步部分)和数据。相反,发射器和接收器应该事先就使用哪个比特率达成一致。

数据线上的起始位表示每个“字符”的起始位置(通常是一个字节,但具有开始/停止/奇偶校验位的帧)。接收器然后开始对数据线进行采样,以确定其是0还是1.该采样通常至少比实际比特率快16倍,以确保其稳定。因此,如上所述,对于以460,800 bps进行通信的UART,接收器将以大约7.4 MHz的频率对RX信号进行采样。这意味着即使您使用原始频率 f 计时实际UART,也不能指望它以该速率可靠地接收数据。有开销。

答案 2 :(得分:2)

是的,可以以更高的速度运行,但主要的限制是环境,在嘈杂的环境中会有更多的损坏数据限制速度。另一个限制是设备之间的电缆长度,您可能需要添加转发器或其他设备来加强信号。