The IoT has rapidly gained a profile in our everyday lives as its phenomenal growth has enabled the connection of a wide range of devices in our homes and in our working environments. The sophistication of these connected devices is continually increasing, allowing more computing to be done at the edge, instead of in the cloud. Computing at the edge of a network may be a well-established concept, but, for successful operation, edge devices must possess a broad set of capabilities to ensure optimal security, energy efficiency, connectivity, and of course, computing power.
In this article, we take a look at the building blocks which are enabling this new generation of connected devices to support IoT edge computing.
What happens at the edge?
The generic diagram of an embedded IoT device, depicted in Figure 1, illustrates the basic functions performed at the edge. The edge device monitors a range of inputs, via sensors, and alters a set of outputs, via actuators, based upon the status of the inputs. A microcontroller unit (MCU) at the heart of the device converts the data (analog to digital or vice versa) and performs various operations on it, depending on the specifics of the application. The MCU will also be equipped with resources such as memory, connectivity (to enable communication with the cloud and with other sensors), security, and real-time capabilities – such as interrupt scheduling and real-time processing.
The MCU is therefore the engine of the IoT device, and its computing power is dictated by the specifics of the application. Engine control units in a connected automobile, for example, may need to react to an input change in real-time, requiring sophisticated decision-making capability. To achieve near real-time responsiveness, the computing algorithm must be located locally – meaning that the MCU must have the resources to host it. Applications such as remote sensor monitoring in agriculture will generate less data and will usually have more relaxed response time requirements, meaning that decision-making can take place in the cloud, reducing the requirements on the MCU.
The MCU is therefore a critical component of the IoT device and the above description hints at some of the trade-offs facing the designer when choosing the optimum device.
The MCU dictates the performance of the IoT device
The MCU, described above, is actually a “system-on-chip” (SoC), literally a chip containing all of the functionality of a computer system, Figure 2.
The brain of this SoC is the microprocessing unit, (MPU), a general-purpose digital computer central processing unit, whose main objective is to read data, perform extensive calculations on it, and either store or display the results. Modern MPUs, such as those based on Arm technology, can contain multiple cores, each capable of executing instructions independently and therefore handling different tasks. One core, for example, could be dedicated to handling real-time operations with another taking care of background system operations. Multiple cores can also be treated as a single unit, or cluster, where processing demand is higher. The power consumption of multi-core systems can be significantly lower than that of single processor cores, since they can execute instructions faster, enabling cores to be powered down for periods where they are idle. Throughput can also be higher with multiple cores, enabling the device to operate at lower frequencies, and individual cores can be shut down when not in use, saving power consumption.
Although it is a powerful compute machine, the MPU has very limited ability to communicate with the external environment, which is where the MCU architecture comes in. The MCU is designed to be as expandable and flexible as possible, integrating additional components such as read-only memory, read-write memory, serial interface, timers, and I/O port around a system bus. Figure 3 shows an example of an advanced MCU architecture, designed for IoT applications.
Since they don’t need any other external components to support their applications, MCUs save both time and space in the development of an embedded IoT device. In summary, in embedded world terminology, “MPU” is a “microprocessing unit” or “microprocessor”, “MCU” describes a “microcontroller” that includes on-chip flash memory and other peripherals in the system-on-chip.
A wide variety of MCUs is available on the market and choosing the right one depends on the needs of the specific application. Many IoT devices are battery-powered and, in some cases, must operate for years without being recharged – for these applications, power efficiency is essential. Connected cars or factory production lines, on the other hand, would prioritize speed and responsiveness over power. MCUs can achieve power efficiency by shutting down functionality, as described above, or through the choice of fabrication material.
Hardware is nowhere without software
Hardware alone, however, does not empower edge computing, and the MCUs described above require to be enabled by software functionality such as:
- Connectivity Protocols
- Security Libraries
- Peripheral Drivers
- Real-time OS
- Bootstrap Loader
- Config and development tools
- Application Reference Software
- ML Capabilities
- Audio-visual capabilities
- Functional Safety Libraries
More advanced software enablement may be required for more sophisticated applications, for example, those that aggregate data from multiple nodes or which require multi-media capability. Figure 4 shows a software architecture that is common in edge processing devices. Containing rich OSes such as Linux and Android, this architecture provides software enablement for the advanced hardware capabilities shown in Figure 3.
Software enablement can also be customized to meet the specific requirements of individual market segments. An example would be in industry where many applications require support for time-sensitive protocols such as EtherCAT and PROFINET.
The edge puts processing power where data is generated
Edge computing is enhancing the power and capabilities of the IoT by offloading computation and storage from the cloud to the edge, the point where data is collected and manipulated. Developments in silicon may be at the heart of this transition, but edge computing is equally dependent upon the advanced software, which is deeply intertwined in the hardware, enabling capabilities such as security, low power operation, machine learning, and connectivity.