CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

A do-it-yourself guide to building an x86 BIOS-based Computer-On-Module design
Not all BIOS software offerings are not created equal. Here's how to select the right one for your application.



Embedded.com
The hidden co-worker
Given the fact that silicon vendors do not pay much attention to the requirements of an embedded PC, most of the necessary embedded features are not supported by the chipset. It's for this reason that a specially designed onboard microcontroller on the COM can play an important role in making the PC an embedded PC.

By fully isolating most of the embedded PC features from the x86 core architecture, a COM offering a separate microcontroller frees up the x86 CPU and ensures 100% compatibility amongst various COM-based designs. Once this microcontroller is designed it can be reused again and again on different platforms.

Multi-Stage Watchdog. A watchdog (Figure 1, below) helps to prevent application software lock-ups. When the software hangs it can no longer trigger the watchdog. As a result of the missing trigger the watchdog will cause an interrupt, which allows the software to react to the problem, or it can force a system reboot or shut down.

In many cases it is a requirement that the watchdog is supported by separate hardware that is not part of the x86 platform itself. Moving the watchdog functionality to an onboard microcontroller allows both a fully-featured and isolated solution. Flexible watchdog implementations support a multistage-stage solution that can be triggered by software and/or external OEM hardware on the carrier board.

The watchdog should be designed to either cause an NMI, a hardware reset, a power button event or an ACPI event to inform an ACPI OS to restart or shut down. With multi-stage support the watchdog can be initialized to cause an NMI first and in case the interrupt service routine fails to fix the problem, reset or shutdown the system. This approach allows for a more flexible monitoring of the embedded software application.

Figure 1.It is important to have a watchdog that is supported by hardware that is not part of the X86 platform itself

High Speed I2C Bus. Many embedded devices such as sensors, converters or data storage can be easily connected to the I2C bus interface. Due to the simple protocol and the high availability of devices, the I2C bus is a frequently used low-speed bus interface in embedded applications.

If the onboard microcontroller supports a real I2C bus host controller, the embedded PC can offer an up to 400kHz, multi-master I2C bus that provides maximum I2C bandwidth to ensure fast transmission of large amounts of data.

Non-volatile User Data Storage. Some embedded applications may require non-volatile storage of critical and important operating data. This can be offered in the form of an EEPROM or flash memory chip. For small amounts of data a 32 byte area in an EEPROM may be sufficient.

To prevent end users from changing this data, it should be possible to lock the 32 byte EEPROM area and thereby making it read only. For larger amounts of data a 64kB flash sector in the BIOS Firmware Hub (FWH) device could be used.

Even if the mass storage media that holds the operating system is not functioning and needs replacement, the user data stored in EEPROM or flash memory will not be lost.

Manufacturing and Board Information. The EEPROM in the microcontroller can also provide a rich data set of manufacturing and board information. This information might include serial number, article number, EAN code, manufacturing and repair date and so on.

It can also keeps track of dynamically changing running time and boot count data. During the manufacturing process the static data must be written to the non-volatile memory within the microcontroller.

This can be read out later by the end users software in order to obtain detailed information about the COM used in the system. Boot counter and running-time meter provide information about how many times the system has booted and the number of hours the system has been running. This is very helpful information for product maintenance, RMA service and upgrades in the field.

BIOS CMOS Data Backup in NVRAM. A backup copy of the BIOS CMOS settings must be held in non volatile memory, e.g. the flash memory device. This allows battery less applications. If a backup battery is used it will also help prevent "non-booting systems" when the backup battery has failed since the system configuration is always maintained.

Power Loss Control. The onboard microcontroller could also provide an AC power loss control feature that defines the behavior of the module once power has been restored. The following modes of operation are typically supported:

* Turn On (Server Mode)
* Remain Off (Desktop Mode)
* Last State (Restores the previous power state before power loss occurred)

Flat Panel Auto Detection and Backlight Control. Extended Display Identification Data (EDID) is a well-known industry standard established by VESA. By understanding the basic EDID data structure, a fully-featured embedded BIOS can automatically detect and configure an attached flat panel.

When the EDID data is provided to the BIOS, panel selection in setup or configuration via proprietary data sets is no longer necessary. Additionally, the BIOS should have the ability to adjust the backlight intensity via a setup node as well as application software.

Figure 2. When the EDID data is provided to the BIOS, panel selection in setup or configuration via proprietary data sets is no longer necessary.

Built in CMB Battery. COMs are well suited for battery powered mobile applications. To simplify system integration in creating a battery powered device the embedded PC should come with built in support for a battery sub system.

The ACPI BIOS and the onboard microcontroller must be designed specifically to support a control method battery (CMB). The vendor is responsible for providing detailed information about how the BIOS interfaces to the battery system. If the guidelines set forth are followed then designers can easily implement their own battery solutions.

When using an ACPI OS, most of the battery functionality associated with portable computers can be supported on the embedded platform.

Figure 3. The ACPI BIOS and the onboard microcontroller must be designed specifically to support a control method battery (CMB).

Programming Interface. In today's market many COM manufacturers are offering a variety of features but these features are only as good as the customer's ability to access them. If easy access is not provided then the value is nil.

In addition to all those embedded PC features supported by hardware and BIOS, it is mandatory to offer a uniform API for easy access from the application software to the embedded PC feature set. With the API, application software developers can quite easily take advantage of the embedded PCs add-ons listed above.

Ideally, the API has been implemented as a generic board independent OS driver and is available for all common embedded operating systems. Whether it's triggering the watchdog, transferring data over I2C, reading hardware monitoring numbers or changing the backlight adjustment of the flat panel, it only requires a call to the API. Most importantly, such an API saves development time and guaranties software compatibility.

Figure 4. A uniform API implemented as a board independent OS driver guaranties software compatibility.

Ideally, the API driver itself will call the BIOS for low-level hardware routines. When doing so there will be no need for end users to update application software or an API driver when the embedded PC is going to be changed.

1 | 2 | 3

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :