Interfacing a central processor to a user front panel is usually accomplished in one of two ways. The first method involves a power and a serial data link (typically RS-232), which are routed from the central processor to the front panel. At the front panel, a second processor handles all the I/O and updates the central processor via the serial link. In the second method, the central processor’s parallel I/O bus is extended via buffers and a ribbon cable to memory-mapped interface components located at the front panel.
The problem with the first approach is that the second processor adds significant software and hardware complexity. EMI also can present a significant problem, as the front-panel processor clock frequencies tend to find their way through the inevitable frontpanel openings.
The problem with the second approach is the relative bulk and routing difficulties of a ribbon cable. EMI can again be a problem as central processor clock frequencies find their way out to the front panel via the parallel I/O bus extension.
An alternative to these two approaches is to implement an I2C interface between the central processor and the front panel. Using I2C communications allows a simple two-wire serial interface and also eliminates the need for the second processor. I2Ccompatible I/O circuits provide a simple yet flexible hardware solution at the front panel. EMI concerns are minimized because no additional processor clock frequencies originate at the front panel.
The figure shows a generic centralprocessor to front-panel interface design implementing I2C. A PCF8584 I2C-bus controller allows bidirectional communications with the I2C bus. At initialization, the processor writes to the PCF8584 registers to set up the address and communications parameters. Following initialization, the I2C protocol is handled by the PCF8584. Standard I2C programmable bus speeds range from 1.5 to 90 kHz.
Connection to the front panel doesn’t require special cable or connectors. Standard RJ-11 jacks and a four-conductor modular phone cord work quite well. The 82B715 I2C bus extenders located at each end of the modular cable provide high capacitive drive, eliminating the need for special cables.
Available I2C devices number in the hundreds, so front-panel options can include LCDs, potentiometers, dot-matrix graphic displays, etc.