Development cycles have shortened dramatically. So much so that there is no longer enough time to devise computer-powered applications starting with a standalone computer or processor.
Consequently, computer and chipmakers have added new and more-powerful functions into the silicon of a computer chip. The result heralds the advent of computerized platforms comprised of a processor, a communication interface, and I/O functions targeting specific end-use categories such as mobile phones, computer graphics, and industrial control.
One of the earliest examples of such a single-purpose design is the PC/104, a single-board computer architecture about the size of a 3.5-in. floppy disk that had stackable accessory boards to fit numerous application needs.
As small as the PC/104 system is, some applications required even-smaller processors. Stepping down in size, the system-on-module (SOM) and system-on-chip (SOC) combined all aspects of the single-board computer into a single module or integrated-circuit form.
SOMs take the individual dies of multiple devices such as a processor, memory, and I/O, and mount them onto a common substrate material. The tighter integration has led to smaller but more-powerful systems in the form of self-contained devices that can drop into any piece of equipment for a specific purpose. Examples of these devices include digital signal processors (DSPs), network interface and communication services, and even complete computing platforms.
Computers-on-modules (COMs) are a subset of SOMs that integrate an entire computer on a single modular device. While still considered as embedded systems, the versatility of their general-purpose computer lets COMs handle more functions with a single package than typical of the other embedded approaches.
The push to make systems still smaller has freed chipmakers to form all devices onto a single die, the SOC. Instead of individual IC dies of discrete components mounted to a substrate, all devices are etched onto a single die of silicon or other suitable material.
But there is a problem with this approach. Many design teams may use the same SOC or SOM as the basis of a product. When those design teams compete with one another, it is sometimes difficult to come up with final designs that are distinctively different from those of competitors. So most design teams augment the SOC or SOM with additional discrete components and programmable logic. For example, field-programmable gate arrays (FPGAs) let design teams add specialized processing, improve performance, and future-proof the design with the ability to update the logic at any time during development or even after they have deployed the embedded system.
FPGAs have always been used as the “glue” logic that ties various parts of the system together. But as their performance rose while power and cost dropped, FPGAs took on the additional task of handling signal processing. Today FPGAs perform the functions of digital filters, process Fast-Fourier Transforms (FFTs), and provide the logic needed for proportional-integral-derivative (PID) control loops, among many other things. Most times these processes take place in parallel with the computing side of the system, boosting processing speed while giving more deterministic control of the application.
The addition of FPGAs to embedded systems has become so common that new SOC releases now contain both a complete microprocessor and an FPGA in a single package. One example being released in 2012 is the Zynq-7000 Extensible Processing Platform (EPP) from Xilinx, San Jose. The Zynq integrates a dual-core ARM Cortex-A9 processor with a Xilinx 7 Series programmable FPGA and an industry-standard AXI interface. The combination gives embedded design teams the ability to produce designs with distinctive details while benefiting from the reduced cost, size, and power of an SOC.
Another marriage that started in the SOM arena and has graduated to SOC status is the combination of a processor and communication system, notably one that uses radio communications. Wireless connectivity has seen explosive growth over the last few years, fueled by an ever expanding plethora of devices. Once the exclusive province of laptop computers, wireless connectivity can now be found in just about any device including mobile phones, video displays, and printers.
Today, several embedded-system makers offer development kits that let designers add features and capabilities to their systems, such as a Wi-Fi wireless-network connection. One such development kit is the Wi-Fi PICTail by Microchip Technology Inc., Chandler, Ariz. The PICTail lets designers of any embedded market device create a direct connection to the Internet through any standard 802.11b/g wireless access point. The communication system is designed to work across a wide range of Microchip processors, including the PIC18, PIC24, PIC32, and dsPIC family of microcontrollers.
In addition, Texas Instruments, Dallas, recently introduced the SimpleLink Wi-Fi CC 3300, designed to simplify Internet connectivity in embedded devices. Designed to work with any embedded microcontroller system, the modular approach of the SimpleLink system saves board space, reduces development time, lowers manufacturing costs, eases certification, and minimizes the need for expertise in RF work. TI offers several examples of software-derived functions for the basic system including a home automation application, a data logger, a simple e-mail system, a Web server, and a wireless sensor.
Embedded platform challenges
Early embedded designs were dictated by the capabilities of the hardware and the realities of interfacing to the outside world. The lower power, cost, and size of SOCs and SOMs over the last decade means hardware no longer limits or dictates the way design teams approach embedded design projects. The controlling factor becomes productivity.
The need for higher productivity will push the industry towards general platforms that do not change from one product cycle to the next. Instead, the electronics becomes general enough to allow most, if not all, new features to be handled by software programming. The software may even redefine hardware logic, such as reprogramming an FPGA to create new logic functions or alter existing paths.
In the interest of productivity, software-design tools should provide an environment intuitive enough for use by nearly all engineers and scientists, not just those trained in embedded-system design. However, one critical aspect still missing from effective embedded deployment is a simple programming method. The future will see software tools playing a more critical role in system design and development than hardware.
The long-term trend in software has been to let programmers do meaningful work without having to know details about the computer hardware running their program. That trend continues with the advent of more sophisticated tools that permit programming at higher levels of abstraction.
One example is offered by National Instruments, Austin, in its LabView series. LabView is a graphical-programming environment that works with many different hardware structures including microcontrollers, microprocessors, and FPGAs. Instead of forcing a programmer to write code, LabView lets users drag-and-drop features to build a working block diagram of an application in a graphical display. The computer then translates the block diagram into hardware and software configurations that are programmed into the target embedded system. As the system designer does not write any actual code, the LabView system lets designers and engineers create embedded- control devices though developers may possess no formal embedded-system design knowledge.
A completely integrated embedded platform must include a single software-development environment that covers every aspect of programming. The programming environment typically must have a large library of analysis and control algorithms, tight integration with communication and application-specific I/O, and must give the design team the ability to choose from a variety of programming approaches specific to the needs of the application.
The embedded platform should also be flexible and modular enough to let design teams evolve the system during the entire design process, from first prototype to final deployment, while using the same code throughout. Goals of an embedded design platform improve the overall design experience with a tightly integrated hardware/ software approach to embedded design.