Roll Your Own Custom x86-Based Embedded Systems
There are many pros and cons in using an x86 architecture in an embedded system, but it may be required due to legacy code or other operating-system choices. Thanks to the wealth of x86-based applications and debug tools available, using a traditional x86 chip set and processor in an embedded system has advantages. Yet, designers need to watch out for certain aspects that are typically easier to implement in a traditional embedded system.
Most embedded systems can't use an off-the-shelf motherboard due to cost, availability, form factor, or other constraints. Therefore, one is left to design custom boards that must integrate various functions and be very robust. When designers try to use a x86-based chip set and processor in a custom design, they may encounter some problems. However, other options are available.
As an example, the system we designed has two redundant systems on one board using Intel's ultra-low-voltage (ULV) Celeron and 815 chip set (Fig. 1). Much of what was done in that design effort is applicable to other systems using any x86 architecture.
Part Volatility Problem Driven by the ever-changing PC market, x86-based microprocessors and chip sets may become obsolete after only a few years. Fortunately, Intel offers both microprocessors and chip sets that meet the longer lifecycle requirements typical of embedded systems. The ULV Celeron and 815 chip set were chosen in this application because they are part of Intel's embedded roadmap. (For details, go to www.intel.com/design/intarch/roadmap.htm)One advantage to using an x86-based architecture is that the more the embedded system resembles a PC, the more pre-existing x86-based debug tools can be used. Most embedded applications don't require a VGA monitor, keyboard, or mouse, though. So the embedded system should permit access to a VGA monitor, PS2 keyboard, PS2 mouse, USB, and serial ports, even if they aren't going to be used in the end application.
The best way to achieve this is by providing access to an external connector on the enclosure so that an "access box" can be plugged into the system. The access box will interface to the external connector on the main board, and route out appropriate signals to a speaker, PS2, VGA, USB, and serial port connectors (Fig. 2).
Such an approach provides easy access to your board during debug, development, manufacturing test, and in-field service. If there's a SuperIO device on your board, it will also allow access to the PS2 ports. Even if your chip set has a USB port, don't rely on this exclusively for keyboard and mouse connectivity. If problems occur during BIOS or other software development, sometimes starting at the lowest level with legacy PS2 interfaces can be the only way to access your system.
In addition, even if the end application doesn't use a speaker, it's a good idea to provide access to one on the board or via the access box. If your system fails to boot, BIOS error "beep codes" can diagnose the problem. Another helpful addition to the access box is a reset pushbutton to hard-reset the system. This may come in handy for debugging a board in its enclosure.
Of the many PC diagnostic software sources out there, we had good success with CheckIt Diagnostics (visit www.smithmicro.com). We used the PC stress test feature to test our memory, hard disk, and Ethernet interfaces.
Intel technical support provides a DOS batch file (DUMP.BAT) that generates a file showing the internal register settings of the microprocessor, chip set, and any PCI devices. This was very useful during debug, and it can ensure that the BIOS sets things up as required.
Watchdog-Circuit Problems Designers often use watchdog circuits in embedded systems. Usually, the embedded firmware toggles a microprocessor GPIO signal to refresh the watchdog circuit. If this toggling doesn't happen in the watchdog timeout period, the board is reset. Most reset ICs that contain watchdog timers can't be disabled. In an x86-based system, the higher levels of software can toggle a GPIO for this purpose. But the watchdog will expire if the user is sitting in the BIOS setup screen too long, or is programming a new BIOS.A good solution is to route a clock oscillator signal or other toggling signal that exists from power-up to the external connector and through the access box. Use that signal ORed with the original watchdog kick signal to refresh the watchdog circuit (Fig. 3).
Development and service personnel usually will be the only people accessing the BIOS setup screen or programming a new BIOS version. The access box will be connected to the external connector at this time, and the watchdog circuit will never expire. Make sure you set the watchdog timeout long enough so that your system has time to boot and higher application software can start kicking it before expiring.
Memory Problem Typically, x86-based systems use DIMM-style (dual-inline memory module) memory for the main system memory and rotating media hard drives. An embedded system usually requires a certain level of robustness, and DIMMs and standard hard drives may not survive extreme shock, vibration, and other environmental requirements. DIMMs also contain Serial Presence Detect (SPD) EEPROMS, which contain memory size, timing, and buffer strength information for the Northbridge. So, there are two problems.First, if strict shock and vibration requirements exist, it may not be possible to use DIMM-style memory, and the system memory must be placed directly on the main pc board to increase system robustness. With this approach, designers can't use Intel's recommended layout and routing guidelines for DIMM-style memory. We performed a signal-integrity analysis on this 100-MHz, heavily loaded address and data bus to determine the best routing topology.
Second, the BIOS can be customized to hard-set the SPD data for your system. But this will require a custom BIOS, and it won't be flexible if your board supports multiple memory configurations. It's better to simply add the small, serial SPD EEPROMs to the main pc board. With this solution, you can alter the SPD data as your memory configurations or speeds change without the cost and trouble of a BIOS update. Intel technical support provides a program (SPD_CHK) that displays the SPD data in a more user-friendly and readable format (Fig. 4).
For very harsh environments, it's probably best to do some research on hard drives that use flash technology. They're limited in capacity, though, and very expensive. Don't assume that you will automatically require flash drives, with some rotating media drives offering impressive shock and vibration performance. The hard drives we used met our needs (see the table).
Our application also required two Compact Flash (CF) cards, which were connected to the two ATA/66 interfaces on the Southbridge. CF cards can be configured in a True IDE Mode by grounding pin 9 (ATA_SEL). With this True IDE Mode, the CF cards can be connected to the ATA/66 interface very easily. For some applications, the CF card can replace the hard drive altogether.
The BIOS is stored in a flash device called a Firmware hub. This device also contains four GPIOs and one general-purpose input. These GPIO pins can be used to communicate information to and from the BIOS. If they're going to be used, discuss the details with your BIOS vendor. For our application, an input is controlled when our system should perform a quick boot or a slow boot with a more thorough power-up test. Similarly, the BIOS can control these GPIO pins to enable certain hardware, or the BIOS can read them to perform or bypass certain BIOS functions.
Battery Problem All x86-based systems use batteries to sustain the real-time clock and BIOS settings when the system is turned off. However, some embedded systems aren't allowed to contain batteries.Batteries aren't absolutely required if the system clock and BIOS-setting changes needn't be maintained when power is removed. Even if you're not using the clock functionality, the RTC signal can't simply be tied high or low. A 32.768-kHz clock signal must be present, or the Southbridge will never de-assert its PCI reset output and the entire system will be stuck in reset.
Also, it's usually not a problem that BIOS changes are lost during a power cycle. BIOS vendors typically supply a utility program that lets designers change the default settings of the BIOS. If any BIOS settings need to be permanently changed, it's possible to create a new BIOS with the new defaults using the utility, and the BIOS can be reprogrammed without involving the BIOS vendor.
Other Areas Of Concern If your system requires radical changes from a traditional x86 architecture, discuss these changes with your BIOS developer early in the project. Our BIOS vendor provided a specification checklist that listed details about the system chip set, peripherals, and ports. It also had a section for features that are "not standard," which can sometimes be unclear. It's best to get your BIOS vendor involved early in the project when architectural decisions are being made.Don't assume that anything is standard. Instead, discuss the requirements of your system. That way, the vendor can help identify things that are out of the ordinary for its BIOS. If your system has many odd requirements, document them in a separate BIOS specification controlled by the system developer. That way, everyone understands the BIOS requirements, and updates can be clearly identified.
Also, Intel offers a few different reference design schematics in its design guides for the 815 chip set. Though it's tempting to rely on these when designing your board, it's best to just use them to assist in understanding the high-level architecture and main interfaces. These reference designs don't account for your system's particular environmental or electromagnetic-compatibility requirements.
In addition, the decoupling capacitors and power-supply topology and filtering shown don't consider any specific aspects of your system. Our system contained an FPGA and ATI video controllers that had their own power-supply sequencing requirements. Furthermore, the Intel design guides suggest both trace-width and controlled-impedance requirements, which may be mutually exclusive on your board. It's best to perform signal-integrity analysis where necessary, and design to the recommended controlled impedance suggested by Intel.
This pc-board designer will discuss the controlled-impedance requirements with the chosen board-fabrication vendor to determine trace widths. As always, it's best to rely on the datasheets instead of reference designs. Intel's design guides for the 815 contained a design checklist section that was useful during design reviews.
Typically, embedded systems can't use off-the-shelf motherboards, and they require a custom-designed board. Keep these tips in mind when designing your custom board. Commonly available x86-based applications and debug tools will enable you to quickly create an embedded system for your application.