IEEE-488 si riferisce allo standard numero 488 dell'Institute of Electrical and Electronics Engineers (IEEE) ed è comunemente chiamato GPIB (General Purpose Interface Bus). Questo standard è stato istituito per la prima volta nel 1978, 13 anni dopo che Hewlett-Packard (HP) di Palo Alto, California, aveva iniziato a lavorare per consentire alla sua vasta gamma di strumenti di comunicare tra loro e con i computer "host".
Al momento del suo sviluppo, il protocollo IEEE-488 era particolarmente adatto alle applicazioni strumentali rispetto alle alternative. In sostanza, lo standard IEEE-488 comprende un "bus su cavo" che fornisce sia un percorso di trasferimento dati parallelo su otto linee sia otto linee di controllo dedicate. Date le esigenze dell'epoca, la sua frequenza di trasferimento dati massima nominale di 1 Mbyte/sec sembrava più che adeguata; ancora oggi, l'interfaccia GPIB è sufficientemente potente per molte applicazioni altamente sofisticate e impegnative.
Tuttavia, lo standard IEEE-488, così come definito in origine, lasciava alcune ambiguità nelle specifiche relative all'interazione e alla comunicazione tra controller e strumenti. Sebbene tali questioni aperte fossero probabilmente intese a dare ai progettisti di strumenti e controller una certa libertà, il risultato fu una certa confusione e problemi di compatibilità tra strumenti di diversi produttori.
Durante gli anni '80, è stato aggiunto un nuovo livello allo standard IEEE-488, l'IEEE-488.2. Lo standard originale è stato rinominato IEEE-488.1. L'IEEE-488.2 fornisce un insieme minimo di funzionalità tra "controllori" e "dispositivi", nonché contenuti e strutture più specifici per i messaggi e i protocolli di comunicazione.
Lo standard IEEE-488.2 è completamente retrocompatibile con lo standard IEEE-488.1; l'uso di un controller conforme allo standard "488.2" offre la possibilità di utilizzare i nuovi protocolli disponibili con gli strumenti "488.2", mantenendo la capacità di comunicare con e controllare gli strumenti conformi allo standard "488.1" e le peculiarità dei fornitori associati.
Oggi, il bus IEEE-488 è il metodo più riconosciuto e utilizzato per la comunicazione tra strumenti scientifici e ingegneristici. I principali fornitori di strumenti autonomi per uso generico includono interfacce IEEE-488 nei loro prodotti. Anche molti produttori di strumenti per mercati verticali si affidano allo standard IEEE-488 per la comunicazione e il controllo dei dati.
I controller GPIB supportano una vasta gamma di personal computer, dagli IBM PC/XT/AT e PS/2 e compatibili alla multiforme famiglia Macintosh. Alcuni di questi controller sono schede plug-in, altri sono Convertitori di protocollo (ad esempio, da SCSI a IEEE-488). Tutti garantiscono almeno la conformità allo standard IEEE-488.1 e un numero crescente di essi aderisce allo standard "488.2".
Informazioni generali sull'interfaccia GPIB
L'interfaccia GPIB, talvolta denominata General Purpose Interface Bus (GPIB), è un sistema di interfaccia digitale per uso generico che può essere utilizzato per trasferire dati tra due o più dispositivi. È particolarmente adatta per l'interconnessione di computer e strumenti. Alcune delle sue caratteristiche principali sono:
- È possibile collegare fino a 15 dispositivi a un bus
- La lunghezza totale del bus può arrivare fino a 20 m e la distanza tra i dispositivi può arrivare fino a 2 m
- La comunicazione è digitale (anziché analogica) e i messaggi vengono inviati un byte (8 bit) alla volta
- Le transazioni dei messaggi sono gestite dall'hardware
- La frequenza di trasmissione dei dati può arrivare fino a 1 Mbyte/sec
Specifiche meccaniche
Connettore Il connettore GPIB è un connettore a 24 pin. I dispositivi sul bus IEEE-488 hanno prese femmina; i cavi di interconnessione hanno connettori maschio corrispondenti. I cavi di collegamento hanno in genere prese maschio e femmina cablate in parallelo su ciascuna testa di collegamento per consentire il collegamento in parallelo dei cavi su un dispositivo e/o il collegamento a catena tra i dispositivi.
Cablaggio di interconnessione Ogni singolo bus IEEE-488 è limitato a 15 dispositivi, compreso il controller. Tuttavia, le specifiche GPIB limitano la lunghezza totale di tutti i cavi utilizzati per l'interconnessione dei dispositivi su un bus comune a 20 m, ovvero 2 m moltiplicato per il numero di dispositivi interconnessi (fino a 20 m). La lunghezza dei cavi tra i dispositivi può variare, purché la lunghezza totale dei cavi non superi tali limiti. I dispositivi possono essere interconnessi in una topologia a stella o lineare, o in una combinazione delle due, purché vengano rispettati i limiti di distanza. Per ottenere la massima velocità di trasferimento dei dati, la lunghezza totale del cavo dovrebbe essere ridotta a 15 m, con una lunghezza media del cavo tra i dispositivi pari o inferiore a 1 m.
Specifiche elettriche
Linee bus Il bus IEEE-488 è un'interfaccia multidrop in cui tutti i dispositivi collegati hanno accesso alle linee bus. Le 24 linee bus sono raggruppate in quattro categorie:
- Linee dati - Otto linee (da DIO1 a DIO8) utilizzate per trasferire informazioni (dati e comandi) tra i dispositivi sul bus, un byte alla volta.
- Linee di handshake - Tre linee utilizzate per l'handshake del trasferimento di informazioni attraverso le linee dati: DAV: Dati validi NDAC: Dati non accettati NRFD: Non pronto per i dati
- Linee di gestione del bus - Cinque linee utilizzate per il controllo generale e il coordinamento delle attività del bus: ATN: Attenzione I FC: Interfaccia libera REN: Abilitazione remota SRQ: Richiesta di servizio EOI: Fine o identificazione
- Linee di terra - Otto linee utilizzate per la schermatura e il ritorno dei segnali: Una schermatura Una messa a terra generale Sei linee di terra logiche accoppiate con ATN, SRQ, IFC, NDAC, NRFD e DAV
Handshaking
Il bus IEEE-488 utilizza tre linee di handshake in una sequenza "Siamo pronti - Ecco i dati - Li abbiamo ricevuti" per trasferire le informazioni attraverso il bus dati. Il protocollo di handshake garantisce un trasferimento dati affidabile alla frequenza determinata dal listener più lento. Le linee di handshake, come tutte le altre linee GPIB, sono attive a livello basso. DAV è controllato dall'active talker. Prima di inviare qualsiasi dato, il Talker verifica che NDAC sia attivato (basso), il che indica che tutti i Listener hanno accettato il byte di dati precedente. Il Talker quindi inserisce un byte sulle linee dati e attende fino a quando NRFD non viene disattivato (alto), indicando che tutti i Listener indirizzati sono pronti ad accettare le informazioni. Quando NRFD e NDAC sono nello stato corretto, il Talker attiva DAV (attivo basso) per indicare che i dati sul bus sono validi. NRFD viene utilizzato dai Listener per informare il Talker che sono pronti ad accettare i nuovi dati. Il Talker deve attendere che ogni Listener disattivi questa linea (alto), cosa che fanno alla propria frequenza quando sono pronti per ulteriori dati. Ciò garantisce che tutti i dispositivi che accettano le informazioni siano pronti a riceverle. NDAC, anch'esso controllato dagli ascoltatori, indica al talker che ogni dispositivo indirizzato all'ascolto ha accettato le informazioni. Ogni dispositivo rilascia NDAC (alto) alla propria frequenza, ma NDAC non diventa alto fino a quando l'ascoltatore più lento non ha accettato il byte di dati. Questo tipo di handshaking consente a più dispositivi di ricevere dati da un singolo trasmettitore di dati sul bus. Tutti i dispositivi di ricezione attivi partecipano all'handshaking dei dati byte per byte e gestiscono le linee NDAC e NRFD in uno schema "wired-or", in modo che il dispositivo attivo più lento determini la frequenza alla quale avvengono i trasferimenti di dati.
Funzioni IEEE-488
È possibile che le informazioni vengano inserite sulle linee dati e rappresentino un byte di dati o un comando. Se la linea di gestione del bus Attention (ATN) viene attivata durante il trasferimento dei dati, le linee dati trasportano un comando multilinea che deve essere ricevuto da tutti i dispositivi del bus. Se ATN non viene attivato, viene trasferito un byte di dati e solo gli ascoltatori attivi ricevono quel byte.
Il bus IEEE-488 dispone anche di una serie di comandi uniline che vengono trasportati su una singola linea di gestione del bus. Ad esempio, la linea Interface Clear (IFC), quando attivata, invia il comando Interface Clear a ogni dispositivo bus, causando il ripristino dell'interfaccia bus IEEE-488 di ciascuno di essi.
Indirizzamento
Lo standard GPIB consente normalmente di configurare fino a 15 dispositivi all'interno di un sistema. Ciascuno di questi dispositivi ha un indirizzo bus univoco, un numero compreso tra 0 e 30. I limiti di indirizzo possono essere aggirati direttamente utilizzando espansori di bus o indirettamente utilizzando un isolatore o un estensore.
Un dispositivo diventa Addressed to Talk (indirizzato per comunicare) quando riceve un comando multilinea Talk Address Group (TAG) (un byte trasferito con ATN attivato) che specifica il proprio indirizzo dal controller attivo. Allo stesso modo, diventa indirizzato per l'ascolto in caso riceva un comando multilinea Listen Address Group (LAG). Altri comandi di indirizzo includono My Talk Address (MTA) e My Listen Address (MLA), che sono i comandi TAG e LAG del controller attivo. Il gruppo di comandi secondario (SCG) viene utilizzato per fare riferimento a sottoindirizzi o sottofunzioni all'interno di un particolare dispositivo. Ciò consente l'accesso diretto e il controllo dei sottodispositivi o dei sottostrumenti incorporati in dispositivi o strumenti complessi.
Il controller di sistema
Il controller di sistema, solitamente un computer con una scheda IEEE- 488 installata, mantiene sempre il controllo finale del bus. In caso di avvio del sistema per la prima volta, il controller di sistema è il controller attivo e controlla tutte le transazioni del bus. Il controller di sistema può passare il controllo a un dispositivo, rendendolo il nuovo controller attivo, che può quindi passare il controllo a un altro dispositivo. Anche se non è il controller attivo, il controller di sistema mantiene il controllo esclusivo delle linee di gestione del bus Interface Clear (IFC) e Remote Enable (REN) e può assumere il controllo del bus ogni volta che lo desidera.
IEEE-488.2 descrive in dettaglio l'implementazione preferita di molte delle questioni che erano opzionali o non specificate nel primo standard. IEEE-488.1 copre le questioni fisiche chiave (tipo di connettore, lunghezza del bus, numero massimo di strumenti, ecc.), le questioni elettriche (collettore aperto TTL, tristate) e i protocolli di basso livello (indirizzamento dei dispositivi, passaggio del controllo e handshaking/sincronizzazione dei dati). Sono specificate quattro funzioni di base dei dispositivi (Talker, Listener, Controller e System Controller), così come i sottoinsiemi di funzionalità per ogni tipo di dispositivo.
IEEE-488.2
The IEEE-488.2 standard was developed to simplify the basic process of communicating with instruments. IEEE488.2 extends the 488 standard with code, format and protocol standardization and serves to resolve issues left open in 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.
A number of items not covered by 488.1 can cause problems for the test engineer, particularly regarding equipment compatibility and data corruption.
Una serie di elementi non coperti dallo standard 488.1 possono causare problemi al tecnico di collaudo, in particolare per quanto riguarda la compatibilità delle apparecchiature e la corruzione dei dati. Ad esempio, lo standard 488.1 non copre le seguenti specifiche:
- Requisiti minimi di funzionalità dei dispositivi Lo standard IEEE- 488.1 non impone alcun requisito minimo per Talker, Listener, Controller o System Controller. Pertanto, un dispositivo può implementare tutte o solo alcune delle funzionalità definite nello standard 488.1, dando origine a sistemi contenenti dispositivi con livelli di capacità diversi.
In una situazione del genere, il controller non ha alcuna garanzia di un sottoinsieme di comunicazione di base tra i dispositivi del sistema. Ciò può causare confusione per l'operatore del sistema e comunicazioni errate tra i dispositivi. - Codifica dei dati, formati e protocollo dei messaggi Ai sensi del punto 488.1, i messaggi trasferiti tra il controller e un dispositivo sono interamente a discrezione del produttore del dispositivo. L'uso di ASCII, binario o qualche altra forma di codice dati e la scelta dei terminatori come il ritorno a capo o EOI è arbitraria. Inoltre, la sequenza di invio dei comandi e la lettura delle loro risposte non è specificata e varia da strumento a strumento.
- Definizione del byte di stato Lo standard 488.1 definisce un byte di stato e un bit al suo interno, ma il significato degli altri sette bit è a discrezione del progettista del dispositivo. Ciò costringe l'utente a fornire un'interpretazione univoca di ciascun bit del byte di stato. Inoltre, la relazione tra il byte di stato e gli altri registri di stato interni del dispositivo non è specificata.