Skip to main content
Logo image

Section 17.3 Serial communication

The most important application of shift registers is data communication. Imagine you want to send 8-bit vectors (bytes) from a source device to a destination device. These vectors could be text (8 bits per character), or data from an analog-to-digital converter. If the bits are sent in parallel, one wire is required for each bit. The area required on a circuit board is eight times that required by one wire. The cost of the copper for a cable is eight times the cost for a single wire, and the cable is bulkier than a single wire. Moreover, a device with eight parallel input/output pins rather than a single serial pin is going to require a larger package (an integrated circuit package is much larger than the chip within because of the pins).
Alternatively, using a shift register, each byte can be converted to a stream of eight serial bits. The bits are sent through a single wire to a shift register at the other end, which converts the data back to eight-bit bytes. The first shift register serializes the data, and the second shift register deserializes it (Figure 17.3.1). The tradeoff for using less wire is the additional hardware for the shift registers and associated controls, and an 8\(\times\) higher clock speed on the wire between the serializer and the deserializer. Except for the very highest data rates, this tradeoff is usually considered acceptable.
described in detail following the image
Figure 17.3.1. Source and destination devices connected by an N-bit parallel data link (top), and connected via a one-bit serial link (bottom). Shift registers serialize and deserialize the data. The bit rate on the serial link is N\(\times\) the rate on each wire of the N-bit bus.
While I said the serial link requires only one wire, in reality any data link requires some kind of clock or other signal to maintain synchronization of the source and destination. For short wiring runs, it is not too costly to use a second wire to send a clock signal alongside the data wire. But for a long run, the extra clock line becomes contly or is prohibited by the system architecture (e.g., a telephone line does not have a wire that can be used to carry a clock). These design problems have led, over time, to the development of a variety of serial data protocols to solve the synchronization problem. We will learn about two of these is the next two chapters. All serial methods, however, will make use of the shift registers developed here.