A serial interface is a communication interface that transmits data as a single stream of bits, typically using a wire-plus-ground cable, a single wireless channel or a wire-pair.
The serial interface acts as a communication interface between two digital systems that sends data as a series of voltage pulses over a wire. In contrast, a parallel interface transmits multiple bits simultaneously using different wires.
Some devices that use the serial interface include the Universal Serial Bus (USB), Recommended Standard No. 232 (RS-232), 1-Wire and I2C.
Fundamentally, the serial interface encodes the bits of a binary number by their "temporal" location on a wire instead of by their "spatial" location inside a group of wires.
There are two types of serial interface:
Asynchronous serial interface (commonly abbreviated as SCI): With the SCI, data is sent in well-defined frames. A frame refers to the total, non-divisible packet of bits. Included within the frame are certain information (for example, data) and some overhead (for example, control bits).
The frames used in an asynchronous serial protocol usually include a single start bit, parity bits, seven or eight data bits, and, sometimes, a stop bit. SCI is often used to establish communication between two computer systems. SCI is considered asynchronous because neither system needs to synchronize its clock prior to communicating.
Synchronous serial interface (commonly abbreviated as SPI): In SPI, the receiver does not have any internal clock, which indicates that the receiver is unable to individually synchronize its data line reading with the transmission rate of the transmitter. The receiver requires some assistance and that support is available in the form of a clock signal, which is shared by the receiver and transmitter. The clock signal serves as a control line that informs the receiver about the best time to read from the data line. This implies that the receiver and transmitter should synchronize their accessibility to the data line to successfully send data.
SPI is generally used if a microcontroller needs to send data to a device with no internal clock.