RETURN | Protocol Information |
Asynchronous vs. Synchronous Transmission
All modern data communications protocols operate efficiently on synchronous facilities. This document defines the differences between asynchronous and synchronous transmission and why synchronous transmission provides lower overhead and thus, greater throughput.
- Asynchronous TransmissionWhen data bits are transmitted serially, it is necessary for the receiver to properly detect the moment in time that each bit in a character begins and ends. With asynchronous transmission, this is performed by framing each character with a Start and Stop pulse.
The illustration above depicts an 8-bit character, framed with a Start bit and a Stop bit. The Mark (1) state is negative, the Space (0) state is a positive voltage. Note that in an idle state, the line is Marking (1). The Start bit immediately takes the line out of that condition, while the Stop bit returns the line to the idle state.
The receiver senses the Space bit, and counts about 10 bit lengths. From there it can derive the value of each bit. Since the exact clocks that do the counting may differ between the transmitter and receiver, there always exists a timing error, called “bias”. Most modern UARTs (Universal Asynchronous Receiver/Transmitter) will use a 16x clock rate to sample received data with to work around this problem.
- Synchronous TransmissionWhen synchronous transmission is used, common bit timing is used between a transmitter and a receiver. For analog modem systems, the modem recovers timing pulses from the incoming data stream and presents a continuous stream of “clock pulses” to the receiving DTE device. For other systems, like DDS or T1, the timing is recovered from the actual incoming digital pulses.The receiving DTE device will look at the negative-going clock transition to sample the data stream with. This negative clock pulse is aligned in the center of the data bit, eliminating the “bias” problem with asynchronous systems.
The receive clock ensures accurate sampling of the data stream, but the receiver can’t tell what bits comprise a character. The transmitter will send characters in a group, called a block or a frame. Special synchronization characters are transmitted at the beginning of each block. The receiver will look for these special characters and, once detected, will know where each character begins and ends.Although the synchronization characters add some overhead, it is not near the 20% overhead incurred with asynchronous Start/Stop transmission. As blocks of more characters are transmitted (increased block size), the relative overhead decreases.