ISA bus: still going strong in PC/104
The ISA bus - the original bus used in PC/104 - is still going strong. In contrast to the design challenges posed by PCIe and PCI, the ISA bus is extremely easy to design with, making it not only possible to easily design your own I/O board, but also to purchase a wide variety of I/O boards from vendors who also continue to benefit from the simplicity of ISA.
With all the recent talk about PCIe these days in embedded systems, it is easy to forget about the technology at the other end of the scale: the venerable ISA bus, still going strong after 30 years. Although that may seem like an eternity in the technology world, there are other technologies that have sustained popularity despite age, such as RS-232. Dozens of popular Integrated Circuits (ICs) are also from the same vintage and continue to be used in new designs today, including voltage regulators, operational amplifiers (op amps), and 74xx logic ICs. As they say, if it ain’t broke, don’t fix it.
The secret to long life is simplicity: the ISA bus is extremely easy to use. PCIe offers tremendous speed and space saving advantages, yet its implementation requires extremely careful considerations in both the layout and fabrication of Printed Circuit Boards (PCBs): the traces must be laid out carefully in pairs, their lengths match precisely to .005", and distance maintained between them and other signals on the board. Many expansion buses even provide layout guidelines describing precisely how the signals must be routed on the board to ensure correct operation.
When all is done, yet another challenge remains in the physical implementation of the PCB. Conversations back and forth with the PCB fabrication house are required to ensure proper impedance characteristics are provided on the PCB layers dedicated to the PCIe signals. An error here can result in unreliable performance, requiring an expensive redesign that also causes schedule delays. Even when done properly, the implementation of PCIe consumes days of time in PCB design and vendor discussions.
The PCI bus poses similar challenges to designers. Its trace length matching requirements are no simple feat when dealing with 32 multiplexed Address/Data lines snaking between multiple high-density ICs on a densely laid out board.
All of these factors apply just to the PCB. While it is possible to purchase a wide array of standard peripheral ICs using PCIe as the host interface, many embedded applications involve the use of FPGAs. In order to use an FPGA with PCIe, either a cost- and space-consuming bridge chip is required or the FPGA must contain a “hard core” SERDES interface to provide the link. Only certain models of each vendor’s product line include these SERDES interfaces, and their prices are usually significantly higher than non-SERDES FPGAs. This core requires another “soft core” pre-designed logic block that takes up a significant share of the FPGA’s available logic gates. Even then, significant custom code development is required to convert this soft core into a platform for the designer’s actual circuit.
Finally, there is system software to consider. The use of PCI technologies requires the intervention of Basic Input/Output System (BIOS) to scan the bus, identify boards and their resource requirements (in order to address block sizes and Interrupt Requests (IRQs)), and then assign address and IRQ settings to the boards. The application software must then use a driver that can access this table of information to communicate with the board.
Another limitation to remember is that most PCI bus designs are limited to four devices, meaning four I/O boards or four peripheral chips. This is a problem for applications that require a large amount of I/O.
The simplicity of ISA
None of these challenges exist with the ISA bus. At only 8 MHz base frequency (although many implementations can run at higher clock rates), it is extremely forgiving. Trace length matching and other PCB layout concerns are completely eliminated (Figure 1). In addition, ISA is an asynchronous bus in which all operations are driven by the edge of a command signal. There is enough setup and hold time designed into the timing that a clock is not required in most cases, and even sloppy designs have no problem functioning correctly. The ISA bus layout is essentially a game of “connect the dots” and can be completed in a matter of hours by even a novice PCB designer.
PCB fabrication issues are nonexistent. Even the lowest cost quick turn two-layer board can successfully produce a reliable ISA bus design (this fact was instrumental in the rapid rise of the PC/104 industry). The number of boards supported is limited only by the CPU board’s signal drive capability; systems with more than four I/O boards are common and proven to be reliable.
There are few, if any, software issues to overcome when using the ISA bus. Boards have fixed addresses, and simple I/O functions available in any programming language can be used to interface with an ISA bus circuit.
For these reasons, applications that require custom I/O but do not require high bandwidth have found no benefit in taking on the extra overhead and complexity of PCIe, and continued to use the simple, tried and true ISA bus. This is true not just for board merchants, but also for customers who design their own I/O boards because they have special requirements that are not available off-the-shelf yet lack the time or expertise to use more complex PCI technology.
ISA bus implementation
Several methods exist for provisioning the ISA bus in a Single Board Computer (SBC) today. Some low-cost processors, such as the Vortex series from DMP, have ISA buses integrated into the chip. No design effort is required other than to connect your circuit directly to the pins on the processor.
Most other processors contain either the LPC bus, PCI bus, or one or more PCIe lanes, enabling low-cost bridge chips to provide the ISA bus. For LPC interfaces the Fintek F85226 is one popular solution, while for PCI the ITE ITE8888 chip does the job. If the processor contains only PCIe and no PCI or LPC, then a double-bridge design may be required: first a bridge converts PCIe to PCI, then the ITE8888 converts the PCI to ISA (Figure 2).
Another economical and space-saving method of obtaining the ISA bus is to use a custom core in an FPGA. Many I/O boards today use FPGAs that connect to the LPC bus and contain their own logic to generate the ISA bus. Although this method does require a one-time design effort, the design can be used over and over in future products, as FPGA code is easily portable across different devices.
For embedded system engineers not seeking to design their own SBCs, PC/104 offers a reliable physical implementation of ISA that not only provides an easy way to attach custom I/O boards to an SBC, but also offers access to a huge variety of off-the-shelf I/O modules from a worldwide assortment of vendors. The PC/104 bus is implemented with a pair of “stackthrough” connectors that provide male pins on the bottom and female sockets on the top. This enables boards to stack on top of each other and create a compact and rugged system.
The use of a through-hole connector with long gold-plated pins presents some manufacturing challenges, although these have been addressed with several proven methods. One way is to use PC/104 connectors with solder-bearing leads – these connectors contain pads made of solder on their bottom side (Figure 3). Some connectors are installed during the Surface Mount Technology (SMT) phase of manufacturing, and these solder pads then melt during the reflow process and fill in the PCB holes. Other connectors are installed after SMT and/or wave soldering processes are complete, and a special fixture directs hot air to the pins to melt the solder.
Another way is to use press-fit technology. Press-fit has become commonplace in the high-performance backplane market, and most contract electronics manufacturers already have presses in their factories. A special fixture supports the bottom side of the PCB and enables the connectors to be pressed in from the top side without causing any stress or damage to the PCB (Figure 4). The resulting contact is gas-tight and extremely reliable.
For low-volume or lowest cost applications, the old method of hand soldering also works. Although, because the full set of PC/104 connectors consists of four adjacent rows, the inner rows are less accessible and require care when soldering to avoid contaminating the gold-plated pins with solder.
As much bus as you need
Clearly the ISA bus, with its 8 MHz-plus clock rates and 16-bit data bus width, cannot match the performance of 32-bit 32 MHz PCI or multi-lane 1.25 GHz PCIe. However, a significant share, if not the majority, of industrial I/O applications do not require data rates in excess of what ISA can offer. A huge selection of off-the-shelf PC/104 I/O modules from dozens of companies around the world offer a wide array of I/O, including:
- Analog-to-Digital Converters (ADCs) with 16-bit resolution and sample rates up to 250 KHz
- Digital-to-Analog Converters (DACs) with 16-bit resolution and output rates up to 100 KHz
- Serial ports with data rates up to 460 Kbps and up to 8 ports per board
- Digital I/O up to 96 points
- Counters/timers and Pulse-Width Modulation (PWM) circuits
- FPGA modules for custom I/O development
- Opto-isolated I/O
- Motion control
- 10 Mbps Ethernet
- MIL-STD-1553 and ARINC 429
- CAN bus
- Wireless modems
This expansive array of I/O provides evidence of the ongoing usefulness of ISA bus in embedded applications for years to come. PC/104 offers an ideal means for utilizing the ISA bus to design a simple, effective, and long-life embedded system (Figure 5).
Diamond Systems Corporation