« The Joy of the Factory | Main | Aluminum Extrusions »
Embedded Systems Q&A
By Jimmy Sheffield | February 20, 2009
1. What is an “embedded system”?
An embedded system is basically any device that has an internal computing architecture designed to handle a specific application. This applies to any type of processor and operating system, so can be anything from an ARM platform running Linux or an RTOS to a full x86 implementation running Windows. This contrasts with the more traditional motherboard/daughtercard systems where the processing power resides in the CPU module and specialized functions reside in expansion boards. Of course, advanced expansion cards like video accelerators blur these lines by containing their own co-processor to handle the dedicated functions of that card. However, in that case, the main processing of the computer is still handled by the main CPU on the motherboard.
So, an embedded system can be anything from a PDA to an intelligent router. More and more systems rely on local processing within a smaller, stand-alone device than on a central processing module. In addition, there are an increasing number of specialized, hand-held embedded system devices that are used for specialized applications. Global positioning systems, PDA’s, and even cell phones are technically embedded systems with more computing power than early personal computers!
2. What are the main components of an embedded system?
The basic building blocks of any computing system are necessary for a specialized embedded system.
From a hardware standpoint, the main components are:
- The processor
- RAM (either discrete chips, DIMM modules, or even internal to the processor)
- Non-volatile storage (anything from flash to a standard hard drive)
- The I/O features dictated by the specific application. This may mean only connectors for interface to external sensors, switches, or other devices, or a complete display with a full human interface (keyboard, mouse, etc.).
Just as important, and in many cases more so, are the main software components:
- Low-level firmware for applicable IC’s
- Operating system (Linux, Windows, RTOS, or even lower level boot code, depending on the system)
- Application software
3. What are the benefits of developing a custom embedded platform?
The most obvious benefits of a custom system are realized in reduced recurring costs. A customized design is typically smaller, and has fewer components than an off-the-shelf system. In addition, the designs utilize components that are optimized for the price and performance requirements of the device, further reducing the BOM costs of the product. Of course, these recurring costs must be weighed against the cost of developing a custom system. If significant production volumes are expected, this cost trade-off is typically quickly accommodated.
In addition to the obvious, there are potential benefits from the standpoint of having a dependable source. Owning the design means that end-of-life issues are much easier to anticipate. While component issues may still arise, the chance of a motherboard manufacturer changing a product or obsoleting the model that is specified into a system are drastically reduced.
One benefit that is much more difficult to quantify is the impact of having a custom product that reflects the image of the manufacturer to the user. There is a definite increase in customer confidence in a product that is developed specifically for an application than in an off-the-shelf system running custom software. Industrial design and corporate identity specialists can better describe the impact a well-planned product can have on a company’s image with their customers.
4. What are the largest challenges in developing an embedded system device?
Perhaps the biggest challenge and the most important part of the entire development process occurs in planning the architecture of the device and selecting the optimal components and software to deliver the best compromise between cost and performance. Understanding the application is critical to determining which processor to use and what operating system or other supporting applications must exist within the design. Developing a comprehensive list of features and performance requirements is an extremely important tool in deciding whether a $10 ARM-based processor running open source code will meet the needs of the system or whether a $200 multi-core x86 processor with a complete BIOS and the latest Microsoft OS will be required. That decision alone can change the scope of the development process from 2-3 months and tens of thousands of dollars to 6 months and hundreds of thousands of dollars in development and prototyping costs.
Topics: Design, Electronic Components, Electronics Manufacturing, Embedded Systems, Product Design, Products |
One Response to “Embedded Systems Q&A”
Comments
You must be logged in to post a comment.
February 20th, 2009 at 2:55 pm
[...] You can find the article at this link. [...]