In the 1960s,
Hewlett-Packard (HP) manufactured various automated test and measurement instruments, such as digital
multimeters and
logic analyzers. They developed the
HP Interface Bus (HP-IB) to enable easier interconnection between instruments and controllers (computers and other instruments). This part of HP was later (c. 1999) spun off as
Agilent Technologies, and in 2014 Agilent's test and measurement division was spun off as
Keysight Technologies. 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 in
TTL, without the need for a microprocessor. HP licensed the HP-IB patents for a nominal fee to other manufacturers. It became known as the General Purpose Interface Bus (GPIB), and became a
de facto standard for automated and industrial instrument control. As GPIB became popular, it was formalized by various
standards organizations. In 1975, the
IEEE standardized the bus as
Standard Digital Interface for Programmable Instrumentation, IEEE 488; it was revised in 1978 (producing IEEE 488-1978). The standard was revised in 1987, and redesignated as IEEE 488.1 (IEEE 488.1-1987). 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, varied between manufacturers and even models. The United States Air Force, and later Hewlett-Packard, recognized this as a problem. In 1989, HP developed their Test Measurement Language (TML) or Test and Measurement Systems Language (TMSL) which was the forerunner to
Standard Commands for Programmable Instrumentation (SCPI), 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 (non-IEEE 488.1) physical transports. The
IEC developed their own standards in parallel with the IEEE, with IEC 60625-1 and IEC 60625-2 (IEC 625), later replaced by
IEC 60488-2.
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 (IEEE 488.1-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. The
Linux kernel got support for GPIB with version 6.19, after
Greg Kroah-Hartman merged the code. == Characteristics ==