IEEE-488 is a short-range digital communications 8-bit parallel
multi-master interface bus specification. It was created in the
late 1960s for use with automated test equipment and is still in use for that
purpose. IEEE-488 was created as HP-IB and is commonly called GPIB. It has been
the subject of several standards. Origins
In the late 1960s, Hewlett-Packard was manufacturing various automated test and
measurement instruments, such as digital multimeters and logic analyzers. They
developed the HP Interface Bus to enable easier interconnection between
instruments and controllers. The bus was relatively easy to implement
using the technology at the time, using a simple parallel bus and several
individual control lines. For example, the HP 59501 Power Supply Programmer and
HP 59306A Relay Actuator were both relatively simple HP-IB peripherals
implemented only in TTL, using no microprocessor.
HP licensed the HP-IB patents for a nominal fee to other manufacturers. It
became known as the General Purpose Interface Bus, and became a de facto
standard for automated and industrial instrument control. As GPIB became
popular, it was formalized by various standards organizations.
Standards In 1975, the IEEE standardized the bus
as Standard Digital Interface for Programmable Instrumentation, IEEE-488;
it was revised in 1978. The standard was revised in 1987, and redesignated as
IEEE-488.1. These standards formalized the mechanical, electrical, and basic
protocol parameters of GPIB, but said nothing about the format of commands or
data. In 1987, IEEE introduced Standard Codes,
Formats, Protocols, and Common Commands, IEEE-488.2. It was revised in 1992.
IEEE-488.2 provided for basic syntax and format conventions, as well as
device-independent commands, data structures, error protocols, and the
like. IEEE-488.2 built on IEEE-488.1 without superseding it; equipment can
conform to IEEE-488.1 without following IEEE-488.2.
While IEEE-488.1 defined the hardware and IEEE-488.2 defined the protocol,
there was still no standard for instrument-specific commands. Commands
to control the same class of instrument, e.g., multimeters, would vary between
manufacturers and even models. The United States Air Force, and later
Hewlett-Packard, recognized this problem. In 1989, HP developed their TML
language which was the forerunner to Standard Commands for Programmable
Instrumentation. SCPI was introduced as an industry standard in 1990. SCPI added
standard generic commands, and a series of instrument classes with corresponding
class-specific commands. SCPI mandated the IEEE-488.2 syntax, but allowed other
physical transports. The IEC developed their own standards in
parallel with the IEEE, with IEC-60625-1 and IEC-60625-2, later replaced by
IEC-60488. National Instruments introduced a
backward-compatible extension to IEEE-488.1, originally known as HS-488.
It increased the maximum data rate to 8 Mbyte/s, although the rate decreases as
more devices are connected to the bus. This was incorporated into the standard
in 2003, over HP's objections. In 2004, the IEEE and IEC combined their
respective standards into a "Dual Logo" IEEE/IEC standard IEC-60488-1, Standard
for Higher Performance Protocol for the Standard Digital Interface for
Programmable Instrumentation - Part 1: General, replaces
IEEE-488.1/IEC-60625-1, and IEC-60488-2,Part 2: Codes, Formats,
Protocols and Common Commands, replaces IEEE-488.2/IEC-60625-2.
Characteristics IEEE-488 is an 8-bit, electrically
parallel bus. The bus employs sixteen signal lines — eight used for
bi-directional data transfer, three for handshake, and five for bus management —
plus eight ground return lines. Every device on the bus has a unique
5-bit primary address, in the range from 0 to 30.
The standard allows up to 15 devices to share a single physical bus of up to 20
meters total cable length. The physical topology can be linear or star. Active
extenders allow longer buses, with up to 31 devices theoretically possible on a
logical bus. Control and data transfer functions are
logically separated; a controller can address one device as a “talker” and one
or more devices as “listeners” without having to participate in the data
transfer. It is possible for multiple controllers to share the same bus; but
only one can be the "Controller In Charge" at a time.
In the original protocol, transfers use an interlocked, three-wire
ready–valid–accepted handshake. The maximum data rate is about one megabyte
per second. The later HS-488 extension relaxes the handshake requirements,
allowing up to 8 Mbyte/s. The slowest participating device determines the
speed of the bus. Connectors
IEEE-488 specifies a 24-pin Amphenol-designed micro ribbon
connector. Micro ribbon connectors have a D-shaped metal shell, but are larger
than D-subminiature connectors. They are sometimes called "Centronics connectors"
after the 36-pin micro ribbon connector Centronics used for their printers.
One unusual feature of IEEE-488 connectors is they commonly use a
"double-headed" design, with male on one side, and female on the other. This
allows stacking connectors for easy daisy-chaining. Mechanical
considerations limit the number of stacked connectors to four or fewer,
although a possible workaround involving physically supporting the connectors can
expand this. They are held in place by screws, either
UTS or metric M3.5×0.6 threads. Early versions of the standard suggested that
metric screws should be blackened to avoid confusion with the incompatible
UTS threads. However, by the 1987 revision this was no longer considered
necessary because of the prevalence of metric threads.
The IEC-60625 standard prescribes the use of 25-pin D-subminiature connectors.
This connector did not gain significant market acceptance against the
established 24-pin connector. Capabilities
More information see Tektronix. Use as a computer interface
HP's designers did not specifically plan for IEEE-488 to be a peripheral
interface for general-purpose computers; the focus was on instrumentation. But
when HP's early microcomputers needed an interface for peripherals, HP-IB was
readily available and easily adapted to the purpose.
HP computer products which used HP-IB included the HP series 80, HP 9800
series, the HP 2100 series, and the HP 3000 series. Some of HP's advanced
pocket calculators of the 1980s, such as the HP-41 and HP-71B series, also had
IEEE-488 capabilities, via an optional HP-IL/HP-IB interface module.
Other manufacturers adopted GPIB for their computers as well, such as with
the Tektronix 405x line. The Commodore PET range of personal
computers connected their peripherals using the IEEE-488 bus, but with a
non-standard card edge connector. Commodore's following 8-bit machines
utilized a serial bus whose protocol was based on IEEE-488. Commodore marketed an
IEEE-488 cartridge for the VIC-20 but never produced a cartridge for the
Commodore 64. Several third party suppliers of Commodore 64 peripherals
made a cartridge for the C64 that provided an IEEE-488-derived interface
on a card edge connector similar to that of the PET series.
Eventually, faster, more complete standards such as SCSI superseded
IEEE-488 for peripheral access. Comparison with other interface
standards Electrically, IEEE 488 used a hardware
interface that could be implemented with some discrete logic or with a
microcontroller. The hardware interface enabled devices made by different
manufacturers to communicate with a single host. Since each device generated
the asynchronous handshaking signals required by the bus protocol, slow and
fast devices could be mixed on one bus. The data transfer is relatively slow, so
transmission line issues such as impedance matching and line termination
are ignored. There was no requirement for galvanic isolation between the bus
and devices, which created the possibility of ground loops causing
extra noise and loss of data. Physically, the IEEE-488 connectors and
cabling were rugged and held in place by screws. While physically large and
sturdy connectors were an advantage in industrial or laboratory set ups, the
size and cost of the connectors was a liability in applications such as
personal computers. Although the electrical and physical
interfaces were well defined, there was not an initial standard command set.
Devices from different manufacturers might use different commands for the
same function. Some aspects of the command protocol standards were not
standardized until Standard Commands for Programmable Instruments in 1990.
Implementation options can complicate interoperability in pre-IEEE-488.2
devices. More recent standards such as USB,
FireWire, and Ethernet take advantage of declining costs of interface electronics
to implement more complex standards providing higher bandwidth. The
multi-conductor connectors and shielded cable were inherently more costly than
the connectors and cabling that could be used serial data transfer standards such
as RS-232, RS-485, USB, FireWire or Ethernet. Very few mass-market personal
computers or peripherals implemented IEEE 488.
See also Standard Commands for Programmable
Instruments PCI eXtensions for Instrumentation
LAN eXtensions for Instrumentation Virtual Instrument Software Architecture
HP series 80 Rocky Mountain BASIC
References External links
IEC-60488-1: Higher performance protocol for the standard digital interface for
programmable instrumentation. Part 1: General. International Electrotechnical
Commission. 15 July 2004. IEC-60488-2: Standard digital interface
for programmable instrumentation. Part 2: Codes, formats, protocols and common
commands. International Electrotechnical Commission. 7 May 2004.
GPIB / IEEE 488 multiple page tutorial