ASYNCHRONOUS VS. SYNCHRONOUS
DATA
TRANSMISSION
The "normal" (that is, the
"typical") RS-232 implementation is considered asynchronous. That
is, the timing between individual characters is irrelevant because each
character has its own start bits. The receiver only has to remain
synchronized with the transmitter for the length of time required to
receive the data, parity, and stop bits. If the receiver clock rate
wanders slightly it’s OK, since the clock is synchronized at the beginning
of every character. On the other hand, a design could be implemented that
required longer streams of characters to be sent in one continuous block.
In this case, the transmitter could use the timing lines on the RS-232
interface to implement a synchronous connection. The advantage of
the synchronous implementation is that it can be significantly more
efficient for the transmission of large quantities of data.
Consider the transmission of a 1K
block of data using asynchronous RS-232, 1 start bit, 8 bit words, no
parity, and 1 stop bit. This means that each of the 1024 bytes of data
requires 10 bits on the cable. The 1K of data is made up of 8192 bits
(1024 * 8 = 8192). It requires 10,240 bits to transmit these bytes (10
bits per character, 1024 characters). This results in an efficiency ratio
of 80% (8192/10240 = .80). That is, 80% of the transmission is data, 20%
is overhead (in the form of the start and stop bits). This is assuming
that we are not configured for 2 start or stop bits or a parity bit. This
is, essentially, "best case" for asynchronous RS-232.
If, on the other hand, we send
synchronous blocks of 1K, each block will have start bits but the data
will be sent in one continuous stream. In this case there are, say, 2
start bits, and, perhaps, another (let’s say) four bytes of overhead
followed by, let’s say, a four byte checksum field and then 2 stop bits.
Now we’ve added 8 bytes plus four bits, or, 68 bits of overhead. The
overhead, however, is for the entire 1024 bytes of data! That means that
to transmit the 8192 bits of data it requires 8260 bits. That is 99%
efficiency! (8192/8260 = .9918). In current implementation there is a very
limited use for synchronous RS-232. This is because other interconnection
technologies are either less expensive or more popular or because
asynchronous RS-232 is simply cheap and easy.