Embedded systems are ubiquitous. Almost every electrical device you interact with is more complex than a simple light switch; it contains a digital processor that reads input data from its environment, executes computational algorithms, and generates some output to interact with the environment.
From waking up in the morning (responding to alarms from digital devices) to brushing your teeth (using an electric toothbrush with a digital processor) to toasting bagels (in an electric toaster), to disabling your (digital) home alarm system, you need to interact with embedded devices. Throughout the day, you provide input to and receive output from many other devices, such as TV remotes, traffic lights, and railroad crossings. Highly digitized transportation systems, including cars, airplanes, and passenger ferries, each contain dozens (if not hundreds) of embedded processors to manage the operation of the drive system, supervise safety functions, maintain a comfortable climate, and provide entertainment for the passengers onboard.
Let’s take a moment to clarify the sometimes blurry line that separates embedded systems from general-purpose computing devices. The defining characteristic of an embedded computing system is the integration of digital processing in a device that has a greater purpose beyond mere computation. Devices that do not contain any form of digital processing are not embedded systems. For example, an electric toothbrush that only contains a battery and a motor controlled by a switch is not an embedded system. A toothbrush that contains a microcontroller is an embedded system, as the microcontroller will light up a red light when you press down hard while brushing.
Although a desktop computer can perform many tasks and can be enhanced by adding various peripherals, it is simply a computer. In contrast, the primary purpose of a car is to transport passengers. In performing this function, it relies on various subsystems that contain embedded processing. A car is an embedded system. A personal computer is not.
Smartphones are more challenging to classify clearly. When used as a phone, it clearly performs functions consistent with the definition of an embedded system. However, when used as a web browser, it resembles a small general-purpose computer. Clearly, it is not always possible to determine whether a device is an embedded system.
It is helpful to understand the differences in operating environments between general-purpose computers and embedded devices. Personal computers tend to work best in climate-controlled indoor environments. Embedded devices in cars, for example, are often exposed to much harsher conditions, including rain, snow, wind, dust, and various effects of heat.
A large portion of embedded devices lacks any form of active cooling system (which is standard in personal computers), so steps must be taken to ensure that their internal components remain at a safe operating temperature without being affected by external conditions.
Embedded systems, whether relatively simple devices or highly complex systems, typically consist of multiple elements, which we will now discuss.
Power Source
All electronic digital devices require some form of power supply. Most commonly, embedded systems are powered by mains electricity or batteries, or by power supplied by the host system in which the device operates. For example, an automotive tail light assembly that includes a processor and a CAN bus communication interface is powered by 12 volts DC provided by the vehicle’s electrical system.
Embedded devices can also be powered by rechargeable batteries connected to solar panels, allowing the device to continue operating at night and on cloudy days by collecting energy from the environment. An automatic winding watch uses energy collected from arm movement to generate mechanical or electrical energy. Embedded systems that are critical to safety and security typically use mains electricity as their primary power source while providing batteries as a backup power source for operation during power outages.
Timebase
Embedded systems often require some method to track the passage of time, both short-term (for microseconds and milliseconds) and long-term (also known as clock time), to keep track of dates and times. Most commonly, a crystal oscillator or microelectromechanical systems (MEMS) oscillator that produces several megahertz output frequency is used to generate a system clock signal. The crystal oscillator amplifies the resonance of a physical crystal, usually made of quartz, to produce a square wave electrical signal using the piezoelectric effect. The MEMS oscillator contains a vibrating mechanical structure that generates electrical output through electrostatic conduction.
Once set to the correct time, a clock driven by a crystal oscillator or MEMS oscillator will exhibit a small frequency error (typically in the range of one in a million 1-100), which accumulates over days and weeks, gradually drifting by seconds and then minutes away from the correct time. To mitigate this issue, most internet-connected embedded devices regularly access time servers to reset their internal clocks to the current time.
Digital Processing
By definition, embedded computing systems contain some form of digital processor. Processing functionality is typically provided by microcontrollers, microprocessors, or systems on a chip (SoC). A microcontroller is a highly integrated device that contains one or more central processing units (CPUs), random access memory (RAM), read-only memory (ROM), and various peripherals. A microprocessor contains one or more CPUs, but the overall system functionality integrated into the same device is much less than that of a microcontroller, which often relies on external circuitry for RAM, ROM, and peripheral interfaces.
SoC integration is even higher than that of microcontrollers, often combining one or more microcontrollers with other digital hardware resources configured to execute specific functions at high speed. SoC designs can be implemented in architectures that combine traditional microcontrollers with custom high-performance digital logic in field-programmable gate array (FPGA) devices.
Memory
Embedded systems typically contain RAM for working memory and some type of ROM (usually flash memory) for storing executable program code and other required information, such as static databases. The amount of each type of memory must be sufficient to meet the needs of the embedded system architecture throughout its planned lifecycle. If the device is intended to support firmware upgrades, sufficient memory resources must be provided in the hardware design to accommodate a range of functional enhancements that may arise throughout the system’s lifecycle.
Software and Firmware
In traditional computing environments, the executable code that users interact with (such as web browsers and email programs) is referred to as software. This term is used to distinguish program code from the hardware components that make up the computer system. In general-purpose computers, this software is stored in files on disk drives. In embedded systems, executable code is typically stored in ROM, which is a hardware component within the device. Due to this arrangement, we can think of the code as occupying a middle ground between hardware and software. This intermediate portion is referred to as firmware. In the early days of embedded systems, code was often burned into storage devices and could not be changed after initial programming. Compared to most currently produced embedded devices (which usually contain rewritable flash memory), these devices were more like hardware (and thus more ‘rigid’). However, we continue to use the term firmware to describe the code programmed into embedded systems.
Dedicated Circuits
Embedded systems support a wide variety of applications, some of which are relatively simple processes, such as monitoring button presses on a TV remote control and generating corresponding output signals to the TV, while others perform extremely complex processing-intensive tasks in high-definition environments. While simple embedded systems may be able to perform all necessary digital processing using a tiny microcontroller, more complex systems may require processing resources that exceed those provided by off-the-shelf microcontrollers and more powerful microprocessors (e.g., x86 and ARM processors).
In recent years, architects of these more complex embedded designs have turned to application-specific integrated circuits (ASICs) to implement custom circuitry to execute processing at the speed required for proper system operation. An ASIC is an integrated circuit that contains custom digital circuits designed to support specific applications. The production of ASIC devices usually involves a very expensive production setup phase, making them impractical for project prototyping and small-scale production runs.
Fortunately, many of the functions provided by ASICs are now available in low-cost FPGA (field-programmable gate array) devices. Because FPGAs are easy to reprogram, they are often used in embedded system prototyping and small-batch production. For high-volume production (tens of thousands of units), the lower per-unit cost of ASICs can make the production setup costs worthwhile.
Input from the Environment
Embedded systems often require input from their environment, whether from users operating the interface or from sensors measuring certain aspects of the system they are in. For example, an electric vehicle powertrain controller will track various aspects of the vehicle’s state, such as battery voltage, motor current, vehicle speed, and accelerator pedal position. The system architecture must provide hardware peripherals capable of measuring the input from each sensor with the necessary precision. The entire system must be able to perform measurements from all sensors at the rate required for normal vehicle operation.
Output to the Environment
In addition to reading inputs from the environment, embedded systems often produce one or more outputs for the operator or host system to use. Continuing with the example of the electric vehicle, the powertrain controller uses the throttle position and other inputs to compute commands to the drive motor controller that can adjust the torque output of the powertrain. Besides directly supporting system operation, embedded controllers often provide outputs for human use, such as displaying vehicle speed on the dashboard. Each output must be updated at a rate sufficient to support proper system operation (including the needs of human perception). When implementing human-machine interfaces,
Network Communication
While many simple embedded systems operate completely independently, reading their inputs, computing outputs, and updating output devices in an isolated context, an increasing number of embedded system designs support some form of network communication. This capability enables device functionalities such as remote notifications from home video doorbells and continuous monitoring of factory floor machinery.
Enhancing embedded systems with always-available network communication capabilities can add a wealth of functionality. However, if developers are not careful about security in the system architecture, this capability also carries security risks that can be exploited by malicious actors. It is crucial to understand and address the security risks posed by incorporating communication capabilities in embedded system architectures.
Embedded system architects combine these elements to generate system designs that can perform their intended functions with an appropriate safety margin across the entire range of expected environmental conditions.
Proper system design meets additional requirements, such as size and weight limitations, power consumption constraints, and keeping production costs within acceptable levels. The available design space for embedded systems largely depends on the following attributes: the number of units to be produced, the safety-critical aspects of the system, and the demands of operating in harsh conditions.
Embedded system architectures that include persistent communication capabilities must address another aspect of the design space, which involves communication between individual devices and centralized nodes (often servers accessed via the Internet) as well as the interaction between users and the embedded systems.
The widespread deployment of small embedded systems with network connectivity introduces the term Internet of Things (IoT). The next section will discuss the relevance of IoT to embedded system architectures.
Internet of Things
Conceptually, the Internet of Things represents the effort to maximize the utility of a vast number of different embedded devices through large-scale network communication. The distinction of IoT devices from ordinary embedded systems lies in the communication pathways that exist between each device and one or more central nodes. These nodes collect data from the ocean of devices and, in many cases, allow authorized users to issue commands to individual devices and collections of devices.
During the development of IoT devices, especially those that will have access to sensitive personal information (such as home security cameras), responsible embedded system architects must take extensive measures to ensure the security of the end devices. IoT devices are often installed in consumers’ homes and must minimize vulnerabilities that would allow malicious actors to take control of cameras, microphones, or security systems. While system designers cannot prevent every security error that end-users may commit, secure system design can help users by taking steps such as guiding them in choosing strong passwords and defending against common attack types, such as brute-force password guessing.
Examples of IoT devices and systems include:
-
Home alarm systems composed of window and door sensors and motion sensors: This type of system typically includes a smartphone application that immediately notifies about alarm events. The system not only notifies the alarm company to initiate a response to the alarm event but also informs the homeowner of these events. Clearly, this alarm system must be able to resist network attacks that could disable the alarm system.
-
Lighting and power outlets: Many different lighting devices, including bulbs, fixtures, and power strips capable of turning lights on and off, provide Internet-based monitoring and control functions. Applications associated with each of these devices can remotely control individual lights and can schedule the on and off times of lighting throughout the day. As with IoT alarm systems, security is an important feature that must be fully integrated into the system design.
-
Smart speakers: IoT speakers provide voice interfaces that allow users to make requests in natural language. Users prepend words or phrases to ‘wake’ the speaker, such as ‘Alexa’ or ‘Hey Google,’ followed by commands or requests. These devices can interact with various other IoT devices, including alarm systems and lighting controls. An example of a voice command is ‘Alexa, turn on the lights.’
-
Medical monitoring and treatment: Many types of embedded devices are deployed in hospital and home environments to monitor patient health metrics such as temperature, blood oxygen, heart rate, and respiration. These devices typically communicate with centralized databases to allow healthcare professionals to track current and historical health conditions. Other digital systems perform active treatment functions, such as administering medication and assisting with breathing.
-
Industrial applications: Embedded systems are widely used in factory lines, energy generation systems, energy transmission systems, and the oil and gas industry to monitor and control complex systems and processes. For example, a variety of sensors and actuators are required to perform real-time monitoring and management of oil pipelines that may extend thousands of miles.

Source: Global IoT Consulting
-
How IoT Works: Sensors -
How IoT Works: Network Connections -
Four Core Principles of IoT Security -
AI May Dominate New Modes of Air Combat -
“Narrowband IoT” Will Land in Consumer Industries -
Artificial Intelligence is Liberating Chemists’ Hands

