What is an embedded system?
Less obvious embedded systems include:
The list is essentially endless and to further confuse matters, embedded systems can be part of a larger embedded system. An example of this would be a voice mail system that uses a hard drive to store messages. The single common thread in the examples, is the use of a processor or microcontroller for a very specific, and many times fixed purpose. In fact, if a processor is not used in a general purpose computer such as a PC, Macintosh, UNIX workstation etc., it likely qualifies as an embedded system. Even this test is not entirely accurate since a complicated pieces of equipment may embedded a complete general purpose computer to provide all the features and functions necessary to meet requirements.
Processor, Microprocessor, CPU, Microcontroller ? : In this discussion we use these terms some what loosely and interchangeably, but note that there are some differences. CPU stands for Central Processing Unit and is a term that describes that part of a computer (any computer, embedded or otherwise) that processes information. A CPU may take many forms. All very old computers, many very large computers have their CPU in the form of one or more circuit boards. When all of the CPU is located on a single chip or integrated circuit, it is known as a microprocessor.
The term Central Processing Unit is also somewhat archaic as most modern computer systems do not rely on the main CPU to accomplish all processing tasks. Also some computers may have multiple main CPUs further obfuscating the term "central" in the acronym CPU, thus CPU can be swapped for the more generic term "processor". A microcontroller is a microprocessor with a lot of extras features onboard the same chip as the processor. These added features usually expedite the design process for embedded systems, and thus most microcontrollers are found in embedded applications.
How does a PLC compare to an embedded system?
The list of features varies considerably with the make and model of PLC. PLCs are generally packaged to with a basic set of features, which can be further enhanced via expansion modules. This type of "building block" configurability makes them extremely powerful in solving industrial control problems. However this flexibility comes with a price that makes a PLC less attractive in many OEM situations. PLCs embedded in OEM products likely have many features that will permanently go unused. These unused features add to the cost of the product. PLCs also suffer from very poor cost vs performance ratio's when compared to embedded systems. Further, certain time critical processes are poorly controlled by even very high end PLCs.
What are the advantages and disadvantages of embedded systems?
Embedded system also take time to develop, and are always a slower solution than "off the shelf" components. Some parts of the development process are not easily expedited regardless of the size of the development effort. Taking short cuts in the development process will likely lead to extended overall development times since they usually add problems later in the project when commitment to a particular direction is significant. The development of an embedded system has to be managed carefully.
The most profound advantage an embedded system has over any off the shelf product is the ability to closely tailor the product to the design objectives. The embedded system is developed to a specific set of requirements derived from the intended application. In many cases, the embedded system can not serve in any other application without modification. Good embedded system design, almost by default, closely meets the requirements, as the they are the principle driving force in the embedded system design process. An embedded system will easily surpass any off the shelf product with respect to meeting requirements, just by nature of the design process. The product was design for the application.
Embedded systems are an excellent way of publicly protecting proprietary knowledge. A high degree of protection is, by default, inherent in an embedded system. Actively making an effort to secure proprietary knowledge encoded in an embedded system, can make it extremely difficult for others to reverse engineer.
When is it appropriate to tackle developing an embedded system?
Once the control requirements become more complex, production volume increases, or there is a desire to customize further, embedded products start to become more attractive. However there are many ways to develop embedded systems and some ways are more appropriate than others, depending on the company and the product. Here are some of the alternatives.
If the company already makes electronic products, then it may be practical to use internal resources for the project. This may mean hiring additional staff, purchasing equipment etc. Product development becomes an issue of managing the staff effectively to get the job done.
More typical is a company incorporating controls into a mechanical product. If the company is large, they may already have a controls division or they may be interested in buying one. In which case the problem also resolves itself. In far more cases, the company is not interested in becoming involved in the intricacies of fabricating electronic products. However they usually do have a desire to control their own control technology. The delema becomes how to control a product that you do not want to manufacture. Many companies outsource the embedded systems development to a controls company to solve this problem. The controls company essentially encapsulates the customers requests into one one of their standard embedded systems for small products, or develops it from scratch for large products. The potential problems to the comapny outsourcing technology are many, including:
Value added by Numerical Solutions.
More on Numerical Solutions capabilities and development activities can be found by checking out some of the links on the Numerical Solutions home page.