GPIB

Last updated
IEEE 488 cable with stacking connectors IEEE-488-Stecker2.jpg
IEEE 488 cable with stacking connectors

IEEE 488, also known as HP-IB (Hewlett-Packard Interface Bus) and generically as GPIB (General Purpose Interface Bus), is a short-range digital communications 8-bit parallel multi-master interface bus specification developed by Hewlett-Packard. It subsequently became the subject of several standards.

Contents

Although the bus was created in the late 1960s to connect together automated test equipment, it also had some success during the 1970s and 1980s as a peripheral bus for early microcomputers, notably the Commodore PET. Newer standards have largely replaced IEEE 488 for computer use, but it is still used by test equipment.

History

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). [1] 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.[ citation needed ]

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). [2] 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. [3] 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, [4] and later Hewlett-Packard, recognized this as a problem. In 1989, HP developed their Test Measurement Language (TML) [5] or Test and Measurement Systems Language (TMSL) [6] which was the forerunner to Standard Commands for Programmable Instrumentation (SCPI), introduced as an industry standard in 1990. [7] 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), [8] over HP's objections. [9] [10]

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, [11] replaces IEEE 488.1/IEC 60625-1, and IEC 60488-2,Part 2: Codes, Formats, Protocols and Common Commands, [12] replaces IEEE 488.2/IEC 60625-2. [13]

Characteristics

IEEE 488 is an 8-bit, electrically parallel bus which employs sixteen signal lines — eight used for bi-directional data transfer, three for handshake, and five for bus management — plus eight ground return lines.

The bus supports 31 five-bit primary device addresses numbered from 0 to 30, allocating a unique address to each device on the bus. [14] [15]

The standard allows up to 15 devices to share a single physical bus of up to 20 metres (66 ft) total cable length. The physical topology can be linear or star (forked). [16] 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. [17]

In the original protocol, transfers use an interlocked, three-wire ready–valid–accepted handshake. [18] 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. [19]

Connectors

IEEE 488
Pinout
IEEE-448.svg
Female IEEE 488 connector
Pin 1 DIO1 Data input/output bit
Pin 2 DIO2 Data input/output bit
Pin 3 DIO3 Data input/output bit
Pin 4 DIO4 Data input/output bit
Pin 5 EOI End-or-identify
Pin 6 DAV Data valid
Pin 7 NRFD Not ready for data
Pin 8 NDAC Not data accepted
Pin 9 IFC Interface clear
Pin 10 SRQ Service request
Pin 11 ATN Attention
Pin 12 SHIELD
Pin 13 DIO5 Data input/output bit
Pin 14 DIO6 Data input/output bit
Pin 15 DIO7 Data input/output bit
Pin 16 DIO8 Data input/output bit
Pin 17 REN Remote enable
Pin 18 GND (wire twisted with DAV)
Pin 19 GND (wire twisted with NRFD)
Pin 20 GND (wire twisted with NDAC)
Pin 21 GND (wire twisted with IFC)
Pin 22 GND (wire twisted with SRQ)
Pin 23 GND (wire twisted with ATN)
Pin 24 Logic ground

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 workaround involving physically supporting the connectors may be able to get around this.

They are held in place by screws, either 6-32 UNK [20] (now largely obsolete) 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. [21]

The IEC 60625 standard prescribes the use of 25-pin D-subminiature connectors (the same as used for the parallel port on IBM PC compatibles). This connector did not gain significant market acceptance against the established 24-pin connector.

Capabilities

IEEE-488 port with listed capabilities on a laboratory temperature controller IEEE-488 port with listed capabilities on a laboratory temperature controller.jpg
IEEE-488 port with listed capabilities on a laboratory temperature controller
Capabilities [22]
FunctionAbbreviationDescription and examples
Source HandshakeSH1Complete
Acceptor HandshakeAH1Complete
Basic TalkerT5Responds to serial poll; untalks when listen address received; talk only capability
6Untalks when listen address received; no talk only
7No serial poll; untalks when listen address received; talk only capability
Extended TalkerTE0No extended talker
Basic ListenerL3Listen only mode; unlistens if talk address received
4Unlistens if talk address received
Extended ListenerLE0No extended listener
Service RequestSR0No service request capability
1Complete
Remote-LocalRL0No local lockout
1Complete
Parallel PollPP0Does not respond to Parallel Poll
Device ClearDC1complete
Device TriggerDT0No device trigger capability
1Complete
ControllerC0No controller function
E1Open collector drive electronics
2Three state drivers

Use as a computer interface

National Instruments GPIB controller card for PCI bus National pci GPIB card IMGP1642 smial wp.jpg
National Instruments GPIB controller card for PCI bus

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 (disk drives, tape drives, printers, plotters, etc.), 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, [23] the HP 2100 series, [24] and the HP 3000 series. [25] HP computer peripherals which did not utilize the RS-232 communication interface often used HP-IB including disc systems like the HP 7935. 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 (introduced 1977) 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. [26] Commodore marketed an IEEE 488 cartridge for the VIC-20 [27] and the Commodore 64. [28] 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. [29]

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. [30] Some aspects of the command protocol standards were not standardized until Standard Commands for Programmable Instruments (SCPI) in 1990. Implementation options (e.g. end of transmission handling) 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 (parallel data) connectors and shielded cable were inherently more costly than the connectors and cabling that could be used with serial data transfer standards such as RS-232, RS-485, USB, FireWire or Ethernet. Very few mass-market personal computers or peripherals (such as printers or scanners) implemented IEEE 488.

See also

Related Research Articles

<span class="mw-page-title-main">Bus (computing)</span> Data transfer channel connecting parts of a computer

In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components and software, including communication protocols.

<span class="mw-page-title-main">Expansion card</span> Circuit board for connecting to a computer system to add functionality

In computing, an expansion card is a printed circuit board that can be inserted into an electrical connector, or expansion slot on a computer's motherboard to add functionality to a computer system. Sometimes the design of the computer's case and motherboard involves placing most of these slots onto a separate, removable card. Typically such cards are referred to as a riser card in part because they project upward from the board and allow expansion cards to be placed above and parallel to the motherboard.

<span class="mw-page-title-main">Scalable Coherent Interface</span> High-speed interconnect standard for shared memory multiprocessing and message passing

The Scalable Coherent Interface or Scalable Coherent Interconnect (SCI), is a high-speed interconnect standard for shared memory multiprocessing and message passing. The goal was to scale well, provide system-wide memory coherence and a simple interface; i.e. a standard to replace existing buses in multiprocessor systems with one with no inherent scalability and performance limitations.

A de facto standard is a custom or convention that is commonly used even though its use is not required.

<span class="mw-page-title-main">Electronic test equipment</span> Testing appliance for electronics systems

Electronic test equipment is used to create signals and capture responses from electronic devices under test (DUTs). In this way, the proper operation of the DUT can be proven or faults in the device can be traced. Use of electronic test equipment is essential to any serious work on electronics systems.

<span class="mw-page-title-main">Host adapter</span> Computer hardware device

In computer hardware a host controller, host adapter or host bus adapter (HBA) connects a computer system bus which acts as the host system to other network and storage devices. The terms are primarily used to refer to devices for connecting SCSI, SAS, NVMe, Fibre Channel and SATA devices. Devices for connecting to FireWire, USB and other devices may also be called host controllers or host adapters.

LAN eXtensions for Instrumentation (LXI) is a standard which defines the communication protocols for instrumentation and data acquisition systems using Ethernet.

<span class="mw-page-title-main">HP-35</span> First pocket scientific calculator

The HP-35 was Hewlett-Packard's first pocket calculator and the world's first scientific pocket calculator: a calculator with trigonometric and exponential functions. It was introduced in 1972.

<span class="mw-page-title-main">HP-IL</span>

The HP-IL was a short-range interconnection bus or network introduced by Hewlett-Packard in the early 1980s. It enabled many devices such as printers, plotters, displays, storage devices, test equipment, etc. to be connected to programmable calculators such as the HP-41C, HP-71B and HP-75C/D, the Series 80 and HP-110 computers, as well as generic ISA bus based PCs.

<span class="mw-page-title-main">HIL bus</span>

The HP-HIL is the name of a computer bus used by Hewlett-Packard to connect keyboards, mice, trackballs, digitizers, tablets, barcode readers, rotary knobs, touchscreens, and other human interface peripherals to their HP 9000 workstations. The bus was in use until the mid-1990s, when HP substituted PS/2 technology for HIL. The PS/2 peripherals were themselves replaced with USB-connected models.

<span class="mw-page-title-main">Automatic test equipment</span> Apparatus used in hardware testing that carries out a series of tests automatically

Automatic test equipment or automated test equipment (ATE) is any apparatus that performs tests on a device, known as the device under test (DUT), equipment under test (EUT) or unit under test (UUT), using automation to quickly perform measurements and evaluate the test results. An ATE can be a simple computer-controlled digital multimeter, or a complicated system containing dozens of complex test instruments capable of automatically testing and diagnosing faults in sophisticated electronic packaged parts or on wafer testing, including system on chips and integrated circuits.

A fieldbus is a member of a family of industrial digital communication networks used for real-time distributed control. Fieldbus profiles are standardized by the International Electrotechnical Commission (IEC) as IEC 61784/61158.

<span class="mw-page-title-main">Micro ribbon connector</span> Type of electrical connector

The micro ribbon or miniature ribbonconnector is a common type of electrical connector for a variety of applications, such as in computer and telecommunications equipment having many contacts.

Instrument control consists of connecting a desktop instrument to a computer and taking measurements.

<span class="mw-page-title-main">Standard Commands for Programmable Instruments</span> Communications protocol for test equipment

The Standard Commands for Programmable Instruments defines a standard for syntax and commands to use in controlling programmable test and measurement devices, such as automatic test equipment and electronic test equipment.

An instrument driver, in the context of test and measurement (T&M) application development, is a set of software routines that simplifies remote instrument control. Instrument drivers are specified by the IVI Foundation and define an I/O abstraction layer using the virtual instrument software architecture (VISA). The VISA hardware abstraction layer provides an interface-independent communication channel to T&M instruments. The drivers encapsulate the Standard Commands for Programmable Instruments (SCPI) commands, which are an ASCII-based set of commands for reading and writing instrument settings and measurement data. This standard allows an abstract way of using various programming languages to program remote-control applications instead of using SCPI commands. An instrument driver usually has a well-defined API.

<span class="mw-page-title-main">IEEE 1394</span> Serial bus interface standard, also known as Firewire

IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony and Panasonic. It is most commonly known by the name FireWire (Apple), though other brand names exist such as i.LINK (Sony), and Lynx.

Tektronix vintage analog oscilloscopes technologies and evolution. The company was founded in the mid-1940s to produce oscilloscopes.

<span class="mw-page-title-main">Commodore D9060</span> Family of hard drives

The Commodore D9060/D9090 Hard Disks were the only family of hard drives that Commodore made for both the home and business market. The electronics are identical in the D9060 and the larger D9090 unit; the only difference is the size of the installed hard drive, with a jumper set to distinguish between 4 or 6 disk heads. Originally intended for the metal-cased PET/CBM series of computers, they are compatible with the VIC-20, Commodore 64 and later models with an adapter.

<span class="mw-page-title-main">Commodore bus</span> Serial bus of the home computers series of Commodore

The Commodore serial bus, is Commodore's interface for primarily magnetic disk data storage and printers for Commodore 8-bit home computers: the VIC-20, Commodore 64, Commodore 128, Plus/4, Commodore 16, and Commodore 65.

References

  1. Nelson, Gerald E.; Ricci, David W. (October 1972). "A Practical Interface System for Electronic Instruments" (PDF). Hewlett-Packard Journal. 24 (2): 2–7. Controllers: 3260A Marked Card Reader; 9820A Calculator (with 11144A Interface Kit)
    Loughry, Donald C. (October 1972). "A Common Digital Interface for Programmable Instruments: The Evolution of a System" (PDF). Hewlett-Packard Journal. 24 (2): 8–11.
  2. IEEE Standard Digital Interface for Programmable Instrumentation, Institute of Electrical and Electronics Engineers, 1978, doi:10.1109/IEEESTD.1978.7425098, ISBN   978-1-5044-0366-5, ANSI/IEEE Std 488-1978
    IEEE Standard Digital Interface for Programmable Instrumentation, Institute of Electrical and Electronics Engineers, 1987, ISBN   0-471-62222-2, ANSI/IEEE Std 488.1-1987, p. iii
  3. IEEE Standard Codes, Formats, Protocols, and Common Commands for Use With IEEE Std 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation, Institute of Electrical and Electronics Engineers, 1992, ISBN   978-1-55937-238-1, IEEE Std 488.2-1992
  4. Project Mate in 1985
  5. "GPIB 101, A Tutorial of the GPIB Bus". ICS Electronics. p. 5, paragraph = SCPI Commands.
  6. "Hewlett Packard Test & Measurement Catalog 1991" (PDF). hparchive.com. p. 8, paragraph = SCPI.
  7. "History of GPIB". National Instruments. Retrieved 2010-02-06. In 1990, the IEEE 488.2 specification included the Standard Commands for Programmable Instrumentation (SCPI) document.
  8. "Upgraded Standard Boosts Speed of IEEE 488 Instrument Buses Eightfold". IEEE. 2003-10-06. Archived from the original on December 7, 2003. Retrieved 2010-02-06.
  9. "HP and Other Test and Measurement Companies Urge IEEE to Oppose Revisions of Established IEEE 488 Standard" (Press release). Hewlett-Packard Company. December 1997. Archived from the original on 2011-06-10. Retrieved 2010-02-16.
  10. "P488.1 Project Home". IEEE. Archived from the original on 2010-04-28. Retrieved 2010-02-16.
  11. IEC/IEEE Standard for Higher Performance Protocol for the Standard Digital Interface for Programmable Instrumentation - Part 1: General (Adoption of IEEE Std 488.1-2003). IEEE. doi:10.1109/IEEESTD.2004.95749. ISBN   978-0-7381-4536-5.
  12. Standard Digital Interface for Programmable Instrumentation- Part 2: Codes, Formats, Protocols and Common Commands (Adoption of (IEEE Std 488.2-1992). IEEE. doi:10.1109/IEEESTD.2004.95390. hdl:11059/14380. ISBN   978-0-7381-4100-8.
  13. "Replaced or Withdrawn Publications". IEC. Archived from the original on 2012-04-17. Retrieved 2010-02-06.
  14. "GPIB Addressing" (PDF). NI-488.2 User Manual. National Instruments Corporation. February 2005. p. A-2. NI P/N 370428C-01. Retrieved 2010-02-16. The primary address is a number in the range 0 to 30.
  15. "Table 1-1: 82350 GPIB interface card configuration parameters" (PDF). Agilent 82350B PCI GPIB Interface: Installation and Configuration Guide. Agilent Technologies. 2009-07-20. p. 26. Agilent P/N 82350-90004. Retrieved 2010-02-16. any address in the range 0 - 30, inclusive, may be used
  16. "GPIB Instrument Control Tutorial". National Instruments. 2009-08-24. Retrieved 2010-02-16. connected in either a daisy-chain or star topology
  17. NI-488.2 User Manual (PDF). National Instruments Corporation. February 2005. p. A-1. NI P/N 370428C-01. Archived from the original (PDF) on 2008-12-02. Retrieved 2010-02-16.
  18. "Handshake Lines" (PDF). NI-488.2 User Manual. National Instruments Corporation. February 2005. p. A-3. NI P/N 370428C-01. Retrieved 2010-02-16.
  19. "Using HS488 to Improve GPIB System Performance". National Instruments Corporation. 30 March 2009. Retrieved 2010-02-16.
  20. "Mechanical Aspects" (PDF). Tutorial Description of the Hewlett-Packard Interface Bus. Hewlett-Packard. p. 28. Retrieved 2022-06-13. Some existing cables use English threads (6-32UNK).
  21. IEEE Standard Digital Interface for Programmable Instrumentation, Institute of Electrical and Electronics Engineers, 1987, p. v, ISBN   978-0-471-62222-2, ANSI/IEEE Std 488.1-1987, The "helpful note" on metric threads found in previous editions has been deleted since metric thread use is common IEEE 488 practice. Consequently, the recommendation to coat such parts in black material to call attention to metric threads is also considered unnecessary.
  22. Tilden, Mark D. (1983), "Appendix A: Subsets Describe Interface Functions" (PDF), 4041 GPIB Programming Guide, Tektronix, Inc., pp. 113–115{{citation}}: Cite uses generic title (help)
  23. "HP 98135A HP-IB Interface 9815". HP Computer Museum. Retrieved 2010-02-06.
  24. "59310A HP-IB Interface". HP Computer Museum. Retrieved 2010-02-06. HP-IB interface for HP1000 and HP2000 computers
  25. "27113A HP-IB Interface". HP Computer Museum. Retrieved 2010-02-06. CIO HP-IB interface for 3000 Series 900
  26. Bagnall, Brian (2006). On the Edge: The Spectacular Rise and Fall of Commodore. Variant Press. p. 221. ISBN   0-9738649-0-7. OCLC   761384138.
  27. Commodore drawing for VIC-1112 - Drawing no. 1110010 Rev:A
  28. Reverse-engineered schematics for Commodore C64 IEEE interface
  29. http://www.zimmers.net/anonftp/pub/cbm/schematics/cartridges/c64/ieee-488/index.html Link to schematic for one such converter.
  30. Early devices might respond to an ID command with an identification string; later standards had devices respond to the *ID command.
Part 1 Specifications
Part 2 Specifications
Other