Embedded Systems/Serial and Parallel IO

Data Transmission
Data can be sent either serially, one bit after another through a single wire, or in parallel, multiple bits at a time, through several parallel wires. Most famously, these different paradigms are visible in the form of the common PC ports "serial port" and "parallel port". Early parallel transmission schemes often were much faster than serial schemes (more wires = more data faster), but the added cost and complexity of hardware (more wires, more complicated transmitters and receivers). Serial data transmission is much more common in new communication protocols due to a reduction in the I/O pin count, hence a reduction in cost. Common serial protocols include SPI, and I2C. Surprisingly, serial transmission methods can transmit at much higher clock rates per bit transmitted, thus tending to outweigh the primary advantage of parallel transmission. Parallel transmission protocols are now mainly reserved for applications like a CPU bus or between IC devices that are physically very close to each other, usually measured in just a few centimeters. Serial protocols are used for longer distance communication systems, ranging from shared external devices like a digital camera to global networks or even interplanetary communication for space probes, however some recent CPU bus architectures are even using serial methodologies as well.

Ethernet
As on-chip memory increases, it is becoming more common to see Ethernet support in small system-on-chip embedded systems. New Ethernet ASIC products are also on the market. This allows an embedded system to have its own IP address on a network or on the internet. It can act as a server for its own webpage, to implement a GUI or general purpose I/O, and to display any relevant information such as sensor data, or even as a portal to remotely upgrade firmware. For example, many network routers have these features.

Centronics
Centronics is synonymous with the 1980's PC standard parallel printer interface.

For further reading

 * Robotics/Computer Control/The Interface/Networks