Here's a discussion we have all time here at Embedded.com: what's does embedded really mean? Does it mean the same thing that it did a few years ago, or even 20 years ago, when Embedded Systems Design begun its life (actually, it was Embedded Systems programming at the time).
What prompted this column was a column I just came across, written by Dan Sides of Lattice Semiconductor titled “”Embedded”: What Does It Really Mean, Anyway?” Dan has his definition of embedded, and in my opinion, he overcomplicates the matter.
I came up with a definition a long time ago, while working for a different “embedded” publication. At the time, definition I used was that an embedded system is a computer whose end function is not to be a computer. For example, a microwave oven contains a computer, but obviously it's end function is to heat up food. A television contains a computer, but it's end function is to display audio and video.
So that makes almost every microcontroller/microprocessor-based system an embedded system except a PC. That worked for me a few years ago, and I'd argue that it still works today. I'd like to hear your definition of an embedded system.
I like your definition of embedded – still. However, as devices such ascel-phones and other personal communication devices (e.g. Sony's WiFiMySpace gadget – the “Mylo”) evolve with more and more functionality, wouldyou consider that they transition from “embedded device” to “computer”? Orwould you expand your definition of embedded?
Hard to say, but I certainly consider current generation cel-phones as”embedded” devices.
Alternatively, is a TiVo box really an “embedded” system? While somePVR/DVR type systems are embedded, some are not, in my opinion. That is,systems that are really just PC's packed in a box without a keyboard are not”embedded” enough for me. Perhaps its just my ASIC upbringing, but I thinkthe definition of “embedded” would need to include something along the lineswhere the hardware that makes up the embedded system has been optimized forthe application (e.g. cel phone), and isn't so well suited to alternatepurposes. Generally, such optimization is cost related, but could also bepower related (e.g. suitable for long battery life) or performance related(e.g. runs that particular application – e.g. dual H.264 decode – verywell). Of course, TiVo's may have started out as a PC in a box without akeyboard, but as time marches on, and the market pressures of cost andperformance escalate, they will surely transition themselves from a”non-embedded PC” (my definition) to “embedded” (specially designed andoptimized).
Just a few thoughts…
I think your definition comes up kinda short, but I don't think there's an obvious replacement for it.
On any given day, I see “embedded” products built from everything under the sun, from PC motherboards to fully-custom circuit boards populated with a handful of AVR microcontrollers.
Point is, I'm not sure there is a definition of “embedded” anymore. Some of the tasks we're throwing computers at nowadays require hardware and software that comes from the desktop world, while at the same time our desktop computers are getting tasked with things like running our home heating and air conditioning systems.
Where to draw the line between “embedded” and “not embedded”? I'm not sure there's such a line to draw anymore!
your definition is simply excellent. Nevertheless what other readers has written to you it's correct: due to increasing complexity of embedded systems tasks border line between these domains, embedded and computer systems, is evolving every day. At the end of the day computers are built for general purpose tasks with an high end user friendly interface, whereas embedded systems are made for special purpose tasks with a relatively low end user interaction. So I'd add two magic words for keeping short your definition: “special purpose”. This is like it sounds my definition: “an embedded system is a computer whose end special purpose function is not to be a computer.
I like your definition. It captures an important point. An embedded system uses a computer but for non-computer purpose. Computers have been treated as academic experiments and given blanket dispensation for failure; however embedded systems do not inherit this dispensation. It is beyond unacceptable for the engine controls of a car or airplane to crash and require rebooting, for example. Very large lawsuits and possible criminal prosecution may result if this happens. We will see more examples of this distinction being made as embedded systems become pervasive. Let the vendor beware.
The Wyland group
Morgan Hill, CA