CompactPCI engineers have devised a way to replace failed boards without shutting down the system.
By Steven W. Gee, Motorola Computer Group
Hot swap is described by the CompactPCI Hot Swap Specification as a method of allowing orderly insertion and extraction of boards without adversely affecting system operation. In order to make CompactPCI hot swap compatible, there are many changes that must be made. These changes can be broken down into two categories: the first category consists of changes that must be made to the CompactPCI platform; the second includes those that must be made to the Compact PCI board. The platform includes the backplane as well as the system host. The board is any circuit board that plugs into a single CompactPCI slot excluding the system host. The changes that must be made to a platform will be discussed in the following paragraphs.
There are three levels, or types, of platforms as described by the Hot Swap Specification. The first is the non-hot swap platform, which contains no hot swap features. Only standard CompactPCI features are included. The second type of platform is the hot swap platform, which contains the basic requirements for hot swap. These hot swap platforms provide the functionality for swapping boards and reconfiguring the system. The third type of platform is the high availability platform. This type of platform is vendor unique since it incorporates special features for control of the hardware during the hardware connection process as well as all of the hot swap platform requirements. Those requirements are discussed in the following paragraphs.
Each slot in a hot swap and high availability platform must have an individual clock line that is not shared by another slot. In a non-hot swap platform where two slots have a shared clock line, the process of inserting a board in one of the clock line shared slots may cause glitches in the clock signal which would disrupt the operation of the board in the other slot. The individual clock lines in each slot prevent any electrical glitches, which may occur on one slot from occurring on another slot if the clock lines were to be shared.
The P1 connectors in a hot swap and high availability platform must use the new hot swap compatible CompactPCI connector with three different length pins. The three different pin lengths are used for different types of signals. There are 12 long pins, which supply early power to the hot swap board's PCI device. The 12 pins are composed of 2 VCC pins, 2 VCC3 pins, 2 V(I/O) pins, and 6 ground pins. The long pins also provide a greater length of time for the early power to stabilize and become glitch free.
By providing early power for the PCI device on the hot swap board, the board will then be electrically stable when it connects to the PCI bus. Two short pins are used for the IDSEL signal and the BD_SEL# signal. The BD_SEL# signal is used to turn on all of the back-end power which drives all of the logic on the backside of the PCI device. The short BD_SEL# pin allows additional time for the voltages on the hot swap board to stabilize before any back-end devices are powered up. The short IDSEL pin prevents the hot swap board from being configured until the voltages have stabilized. All of the remaining pins in the P1 connector are PCI signals and hot swap control signals which use medium length pins.
There are also three additional signals that are added to hot swap platforms and connected differently than on non-hot swap CompactPCI platforms for the purpose of controlling the hot swap process. The 64EN# signal is used during a hot swap board's configuration to determine if it is inserted into a 64 or 32 bit slot. If the 64EN# signal is grounded, it indicates that the slot is 64 bits; otherwise the slot is 32 bits. The BD_SEL# signal, as discussed above, turns on the back-end power on a hot swap board. This signal pin is grounded on hot swap platforms. In addition, the BD_SEL# signal can be used in a high availability platform to control the hot swap board. The BD_SEL# signal must also be bypassed by a 0.01 µF capacitor at each slot. Another hot swap control signal is the HEALTHY# signal. This signal indicates when the board is ready to be switched on and configured. On hot swap platforms, this signal is left open, while on high availability platforms this signal can be used to control the hot swap board. The HEALTHY# signal must be bypassed by a 0.01 µF capacitor in each slot.
In a hot swap and high availability platform the power supply must have tighter tolerance than in the non-hot swap CompactPCI power supply. All hot swap and high availability platforms must provide backplane voltages which are +5%/-3% tolerance. The reason for this is that there is an additional voltage drop on hot swap boards due to their isolation circuitry. By limiting the lowest voltage allowable, the voltage on the hot swap board will still be within the correct operating range.
On the board side of CompactPCI, there are three different types as described by the hot swap specification. The first is the non-hot swap board, which has no hot swap features. The second type is the basic hot swap board that has the minimum hot swap features required. The third type is the full hot swap board, which has all of the minimum hot swap features plus the additional resources for software connection and control. The requirements for the basic hot swap board and the full hot swap board are described below.
The basic hot swap board and full hot swap board must provide protection for the platform power supplies. In addition the board isolation circuitry must be controllable by the platform. The protection for the system power supplies is done by isolating the front end (early) power plane and the back end power plane.
All of the logic and devices that are not necessary for controlling the hot swap connection process have power pins connected to the back end power plane. The front end or early power plane provides power for the hot swap logic, the power controller chip, and the PCI device that connects to the PCI bus on the backplane. The back end power plane is switched so that it will only turn on once the board has been fully inserted, and the voltages have stabilized. This effectively isolates the system power supply from all of the higher current devices on the board during the hot swap process. The early power plane must also be decoupled according to the hot swap specification. The back end power plane must be decoupled according to the CompactPCI Specification. Current limiting resistors must also be placed inline with the early voltage power pins to prevent a high instantaneous inrush current from occurring. The value of the resistors must be low enough to minimize the voltage drop across the power pins during normal operation.
A pre-charge bias voltage must be placed on all CompactPCI bus signals except certain signals noted below. The pre-charge voltage is 1.0V except for a few specific pins, and it must appear at the board contacts before the board engages the backplane and after the board disengages the backplane. In addition, the pre-charge voltage must be supplied through a high impedance source during hot swap. The method of choosing the high impedance source is described in the hot swap specification. The purpose of the pre-charge voltage is to minimize the impact of the insertion of the hot swap board on the PCI bus. The value of 1.0 volts was chosen for most signal pins because it had the least impact on signal levels of the CompactPCI bus in comparison to other voltages.
There are certain CompactPCI pins that use different pre-charge voltages. The PCI_RST#, ENUM#, INTA#, INTB#, INTC#, INTD#, and REQ# pins are pre-charged to V(I/O). The GNT# is already pulled up to V(I/O) through a 100KW resistor. HEALTHY# is not pre-charged. The PCI clock can be pre-charged to a voltage between 0 and V(I/O) depending on what provides a stable clock signal prior to bus contact. The IDSEL is pre-charged to 1.0V to prevent the capacitance of both the IDSEL and the particular AD[x] signal it is connected to on the backplane from disrupting the PCI bus at the same time during insertion.
Basic hot swap and full hot swap boards must maintain a high impedance on the CompactPCI bus interface until they are specifically allowed to begin bus operations. By holding the PCI bus interface at a high impedance level during insertion, the current leakage on each pin is minimized. This makes it easier to hold a stable pre-charge voltage during insertion. In addition, the high impedance on the PCI bus interface prevents a large drain of current from the backplane pins from occurring. A large drain of current on the PCI bus would change voltage levels, which could disrupt the operation of the PCI bus.
Local initialization of 64 bit basic hot swap and full hot swap boards must be provided. During local reset of the hot swap board the 64EN# pin can be used in conjunction with additional circuitry to drive the REQ64# signal pin to provide local 64 or 32 bit initialization during reset depending on the slot configuration. After reset, the REQ64# signal is then connected to the bussed REQ64# from the backplane. An example of a suggested circuit is shown in the CompactPCI Hot Swap Specification PICMG 2.1, D0.91 Appendix A. As mentioned earlier in this article the 64EN# is grounded to indicate a 64 bit slot, otherwise it is left open.
There are three signals that are used for the control of basic and full hot swap boards. The first is the HEALTHY# signal. This is used to indicate when a board is ready to be connected to the CompactPCI bus. The HEALTHY# signal will be driven low only when the backend power is within the tolerance of +/- 5% of the nominal voltage and when the BD_SEL# is asserted. The second signal is the 64EN#. This signal has been described in the previous paragraph, as well is in the platform requirement section. The third signal is BD_SEL# which is used to turn on the back-end power. The BD_SEL# pin on a basic and full hot swap board is connected directly to the hot swap power control chip which monitors voltages on the board and allows the back-end power to be switched on once ON/OFF pin is asserted.
On full hot swap boards, there must be one additional signal implemented to notify software that a new board has been inserted or an existing board will be extracted. The ENUM# signal indicates to the software when a board has been inserted and when it is about to be extracted. The ENUM# signal is driven by the hardware state the board is in, a switch which is located in the lower ejector handle, and by the software. A Hot Swap Control/Status Register is also implemented in the PCI configuration space to store bit values, which indicate the status of the board. This register stores four status bit values. These status bit values are: EIM-ENUM # Interrupt Mask, which allows the ENUM pin to be masked by software, and prevents the ENUM# pin from being driven; LOO-this bit controls an LED indicator which signals to the user when a board is ready for extraction, or that a board has not yet connected to the PCI bus; INS-indicates a board has been freshly inserted; and EXT-indicates a board is about to be extracted. These bit values are used by software to allow an orderly insertion and extraction of the board while the operating system is operation.
Additional information on hot swap CompactPCI can be obtained from the CompactPCI Hot Swap Specification PICMG 2.1, available from PCI Industrial Computer Manufacturers Group.
Motorola Computer Group at the Monterey Design Center, 12 Upper Ragsdale Drive, Monterey CA 93940.