Back in the early days of desktop personal computers, parallel interfaces were the norm rather than the exception. The parallel moniker refers to the way the data is sent; parallel ports send multiple bits of data simultaneously, as opposed to serial communication where bits pass one-at-a-time typically over a single connection. The rationale for parallel connections was speed. It seems as though the ability to send or receive multiple bits of information simultaneously would be faster than sending them one-at-a-time. This was indeed true in the 1980s and into the 1990s. But you might wonder why modern interfaces like USB, SAS, SATA, and individual PCI Express lanes are serial.
The reason is that parallel standards have numerous limitations that slowed down their real-world speed. Correct data transfer depends on all the data lines
sending correct data simultaneously. Thus trying to push more and more data through a parallel port per second means it is tougher to keep those lines synchronized. So increases in data rates complicated the process of synchronizing all the lines to a point where data throughput could actually slow down. Cross talk turned out to be a problem as well–understandable seeing that parallel interfaces involve numerous closely spaced data lines. Such limitations restrict range as well as data rate. The upper data rate is generally in the hundreds of megabits per second over no more than several feet.
Additionally, parallel connections had the disadvantage of using multiple pins to support their simultaneous transmissions. The multi-pin connectors involved are more prone to damage–engineers of a certain age may recall the ease with which pins on IDE headers could accidently be bent.
Of course, serial connections like USB have only has one data line in each direction. Cross talk isn’t nearly as much of an issue. Although serial connections can only transmit one bit at a time, the data rate can be made much higher parallel connections. And modern serial links typically don’t use protruding pins, making standards like USB and SATA suitable for many more insertions than was the case for old parallel connections.
There are, however, serial standards that typically involve more than one connection. Perhaps the best example can be found on graphics cards for PCs that may use 16 PCI Express Lanes simultaneously. PCI Express is a serial standard. But each PCI Express lane has its own clock signal. And the lanes aren’t synchronized with each other. Data is simply transmitted down each lane independently; graphics cards themselves sort out the data on each lane. This independence enables PCI Express connections to scale as more lanes get added.
Ethernet is probably the best-known serial protocol, perhaps with USB being a close second. RS 232 may be the oldest. And there are several others in wide use.
The Controller Area Network (CAN bus) was originally designed and promoted by Robert Bosch, a German manufacturer, as an exclusively automotive solution to the vast proliferation of wiring in trucks and automobiles due to the expanded use of sensors in the 1980s. Its use rapidly spread to other applications, everything from earth-moving machinery to elevator systems on a world-wide basis.
For each CAN device, the data is transmitted sequentially using serial communication and thereby saving on lots of bulky, expensive copper wire. The data is transmitted sequentially, so that if additional devices transmit at the same time, the highest-priority device can supersede all others, despite the fact that frames are received by all devices including transmitter.
In a CAN bus system, all nodes are connected by means of a conventional two-wire bus. These wires are twisted pairs with 120-Ω characteristic impedance.
I2C (inter-integrated circuit) is a synchronous, multi-controller/target, packet-switched serial communication bus, frequently implemented to connect low-speed peripheral integrated circuits for close board-to-board runs where speed is secondary to cost as a driving factor. System voltages are usually +5 or +3.3 V. The number of nodes is limited by a bus capacitance of 400 pF, so the maximum communication distance is in the low meter range. High input impedance and susceptibility to noise require a common ground, restricting distance to a single board or to other PCBs nearby.
Serial Peripheral Interface (SPI) is a synchronous serial communication protocol used for short-distances, usually in embedded systems such as secure digital cards and LCDs. The devices interact in full duplex, master-slave mode with a single master. The master device originates the frame for reading and writing.
Local Interconnect Network (LIN), like CAN bus, is a serial network protocol used for communication between components in vehicles. It is a one-wire serial network protocol that supports transmission up to 19.2 Kbits/sec at a maximum bus length of 40 m. Defining characteristics are that it is less expensive and elaborate than CAN bus and consequently appropriate for some less critical automotive applications such as mirror and interior light adjustments. Because all messages are initiated by the master, collision detection is not needed. Operating voltage is 12 V.
FlexRay is another automotive network communication protocol. It is more expensive than CAN bus, but faster and more reliable. FlexRay consists of a bus and electronic control units, each of which has a dedicated clock, with maximum specified clock drift.
To develop or troubleshoot FlexRay, examination of hardware signals is essential. Logic analyzers and bus analyzers are frequently used, so as to view high-speed waveforms. Due to expense, FlexRay is likely to be replaced in the near future by Ethernet in non-safety applications.
Firewire is Apple terminology. It is an IEEE 1394 high-speed bus. As such, information is conveyed one bit at a time. It supports isochronous and asynchronous applications. Firewire has been used to connect digital video cameras to data storage devices. It is also widely used for machine vision in industrial settings. It compares favorably with USB 2.0 due to higher speed and enhanced power distribution.
An advantage in FireWire are is its ability to daisy chain as many as 63 peripherals. It enables peer-to-peer communication such as between a printer and scanner without benefit of system memory or connection to a CPU, with plug and play and hot swapping capabilities.
FireWire and USB are basically similar, but with some fundamental differences. First of all, USB must have a host controller such as a PC, connecting with the USB device. This permits the use of less costly peripherals, although the bus exhibits reduced functionality. Smart hubs are required. Firewire, in contrast, operates as a peer-to-peer network so that multiple devices can run off a single bus.
FireWire derives its higher speed due to the fact that the host is not burdened with buffer copying. Also, in firewire there are two data buses in each bus network segment. Thus, Firewire works in full-duplex mode.