Embedded systems are ubiquitous in IoT devices. Combined with software, dedicated systems for IoT usage employ microcontrollers and microprocessors to enable the networked devices to communicate.
For effective embedded system selection and design, IoT device designers must know about power requirements, embedded system sizes and ideal uses.
Embedded systems predate the IoT era. Integrated circuits and microcontrollers became commercially available by the 1970s. IoT devices have come about solely because embedded systems developed for a specific purpose existed first.
Embedded system components
There are three main components that make up an embedded system: hardware, software and the OS. These systems can include a UI.
Hardware elements include a CPU or a microcontroller, as well as memory hardware, timers, communications ports, a power supply, actuators and sensors.
An embedded system's software stack handles one specific task. The system performs the task within memory limits, the processing ceiling and the system's power dispersion abilities.
An embedded OS configuration is compact and reliable to handle timing functions and manage system usage. Embedded systems use a wide range of UIs, which can include a simple button, an LED or LCD interface for one task, or a more in-depth GUI.
In terms of sizing, embedded systems use small-, medium- or large-scale systems.
Small-scale systems use an 8- to 16-bit processor and have limited system resources that can run on battery power. Devices that use small-scale systems include automatic door locks and printers.
Medium-scale systems employ 16- to 32-bit processors and generally have more networking and routing resources than the smaller variants. Medium-scale systems support use cases such as ATMs.
Large-scale embedded systems, often called sophisticated or complex embedded systems, use a 32-bit to 64-bit processor. Complex systems often employ a GUI with multiple Ethernet, USB or wireless communications ports and multiple algorithms at once. Large-scale embedded systems include industrial temperature monitoring and management systems, as well as domestic appliances such as refrigerators and microwave ovens.
Embedded software architecture is sometimes divided into an application layer, a middleware layer and a firmware layer. Admins can implement embedded software as standalone software capable of running an entire system. An embedded software architecture may include a real-time operating system (RTOS).
Component selection for embedded systems
Embedded IoT device development generally takes at least 18 months. Choosing the right components and software for an embedded IoT unit can be a tricky process for IoT vendors and device manufacturers.
It can take a lot of testing and research to ensure that the embedded system components will all work together and can effectively support an IoT device. It can also be a challenge to fit so many components together in a small form factor.
A small-scale embedded device uses no more than an 8-bit microcontroller and a battery. The principal machine code programming tools for a small-scale device are an editor, an assembler or an integrated development environment.
A medium-scale embedded device typically uses a more sophisticated microcontroller, an Arm processor or a digital signal processor (DSP). Some medium-scale systems can employ multiple microcontrollers or DSPs. Programming tools for medium-scale devices include C, C++, Visual C++ and Java.
Medium-scale IoT embedded devices often rely on RTOSes to perform repeated tasks that must execute within rigid time schedules. Application-specific standard parts are frequently deployed in medium-scale embedded systems to fabricate interfaces such as USB ports.
Complex or large-scale IoT embedded devices often use a 64-bit CPU and a GUI for operation. Their interfaces can include touchscreens and require GPU chips. Such intricate systems include factory monitoring equipment and industrial robots.
Main integration considerations
When developing an IoT embedded system of any complexity, key concerns include the costs of hardware and software, the availability of the components needed, how much memory the device can have and security. IoT embedded devices may not have more than a simple passcode on board to prevent intrusions.
Memory limitations are a constant challenge. Many devices have less flash memory available, which means that every line of code counts in IoT embedded device programming. The more lines of code, the more memory the device needs.
Because embedded IoT devices network with other devices and have connectivity, admins can update them over a wired or wireless link. Unlike earlier embedded systems, IoT devices can fix flaws or address security problems that weren't detected in systems testing. Embedded IoT devices can even be updated with new features -- if there is memory available.
Additionally, IoT device vendors must consider if the embedded system must connect to an outside system or if it can run as a standalone process. The more connected an embedded device must be, the more memory and communication bandwidth it requires.