What is an Embedded System?
As with most things in the world of software, should you foolishly ask the question ‘what is an embedded system?’ you will quickly find yourself at the epicentre of quite the heated discussion. In the red corner, you have the bare metal believers, opting for no OS and low power processors. In the blue corner, the followers of what are effectively PC equivalents running Linux and everything in between. If you filter out all the toing and froing, an embedded system can simply be defined as a controller that provides one, or very few, specific functions within a larger system.
At the centre of these systems, there will be a processing unit. While ordinary microprocessors are undoubtedly still popular, especially for use in more complex systems, microcontrollers have become an equally popular choice. What’s the difference between these two I hear you ask? Well, where microprocessors utilise external chips for memory and peripheral interfaces, with a microcontroller all of these things are already integrated.
The origin of microprocessors and microcontrollers dates back to the early 1960s with the development of the MOS integrated circuit, a chip fabricated from MOSFETs (metal-oxide-semiconductor field-effect transistors). These chips developed at a rapid pace, and before the end of the decade, large scale integration saw a single chip integrate with hundreds of transistors. Recognising that several chips could contain a complete computer processor system, engineers began to apply this to computing.
Unsurprisingly, the first recognisable modern embedded systems also made their debut in the 1960s. Charles Stark Draper’s Apollo Guidance Computer is widely regarded as the first recognisably modern embedded system. Though in terms of mass-production, it is the Autonetics D-17, a guidance system for the American Minuteman missile, that is considered to be the first of it’s kind.
Now, almost 50 years after the introduction of these early applications, the trials associated with the development of embedded systems have decreased by a considerable margin. For example, the decreasing cost of microprocessors has allowed for the replacement of expensive analogue components, such as potentiometers and variable capacitors, with cheaper alternatives. When tied in with advances in processing power and functionality, as well as the development of the microcontroller in the 1980s, embedded systems can now perform tasks of a higher complexity without the need for excessive quantities of additional components, reducing hardware footprint and cost. As a result, most of the design effort now lies in the realm of the systems software elements.
With the now low-cost of hardware and rise of the Internet of Things, embedded devices have become much more prominent across a wide variety of industries. Here at Zircon, we have worked with clients to help them design and deliver embedded systems, for application in the Rail, Highways and Industrial Control and Monitoring sectors.
In the second addition to this embedded series, we shift our focus onto the software element of these systems. Does the development process differ from PC applications? How do restrictions affect your approach?