2 Feb 1995

Start-Stop Making Sense

The PC COM port uses asynchronous communication, or asynch for short. Each byte of data is potentially a separate unit. The PC sending data can pause between any two bytes of a message. The receiver, however, may have to catch the data as quickly as it arrives.

To accomplish this trick, asynch data requires one extra bit's worth of time to announce the beginning of a new byte (the "start" bit) and one extra bit's worth of time at the end (the "stop" bit). A 2400 baud modem could transfer only 240 bytes of data per second, because each byte would require a minimum of 10 bit- times. At one time, this was also called "start-stop" communication by those who thought that "asynchronous" was too fancy a word.

Modern high speed modems do not actually transmit the start and stop bits. They are squeezed out as part of the general data compression. However, the start and stop bits will still be generated on the wire that connects a COM port to an external modem (the RS-232 interface). Because of this, and the general possibility of data compression, the modern COM port is generally configured to use a higher speed (between the COM port and the modem) than the actual data transmission will support (between the two modems over the phone line). Modems may operate at 14400 bits per second, but the COM port will be configured for 38400 bits per second.

This is just an example of older conventions adapted to new requirements. The standards for asynchronous communication go back to the days before computers. The first modems were used by Teletype machines to send cablegrams. When the first computers were developed, the existing population of Teletype machines provided convenient terminals.

The standards made sense up to the point when it became possible to put computer chips inside the modems. "Smart" modems can dial the phone, send a fax, compress data, and correct transmission errors. None of these functions were imagined when standards such as "RS-232" were originally developed. Although the rules have been adapted (or subverted) to accommodate modern technology, some of the old junk still pops up occasionally to cause trouble.

This is the communications configuration panel from Windows Terminal. It raises a number of interesting questions. Why would someone use 5 bits per character? Because a 5-bit code was used by very early Teletype equipment that was already obsolete in the 1950's. What is the right number of Stop Bits? Well, if you have a Teletype Model 33, the right answer is 2. If you have a Teletype Model 35, the right answer is 1.5. However, no device built in the last 20 years has needed more than 1 stop bit. What is Xon/Xoff Flow Control? XON and XOFF are byte values. The Teletype had a device to read punched paper tape. The XON character turned the tape reader on, and the XOFF character turned it off. Long after the last paper tape was burned, computers have maintained the tradition that XOFF can optionally mean "stop sending data," in which case XON means "begin sending again." What is parity? Before modems did error correction, parity provided a simple mechanism to detect characters corrupted by phone line noise. Today it is unnecessary and is typically disabled.

So in current use, the correct setting for the COM port is always 8-bit characters, no parity, 1 stop bit, hardware pacing (more about that later) and some speed faster that the native transmission speed of the modem. The panel to configure the COM port is left around because everyone is scared to get rid of it. The user should not be scared when presented by a large package of useless options.

Components: UART, Modem, COM Port, RS-232

Return to the Table of Contents

Copyright 1995 PCLT -- The Storm Before the COM -- H. Gilbert