- an overview or tutorial describing the basics of GPIB - General Purpose
Interface Bus - or IEEE 488 bus, how it operates and how the GPIB interface can
be used.
The GPIB or General Purpose Interface Bus is one of the most used and
versatile interface standards available today. GPIB is widely used for enabling
test instruments to be controlled remotely, although it us also used in a many
other applications including data acquisition. Today most bench instruments have
either a GPIB option or are fitted with it as standard.
Originally GPIB was named the HP-IB (Hewlett Packard Interface Bus) when it
was first introduced, it has gained a number of other names over the years. GPIB
has been adopted by a number of major institutions that have given it their
numbers. The Institute of Electrical and Electronic Engineers in the U.S.A. have
given it their specification number 488, and as a result it is sometimes
referred to as the IEEE 488 bus. Other organisations have also adopted it. The
American National Standards Institute as has the European IEC. Despite the
proliferation of names and numbers for it, the specifications are all virtually
the same and can be used interchangeably. However of all the names GPIB is the
most common, followed by IEEE 488 bus.
Basic concept
The GPIB or IEEE 488 bus is a very flexible system, allowing data to flow
between any of the instruments on the bus, at a speed suitable for the slowest
active instrument. Up to fifteen instruments may be connected together with a
maximum bus length not exceeding 20 m. There must also be no more than 2 m
between any two instruments. It is possible to purchase GPIB cards to
incorporate into computers that do not have the interface fitted. As GPIB cards
are relatively cheap, this makes the inclusion of a GPIB card into the system a
very cost effect method of installing it.
The connector used for the IEEE 488 bus is standardised as a 24-way Amphenol
57 series type. This provides an ideal physical interface for the standard. The
IEEE 488 or GPIB connector is very similar in format to those that were used for
parallel printer ports on PCs although the type used for the GPIB has the
advantage it has been changed so that several connectors can be piggy-backed.
This helps the physical setting up of the bus and prevents complications with
special connection boxes or star points.
Within IEEE 488, the equipment on the bus falls into three categories. There
are controllers, talkers and listeners, although any piece of equipment may be
able to fulfil more than one function. For example a voltmeter which is
controlled over the bus will act as a listener when it is being set up, and then
when it is returning the data, it will act as a talker. As such it is known as a
talker / listener. A printer will only be able to listen, as it will only need
to accept data to print out on the paper.
The IEEE 488 or GPIB controller has the most crucial role on the bus. It is
usually a computer and signals that instruments are to perform the various
functions. The GPIB controller also ensures that no conflicts occur on the bus.
If two talkers tried to talk at the same time then data would become corrupted
and the operation of the whole system would be seriously impaired. Often GPIB
cards can be used in a variety of roles, but these GPIB cards are most often
used as controllers as they tend to reside in the controlling computer. Most
test instruments that might be intended for use with the GBIP interface would
have this fitted as standard and would therefore not require and additional GPIB
card.
Bus structure
The IEEE 488 bus uses levels based around the use of Schottky TTL and has a
total of sixteen active lines. These lines can be organised into three
categories. Eight are used for data transfer, three are used for a comprehensive
form of handshaking, and the remaining five are used for general bus management,
carrying status and control information.
Operation
The operation of GPIB is based around the handshaking protocol. Three lines, DAV
(DAta Valid), NDAC (Not Data ACepted), and NRFD (Not Ready For Data), control
this. All the listeners on the bus use the NRFD line to indicate their state of
readiness to accept data. If one listener holds the line low then this prevents
any data transfer being initiated. This means that when all the instruments are
ready as indicated by the NRFD being line is high and then data can be
transferred. Once all the instruments have released the NRFD line and it is in
the high state, only then can the next stage be initiated.
Data is placed onto the data lines by the talker and once this has settled,
the DAV line is pulled low. This signals to all the listeners that they are able
to read the data that is present. During this operation the NDAC line will be
held low by all the active listeners, i.e. those which have been instructed to
receive the data. Only when they have read the data will each device stop trying
to hold this line low. When the last device removes its hold, the level of the
line will rise and the talker will know that all the data has been accepted and
the next byte of data can be transferred.
By transferring data in this way the data is placed onto the bus at a rate
which is suitable for the talker, and it is held until the slowest listener has
accepted it. In this way the optimum data transfer rate is always used, and
there are no specifications and interface problems associated with the speeds at
which data must be transferred.
IEEE 488 bus management
In addition to the comprehensive handshaking system, the GPIB also incorporates
a number of very useful bus management facilities, enabling the instruments on
the bus to be controlled in a very flexible manner.
Each instrument has its own address. This enables the controller or talker to
talk to a specific piece of equipment. It is obviously imperative that each
piece of equipment has its own unique address on the bus. If not bus conflicts
occur and the operation of the system will crash.
Often different types of instrument have their own default values set for
GPIB at the factory during manufacture. However in all cases it must be possible
to change the GPIB address either by changing switches on the outside of the
equipment or the inside. Even though only fifteen units are allowed on the bus
at any one time, addresses up to 31 are allowed. This enables a certain amount
of flexibility in defining specific addresses for certain types of equipment
within an organisation.
One of the most important lines is the ATN (Attention) line. Using this the
controller is able to signal whether the data to be placed onto the data lines
is control information or data. When the line is pulled low then the bus is said
to be in command mode and bus commands may be placed onto the bus. These
commands are the same for all bus systems and each device is programmed to
respond to any commands that have a useful or applicable meaning. One of the
most common bus commands is to give the address of an instrument to which data
is about to be sent. In addition to this when the line is pulled low it causes
any talker to relinquish its control of the DAV line and cease its data
transmission. Another result is that all listeners whether active or not will
listen to the control data being transmitted.
When the ATN line is high the bus is said to be in data mode and data
transfers between the instruments can take place. In command mode not all the
data lines are used. Bit seven is ignored, whilst bits five and six indicate the
type of information to be transmitted. It may be a bus command, a talk address,
or a listen address.
There are four other controls for GPIB that are widely used on the bus,
namely: IFC (interface clear), SRQ (service request), REN (remote enable), and
EOI (End or Identify) lines.
The IFC line is used by the controller to reset the bus and place it into its
quiescent state. Any talker or listener which is active is stopped and control
is returned to the controller. This is not used in the course of normal
operation. However it can be used when the system needs re-setting or at initial
power up when the bus may be in a random state.
Remote enable (REN) is a function that is used by the controller to set
instruments on the bus to local i.e. front panel control or to bus control. Bus
controlled instruments may be returned to their local state by a go to local
message sent in conjunction with the ATN line being pulled low.
End or Identify (EOI) is an optional GPIB function used to signify the end of
a multiple byte data transfer. As an alternative, talkers can use a carriage
return or carriage return line feed to terminate the message. This can then be
interpreted by the controlled dependent upon how its software is configured.
The next control line is SRQ or service request. Any device fitted with this
function can pull the service request line low. When this happens it indicates
that it wants to interrupt the current activities so that attention can be given
to a particular event. One instance where this facility is needed is when a
printer runs out of paper, or in another instance, an instrument may be
overloaded or "over-ranged". Once the SRQ line has been pulled low, the
controller then has to identify which instrument has caused the interrupt. A
process called polling accomplishes this. Essentially this just requests status
information from the devices on the bus.
Polling
There are two ways in which instruments on GPIB can be polled. One is called
parallel polling and the other is serial.
Parallel polling can only operate with up to eight instruments. This is
because each of the devices will return a status bit one of the eight data
lines. To assert a parallel poll the controller pulls the ATN and EOI lines low.
When this occurs each instrument responds by transmitting a one-bit status
report.
A serial poll is more flexible but takes longer to accomplish. Here the
controller sends each of the instruments a serial poll enable command in turn.
This is one of the GPIB commands that can be sent when the ATN line is held low.
When an instrument receives a serial poll enable it responds by returning eight
bits of status information. When the controller has received the status data it
sends a serial poll disable command and returns the bus and instruments on it to
the normal data mode.
The advantage of a serial poll is that it is far more flexible and enables
eight bits of data to be returned. However it is much slower because each
instrument has to be polled in turn to find out which one pulled the SRQ line in
the first place.
Using GPIB
In practice the GPIB interface is very easy to use. Ready-made GPIB cables are
widely available even if they appear to be a little expensive. However these
GPIB cables are fully screened and have the correct lines as twisted pairs. This
considerably reduces the susceptibility of the bus to data corruptions.
Manufacture of full specification GPIB cables can be difficult in view of the
complexity of the cable and having to ensure the integrity of the screening.
A cheap and convenient alternative for GPIB cables is available in the form
of insulation displacement connectors. While cables made in this way are much
cheaper they are not screened and do not conform to the GPIB / IEEE 488
specifications. In view of this they should only be used where there are a very
limited number of instruments, where data rates are likely to be low, for long
runs, and where electrical noise is not likely to be a problem. If a cable of
this nature is used then it is worth being aware that it could be the cause of
random errors when the system is operating.
When setting up a GPIB system linked by the bus few rules need to be
observed. The cables can generally be routed as required, linking the
instruments as is most convenient. As the connectors can be "piggy backed", this
makes linking the instruments very easy. However a little common sense is
required, and not too many connectors should be linked to one point.
Before firing up the system, check all the instrument GPIB addresses to
ensure that they are correct and match what the software in the controller
requires. Also check that none are duplicated. Unfortunately checking the
addresses can be a time consuming operation because not all the instruments will
have switches that are easily available. To overcome this it is best to have
standard addresses for different types of instruments within a factory. This
will eliminate the need for any swapping and changing as test stacks are taken
down and erected.
Although GPIB normally works very well, occasionally some problems inevitably
arise. Sometimes it has been known for the bus to hang, even though all the
instruments are operating correctly on their own. Some instruments can be
sensitive to their physical position on the bus, particularly if they are at a
remote end. In instances like this the topology of the cable routing can be
changed to bring the offending instrument closer to the controller.
GPIB summary
The GPIB has been available for over thirty years, but despite its age, it is
still a valuable tool that is widely used throughout the industry. Most bench
instruments have GPIB fitted as standard or as an option making it easy to use
test equipment in a variety of applications apart from being dedicated to use in
an ATE test stack. Additionally GPIB or IEEE 488 is used in a wide number of
other applications including data acquisition.
Although computers tend not to have GPIB interfaces fitted as
standard today, a GPIB card may be bought and installed. In view of its
flexibility and convenience and it is likely to remain in widespread use for
many years to come.