As microprocessors have become more capable at the same time as the cost has been reduced, the embedded systems market has been evolving too. Not too long ago, it was very common to see people creating new custom boards designed by an engineer to hold the processor, RAM, external devices and so on. This is still a fairly common practice even today, since a custom design will eliminate all unnecessary hardware to the bare minimums. The result is a very low cost design, which when manufactured in large enough quantities, offsets the initial design costs.
As engineers get paid more and more however (sic), manufacturers are finding real benefits in using a standard computer design and only developing custom hardware that 'plugs-in' or 'wires-in' to the existing circuitry. Since there are only a limited number of microprocessor designs available, chip manufacturers have been forced to develop standards that can be adhered to for compatibility between devices. A good example of this is serial port driver chips.
Today, many engineers find themselves working on a small-scale project that can't justify the time and expense to design the entire embedded system from scratch. Instead of devoting many hours of effort into designing a processor board complete with memory, controllers, refresh drivers, etc, many people will instead select a pre-designed computer and add on to the existing circuitry. Single board computers (SBC's) and personal digital assistants (PDA's) are the two most popularly used items involved in embedded programming today.
The single board computer is a pre-built computer system that has some hardware already designed and installed on a single circuit card. There is a bewildering array of different designs available on the market today for SBC's. Almost all have the bare minimums of a processor, support chips and a bit of RAM, but most also include things like serial or parallel ports, hard drive controller and even integrated video display hardware or Ethernet interfaces. Prices range anywhere from less than $50, up to thousands, depending on the feature set, speed and specialized hardware involved.
The chief advantage of the SBC is the elimination of the backplane into which larger computers systems have circuit cards inserted. Instead of using a circuit card with hardware interfaces on it, the SBC uses a chip to replace the circuit card. This makes the overall design both smaller and cheaper, without sacrificing features. The Z80-based "Big Board" was one of the early useful single board computers on the market. It was introduced in 1980 and could run the CP/M operating system.
The "Little Board" was introduced by Ampro in 1983 and it was about the same size as a 5 ¼" floppy drive. This design was small enough that it was practical to embedded the SBC into devices that were not computers. That was the start of the embedded SBC market. Today there are thousands of different SBC designs available from hundreds of manufacturers.
As the PC-compatible became more and more popular in the 1980's, SBC designers began to add PC-compatible interface hardware and logic, such as ISA, to their designs. Other SBC designers followed other standard hardware interfaces such as the industrial standards STD and VME. Eventually three types of SBC's became defacto standards. Most SBC's were "Little Board"-compatible, or "ISA-slot"-compatible, or "PC/104-module"-compatible.
The SBC market is currently undergoing other changes driven by the exploding demand for embedded systems, need for connectivity with external systems, including the Internet, and new hardware interfaces that are being introduced. Many newer SBC designs include USA, IrDA, FireWire, or Ethernet interfaces, which greatly expands the number of places where an SBC can be used.
There are even many designs that shrink the entire computer, complete with application code, down to a single chip. These devices are called system-on-a-chip (SOC's) or application-on-a-chip (AOC's). This kind of design is very popular for household or automotive processors. Things like washing machines, refrigerators and braking systems in cars may use this kind of embedded system. The volume of items sold offsets the cost of designing a single chip to act as a complete computer system.
Another recent change in the embedded systems market is the introduction of the Personal Digital Assistant or PDA. While early PDA designs were geared mostly towards helping people track appointments, contacts and e-mail, newer designs are now appearing that include ways to expand the PDA's capabilities. Many PDA's include a compact flash memory slot that can be used to interface to hardware like modems, Ethernet adapters and more.
A company called HandSpring has introduced a PDA specifically designed to be expandable, through what is called their SpringBoard interface. This design is making it almost easy for companies to build a small hardware circuit that converts the PDA into a portable embedded system. Modules are for standard devices like modems and Ethernet adapters, of course. The exciting thing is that other modules have been developed which transform the PDA into a digital voltmeter, serial protocol analyzer or even an oscilloscope.
PDA's are a new area of embedded systems design that I feel will become quite popular over the next few years. There are currently three popular operating systems available for use on PDA devices. The PalmOS is probably the most widely used today, but others include Linux, Windows CE.NET, and Windows XP Embedded. We will look at the strengths and weaknesses of each of these systems later during the course.
For a list of single board computers available on the market, see this document: http://img.cmpnet.com/embedded/97/sr9705.pdf