What is the potential maximum speed for rs232 serial port on a modern PC? I know that the specification says it is 115200 bps. But i believe it can be faster. What influences the speed of the rs232 port? I believe it is quartz resonator but i am not sure.
The RS-232 standard specifies this as 15 metres (50 feet). However this is a conservative figure accounting for high serial speeds over high capacitance cabling, for example using a baud rate of 9600 (a common console speed) over typical Cat 5 cabling, the maximum length increases to 100 – 150 meters (328 – 500 feet).
One of the more common baud rates, especially for simple stuff where speed isn't critical, is 9600 bps. Other "standard" baud are 1200, 2400, 4800, 19200, 38400, 57600, and 115200.
Basically, RS232 can transfer a single byte of data over a serial cable having between 3 to 22 signals and running at speeds from 100 to 20k baud. Common baud rates used are 2.4k, 9.6k, 19.2k; the cable length can be up to 50ft.
This means that even if you clock the actual UART with a raw frequency f, you can't expect it to reliably receive data at that rate. There is overhead. So if the maximum speed is 1.5Mbps, is it possible to setup rs232 port to perform at higher speed. I guess bios chip performs division of frequency.
... What is the maximum cable length for serial RS-232 transmission? RBR uses generic RS-232 protocol. The maximum length depends on the quality of the cable used and the baud rate but we have had success over greater than 200m at 9600 baud. Can I use RS-485 transmission?
The standard defines a maximum data rate of 20kbps, which is unnecessarily slow for many of today's applications. RS-232 products manufactured by Dallas Semiconductor guarantee up to 250kbps and typically can communicate up to 350kbps.
Obviously, this assumption can be completely wrong when it comes to the long lines between the DTE and the DCE. The maximum open-circuit voltage specified by the RS232 standard is 25 V, but normally signal levels 5 V, 10 V, 12 V, and 15 V. According to the RS-232 standard, all data is bi-polar.
This goes back to the original IBM PC. The engineers that designed it needed a cheap way to generate a stable frequency. And turned to crystals that were widely in use at the time, used in any color TV in the USA. A crystal made to run an oscillator circuit at the color burst frequency in the NTSC television standard. Which is 315/88 = 3.579545 megahertz. From there, it first went through a programmable divider, the one you change to set the baudrate. The UART itself then divides it by 16 to generate the sub-sampling clock for the data line.
So the highest baudrate you can get is by setting the divider to the smallest value, 2. Which produces 3579545 / 2 / 16 = 111861 baud. A 2.3% error from the ideal baudrate. But close enough, the clock rate doesn't have to be exact. The point of asynchronous signalling, the A in UART, the start bit always re-synchronizes the receiver.
Getting real RS-232 hardware running at 115200 baud reliably is a significant challenge. The electrical standard is very sensitive to noise, there is no attempt at canceling induced noise and no attempt at creating an impedance-matched transmission line. The maximum recommended cable length at 9600 baud is only 50 feet. At 115200 only very short cables will do in practice. To go further you need a different approach, like RS-422's differential signals.
This is all ancient history and doesn't exactly apply to modern hardware anymore. True serial hardware based on a UART chip like 16550 have been disappearing rapidly and replaced by USB emulators. Which have a custom driver to emulate a serial port. They do accept a baudrate selection but just ignore it for the USB bus itself, it only applies to the last half-inch in the dongle you plug in the device. Whether or not the driver accepts 115200 as the maximum value is a driver implementation detail, they usually accept higher values.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With