# GPIB

El Hewlett-Packard Instrument Bus (HP-IB) es un estándar bus de datos digital de corto rango desarrollado por Hewlett-Packard en los años 1970 para conectar dispositivos de testeo y medición (por ejemplo multímetros, osciloscopios, etc) con dispositivos que los controlen como un ordenador. Otros fabricantes copiaron el HP-IB, llamando a su implementación General-Purpose Instrumentation Bus (GP-IB). En 1978 el bus fue estandarizado por el Institute of Electrical and Electronics Engineers (IEEE) como el IEEE-488 (488.1).

## Diseño

El IEEE-488 permite que hasta 15 dispositivos inteligentes compartan un simple bus paralelo de 8 bits, mediante conexión en cadena, con el dispositivo más lento determinando la velocidad de transferencia. La máxima velocidad de transmisión está sobre 1 MB/s en el estándar original y en 8 MB/s con IEEE-488.1-2003 (HS-488).
Las 16 líneas que componen el bus están agrupadas en tres grupos de acuerdo con sus funciones: 8 de bus de datos, 3 de bus de control de transferencia de datos y 5 de bus general. Algunas de ellas tienen retornos de corrientes común y otras tienen un retorno propio, lo que provoca un aumento del número de líneas totales (8 masas).

## Historia

A finales de la década de 1960, Hewlett-Packard (HP) era un fabricante de equipos de test e instrumentos de medición, como multímetros digitales y analizadores lógicos. HP desarrolló el HP Interface Bus (HP-IB) para permitir una más fácil conexión entre instrumentos y controladores como los ordenadores. El bus es relativamente fácil de implementar usando la tecnología del momento, y utilizaba un simple bus paralelo y varias líneas de control individual.
Otros fabricantes copiaron el HP-IB, llamando a su implementación el General Purpose Interface Bus (GPIB o bus de interfaz de propósito general).
En 1975 el bus fue estandarizado por el Institute of Electrical and Electronics Engineers como el IEEE Standard Digital Interface for Programmable Instrumentation, IEEE-488-1975 (actualmente 488.1). IEEE-488.1 define los parámetros mecánicos, eléctricos, y el protocolo básico de GPIB, pero no dice nada sobre el formato de los comandos o los datos. El estándar IEEE-488.2, Codes, Formats, Protocols, and Common Commands for IEEE-488.1 (junio de 1987), proporciona la sintaxis básica y las convenciones de formato, así como los comandos independientes de dispositivo, estructuras de datos, protocolos de error, y similares. IEEE-488.2 se construyó sobre -488.1 sin sustituirlo; los equipos pueden configurarse para -488.1 sin seguir -488.2.
Mientras que IEEE-488.1 define el hardware, y IEEE-488.2 define la sintaxis, todavía no había estándar para comandos específicos de cada instrumento. Los comandos para controlar la misma clase de instrumento (por ej., multímetros) pueden variar entre diferentes fabricantes e incluso modelos. Un estándar para comandos de dispositivo, SCPI, fue introducido en los 90. Debido a su reciente introducción, no ha sido implementado universalmente.
National Instruments introdujo una extensión retro-compatible a IEEE-488.1, conocida originalmente como HS-488. Esta incrementa la velocidad máxima a 8 MB/s, aunque la velocidad disminuye a medida que se conectan más dispositivos al bus. Fue incorporada al estándar en 2003, como IEEE-488.1-2003.
Además del IEEE otros comités han adoptado el HP-IB. El American National Standards Institute (ANSI) lo llama ANSI Standard MC 1.1, y para la International Electrotechnical Commission (IEC) es el IEC Publication 625-1.

## Aplicaciones

Al principio, los diseñadores de HP no planearon el IEEE-488 como un estándar de interfaz de periféricos para ordenadores de propósito general. En 1977 la familia Commodore PET/CBM de ordenadores educativos/domésticos/personales conectaban sus unidades de disco, impresoras, modems, etc, mediante el bus IEEE-488. Todos los equipos de 8 bits posteriores de Commodore del VIC-20 al Commodore 128, utilizan un bus serial IEEE-488 propietario (también llamado bus serial Commodore) para sus periféricos, con conectores DIN-6 en lugar de los resistentes conectores HP-IB o un conector de borde de tarjeta en la placa madre (para los ordenadores PET). En él los dispositivos conectados al ordenador hablaban (talking) y escuchaba (listening) las líneas para realizar sus tareas. Los ordenadores de HP también han usado este bus con un protocolo llamado CS-80.
Hewlett-Packard y Tektronix también usaron el IEEE-488 como interfaz de periféricos para conectar unidades de disco, unidades de cinta, impresoras, plotters etc. a sus estaciones de trabajo y a los miniordenadores HP 3000. Mientras que la velocidad del bus se incrementaba a 10 MB para esos usos, la falta de un protocolo de comandos estándar limitó los desarrollos de terceros y la interoperabilidad, y posteriormente, estándares abiertos más rápidos como SCSI acabaron superando a IEEE-488 para la conexión de periféricos.
Adicionalmente, algunas de las calculadoras/ordenadores avanzados de HP en la década de 1980, como las series HP-41 y HP-71, pueden trabajar con varios instrumentos mediante una interfaz HP-IB opcional. La interfaz puede conectarse a la calculadora mediante un módulo opcional HP-IL.