You might not be aware of that, but the world as you know it and are used to would not exist without embedded systems. You come across and unconsciously use embedded systems every day – each time you decide to use an elevator, watch TV or utilize any of your home appliances or simply stop at the traffic lights. Embedded systems have become an essential part of our reality and play a crucial role in the functioning of the twenty-first century society. Let us have a closer look at what they actually are, how they work, where they are applied and why proper testing of them is so important.
Generally speaking, an embedded system is a kind of a computer that has been built in a larger system. It differs from a general-purpose computer in several respects. First of all, it can only solve one or two specific problems. What is more, it doesn’t usually have a mouse or a monitor. Finally, as a rule it cannot be easily changed or modified. Another important feature of embedded systems is real-time computing, which means that they receive data, process them and return the result quickly enough to affect the environment. The time for returning the results is strictly specified and the deadline must be met or the real-time computing is considered as failed. One example of it might be anti-lock brakes in a car. The embedded system used must react in time to prevent skidding.
Embedded systems are widely used in all kinds of branches and fields: telecommunications, electronics, household appliances, transportation, industry, medical devices, military devices and many, many more. And even though their tasks may vary, all the embedded systems share several common features:
Embedded systems may range from those having no user interface (UI) to systems with complex graphical user interfaces (GUI). The former are typical for simple systems that only send and receive electric signals. The latter are often utilized in mobile devices and will frequently be equipped with touchscreen sensing and LEDs whereas simpler systems are usually operated by buttons.
Embedded systems hardware can be either microprocessor based or microcontroller based. In both types there is an integrated circuit (IC) that plays the most important role in the system as it is responsible for carrying out the real-time computing.
Microprocessors and microcontrollers are visually indistinguishable, so how are they, in fact different?
Microprocessors only have central processing unit (CPU) and need to be supported by other components e.g. memory chips. Therefore they are more commonly utilized for less complex tasks.
Microcontrollers, on the other hand, are designed as self-contained systems and apart from CPU they contain other necessary components, such as memory, communication ports or RAM. They are more often used to solve complex problems e.g. in vehicles, home appliances, robots or medical devices.
When it comes to software used in embedded systems, typically one of the two options is applied. The simplest devices are most often programmed directly by the means of the chip CPU’s machine code language. In case of more demanding systems and operations, operating systems or language platforms are used. They are modified adequately for the embedded needs, especially in case of environments where real-time operating is crucial. In the most advanced microcontroller-based systems it is more and more common to use stripped-down versions of Linux, EmbeddedJava or Windows IoT.
It is also a frequent practice to use “ready-made” computer boards, especially in devices that do not have to meet strict real-time deadlines, like ATMs. They may use either an embedded real-time operating system or systems like NetBSD, Linux or Windows CE. The reason to choose a ready circuit board is that is simply much easier. Moreover, such solution also saves time and reduces costs as it uses the same development tools as in case of PCs. These kind of computer boards are usually smaller but share some of the components with general purpose computers.
A special type of an embedded system is so-called SoC (system-on-a-chip). When the device is going to be sold in high volumes or has very specific requirements for the embedded system capability it is often more sensible to design a dedicated chip that will meet all the demands. Such chips usually include complete system with components like memory cache, processor, interfaces and floating point unit on a single integrated circuit. SoCs fall into one of the two categories: special-order application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
Where exactly are embedded systems utilized? It would probably be easier to say where they are not used. Their application is widespread in majority of fields: cooking, industry, automotive, medicine, commerce and military to name just a few. Let us have a closer look at some more particular examples listed below.
Private homes – one of the great advantages of the embedded systems is that they are invisible for the end user and yet they ensure comfort of life. Most devices and systems in our houses are nowadays embedded. Some examples might be: a fridge, a digital camera, a microwave oven, air-conditioning system, home security system, a TV or something most of us could not do without – a smartphone.
Offices and other working environments – can you name one business that can easily operate without the Internet access or at least without a computer or a printer? If you use Internet access in your work or you print out invoices for your clients then you are an embedded system end user. Devices like routes, gateways, modems or printers are all embedded.
Transportation – if you commute to work in any way or simply visit your relatives or friends you also benefit from the embedded systems without even knowing it. Traffic lights and other traffic control systems widely use embedded systems to monitor and manage what is happening on the roads. The number of embedded systems used in today’s cars is impressive: antilock braking system (ABS), rain sensing wipers, ignition control, air conditioning control, airbag control, suspension control, central locking, dashboard controller, oil level sensing, headlight position control and many, many more.
Healthcare – this is the field where embedded systems need to undergo the strictest tests before being put to practice. Life-saving devices such as blood–pressure monitors, scanners, heartbeat monitors, pacemakers or complex devices used for surgery very often play crucial role in keeping a patient alive. It is safe to say that thanks to the advancements in technology medicine has made a quantum leap in the number of lives saved. It would never be possible without the widespread use of embedded systems.
The world of industry – since the beginning of the industry as we know it the main focus has been put on two aspects – maximum reduction of costs and increase of productivity. It is becoming more and more possible thanks to automation. The process of doing a task in a repetitive way helps reducing costs connected with design and development of a particular product. Embedded systems are indispensable in this area as well since all the machinery used in production plants is embedded. Similarly, the increasingly commonly applied 3D technology like 3D printing machines utilizes embedded systems.
Two more fields that could not quite operate without specialized embedded systems are aerospace and defense. In those cases performance and security are of the utmost importance. Can you imagine the potential hazards connected with a faulty flight control system at any given airport? Other examples of systems with embedded technology used are: air and thermal management, navigation system, vehicle turbochargers or engine power.
In the recent years, as the embedded systems have become almost ubiquitous in our world, the issue of their proper testing became an important one. According to experts thorough testing is important in any system, but in the embedded world it bears an even greater significance. That is because in many cases embedded systems are life critical. What is more, over the recent years the level of software complexity increased dramatically.
Those two aspects – the possible fatal consequences of any flaws in the embedded system’s performance and reliability combined with the complexity pose extra challenges in the process of testing. Moreover, software dedicated to embedded systems often holds unique features that complicate the matter even further. A good example of difficulties that need to be overcome when testing and validating embedded systems is the fact that most of such systems operate in very specific physical environment and their performance is strictly connected with factors like e.g. temperature, wind or a combination of various dynamics that are very difficult or even impossible to recreate in the testing environment. The data input very often comes from the outer environment and cannot be simulated in a laboratory.
Additionally embedded systems usually have to meet more requirements than typical desktop software, e.g. reliability, time constraints or energy consumption. The possible implications of failure to satisfy any of the requirements in a medical device e.g. a pacemaker would be disastrous.
One more challenge to overcome is system integration testing as software and hardware of an embedded system must work together in a harmonious way.
Although it might seem that embedded systems are strictly connected with the achievements of the latest technology, they actually date back to 1960s. The technology has evolved greatly since that time and is still advancing. However, the very concept of embedded systems is almost 60 years old.
It all started in 1960 when the first modern embedded system was developed. Charles Stark Draper and his team from the MIT Instrumentation Laboratory were given a task of reducing the size and weight of the Apollo Guidance Computer. They decided to utilize newly developed monolithic integrated circuits which was considered a very revolutionary and risky idea. It turned out to be a success.
In 1961 the first mass-produced embedded system appeared. It was a guidance computer called Autonetics D-17 developed for the Minuteman missile. It had a hard disc for memory and it was made from transistor logic.
In 1965 the world saw the first commercially sold embedded computer. It was DEC’s 12 bit PDP- minicomputer. In spite of the word “mini” present in its name, it was very far from the today’s idea of “small”. It weighed approximately the same as 20 of modern laptops and cost $18,000 which is about $120,000 today… Still, PDP-8 marked one of the technological milestones and by 1973 it became the world’s best-selling computer!
1966 brought a breakthrough and the first ever high volume use of integrated circuits. In the Minuteman II missile Autonetics D-17 was replaced with a newer type of computer. At the same time the prices of embedded elements dropped dramatically which enabled releasing commercial products at more affordable prices.
Two years later, in 1968 a company called Intel (Integrated Electronic) was formed by Gordon E. Moore and Robert Noyce. Since the very beginning Intel has specialized in developing integrated circuits, flash memories, microprocessors, microcontrollers and all the other components necessary for an embedded system to operate.
1969 – it was an important year for the automotive industry. The first embedded system was used in a car. Designers of Volkswagen 1600 decided to use a microprocessor-controlled fuel injection system. This was a major step towards development of modern cars.
In 1971 Intel introduced to the market its first 4-bit microprocessor. It was called Intel 4004 and designed for calculators and other non-complex systems. Even though the microprocessor still required external memory and support chips, it marked another important point in the history of technological development.
Three years later, in 1974 the first 8-bit microprocessor was presented to the world. Intel and its greater competitor – Motorola – both released their products. Intel developed two models: Intel 8008 and Intel 8080, while Motorola introduced the MC6800. Since that moment the evolution of embedded systems gained speed. In the same year the first parallel architecture computer was built. It was called CLIP-4 and could carry out multiple calculations at the same time. That was actually quite impressive at that time!
In 1975 two young men started a company that was to revolutionize the world of modern technology. Their names were Paul Allen and Bill Gates. They decided to name their enterprise Microsoft. It quite soon became clear that it is only a matter of time before the new player dominates the market. In the same year Micro Instrumentation and Telemetry Systems (MITS) released the first ever home computer – Altair 8800. It only cost $400 (equivalent of about $1700 today).
The 1960s and 1970s were significant for the development of embedded systems. However, it was in the 1980’s that some of the most important advancements were made. In the early 1980s the focus was on the design of the microprocessors and microcontrollers. The former were optimized in the respect of memory size and speed of working. The latter became remarkably more powerful and at the same seriously reduced in size.
Among many other inventions based on embedded systems that emerged in the 1980s some are really worth mentioning here. One example is touch screen technology. The first home computer utilizing it was Hewlett-Packard’s HP-150 released for sale as early as in 1983! In 1989 something often considered as one of the key inventions in the history of men was introduced to the world – World Wide Web or WWW. Its creator – British engineer and computer scientist Tim Berners-Lee appeared on the list of the one hundred of the most important people of the 20th century published by the Time magazine.
The 1980s also saw the introduction of 16-bit and 32-bit processing.
In the 1990s embedded systems went wireless with the quickly increasing number of mobile phone users. One of the most important events of the decade was emerging of the first embedded Linux software that made real-time computing more feasible.
The beginning of the 21st century was all about the Android. In 2005 Google decided to acquire and further develop the system. Its application is no longer limited to phones.
Today over 95% of chips produced are dedicated to embedded systems. Experts predict that in the near future autonomous networks of embedded systems will monitor and control many aspects of our lives without human intervention whatsoever. One example might be cars communicating with each other in order to organize and optimize traffic in the cities. It is quite possible that very soon more objects than humans will be connected to the Internet and interact in order to make our lives easier, safer and more comfortable.
It has been stated in this text many times that embedded systems create large part of our reality and increase comfort of our lives. They have come a long way since the 1960s when the world saw the first embedded system. It is time to ask what the future holds for them. It seems quite obvious that their potential is not yet fully utilized and as the technology further develops, embedded systems will become even more useful and widespread.
One of the possible directions for embedded systems in the future is the Internet of Things (IoT). According to Wikipedia definition “The Internet of things (IoT) is the network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and network connectivity which enables these objects to connect and exchange data. Each thing is uniquely identifiable through its embedded computing system but is able to inter-operate within the existing Internet infrastructure.”
According to many experts of the field, embedded systems will probably be of major importance for the development and implementation of many Internet of Things (IoT) solutions, especially within particular industries and Industrial Internet of Things (IoT) applications.
It is now main focus of the biggest companies developing embedded system hardware and software to follow closely the transformations and profit as much as possible from the rapidly growing market of Internet of Things. The areas that will probably evolve most are microprocessors and microcontrollers and Real Time Operating Systems (RTOS). Transformations will also cover memory footprints and networking as well as open source communities and developers.
The market of embedded systems has been growing constantly and there are no indicators of change in the foreseeable future.