PC/104 (or PC104) is an embedded computer standard controlled by the PC/104 Consortium, that defines both a form factor and computer bus. PC/104 is intended for specialized embedded computing environments where applications depend on reliable data acquisition despite an often extreme environment. The form factor is often sold by COTS vendors, which benefits many consumers who want a customized rugged system, without months of design and paper work.
Unlike the popular ATX form factor which utilizes the PCI bus and is currently used for most PCs, the PC/104 form factor has no backplane, and instead allows modules to stack together like building blocks. The stacking of buses is naturally more rugged than typical PCs. This is a result of mounting-holes in the corner of each module which allow the boards to be fastened to each other with standoffs.
The standard size of boards complying to the form factor is 3.55 × 3.775 inches (90.17 × 95.89 mm), while the height is typically constrained to the boundaries of the connectors. A constrained height region guarantees that modules will not interfere with their neighbors. Vendors often follow these design restrictions to ensure proper stacking of modules, although it is not uncommon to find boards that ignore the form factor requirements.
While a typical system (also referred to as a stack) includes a motherboard, analog-to-digital converter, and digital I/O (data acquisition) module, other peripherals are finding their way into the market including GPS receivers, IEEE 802.11 controllers, and USB controllers.
Each stack must contain at least one motherboard or CPU, which acts as a controller for the peripheral components. The motherboard is often referred to as a single board computer (SBC), for it often has interfaces for all standard PC components (i.e. keyboard, mouse, serial ports, etc.). This controller must support the signaling buses used on all add-in modules. It's possible, however, that a peripheral card may perform a stand alone function without requiring a separate motherboard to control it.
There is no strict limit to the number of PC/104 cards that can coexist in one system; however, as more modules are added, the stack height increases, and signaling requirements may not be maintained. A PC/104 stack will usually have a motherboard controller that is also PC/104. Peripheral PC/104 cards can reside on either side of the CPU.
A stack that has PC/104-Plus must be controlled by a motherboard controller that is PC/104-Plus. Not including the PC/104-Plus controller, the number of PC/104-Plus peripheral cards in a stack may not exceed four module slices. This is due to the PCI specification, which allows four PCI components in a system (more PCI devices may be added if a bridge device is used). The same rule applies to PCI-104 stacks.
When the PCI bus connector is used (PC/104-Plus or PCI-104 modules), all peripheral PC/104-Plus modules must connect connsecutively on one side of the controller due to the signaling requirements of the PCI bus. Each card with a PCI bus should include a mechanism to assign its position in reference to the controller. Note that this is not required for traditional backplane motherboards, because a card "knows" which slot it is in. A PC/104-Plus or PCI-104 system may also have PC/104 cards, which may be positioned on either side of the CPU farthest away from the PC/104-Plus card(s) (so the PCI bus is not broken).
| Form Factor | Release Year | Bus Communication | Current Version |
|---|---|---|---|
| PC/104 | 1992 | ISA (AT and XT) | 2.5 |
| PC/104-Plus | 1997 | ISA and PCI | 2.0 |
| PCI-104 | 2003 | PCI | 1.0 |