This is an open ended question!
Everyone has his own definition. It seems that there is no complete answer for this. We have several ways for looking for it. For example, we can look at the job description for engineers working in “Embedded Systems”. What we will find is that the kind of jobs in “Embedded Systems” is variant and covers a huge spectrum. Starting from electronics (FPGA, ASIC,…) to systems engineering (control, mechatronics, …) and ending with software engineering (firmware, embedded C,…). Consider even the applications, programming language used, type of work… you will find a huge diversity.
Having a clear definition and common understanding is important for me though, and should probably be your concern. I consider myself an “Embedded Systems Engineer”, so I need to have a clear definition for my role. I need answers for: What should I learn next? What is missing me? How do I compare to others in the workforce market? Also, I need to answer what will be my next posts focusing on. I can not make a blog for general “engineering” and in the same time I want to cover several fields in “embedded”.
Lets have a look first in the books. At the end, they do good job in writing “niche” stuff for definitions. Embedded System Definition:
- “A software system that is embedded in a hardware device (e.g., the software system in a cell phone). Embedded systems are usually real-time systems and so have to respond in a timely way to events and occurring in their environment.” Software Engineering 9th edition, by Ian Sommerville, published 2011.
- “An embedded system is a computerized system that is purpose-built for its application”. Making Embedded Systems: Design Patterns for Great Software, by Elecia White, published 2011.
- “An embedded systems is a microprocessor-based system that is built to control a function or range of functions and is not designed to be programmed by the end user in the same way that a PC is”. Embedded Systems Design, by Steve Heath, published 2003.
- “An embedded system is an application that contains at least one programmable computer (typically in the form of a microcontroller, a microprocessor or digital signal processor chip) and which is used by individuals who are, in the main, unaware that the system is computer-based.” Embedded C, by Michael J. Pont, published 2002.
- “An embedded system is any computer system hidden inside a product other than a computer”. An Embedded Software Primer, David E. Simon, published 1999.
Then lets check the glossaries. Embedded System Definition:
- “n. A combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function. In some cases, embedded systems are part of a larger system or product, as in the case of an antilock braking system in a car.” Barr Group website, Embedded Systems Glossary (link)
- “An embedded system includes a microprocessor, involves the immediate control of hardware, and is limited to performing a specific function.” IEEE Standards Definition Database (link)
- “Design and build (a microprocessor) as an integral part of a system or device”, Oxford Dictionary, (link)
All the above definitions describes – generally – what is an embedded system. It does not put clear cut on the boundaries of embedded or constraints on size and complexity. I will comment on these definitions in Part 2.