The IEEE-488 standard interface bus, popularly known as GPIB (General Purpose Interface Bus), was originally developed by Hewlett-Packard to allow maximum flexibility in data transfer between various laboratory instruments and their computers. The IEEE-488 allows exchanging data to a number of no more than fifteen devices with a maximum speed of 1 megabyte/second.
In order for several devices to “coexist” on the bus, there is a master controller (usually a computer) that coordinates the transfer of data between transmitters and receivers. The controller (usually there is only one) can assign a device (which includes itself) as a talker and one or more as a listener, which can transmit and receive data respectively.
The interconnection of the three components are shown below:
A single connected device can have all three or either or at least any of these functions, but only one option will be active at a time. The first function of the bus controller (which is only one at a time) is to determine which device is active on the bus.
There may be many active listeners on the bus with an active speaker as long as there are no more than 15 devices connected to the bus. The controller sends interface messages through the bus to a particular active instrument.
Each individual device is associated with a unique 5-bit BCD code (identification number). By using this code, the controller can coordinate activities on the bus and individual devices can be made to speak, listen (not speak, not listed) as determined by the controller.
Structure of the bus:
The interface system contains a set of 16 lines, used to carry all the information, interface messages and device messages.
The messages can be encoded in one or a set of lines, determined by the content of the particular message.
The structure of the bus is organized into three groups:
1. Data bus (8 lines).
2. Control of data transfer, Handshake (3 lines).
3. Bus administration, Control (5 lines).
A set of 8 lines is used for the transfer of information, as well as for transmitting messages. The eight data lines, DIO1 to DIO8, carry both data and command messages. The state of the attention line (ATN) determines whether the information is data or commands. All commands and most data use the 7-bit ASCII or ISO code set.
DAV (Data Valid) is a handshake line that indicates that the active & r has placed data in the data line (DIO1-DI08).
NRFD (Not Ready for data) indicates that one or more assets are not ready for more data, and the active talker must wait before transmitting more data to the bus.
NDAC (Not accepted) indicates that one or more listener cannot accept the current data, and the active talker must leave the current byte inserted in the data line.
IFC (interface clear) is subject to the exclusive control of the system controller. All interface devices are set to neutral (default) and the bus status is cleared.
ATN (Attention) is used primarily to differentiate between command mode (H ‘) and data mode (L’).
SRQ (Service Request) can be set by a device in the interface to indicate that it needs service.
REN (Remote enable) can be set by the system controller to allow devices to operate the in remote mode, which is handled by the programmed control of the GPIB instead of the front panel of the device.