Serial communication is a data transmission method which sends information one bit at a time from device to device. Many different serial standards have been developed over the years for both low-speed and high-speed device bandwidths. Data can usually be exchanged over much greater distances using serial rather than parallel communication. Serial communication is usually used to connect printers, terminals and cameras to computers. It is also used to interface to external hard drives, digital video disc (DVD) drives and flash memory devices.
Since only one bit of data is sent at a time in serial communication, fewer wires are needed compared to a parallel interface. A very minimal connection may only include one wire for data and another for a ground reference. In practice, many serial links also include several handshaking signals as well as a data line in each direction. The universal serial bus (USB), commonly used to connect computers and peripherals, uses only four or five signals, two of which are for power. Recommended standard (RS) 232 serial connections may used up to 20 signals, depending on the implementation.
Fewer signals generally allow a serial communication link to be clocked faster and operated more reliably over long distances. Parallel communication can introduce skew or interference between data bits as they travel together down a long link. RS 232 serial connections 1,000-feet (300 meters) or longer can usually be operated at more than 115,200 bits per second. In contrast, USB 2.0 links are often used to connect high-bandwidth storage devices to computer systems. They can generally exchange data at up to 480 megabits per second, but cables are limited to 16 feet (5 meters) between hubs.
When data is transmitted across a serial link, the receiver must have a way to tell when each byte ends and the next one begins. In asynchronous serial communication, the sender inserts a "start" bit before the bits of each byte are sent. The start bit also synchronizes an internal clock to help break down the rest of the received frame into individual bits. This is the most commonly used RS 232 synchronization method. In synchronous serial communication, a separate clock signal is used to indicate when each bit and byte is complete.
Before an RS 232 data exchange begins, devices on both sides must be set to use the same number of data and stop bits, as well as the same parity type. Eight data bits, one stop bit and no parity is a frequent configuration, commonly expressed as 8N1. If mark or space parity is being used, the parity bit is correspondingly set to either one or zero by the sender. If even or odd parity is being used, the parity bit is set to a value which will make the total number of one bits even or odd. The receiver checks the value of the received parity bit, if there is one, and indicates an error if it does not match the expected value.
In addition to the parity check, one or more software serial communication protocols may be employed to guard against data transmission errors. For example, XMODEM or ZMODEM protocol is often used for file transfers between computers over an RS 232 serial link. These protocols were originally designed to be used with a dial-up telephone-based modem at each end of the link but also operates without them. Each protocol includes the validation of a Cyclic Redundancy Check (CRC) checksum computed for the data being sent. If modems are present, they also perform similar CRC checks in hardware throughout the transmission.