EMBEDDED SYSTEMS: AN INTRODUCTION
It is not often that we hear the term ‘Embedded Systems’ be used to describe devices or systems that we use in our day to day lives. But did you know that they are everywhere around us? Yes, It’s true. We encounter embedded systems everywhere — from smartphones, tablets, printers, digital cameras, headphones to washing machines, microwave ovens, digital TVs and unless you own a 25-year-old vintage car, your automobile is the embodiment of embedded systems. While some embedded systems can be relatively simple, some can be quite complex, making development more challenging and a lot more fun.
But let’s get back to the basics. What’s with the term ‘embedded systems’? What’s special about them?
Embedded Systems: What’s all the hype?
As the name suggests, embedded systems are integrated hardware and software (firmware) systems designed to perform a task-specific function or functions within a larger system where firmware is just another fancy name for software that is programmed onto hardware and is hardware-specific.
With the increasing need for more functional and complex systems, embedded systems are now quite smart and compact. Most of them have no user interface (UI), or complex graphical user interfaces (GUIs). Those with interfaces may use buttons, LEDs, touchscreens, or even have remote user interface capability. The firmware can also be remotely, automatically updated via over-the-air firmware updates. So long as they are embedded within larger systems and are task-specific, they meet the definition of an embedded system.
Embedded System Hardware
Embedded system hardware typically consists of a processing unit (microcontrollers or microprocessors), sensory components, local memory, input-output (I/O) interfaces, and a transceiver.
Embedded system hardware can be microprocessor- or microcontroller-based depending on the functionality and end requirement. They can range in complexities from the smallest 8-bit microcontroller to a suite of processors with connected peripherals and networks and from no user interface to complex graphical user interfaces. Embedded sensor systems include cameras, motion sensors, light sensors, accelerometers, pressure, humidity, touch, position, nutrition sensors, and multiple other sensors depending on the system function. Transceivers can be either wired (RS422/485 and more recent industrial ETH/CAN) or wireless (ZigBee, ZWave, BT, WiFi, cellular, and even satellite).
We can usually think of software architecture in terms of layers and components. The components at the lowest layers talk directly to the hardware. There are several types of operating environments in use today from “bare metal” to full-featured operating systems like Linux.
Bare metal implies that the program or software runs directly on the hardware level without support from any operating system. It is a low-level method of programming and is specific to the hardware used. Examples include GPIO, ADCs, communication modules (SPI, I2C, UART), PWMs, DACs, etc.
Embedded Operating systems like Embedded Linux support real-time capabilities (RTOS) and allows for guaranteed response times to events. This is specifically useful in devices used in critical operations.
Applications of Embedded Systems
As noted above, applications of embedded systems are incredibly varied across multiple sectors of both industrial and consumer segments. The use of embedded systems is growing, and applications for this technology seem almost limitless having given rise to the Internet of Things (IoT) devices. An IoT system is the “next generation“ embedded system that augments an “old style” embedded system with Internet access and control. The evolution of the embedded systems does not stop here as we are now witnessing the birth of the Internet-of-Body (IoB) systems, which are miniaturized embedded systems attached to a living body (human or animal).
Today, embedded systems can be found in automobiles (for cruise control, backup sensors, suspension, navigation, and airbags), mobile phones (operating GUI software and hardware, cameras, and microphones), medical systems (regulating sensors, control mechanisms, and GUI screens), industrial machines (where sensors and automated monitoring and control functions rely on embedded systems), military and defense (radars, sonars, telemetry units), power and energy industries (monitoring, sensing, management, and generation) and IoT devices of all descriptions ( most often used for sensing and real-time computing), amongst other applications.
While powerful, embedded systems are not without their challenges. The ideal embedded system meets the required function, consumes little power, is very small, costing nothing, and is secure and reliable.
Low power consumption has become an important design goal in most embedded systems. Developers need to consider several factors like choosing the right low power microprocessor, battery selection, sleeping, and reduced speed clocking among others. Energy harvesting technology is today rapidly emerging as a viable power supply option for embedded systems complementing battery power. This is a really interesting topic, and we plan to share more on this in a future blog.
Another consideration in designing embedded systems is the demand to create increasingly powerful systems and to do so in an ever-shrinking footprint. Most embedded systems must be designed to fit on a single chip and should be powerful enough to process data in real-time, utilizing the lowest power possible to extend battery life.
Embedded systems have to be designed to withstand harsh environments like high and/low temperatures, toxic gases, radiation, and other potential hazards. The system should also be designed for accessibility for remote control, management, and up-gradation.
And because today so many embedded systems are IoT devices, security is a priority. As mentioned earlier, embedded systems are also prevalent in mission-critical industries like military, aerospace, agriculture, industrial, and power and it takes just one vulnerability to lead to exploitation at a massive scale. Because embedded systems operate in a resource-constrained environment, all system components — software, hardware, and firmware alike — need to be designed with security in mind at every level.
Despite these challenges, an experienced designer can mitigate these factors and find the right balance of performance, size, ruggedness, and cost for every embedded system application.
What does the future hold for embedded systems?
Intelligent edge devices are a burgeoning new frontier for embedded systems. Newer, more powerful processors are enabling the next generation of intelligent devices, equipment, and factories that will rely on embedded systems to enable key technologies for smart, connected products. Particularly with the Industrial Internet of Things (IoT), smart, connected industrial equipment will rely on embedded systems for increased automation and the development of autonomous and self-healing systems. This is part of a new frontier, called edge processing where the embedded systems are so powerful that they can aggregate data and locally process it at the edge of the system, and send only the processed report to the cloud, thereby not overburdening the cloud. With this, the processing power and the resilience/redundancy of the systems will be tremendously improved.
As mentioned earlier, Internet of Bodies (IOB) systems are becoming a reality with each passing day. Progress in wireless connectivity, flexible electronics, and technology innovation is allowing implantable medical devices (IMD) to scale and be viable in many applications. This technology undoubtedly holds a lot of potential once it can overcome policy regulations and security issues.
The power of embedded systems and the future it promises are limitless. It is exciting to be working in this industry delivering surpassing designs and developing the future of tomorrow.