Hardware Reference
In-Depth Information
Chapter 10
Multiprocessing: Linking the
Arduino for More Power
Certain projects may not lend themselves well to an individual Arduino, because of possible limitations with the
hardware, such as a processor's speed or limited memory. Multiprocessing can add greater functionality to a system;
this is commonly seen with Arduino in the form of coprocessors connected via shields such as the Ethernet shield.
Coprocessor-style shields share their functionality with the Arduino to offload complex processes, but still allow
the Arduino to have the main control. Multiprocessing is normally associated with high-level computing when it
is infeasible to make a single device perform at required speeds. The principles of supercomputing can be applied
to microcontrollers. This chapter explorers the fundamental hurdle of multiprocessing by examining reliable
communication between two or more processors.
Processors can be of same type or unique to best match the type of work being performed. For instance, the
Arduino may not be meant for digital signal processing (DSP) itself, but when combined with a DSP chip, it can
control the DSP and make use of the data coming from the DSP. The development of a sensor package may fit well
within the abilities of one Arduino, and the package could use a basic serial connection. A different communication
method may need to be used if 100 packages have to be working at the same time within the same system. Controlling
a mass LED display built with smaller LED units would employ numerous identical units to make a much larger
display, which would be difficult for a single piece of equipment to achieve.
Multiprocessor systems can be broadly categorized by the coupling between devices. Loosely coupled systems
require a communications package be used between devices, such as the Xbee module to communicate via wireless
or the Ethernet shield. Even if the secondary device is built into the same physical device, the use of a middleman
requires that the processors use extra resources maintaining the additional communication hardware. However, while
loosely coupled processors can lose a great deal of efficiency by adding the extra layer for communication, changing
from one protocol to another, they do have the advantage of being able to traverse great physical distances.
Tightly coupled systems take advantage of methods designed for high bandwidth that are built within the
processor, such as HyperTransport. Some server processors have HyperTransport built directly within the processor
to be able to communicate directly with other processors without having to use other communication hardware.
Tightly coupled multiprocessing setups operate at short distance to maximize the available bandwidth. Usually
distances of a few inches to a few feet separate processors before the increase in transmission line impedance makes
separated hardware-based communication methods more viable. Tightly coupled systems can also share common
resources such as memory with greater ease than can be done with loosely coupled systems. Tightly coupled systems
usually have a protocol for flow control and addressing between processing units. The protocols that are used within
tightly coupled systems are usually simple when compared to loosely coupled systems because data corruption is
limited by careful engineering of the physical connections, lowering the need for complex error correction.
This chapter focuses on chip-to-chip, tightly coupled systems. Several methods exist to connect one chip to
another, and they are categorized as either serial or parallel . In recent times, parallel alone has been decreasing in use
because of the increase in the reliability and speed that serial now provides. A parallel methodology combined with
serial communications has been coming out in the form of technologies such as SATA, PCI express, and USB 3.0.
 
Search WWH ::




Custom Search