In embedded systems, devices communicate by sending and receiving messages often via cables and wires. The type of cable/wire and communication varies based on the specific application being used. In this article we will discuss the differences between two common modes of communication: serial and parallel.
Serial communication can be best visualized using an analogy of a freeway or interstate highway. The lanes on the interstate will be representative of the individual lanes or wires being used for communication and the cars represent bits of data.
Serial communication takes place on a single wire, or in this case one lane on the road. Bits are sent sequentially with a start and stop bit placed at the beginning or end of the packet. All of the data is received and assembled one bit at a time by the receiving device.
Using the same imagery as before, parallel communication requires more lanes than serial. In parallel, devices send and receive multiple bits of information simultaneously. Each bit of data is sent over a single wire, so an eight-bit packet (or 1 byte) would require eight individual wires to carry the message. This means that the data packet is received by the endpoint device at once. All data is sent in unison in parallel communication and uses a one wire or lane per bit. All data must be received at the same exact time for the packet to be received properly and without error.
The cables used for parallel and serial communication look quite a bit different from each other. Parallel cables are generally thicker and shorter than serial cables, and typically have larger more complex connector heads.
Parallel cables are most easy to spot if you can see individual pins visible on the connector head as seen in the picture below. These pins are directly linked to an individual wire in the cable. For every pin on the male side of the connecter head, you can find an input slot on the female end of the cable. The connection is uninterrupted from one end to the other. The cable is generally thick and stiff feeling when compared to serial cables because of the number of wires that are in the cable.
Serial cables are much more common to spot in everyday life. The USB cable is an example of a serial style cable. As you can see the connector head looks substantially different than the parallel cable simply because it is smaller and does not have visible pins. Another differentiating aspect is the thickness of the cable.
Parallel communication, before the introduction of the USB standard, was much more common to see in everyday applications. From plugging in a printer to connecting an external monitor, parallel style communication was used almost exclusively with older PCs. The reason this standard was adapted so widely was because it generally is a fast standard to work with. Since data packets are sent simultaneously more data can be transferred in a shorter period of time. If using byte-level communication, parallel data can send 1 byte eight times faster than serial communication. However, as cables became longer and applications became more data-heavy parallel communication started to see some limitations.
A common issue that engineers run into when working with wires is the issue of cross talk between the data lines. Cross talk, or noise, is caused by electromagnetic signals affecting another electronic signal. This is very common when wires are too close to one another. Cross talk distorts data and causes errors when present.
Another issue that arises with parallel communication happens at high-frequency data transfers. At higher frequencies, it is common for bits to get jumbled and arrive at the receiving device at different times. This is problematic since parallel requires that all bits of data are received at the same time. The receiver is required to slow down the messages to wait for all data packets to arrive before accepting the full data packet. If this happens it is common for the receiver to get backed up. If it cannot accept all the messages at a time, due to lagging bits of data, the incoming bits may run into the waiting packets, causing additional issues. Parallel excels when used is short distance applications.
Another issue that arises when using connector heads with visible pins is the high potential for damage. A very common issue that people experience, especially with old printers, is the bending of connector pins when trying to connect devices. Lining up the pins in a connector like this can be difficult and requires more attention. Typical USB cables do not have this issue since there are no visible pins in the design.
Space is one of the most valuable aspects of any modern-day PCB or device design. As designs get smaller, input and output connectors must also get smaller. Since parallel ports require individual pins for their connection, the space needed on a PCB or device gets bigger as more pins are added. This space requirement why it is very rare to see these types of ports on modern-day computers and monitors. There has been an adoption of smaller, serial style ports to save space and size.
Parallel cables and connectors are also more expensive to make and implement than their serial counterpart. Since more wires are needed for the application each wire adds to the overall cost of development. In parallel data communication, upwards of 34 wires can be needed for some of the more advanced operations. The difference between 1 and 34 wires can be exponentially more expensive and is often a huge factor in deciding to go with a serial vs parallel for an application.
Serial communication has become the universal standard when it comes to connections for devices. Because of its small footprint (cable and connector heads), ease of use, and reliability, serial has proven itself as the future of connected devices. Some of the many benefits of serial communication include:
Serial ports are most commonly known for their ease of use and small physical footprint. With a lot of serial ports now adopting the ability to be plugged in regardless of orientation, the effort needed for the user is now at an all-time low. Simplifying the connecting process has made interfacing with serial ports a lot more painless.
The connector heads and ports are also substantially smaller when compared to parallel. The ability to take up, sometimes, less than a quarter of the space on a PCB or device as is required for parallel is a major positive for modern-day device makers. This valuable space can be used for other features such as bigger battery, more memory, or be eliminated to push the boundaries on shrinking devices altogether.
This also means serial ports, cables, and connectors are also more cost-efficient. Less wires required for data transmission, means smaller and less complex traces. The simplified design saves manufacturing and design costs.
The connector heads for serial ports are also capable of many more insertions over the life of the connector when compared to parallel. Since the exposed pins have been removed and the process of plugging has become easier, the potential for damage in the port or connector head has nearly been eliminated. This means that these ports will now last longer than parallel.
The serial protocol is also much more reliable at high-frequency data transmission and long-distance applications. Since serial sends one bit at a time over a single wire it is very hard for data to get jumbled when speeds are increased. There is no way for data to reach the receiver before or after bits are sent by the source device. A fully optimized parallel application can indeed send more data at faster rates than serial but high levels of optimization take a lot of time to develop and perfect.
Serial is also much better to use for long-distance connections (greater than 3 ft). Since all data is being sent on a single wire, long-distance applications are much more reliable when using serial. Data does not get bunched up and can be sent at very high speeds with nearly perfect accuracy making serial ideal for reliable long-distance data transfer applications.
The main drawback of serial communication is the lack of speed potential. More wires generally mean more speed. If applications optimize for parallel communication and iron out all the issues with bit-level timing, the data transfer rate will far exceed that of serial communication. However, with modern technology advancements, many of the speed limitations initially found with serial communication have been overcome. The need to reduce space and costs of designs led to a prevalence of serial protocols. As technology continues to develop, it is not uncommon to see serial communication above 10 Gbps are seen in USB 3.1.
Some of the most common serial protocols include SPI, I2C, CAN, and USB. From use in real-time clocks, LCD screens, automobiles, medical devices, and mobile phones, these protocols are used in a broad range of applications. One thing these protocols have in common is their communication style; they all communicate over serial.
Total Phase specializes in serial protocol analyzers and programmers. Two of the most popular Total Phase tools that are used for debugging serial protocols are the Aardvark I2C/SPI Host Adapter and Beagle I2C/SPI Protocol Analyzer.
The Aardvark I2C/SPI Host Adapter is a pocket-sized protocol programmer offered at an affordable price. Its ability to program SPI at up to 8 MHz and I2C at up to 800 kHz makes the Aardvark adapter a very attractive tool for embedded systems engineers. The adapter has free and easy-to-use software and is fully supported on Windows, Linux, and Mac operating systems. This tool is powerful, portable, and affordable making it a great tool for all I2C and SPI engineers.The Beagle I2C/SPI Protocol Analyzer is another Total Phase tool that embedded systems engineers know and love. Although very similar to the Aardvark adapter in size and price, the Beagle I2C/SPI analyzer is very different in how it is used. This analyzer is capable of non-intrusively monitoring the I2C and SPI bus at up to 5 MHz and 24 MHz respectively. The analyzer works with the free Data Center Software that is fully supported on Windows, Linux, and Mac operating systems.
The Beagle I2C/SPI analyzer and Aardvark adapter are just a few of the many Total Phase serial protocol tools. Total Phase supports not just I2C and SPI, but also USB, CAN, eSPI, and A2B applications.
Serial and parallel communication have pros and cons when considering which standard to implement into devices and designs. The speed that parallel is capable of is attractive but complicated and expensive to pursue. Whereas the reliability and small footprint of serial communication makes it an appealing option. With advances in speed, serial communication is becoming the standard for data delivery applications and is the prevailing communication style being pursued today.