IEEE 488 , también conocido como HP-IB ( Hewlett-Packard Interface Bus ) y genéricamente como GPIB ( General Purpose Interface Bus ), es una especificación de bus de interfaz multimaestro paralelo de 8 bits para comunicaciones digitales de corto alcance desarrollada por Hewlett-Packard . Posteriormente se convirtió en objeto de varias normas.
Aunque el bus se creó a fines de la década de 1960 para conectar equipos de prueba automatizados , también tuvo cierto éxito durante las décadas de 1970 y 1980 como bus periférico para los primeros microordenadores , en particular el Commodore PET . Los estándares más nuevos han reemplazado en gran medida al IEEE 488 para uso informático, pero aún se usa en equipos de prueba.
En la década de 1960, Hewlett-Packard (HP) fabricó varios instrumentos de medición y prueba automatizados, como multímetros digitales y analizadores lógicos . Desarrollaron el bus de interfaz HP (HP-IB) para facilitar la interconexión entre instrumentos y controladores (computadoras y otros instrumentos). [1] Esta parte de HP se escindió más tarde (c. 1999) como Agilent Technologies , y en 2014 la división de medición y prueba de Agilent se escindió como Keysight Technologies . [ cita requerida ]
El bus era relativamente fácil de implementar utilizando la tecnología de la época, utilizando un bus paralelo simple y varias líneas de control individuales. Por ejemplo, el Programador de Fuente de Alimentación HP 59501 y el Actuador de Relé HP 59306A eran ambos periféricos HP-IB relativamente simples implementados en TTL , sin necesidad de un microprocesador.
HP otorgó licencias de las patentes HP-IB a otros fabricantes por una tarifa nominal. Se lo conoció como Bus de Interfaz de Propósito General (GPIB) y se convirtió en un estándar de facto para el control de instrumentos industriales y automatizados. A medida que GPIB se hizo popular, varias organizaciones de estándares lo formalizaron .
En 1975, el IEEE estandarizó el bus como Interfaz digital estándar para instrumentación programable , IEEE 488; fue revisado en 1978 (produciendo IEEE 488-1978). [2] El estándar fue revisado en 1987 y redesignado como IEEE 488.1 (IEEE 488.1-1987). Estos estándares formalizaron los parámetros mecánicos, eléctricos y de protocolo básico de GPIB, pero no dijeron nada sobre el formato de los comandos o datos.
En 1987, el IEEE introdujo los códigos, formatos, protocolos y comandos comunes estándar , IEEE 488.2. Fue revisado en 1992. [3] El IEEE 488.2 proporcionaba convenciones de formato y sintaxis básicas, así como comandos independientes del dispositivo, estructuras de datos, protocolos de error y similares. El IEEE 488.2 se basó en el IEEE 488.1 sin reemplazarlo; el equipo puede cumplir con el IEEE 488.1 sin seguir el IEEE 488.2.
Si bien el IEEE 488.1 definía el hardware y el IEEE 488.2 el protocolo, todavía no existía un estándar para los comandos específicos de cada instrumento. Los comandos para controlar la misma clase de instrumento, por ejemplo , multímetros, variaban entre fabricantes e incluso modelos.
La Fuerza Aérea de los Estados Unidos [4] y, posteriormente, Hewlett-Packard, reconocieron que esto era un problema. En 1989, HP desarrolló su lenguaje de medición de pruebas (TML) [5] o lenguaje de sistemas de medición y pruebas (TMSL) [6], que fue el precursor de los comandos estándar para instrumentación programable (SCPI), introducido como estándar de la industria en 1990. [7] SCPI agregó comandos genéricos estándar y una serie de clases de instrumentos con comandos específicos de clase correspondientes. SCPI exigía la sintaxis IEEE 488.2, pero permitía otros transportes físicos (no IEEE 488.1).
La IEC desarrolló sus propios estándares en paralelo con el IEEE, con IEC 60625-1 e IEC 60625-2 (IEC 625), posteriormente reemplazada por IEC 60488-2 .
National Instruments introdujo una extensión compatible con versiones anteriores de IEEE 488.1, conocida originalmente como HS-488. Esta extensión aumentó la velocidad máxima de datos a 8 Mbytes /s, aunque la velocidad disminuye a medida que se conectan más dispositivos al bus. Esta extensión se incorporó al estándar en 2003 (IEEE 488.1-2003), [8] a pesar de las objeciones de HP. [9] [10]
En 2004, el IEEE y el IEC combinaron sus respectivos estándares en un estándar IEEE/IEC de "doble logotipo" IEC 60488-1, Estándar para el protocolo de alto rendimiento para la interfaz digital estándar para instrumentación programable - Parte 1: General , [11] reemplaza a IEEE 488.1/IEC 60625-1, e IEC 60488-2, Parte 2: Códigos, formatos, protocolos y comandos comunes , [12] reemplaza a IEEE 488.2/IEC 60625-2. [13]
IEEE 488 es un bus eléctricamente paralelo de 8 bits que emplea dieciséis líneas de señal (ocho utilizadas para transferencia de datos bidireccional, tres para protocolo de enlace y cinco para gestión de bus), además de ocho líneas de retorno a tierra.
El bus admite 31 direcciones de dispositivos primarios de cinco bits numeradas del 0 al 30, asignando una dirección única a cada dispositivo en el bus. [14] [15]
El estándar permite que hasta 15 dispositivos compartan un único bus físico de hasta 20 metros (66 pies) de longitud total de cable. La topología física puede ser lineal o en estrella (bifurcada). [16] Los extensores activos permiten buses más largos, con hasta 31 dispositivos teóricamente posibles en un bus lógico.
Las funciones de control y transferencia de datos están separadas lógicamente; un controlador puede dirigirse a un dispositivo como "hablante" y a uno o más dispositivos como "escuchas" sin tener que participar en la transferencia de datos. Es posible que varios controladores compartan el mismo bus, pero solo uno puede ser el "controlador a cargo" a la vez. [17]
En el protocolo original, las transferencias utilizan un protocolo de enlace de tres hilos entrelazado, listo, válido y aceptado . [18] La velocidad máxima de datos es de aproximadamente un megabyte por segundo. La extensión posterior HS-488 flexibiliza los requisitos del protocolo de enlace, permitiendo hasta 8 Mbyte/s. El dispositivo participante más lento determina la velocidad del bus. [19]
La norma IEEE 488 especifica un conector de cinta micro de 24 pines diseñado por Amphenol . Los conectores de cinta micro tienen una carcasa metálica en forma de D, pero son más grandes que los conectores subminiatura D. A veces se los denomina "conectores Centronics" por el conector de cinta micro de 36 pines que Centronics utilizaba para sus impresoras.
Una característica inusual de los conectores IEEE 488 es que suelen utilizar un diseño de "doble cabezal", con un conector macho en un lado y una hembra en el otro. Esto permite apilar los conectores para facilitar la conexión en cadena . Las consideraciones mecánicas limitan la cantidad de conectores apilados a cuatro o menos, aunque una solución alternativa que implique sujetar físicamente los conectores puede solucionar este problema.
Se mantienen en su lugar mediante tornillos, ya sea 6-32 UNK [20] (ahora en gran parte obsoletos) o roscas métricas M3,5×0,6 . Las primeras versiones de la norma sugerían que los tornillos métricos debían ennegrecerse para evitar confusiones con las roscas UTS incompatibles. Sin embargo, en la revisión de 1987 esto ya no se consideró necesario debido a la prevalencia de las roscas métricas. [21]
La norma IEC 60625 prescribe el uso de conectores D-sub de 25 pines (los mismos que se utilizan para el puerto paralelo en los equipos IBM PC compatibles ). Este conector no tuvo una aceptación significativa en el mercado frente al conector de 24 pines establecido.
Los diseñadores de HP no planearon específicamente que IEEE 488 fuera una interfaz periférica para computadoras de propósito general; el enfoque estaba en la instrumentación. Pero cuando las primeras microcomputadoras de HP necesitaron una interfaz para periféricos ( unidades de disco , unidades de cinta , impresoras , trazadores , etc.), HP-IB estuvo disponible y se adaptó fácilmente a ese propósito.
Los productos informáticos HP que utilizaban HP-IB incluían la serie HP 80 , la serie HP 9800 , [23] la serie HP 2100 , [24] y la serie HP 3000. [25] Los periféricos informáticos HP que no utilizaban la interfaz de comunicación RS-232 a menudo utilizaban HP-IB, incluidos sistemas de disco como la HP 7935. Algunas de las calculadoras de bolsillo avanzadas de HP de la década de 1980, como las series HP-41 y HP-71B , también tenían capacidades IEEE 488, a través de un módulo de interfaz HP-IL /HP-IB opcional .
Otros fabricantes también adoptaron GPIB para sus computadoras, como por ejemplo la línea Tektronix 405x .
La gama de ordenadores personales Commodore PET (introducida en 1977) conectaba sus periféricos mediante el bus IEEE 488, pero con un conector de borde de tarjeta no estándar. Las siguientes máquinas de 8 bits de Commodore utilizaban un bus serial cuyo protocolo se basaba en IEEE 488. [26] Commodore comercializó un cartucho IEEE 488 para el VIC-20 [27] y el Commodore 64. [28] Varios proveedores externos de periféricos Commodore 64 fabricaron un cartucho para el C64 que proporcionaba una interfaz derivada de IEEE 488 en un conector de borde de tarjeta similar al de la serie PET. [29]
Con el tiempo, estándares más rápidos y completos como SCSI reemplazaron a IEEE 488 para el acceso periférico.
En términos eléctricos, el IEEE 488 utilizaba una interfaz de hardware que podía implementarse con alguna lógica discreta o con un microcontrolador. La interfaz de hardware permitía que dispositivos fabricados por distintos fabricantes se comunicaran con un único host. Dado que cada dispositivo generaba las señales de enlace asincrónico requeridas por el protocolo de bus, los dispositivos rápidos y lentos podían mezclarse en un bus. La transferencia de datos es relativamente lenta, por lo que se ignoran los problemas de la línea de transmisión , como la adaptación de impedancia y la terminación de la línea. No había ningún requisito de aislamiento galvánico entre el bus y los dispositivos, lo que creaba la posibilidad de bucles de tierra que causaran ruido adicional y pérdida de datos.
Físicamente, los conectores y el cableado IEEE 488 eran resistentes y se sujetaban con tornillos. Si bien los conectores grandes y resistentes eran una ventaja en las instalaciones industriales o de laboratorio, el tamaño y el costo de los conectores eran una desventaja en aplicaciones como las computadoras personales.
Aunque las interfaces eléctricas y físicas estaban bien definidas, no había un conjunto de comandos estándar inicial. Los dispositivos de diferentes fabricantes podían usar comandos diferentes para la misma función. [30] Algunos aspectos de los estándares de protocolo de comandos no se estandarizaron hasta la publicación de los Comandos Estándar para Instrumentos Programables (SCPI) en 1990. Las opciones de implementación (por ejemplo, el manejo del final de la transmisión) pueden complicar la interoperabilidad en dispositivos anteriores a IEEE 488.2.
Los estándares más recientes, como USB , FireWire y Ethernet, aprovechan la disminución de los costos de la electrónica de interfaz para implementar estándares más complejos que brindan un mayor ancho de banda. Los conectores multiconductores (datos en paralelo) y el cable blindado eran inherentemente más costosos que los conectores y el cableado que se podían usar con estándares de transferencia de datos en serie como RS-232 , RS-485 , USB, FireWire o Ethernet. Muy pocos ordenadores personales o periféricos (como impresoras o escáneres) de mercado masivo implementaron IEEE 488.
Controladores: lector de tarjetas marcadas 3260A; calculadora 9820A (con kit de interfaz 11144A)
En 1990, la especificación IEEE 488.2 incluyó el documento Comandos estándar para instrumentación programable (SCPI).
La dirección principal es un número en el rango de 0 a 30.
Se puede utilizar cualquier dirección en el rango de 0 a 30, inclusive.
Conectado en una topología en cadena o en estrella.
Algunos cables existentes utilizan roscas inglesas (6-32UNK).
La "nota útil" sobre las roscas métricas que se encuentra en ediciones anteriores se ha eliminado ya que el uso de roscas métricas es una práctica común de IEEE 488. En consecuencia, la recomendación de recubrir dichas piezas con material negro para llamar la atención sobre las roscas métricas también se considera innecesaria.
{{citation}}
: La cita utiliza un título genérico ( ayuda )HP-IB para computadoras HP1000 y HP2000
Interfaz HP-IB de CIO para la serie 3000 900
ID
comando con una cadena de identificación; los estándares posteriores hicieron que los dispositivos respondieran al *ID
comando.