IEEE-488 hace referencia al Estándar número 488 del Instituto de Ingenieros Eléctricos y de Electrónica (IEEE) y se conoce comúnmente como GPIB (General Purpose Interface Bus, bus de interfaz de propósito general). Este estándar se estableció por primera vez en 1978, 13 años después de que Hewlett-Packard (HP) de Palo Alto, California, comenzara a trabajar para habilitar la comunicación entre su amplia gama de instrumentos y los ordenadores «host».
En el momento de su desarrollo, el protocolo IEEE-488 era especialmente adecuado para aplicaciones de instrumentos en comparación con las alternativas. En esencia, IEEE-488 comprende un «bus en un cable», que proporciona tanto una ruta de transferencia de datos en paralelo en ocho líneas como ocho líneas de control dedicadas. Dadas las exigencias de la época, su tasa nominal máxima de transferencia de datos de 1 Mbyte/segundo parecía bastante adecuada; incluso hoy en día, la interfaz GPIB es lo suficientemente potente para muchas aplicaciones muy sofisticadas y exigentes.
Sin embargo, el IEEE-488, tal y como se definió originalmente, dejaba algunas ambigüedades en los detalles de la interacción y la comunicación entre el controlador y el instrumento. Aunque es probable que estas cuestiones pendientes tuvieran por objeto dar cierta libertad a los diseñadores de instrumentos y controladores, el resultado fue confusión y problemas de compatibilidad entre instrumentos de diferentes fabricantes.
Durante la década de 1980, se añadió una nueva capa al estándar IEEE-488, el IEEE-488.2. El estándar original pasó a denominarse IEEE-488.1. El IEEE-488.2 establece un conjunto mínimo de capacidades entre los «controladores» y los «dispositivos», así como un contenido y una estructura más específicos de los mensajes y los protocolos de comunicación.
IEEE-488.2 es totalmente compatible con IEEE- 488.1; el uso de un controlador compatible con «488.2» permite utilizar los nuevos protocolos disponibles con los instrumentos «488.2», al tiempo que se mantiene la capacidad de comunicarse con los instrumentos compatibles con «488.1» y controlarlos, así como las idiosincrasias asociadas de los proveedores.
Hoy en día, el bus IEEE-488 es el método más reconocido y utilizado para la comunicación entre instrumentos científicos y de ingeniería. Los principales proveedores de instrumentos autónomos de uso general incluyen interfaces IEEE-488 en sus productos. Muchos fabricantes de instrumentos del mercado vertical también confían en IEEE-488 para las comunicaciones de datos y el control.
Los controladores GPIB son compatibles con una gran variedad de ordenadores personales, desde los IBM PC/XT/AT y PS/2 y compatibles hasta la polifacética familia Macintosh. Algunos de estos controladores son tarjetas enchufables; otros son Convertidores de protocolo (por ejemplo, SCSI a IEEE-488). Todos cumplen como mínimo con la norma IEEE-488.1 y un número cada vez mayor se adhiere a la norma «488.2».
Información general sobre la interfaz GPIB
La interfaz GPIB, a veces denominada bus de interfaz de propósito general (GPIB), es un sistema de interfaz digital de propósito general que se puede utilizar para transferir datos entre dos o más dispositivos. Es especialmente adecuada para interconectar ordenadores e instrumentos. Algunas de sus características principales son:
- Se pueden conectar hasta 15 dispositivos a un bus
- La longitud total del bus puede ser de hasta 20 m y la distancia entre dispositivos de hasta 2 m
- La comunicación es digital (a diferencia de la analógica) y los mensajes se envían de un byte (8 bits) en un momento dado
- Las transacciones de mensajes se realizan mediante un protocolo de enlace de hardware
- Las tasas de datos pueden alcanzar hasta 1 Mbyte/seg
Especificaciones mecánicas
Conector El conector GPIB es un conector de 24 pines. Los dispositivos del bus IEEE-488 tienen receptáculos hembra; los cables de interconexión tienen los conectores macho correspondientes. Los cables de conexión suelen tener receptáculos macho y hembra conectados en paralelo en cada extremo para permitir la conexión en paralelo de los cables en un dispositivo y/o permitir la conexión en cadena entre dispositivos.
Cableado de interconexión Cualquier bus IEEE-488 individual está limitado a 15 dispositivos, incluido el controlador. Sin embargo, la especificación GPIB limita la longitud total de todo el cableado utilizado para interconectar dispositivos en un bus común a 20 m, o 2 m por el número de dispositivos interconectados (hasta 20 m). La longitud del cable entre dispositivos puede variar, siempre que la longitud total del cable no supere estas restricciones. Los dispositivos pueden interconectarse en una topología en estrella o lineal, o en una combinación de ambas, siempre que se respeten los límites de distancia. Para obtener las velocidades máximas de transferencia de datos, la longitud total del cable debe reducirse a 15 m, con un cable medio entre dispositivos de 1 m o menos.
Especificaciones eléctricas
Líneas de bus El bus IEEE-488 es una interfaz multipunto en la que todos los dispositivos conectados tienen acceso a las líneas de bus. Las 24 líneas de bus se agrupan en cuatro categorías:
- Líneas de datos: ocho líneas (DIO1 a DIO8) que se utilizan para transferir información (datos y comandos) entre los dispositivos del bus, un byte cada vez.
- Líneas de protocolo: tres líneas que se utilizan para establecer el protocolo de transferencia de información a través de las líneas de datos: DAV: Datos válidos NDAC: Datos no aceptados NRFD: No listo para datos
- Líneas de gestión del bus: cinco líneas utilizadas para el control general y la coordinación de las actividades del bus: ATN: Atención I FC: Interfaz despejada REN: Habilitación remota SRQ: Solicitud de servicio EOI: Fin o identificación
- Líneas de tierra: ocho líneas utilizadas para el apantallamiento y el retorno de señales: Una protección Una tierra de señal general Seis líneas de tierra lógicas emparejadas con ATN, SRQ, IFC, NDAC, NRFD y DAV
Establecimiento de la comunicación
El bus IEEE-488 utiliza tres líneas de protocolo de enlace en una secuencia «Estamos listos - Aquí están los datos - Los hemos recibido» para transferir información a través del bus de datos. El protocolo de enlace garantiza una transferencia de datos fiable a la tasa determinada por el oyente más lento. Las líneas de protocolo de enlace, como todas las demás líneas GPIB, están activas en bajo. DAV está controlado por el hablante activo. Antes de enviar cualquier dato, el emisor verifica que NDAC esté activado (bajo), lo que indica que todos los receptores han aceptado el byte de datos anterior. A continuación, el emisor coloca un byte en las líneas de datos y espera hasta que NRFD se desactive (alto), lo que indica que todos los receptores direccionados están listos para aceptar la información. Cuando NRFD y NDAC están en el estado adecuado, el emisor activa DAV (activo bajo) para indicar que los datos del bus son válidos. Los receptores utilizan NRFD para informar al emisor de que están listos para aceptar los nuevos datos. El emisor debe esperar a que cada receptor desactive esta línea (alta), lo que hacen a su propio ritmo cuando están listos para recibir más datos. Esto garantiza que todos los dispositivos que aceptan la información estén listos para recibirla. NDAC, también controlado por los oyentes, indica al hablante que cada dispositivo dirigido a escuchar ha aceptado la información. Cada dispositivo libera NDAC (alto) a su propio ritmo, pero NDAC no se eleva hasta que el oyente más lento haya aceptado el byte de datos. Este tipo de protocolo de enlace permite que varios dispositivos reciban datos de un único transmisor de datos en el bus. Todos los dispositivos receptores activos participan en el handshaking de datos byte a byte y operan las líneas NDAC y NRFD en un esquema «wired-or», de modo que el dispositivo activo más lento determina la tasa a la que se realizan las transferencias de datos.
Funciones IEEE-488
Cuando se coloca información en las líneas de datos, puede representar un byte de datos o un comando. Si se activa la línea de gestión del bus de atención (ATN) mientras se transfieren los datos, las líneas de datos transportan un comando multilínea que deben recibir todos los dispositivos del bus. Si no se activa ATN, se transfiere un byte de datos y solo los oyentes activos reciben ese byte.
El bus IEEE-488 también tiene una serie de comandos unilínea que se transportan en una única línea de gestión del bus. Por ejemplo, la línea Interface Clear (IFC), al ser activada, envía el comando Interface Clear a todos los dispositivos del bus, lo que hace que cada uno de ellos restablezca su interfaz de bus IEEE-488.
Direccionamiento
El estándar GPIB normalmente permite configurar hasta 15 dispositivos dentro de un sistema. Cada uno de estos dispositivos tiene una dirección de bus única, un número del 0 al 30. Los límites de direcciones se pueden eludir directamente mediante el uso de expansores de bus o indirectamente mediante el uso de un aislador o un extensor.
Un dispositivo pasa a estar «dirigido para hablar» cuando recibe un comando multilínea Talk Address Group (TAG) (un byte transferido con ATN activado) que especifica su propia dirección desde el controlador activo. Del mismo modo, se convierte en «dirigido para escuchar» al recibir un comando multilínea del grupo de direcciones de escucha (LAG). Otros comandos de dirección son «mi dirección de conversación» (MTA) y «mi dirección de escucha» (MLA), que son los comandos TAG y LAG del controlador activo. El grupo de comandos secundario (SCG) se utiliza para hacer referencia a subdirecciones o subfunciones dentro de un dispositivo concreto. Esto permite el acceso directo y el control de los subdispositivos o subinstrumentos integrados en dispositivos o instrumentos complejos.
El controlador del sistema
El controlador del sistema, normalmente un ordenador con una tarjeta IEEE-488 instalada, siempre mantiene el control último del bus. Cuando se enciende el sistema por primera vez, el controlador del sistema es el controlador activo y controla todas las transacciones del bus. El controlador del sistema puede pasar el control a un dispositivo, convirtiéndolo en el nuevo controlador activo, que a su vez puede pasar el control a otro dispositivo. Incluso si no es el controlador activo, el controlador del sistema mantiene el control exclusivo de las líneas de gestión del bus Interface Clear (IFC) y Remote Enable (REN) y puede tomar el control del bus cuando lo desee.
IEEE-488.2
La norma IEEE-488.2 se desarrolló para simplificar el proceso básico de comunicación con los instrumentos. La norma IEEE488.2 amplía la norma 488 con la estandarización del código, el formato y el protocolo, y sirve para resolver cuestiones que quedaron pendientes en la norma 488.1.
IEEE-488.2 details preferred implementation of many of the issues that were either optional or unspecified on the first standard. IEEE-488.1 covers the key physical issues (connector type, bus length, maximum number of instruments, etc.), electrical issues (open collector TTL, tristate) and low-level protocols (device addressing, control passing and data handshaking/timing). Four basic device functions (Talker, Listener, Controller and System Controller) are specified, as are capability subsets for each type of device.
IEEE-488.2 detalla la implementación preferida de muchas de las cuestiones que eran opcionales o no estaban especificadas en el primer estándar. IEEE-488.1 cubre las cuestiones físicas clave (tipo de conector, longitud del bus, número máximo de instrumentos, etc.), las cuestiones eléctricas (colector abierto TTL, tristate) y los protocolos de bajo nivel (direccionamiento de dispositivos, paso de control y sincronización/intercambio de datos). Se especifican cuatro funciones básicas del dispositivo (Talker, Listener, Controller y System Controller), así como subconjuntos de capacidades para cada tipo de dispositivo.
Hay una serie de elementos que no cubre la norma 488.1 y que pueden causar problemas al ingeniero de pruebas, especialmente en lo que respecta a la compatibilidad de los equipos y la corrupción de datos. Por ejemplo, la norma 488.1 no cubre estas especificaciones:
- Requisitos mínimos de capacidad de los dispositivos La norma IEEE- 488.1 no establece un conjunto mínimo de requisitos para los emisores, receptores, controladores o controladores del sistema. Por lo tanto, un dispositivo puede implementar todos o solo algunos de los conjuntos de capacidades establecidos en 488.1, lo que da lugar a sistemas que contienen dispositivos con diferentes niveles de capacidades.
En tal situación, el controlador no tiene garantía de un subconjunto básico de comunicación entre los dispositivos del sistema. Esto puede generar confusión para el operador del sistema y errores de comunicación entre los dispositivos. - Codificación de datos, formatos y protocolo de mensajes Según 488.1, los mensajes transferidos entre el controlador y un dispositivo quedan totalmente a discreción del Fabricante del dispositivo. El uso de ASCII, binario o cualquier otra forma de código de datos y la elección de terminadores como retorno de carro o EOI es arbitraria. Además, la secuencia de envío de comandos y la lectura de sus respuestas no está especificada y varía de un instrumento a otro.
- Definición del byte de estado La norma 488.1 define un byte de estado y un bit dentro de él, pero el significado de los otros siete bits queda a discreción del diseñador del dispositivo. Esto obliga al usuario a proporcionar una interpretación única de cada bit del byte de estado. Además, la relación entre el byte de estado y los otros registros de estado internos del dispositivo no está especificada.