IEC-625-Bus

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von HPIB)
Zur Navigation springen Zur Suche springen

IEC-625-Bus ist die internationale Normbezeichnung für einen externen parallelen Datenbus, der vorrangig zur Verbindung von Messgeräten und Peripheriegeräten wie Plottern und Druckern mit einem Computer eingesetzt wird, wobei bis zu 15 Geräte angeschlossen werden können. Die maximale Geschwindigkeit der Standardausführung beträgt 1 MByte/s.

IEEE-488 Buchse

Andere Bezeichnungen

[Bearbeiten | Quelltext bearbeiten]
GPIB, GP-IB
General Purpose Interface Bus, auch General Purpose Instrumentation Bus
HP-IB
Hewlett-Packard Interface Bus
IEEE-488, IEEE488, IEEE-60488, (paralleler) IEC-Bus
IEEE Standard 488
IEEE Standard 60488
ANSI MC 1.1
ANSI Standard MC 1.1

Der Bus wurde in den 1960er Jahren vom Unternehmen Hewlett-Packard (HP) als HP-IB[1] entwickelt und von diesem in den 1970er Jahren zur IEEE-Standardisierung eingereicht. 1975 erfolgte die Standardisierung als IEEE-488-1975. 1978 wurde der Standard überarbeitet und als IEEE-488-1978 veröffentlicht (später umbenannt zu IEEE 488.1, 2004 umbenannt zu IEEE 60488.1:2004). HP-IB entspricht diesem Standard. ANSI übernahm den Standard als ANSI Standard MC 1.1. Die IEC übernahm den Standard als IEC-625.

1987 verabschiedete das IEEE eine Ergänzung, IEEE 488.2 (alias IEEE 60488.2:2004), die den Originalstandard erweitert, nicht ersetzt. Der Originalstandard definierte keine Datenübertragungsprotokolle oder Gerätekommandos. Um den Wildwuchs von Herstellerlösungen einzudämmen, wurde 1990 IEEE 488.2 um die standardisierte Kommandosprache SCPI erweitert. Viele Geräte erfüllen auch heute noch nicht den IEEE488.2-Standard.

Schnellere Varianten sind z. B. als HS488 bekannt, der 2003 als IEEE 488.1-2003 standardisiert wurde. Ältere Geräte sind jedoch teilweise nicht in der Lage, das HS488-Protokoll zu verarbeiten. Bei einer Mischbestückung muss das daher entsprechend berücksichtigt werden.

Grundsätzlicher Aufbau

[Bearbeiten | Quelltext bearbeiten]

Der Bus ist ein paralleler 8-Bit-Bus, mit dem bis zu 15 Geräte verbunden werden können. Zwar können 30 Geräte adressiert werden, die physische Spezifikation gestattet jedoch nur den Anschluss von 15 Geräten pro Bus. Der Bus enthält 16 Signalleitungen, davon acht Datenleitungen, drei zur Steuerung der Datenübertragung (handshake), und fünf Signale zum Bus-Management.

Jedem angeschlossenen Gerät muss einmal von Hand eine der 30 möglichen Adressen zugewiesen werden. Klassischerweise erfolgt das am Gerät mit einem DIP-Schalter. Manche Geräte erlauben es auch, die Adresse in der Firmware des Gerätes einzustellen.

Von den angeschlossenen Geräten darf zu einem Zeitpunkt maximal eines Daten senden (das Gerät, das zuvor als talker definiert wurde), allerdings können die Daten zu mehreren der anderen angeschlossenen Geräte gesendet werden, da alle nicht-sendenden Geräte gleichzeitig vom Bus lesen dürfen (genaugenommen müssen aktiv lesende Geräte zuvor als listener definiert werden).

Durch ein 3-Phasen-Handshake (Bereit/Daten gültig/Daten akzeptiert) bestimmt das langsamste Gerät am Bus die Geschwindigkeit der Übertragung. Daher ist es ungünstig, Geräte mit deutlich unterschiedlichen Geschwindigkeiten an einem Bus zu mischen, es sei denn, der Geschwindigkeitsverlust kann toleriert werden.

Der Standard definiert verschiedene logische Funktionen von Geräten, z. B. Source Handshake (SH), Acceptor Handshake (AH), Service Request (SR), oder Control (C), wobei eine nachgestellte Ziffer die implementierte (Sub-)Funktionalität angibt (0 = keine Funktion). Auf Geräten bzw. in Handbüchern sind diese „Fähigkeiten“ (capabilities) der Schnittstelle in zusammengefasster Form angegeben, z. B. SH1 AH1 T6 L4 SR0 RL1 PP0 DC1 DT0 C0. Der Bus benötigt im Gegensatz zu Standards wie Universal Serial Bus (USB) nicht unbedingt einen Controller. So kann z. B. ein auf talk only eingestelltes Messgerät direkt mit einem auf listen only eingestellten Drucker zur Protokollierung verbunden werden.

IEEE-488-1 definiert nur die Übertragung von Daten, nicht die Kommandos zum Steuern von Peripheriegeräten. Dafür wird ein zusätzliches Protokoll benötigt, z. B. verwendet HP ein Protokoll names CS-80 (Command Set 80) für die eigene Peripherie.

Gruppe Signalname Bezeichnung Beschreibung
Daten DIO1–DIO8 Daten
Handshake NRFD Not Ready for Data Listeners teilen mit diesem Signal mit, dass sie das Datenbyte auf DIO1-8 noch nicht verarbeitet haben.
DAV Data Valid Die Daten auf DIO1-DIO8 sind gültig. Dieses Signal wird vom Talker eine kurze Zeit nach dem Anlegen der Daten aktiviert.
NDAC Not Data Accepted Mit NDAC teilen die Listener mit, dass sie das Datenbyte auf den DIO-Leitungen nicht akzeptiert haben.
Protokoll ATN Attention ATN zeigt an, dass die Datenleitungen ein Kommandobyte (z. B. Adresse) enthalten. Wird zusammen mit EOI für Parallelabfragen (parallel poll) verwendet.
EOI End or Identify Wird zusammen mit dem letzten Byte einer Nachricht aktiviert, um deren Ende anzuzeigen.
IFC Interface Clear Der Systemcontroller kann mit dieser Leitung den Bus zurücksetzen und sich als aktiver Controller etablieren.
REN Remote Enable Wird vom Controller aktiviert, um den Remote-Modus der Busteilnehmer freizugeben. Wird REN deaktiviert, gehen alle Teilnehmer zurück in den Lokalmodus.
SRQ Service Request Busteilnehmer können über dieses Signal dem aktiven Controller mitteilen, dass sie bedient werden wollen – etwa die Funktion einer Interrupt-Leitung bei einem Mikroprozessor.

Steckverbindungen

[Bearbeiten | Quelltext bearbeiten]

IEEE-488 verwendet 24-polige Centronics-Stecker (offizieller Name: „Micro Ribbon Connector“), vielfach als Stecker-Buchse-Kombination an beiden Kabelenden ausgeführt.
Der komplette Bus ist bei diesen Kombinationen zur Buchse durchgeschleift. Dort kann dann wiederum ein identischer Stecker angeschraubt werden. Die Stecker sind somit „stapelbar“, wobei die Anzahl der aufeinander gesteckten Steckverbinder aus mechanischen Gründen üblicherweise auf vier beschränkt ist. Zur Fixierung der Stecker existieren sowohl metrische (M3,5×0,6) als auch zöllige Halteschrauben (UTS), die untereinander nicht zusammenpassen. Gemäß Konvention wird die (heute überwiegend anzutreffende) metrische Variante schwarz, die zöllige dagegen silberfarben ausgeführt. In der Praxis ermöglicht dieses Stecksystem eine flexible Busverkabelung. Sowohl eine sternförmig, als auch eine linear angeordnete Verkabelung, sowie Mischformen dieser sind möglich und zulässig.

Kontaktbelegung:
          +\
          | ---\
          |     ---+
   DIO1   |  1  13 | DIO5
   DIO2   |  2  14 | DIO6
   DIO3   |  3  15 | DIO7
   DIO4   |  4  16 | DIO8
   EOI    |  5  17 | REN
   DAV    |  6  18 | GND (verdrillt mit DAV)
   NRFD   |  7  19 | GND (verdrillt mit NRFD)
   NDAC   |  8  20 | GND (verdrillt mit NDAC)
   IFC    |  9  21 | GND (verdrillt mit IFC)
   SRQ    | 10  22 | GND (verdrillt mit SRQ)
   ATN    | 11  23 | GND (verdrillt mit ATN)
   SHIELD | 12  24 | Signal GND
          |     ---+
          | ---/
          +/

Der IEC-625-Bus verwendet 25-polige D-Sub-Stecker. Diese Variante wurde erst durch den IEC-Standard eingeführt und konnte sich gegen den etablierten 24-poligen Stecker nach IEEE-488 am Markt nicht durchsetzen.

Platinensteckverbindung

[Bearbeiten | Quelltext bearbeiten]
Commodore CBM610 mit IEEE-488-Platinensteckverbindung (rechts)

Commodore führte die Steckverbindung am Computer vielfach als kostengünstige, aber auf Grund der fehlenden Verschraubungsmöglichkeit unpraktische Platinensteckverbindung aus. Diese ist so belegt, dass ein 24-poliger Standardstecker per Flachbandkabel direkt angeschlossen werden kann:

  Platinenkerbe       Platinenkerbe      1 - DIO1    9 - IFC    E - REN
       |                   |             2 - DIO2   10 - SRQ    F - GND
                             1  1  1     3 - DIO3   11 - ATN    H - GND
  1  2  3  4  5  6  7  8  9  0  1  2     4 - DIO4   12 - GND    J - GND
  =  =  =  =  =  =  =  =  =  =  =  =     5 - EOI     A - DIO5   K - GND
 ###### ################### #########    6 - DAV     B - DIO6   L - GND
  =  =  =  =  =  =  =  =  =  =  =  =     7 - NRFD    C - DIO7   M - GND
  A  B  C  D  E  F  H  J  K  L  M  N     8 - NDAC    D - DIO8   N - GND

DIN-Stecker nach DIN 41524

[Bearbeiten | Quelltext bearbeiten]

Ebenfalls von Commodore gab es eine proprietäre serielle Variante des Busses unter der Bezeichnung CBM-Bus, bei der runde DIN-Stecker nach DIN 41524 verwendet wurden.

Anbindung an den PC

[Bearbeiten | Quelltext bearbeiten]
GPIB-Controller als PC-Steckkarte für einen XT-Bus-Slot, passt auch in einen ISA-Bus-Slot

Schon früh wurden Steckkarten für die Verbindung des GBIP mit IBM-kompatiblen PC produziert. Bereits für den XT-Bus sind GPIB-Controller als Steckkarten verfügbar. Später wurden Steckkarten für den ISA-Bus und den PCI-Bus produziert. Mittlerweile sind auch GPIB-USB-Adapterkabel mit integrierter Elektronik verfügbar, womit die Abhängigkeit von entsprechenden Steckplätzen im PC entfällt und nur noch ein USB-Anschluss erforderlich ist. Damit wird der GPIB auch für moderne Computer ohne PCI-Steckplätze und das Mobile Computing zugänglich.

Der Bus ist heute in Laboratorien zur Steuerung und Kontrolle von Messgeräten noch weit verbreitet. Jedoch ist er nicht auf diese Verwendung beschränkt, er ist ein general purpose (für allgemeine Verwendung vorgesehener) Bus, der lange Zeit auch als Standard-Anschluss für Plotter und Drucker diente. Auch Massenspeicher, von Diskettenlaufwerken über Bandlaufwerke bis hin zu Festplatten, wurden über IEEE-488 angeschlossen, z. B. bei HP-Workstations der 1970er und 1980er Jahre.

Der Commodore PET/CBM besaß diesen Bus ebenfalls und nutzte ihn vor allem für Diskettenlaufwerke und Drucker. Die späteren Commodore-8-Bit-Modelle vom VC-20 bis zum C128 verwendeten die proprietäre serielle Variante CBM-Bus.

Commons: IEEE 488 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Patent US5327121A: Three line communications method and apparatus. Angemeldet am 28. Dezember 1992, veröffentlicht am 5. Juli 1994, Anmelder: Hewlett Packard Co, Erfinder: Thomas L. Antles II.