Hot Plugging and Beefy Guys named Mark

My wife is a true-blue baseball fan. We were watching the St Louis/Chicago game when Mark McGwire pounded his record-breaking 62nd home run. I missed seeing the swing live. At the crucial moment, I was looking down, trying to calculate McGwire's bat speed in feet per second so I could write this report on hot plugging. All I heard was the crack of the bat, and the fans going wild.

Mark McGwire reminds me of some of the technicians I have seen working on large systems—beefy guys, swaggering between the rows of equipment, chewing gum. When they slam a circuit pack into its slot, it's not a gentle affair—it's a nightmarish scenario for engineers who design hot-plugging circuitry.

Hot plugging is easy to describe, yet it's difficult to implement. The idea is that you may at any time insert or remove a hot-pluggable card into or from a live system without disrupting the other elements in the system. This feature is important for any type of equipment that serves multiple users or provides mission-critical services. Telephone, data-processing, and packet-routing systems are examples of large-scale applications that require hot plugging. The difficulty with hot plugging is that it in subtle ways affects so many parts of the system architecture.

For example, let's consider how hot plugging affects your choice of backplane connectors. Here, I will assume that the system shares a backplane with perhaps 18 card slots, all of which communicate with a common backplane bus. In the time it takes you to slide a card into its slot, the design of the connector and surrounding circuitry must:

  • Establish contact with chassis ground,
  • Sequence power onto the card,
  • Activate the card-reset function, and
  • Engage data pins without disturbing the bus.

For this application, you might choose a connector that supports multiple pin types at staggered pin heights. Staggering the pins guarantees that the longest pins contact the backplane before the others. In a proper design, the ground pins first contact the backplane, then the power, the reset, and the data pins.

For such an arrangement to work reliably there must be a timing budget that prescribes the time allocated to each function. The timing budget tells you how long the soft-start power circuitry can take to charge up the capacitance on the circuit card to full voltage. From that number, you can compute the magnitude of the power surge that the card demands when you first plug it into the system. (Hint: Maybe you don't want so much capacitance on the card after all!) The timing budget also specifies the interval after the power supply stabilizes but before the data pins contact the backplane. That interval is the time available for the card's reset function to disable all the bus driver outputs. (Hint: This function had better not depend on software.)

Finally, the timing budget shows when the data pins contact the backplane bus. This event can be traumatic for the bus. Some systems halt all bus operations while the data pins are seating. (Hint: This method works on the way in but not on the way out unless you provide a way for the system to tell when a card is about to be ejected.)

The insertion-sequence timing budget plays a major role in the design of power, reset, and data-bus architecture. Whatever your sequencing budget, make sure it's based on reasonable assumptions about technician behavior. You want your card to function correctly, even if the technician working on it slams it home like Mark McGwire.