Embedded Systems Building Blocks, Second Edition

You can find just about everything there is to know about asynchronous serial communications in the excellent book from Joe Campbell, C Programmer's Guide to Serial Communications, which is now in its second edition (see "Bibliography" on page 455). If you are further interested in the world of data communications, you should also add the books from Andrew S. Tanenbaum and Fred Halsall to your collection.
In asynchronous communication systems, the receiver clock is not synchronized to the transmitter clock when data is being transmitted between two devices. Generally speaking, asynchronous transmission is used to indicate that data is being transmitted as individual bytes. Each byte is preceded by a start signal and terminated by one or more stop signals. The start and stop signals are used by the receiver for synchronization purposes. As shown in Figure 11.2, the transmission line is in a mark (binary 1) condition in its idle state. As each byte is transmitted, it is preceded by a start bit which is a transition from a mark to a space (binary 0). This transition indicates to the receiving device that a byte is being transmitted. The receiving device detects the start bit and the data bits that make up the byte. At the end of the byte transmission, the line is returned to a mark condition by one or more stop bit(s). At this point, the transmitter is ready to send the next byte. The start and...