IEEE-488 bezieht sich auf die Norm Nummer 488 des Institute of Electrical and Electronics Engineers (IEEE) und wird allgemein als GPIB (General Purpose Interface Bus) bezeichnet. Dieser Standard wurde erstmals 1978 festgelegt, 13 Jahre nachdem Hewlett-Packard (HP) aus Palo Alto, Kalifornien, damit begonnen hatte, seinen breiten Messbereich an Instrumenten miteinander und mit „Host”-Computern kommunizieren zu lassen.
Zum Zeitpunkt seiner Entwicklung war das IEEE-488-Protokoll im Vergleich zu den Alternativen besonders gut für Instrumentenanwendungen geeignet. Im Wesentlichen besteht IEEE-488 aus einem „Bus auf einem Kabel”, der sowohl einen parallelen Datenübertragungsweg auf acht Leitungen als auch acht dedizierte Steuerleitungen bereitstellt. Angesichts der damaligen Anforderungen schien die nominale maximale Datenübertragungsrate von 1 Mbyte/s völlig ausreichend zu sein; auch heute noch ist die GPIB-Schnittstelle für viele hochentwickelte und anspruchsvolle Anwendungen leistungsfähig genug.
Allerdings ließ IEEE-488 in seiner ursprünglichen Definition einige Unklarheiten hinsichtlich der Einzelheiten der Interaktion und Kommunikation zwischen Steuerung und Messgerät offen. Diese offenen Fragen sollten den Entwicklern von Messgeräten und Steuerungen zwar einen gewissen Spielraum lassen, führten jedoch zu Verwirrung und Kompatibilitätsproblemen zwischen Geräten verschiedener Hersteller.
In den 1980er Jahren wurde der IEEE-488-Standard um eine neue Schicht erweitert, IEEE-488.2. Der ursprüngliche Standard wurde in IEEE-488.1 umbenannt. IEEE-488.2 legt einen Mindestumfang an Funktionen für „Controller” und „Geräte” sowie spezifischere Inhalte und Strukturen für Nachrichten und Kommunikationsprotokolle fest.
IEEE-488.2 ist vollständig abwärtskompatibel mit IEEE-488.1. Die Verwendung eines „488.2”-kompatiblen Controllers ermöglicht die Nutzung der neuen Protokolle, die mit „488.2”-Geräten verfügbar sind, während gleichzeitig die Fähigkeit zur Kommunikation mit und Steuerung von „488.1”-kompatiblen Geräten und den damit verbundenen Herstellerspezifika erhalten bleibt.
Heute ist der IEEE-488-Bus die am weitesten verbreitete und verwendete Methode für die Kommunikation zwischen wissenschaftlichen und technischen Instrumenten. Die wichtigsten Anbieter von eigenständigen Allzweckgeräten statten ihre Produkte mit IEEE-488-Schnittstellen aus. Auch viele Hersteller von Instrumenten für vertikale Märkte setzen für die Datenkommunikation und -steuerung auf IEEE-488.
GPIB-Controller unterstützen eine Vielzahl von PCs, von IBM PC/XT/AT und PS/2 sowie kompatiblen Geräten bis hin zur vielseitigen Macintosh-Familie. Einige dieser Controller sind Steckkarten, andere sind Protokollkonverter (z. B. SCSI-zu-IEEE-488). Alle bieten mindestens IEEE-488.1-Konformität, und eine wachsende Zahl hält sich an „488.2“.
Allgemeine Informationen zur GPIB-Schnittstelle
Die GPIB-Schnittstelle, manchmal auch als General Purpose Interface Bus (GPIB) bezeichnet, ist ein universelles digitales Schnittstellensystem, das zur Datenübertragung zwischen zwei oder mehr Geräten verwendet werden kann. Sie eignet sich besonders gut zum Vernetzen von Computern und Instrumenten. Einige ihrer wichtigsten Merkmale sind:
- An einen Bus können bis zu 15 Geräte angeschlossen werden.
- Die Gesamtlänge des Busses kann bis zu 20 m betragen, der Abstand zwischen den Geräten bis zu 2 m
- Die Kommunikation erfolgt digital (im Gegensatz zu analog) und die Nachrichten werden byteweise (8 Bit) gesendet
- Die Nachrichtenübertragung erfolgt über Hardware-Handshake
- Die Datenrate kann bis zu 1 Mbyte/Sek. betragen
Mechanische Spezifikationen
Anschluss Der GPIB-Anschluss ist ein 24-poliger Stecker. Geräte am IEEE-488-Bus verfügen über Buchsen, Verbindungskabel über die passenden Stecker. Verbindungskabel verfügen in der Regel über parallel verdrahtete Stecker und Buchsen an jedem Anschluss, um eine parallele Verbindung der Kabel an einem Gerät und/oder eine Verkettung zwischen Geräten zu ermöglichen.
Vernetzungskabel Jeder einzelne IEEE-488-Bus ist auf 15 Geräte einschließlich des Controllers beschränkt. Die GPIB-Spezifikation legt jedoch die Gesamtlänge aller Kabel fest, die zur Vernetzung von Geräten an einem gemeinsamen Bus verwendet werden, auf 20 m oder 2 m mal die Anzahl der miteinander vernetzten Geräte (bis zu 20 m). Die Kabellängen zwischen den Geräten können variieren, solange die Gesamtkabellänge diese Einschränkungen nicht überschreitet. Die Geräte können in einer sternförmigen oder linearen Topologie oder in einer Kombination aus beiden miteinander vernetzt werden, solange die Entfernungsbeschränkungen eingehalten werden. Für maximale Datenübertragungsraten sollte die Gesamtkabellänge auf 15 m reduziert werden, wobei die durchschnittliche Kabellänge zwischen den Geräten 1 m oder weniger betragen sollte.
Elektrische Spezifikation
Busleitungen Der IEEE-488-Bus ist eine Multidrop-Schnittstelle, bei der alle angeschlossenen Geräte Zugriff auf die Busleitungen haben. Die 24 Busleitungen lassen sich in vier Kategorien einteilen:
- Datenleitungen – Acht Leitungen (DIO1 bis DIO8), die zur Übertragung von Informationen (Daten und Befehle) zwischen den Geräten auf dem Bus verwendet werden, jeweils ein Byte nach dem anderen.
- Handshake-Leitungen – Drei Leitungen, die zum Handshake bei der Übertragung von Informationen über die Datenleitungen verwendet werden: DAV: Daten gültig NDAC: Daten nicht akzeptiert NRFD: Nicht bereit für Daten
- Bus-Verwaltungsleitungen – Fünf Leitungen, die für die allgemeine Steuerung und Koordination der Busaktivitäten verwendet werden: ATN: Aufmerksamkeit I FC: Schnittstelle frei REN: Fernaktivierung SRQ: Serviceanforderung EOI: Ende oder Identifizierung
- Masse-Leitungen – Acht Leitungen, die zur Abschirmung und Signalrückführung verwendet werden: Eine Abschirmung Eine allgemeine Signalmasse Sechs logische Masseleitungen, die mit ATN, SRQ, IFC, NDAC, NRFD und DAV gepaart sind
Handshake
Der IEEE-488-Bus verwendet drei Handshake-Leitungen in der Reihenfolge „Wir sind bereit – Hier sind die Daten – Wir haben sie erhalten“, um Informationen über den Datenbus zu übertragen. Das Handshake-Protokoll gewährleistet eine zuverlässige Datenübertragung mit der vom langsamsten Listener festgelegten Geschwindigkeit. Die Handshake-Leitungen sind wie alle anderen GPIB-Leitungen aktiv low. DAV wird vom aktiven Talker gesteuert. Vor dem Senden von Daten überprüft der Talker, ob NDAC aktiviert ist (Low), was anzeigt, dass alle Listener das vorherige Datenbyte akzeptiert haben. Der Talker legt dann ein Byte auf die Datenleitungen und wartet, bis NRFD deaktiviert ist (High), was anzeigt, dass alle adressierten Listener bereit sind, die Informationen zu akzeptieren. Wenn sich NRFD und NDAC im richtigen Zustand befinden, setzt der Talker DAV (aktiv niedrig), um anzuzeigen, dass die Daten auf dem Bus gültig sind. NRFD wird von den Listenern verwendet, um dem Talker mitzuteilen, dass sie bereit sind, die neuen Daten zu akzeptieren. Der Talker muss warten, bis jeder Listener diese Leitung deaktiviert (hoch), was sie mit ihrer eigenen Geschwindigkeit tun, wenn sie für weitere Daten bereit sind. Dadurch wird sichergestellt, dass alle Geräte, die die Informationen annehmen, bereit sind, diese zu empfangen. NDAC, das ebenfalls von den Listenern gesteuert wird, zeigt dem Talker an, dass jedes Gerät, das zum Empfang adressiert ist, die Informationen angenommen hat. Jedes Gerät gibt NDAC (hoch) in seinem eigenen Tempo frei, aber NDAC wird erst dann hoch, wenn der langsamste Listener das Datenbyte angenommen hat. Diese Art des Handshakings ermöglicht es mehreren Geräten, Daten von einem einzigen Transmitter auf dem Bus zu empfangen. Alle aktiven Empfangsgeräte nehmen byteweise am Daten-Handshake teil und betreiben die NDAC- und NRFD-Leitungen in einem „Wired-Or”-Schema, sodass das langsamste aktive Gerät die Geschwindigkeit bestimmt, mit der die Datenübertragung stattfindet.
IEEE-488-Funktionen
Wenn Informationen auf die Datenleitungen gelegt werden, können sie entweder ein Datenbyte oder einen Befehl darstellen. Wenn die Attention-Bus-Management-Leitung (ATN) während der Datenübertragung aktiviert wird, übertragen die Datenleitungen einen mehrzeiligen Befehl, der von jedem Busgerät empfangen werden muss. Wird ATN nicht aktiviert, wird ein Datenbyte übertragen, und nur die aktiven Empfänger empfangen dieses Byte.
Der IEEE-488-Bus verfügt außerdem über eine Reihe von Einzeilenbefehlen, die auf einer einzigen Busverwaltungsleitung übertragen werden. Wenn beispielsweise die Interface Clear (IFC)-Leitung aktiviert ist, sendet sie den Befehl „Interface Clear“ an jedes Busgerät, wodurch jedes Gerät seine IEEE-488-Bus-Schnittstelle zurücksetzt.
Adressierung
Der GPIB-Standard erlaubt normalerweise die Konfiguration von bis zu 15 Geräten innerhalb eines Systems. Jedes dieser Geräte hat eine eindeutige Busadresse, eine Zahl zwischen 0 und 30. Einschränkungen der Adressierung können direkt durch den Einsatz von Bus-Erweiterungen oder indirekt durch den Einsatz eines Isolators oder eines Extenders umgangen werden.
Ein Gerät wird zum „Addressed to Talk” (Adressiert zum Sprechen), wenn es einen Multiline-Befehl „Talk Address Group” (TAG) (ein Byte, das mit aktiviertem ATN übertragen wird) vom aktiven Controller empfängt, der seine eigene Adresse angibt. Ebenso wird es zum „Adressierten zum Hören”, wenn es einen mehrzeiligen Befehl der Listen Address Group (LAG) empfängt. Weitere Adressbefehle sind My Talk Address (MTA) und My Listen Address (MLA), die TAG- und LAG-Befehle des aktiven Controllers. Die sekundäre Befehlsgruppe (SCG) wird verwendet, um auf Unteradressen oder Unterfunktionen innerhalb eines bestimmten Geräts zu verweisen. Dies ermöglicht den direkten Zugriff und die direkte Steuerung der Untergeräte oder Unterinstrumente, die in komplexen Geräten oder Instrumenten eingebettet sind.
Der Systemcontroller
Der Systemcontroller, in der Regel ein Computer mit einer installierten IEEE-488-Karte, behält stets die ultimative Kontrolle über den Bus. Wenn das System zum ersten Mal eingeschaltet wird, ist der Systemcontroller der aktive Controller und steuert alle Bus-Transaktionen. Der Systemcontroller kann die Steuerung an ein Gerät weitergeben, das dann zum neuen aktiven Controller wird, der die Steuerung wiederum an ein weiteres Gerät weitergeben kann. Auch wenn er nicht der aktive Controller ist, behält der Systemcontroller die ausschließliche Kontrolle über die Bus-Management-Leitungen Interface Clear (IFC) und Remote Enable (REN) und kann die Kontrolle über den Bus jederzeit übernehmen.
IEEE-488.2
Der IEEE-488.2-Standard wurde entwickelt, um den grundlegenden Prozess der Kommunikation mit Instrumenten zu vereinfachen. IEEE488.2 erweitert den 488-Standard um eine Standardisierung von Code, Format und Protokoll und dient dazu, offene Fragen aus 488.1 zu klären.
IEEE-488.2 beschreibt die bevorzugte Implementierung vieler Probleme, die im ersten Standard entweder optional oder nicht spezifiziert waren. IEEE-488.1 behandelt die wichtigsten physikalischen Aspekte (Steckertyp, Buslänge, maximale Anzahl von Instrumenten usw.), elektrische Aspekte (Open-Collector-TTL, Tristate) und Low-Level-Protokolle (Geräteadressierung, Steuerungsübergabe und Datenhandshaking/Timing). Es werden vier grundlegende Gerätefunktionen (Talker, Listener, Controller und System Controller) sowie Funktionsuntergruppen für jeden Gerätetyp spezifiziert.
Eine Reihe von Punkten, die nicht von 488.1 abgedeckt sind, können für Testingenieure Probleme verursachen, insbesondere hinsichtlich der Kompatibilität von Geräten und der Datenkorruption.
Beispielsweise deckt 488.1 folgende Spezifikationen nicht ab:
- Mindestanforderungen an die Gerätefunktionen In IEEE- 488.1 sind keine Mindestanforderungen für Talker, Listener, Controller oder System Controller vorgeschrieben. Daher kann ein Gerät alle oder nur einige der in 488.1 festgelegten Funktionen implementieren, was zu Systemen mit Geräten mit unterschiedlichen Leistungsniveaus führt.
In einer solchen Situation hat der Controller keine Garantie für eine grundlegende Kommunikationsuntergruppe zwischen den Systemgeräten. Dies kann zu Verwirrung beim Systembetreiber und zu Fehlkommunikation zwischen den Geräten führen. - Datenkodierung, Formate und Nachrichtenprotokoll Gemäß 488.1 liegen die zwischen dem Controller und einem Gerät übertragenen Nachrichten vollständig im Ermessen des Geräteherstellers. Die Verwendung von ASCII, Binärcode oder einer anderen Form von Datencode und die Wahl von Terminatoren wie Wagenrücklauf oder EOI ist willkürlich. Auch die Reihenfolge der Befehlsübermittlung und des Auslesens der Antworten ist nicht festgelegt und variiert von Gerät zu Gerät.
- Definition des Statusbytes 488.1 definiert ein Statusbyte und ein Bit darin, aber die Bedeutung der anderen sieben Bits liegt im Ermessen des Geräteentwicklers. Dies zwingt den Benutzer dazu, jedes Bit des Statusbytes eindeutig zu interpretieren. Auch die Beziehung zwischen dem Statusbyte und den anderen internen Statusregistern des Geräts ist nicht festgelegt.