- GPIB
-
Der 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.
Inhaltsverzeichnis
Andere Bezeichnungen
- GPIB, GP-IB
- General Purpose Interface Bus, auch General Purpose Instrumentation Bus
- HP-IB™
- Hewlett-Packard Interface Bus
- IEEE-488, IEEE488, IEEE-60488
- IEEE Standard 488
- IEEE Standard 60488
- ANSI MC 1.1
- ANSI Standard MC 1.1
Historie
Der Bus wurde in den 1960er Jahren von der Firma Hewlett-Packard (HP) als HP-IB entwickelt, und von dieser Ende der 1970er Jahre 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. Im Rahmen einer Studienarbeit der BA Mannheim (PC-Messkarte) wurde 1992 eine weitere Ergänzung der IEEE 488.2 vorgenommen, wodurch insbesondere im Bereich der Datenübertragungsprotokolle neue Erkenntnisse eingearbeitet wurden.
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
Der Bus ist ein paralleler 8-Bit-Bus, mit dem bis zu 15 Geräte verbunden werden können. Es können zwar 30 Geräte adressiert werden, die physikalische 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.
Den angeschlossenen Geräten muss einmal von Hand eine der 30 möglichen Adressen zugewiesen werden. Klassischerweise erfolgt das am Gerät mit einem DIP-Switch. Moderne Geräte erlauben gelegentlich 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 moderneren Standards wie 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.
Bus-Signale
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 noch nicht verarbeitet 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
- IEEE-488 verwendet 24-polige Centronics-Stecker, 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 4 beschränkt ist. Zur Fixierung der Stecker existieren sowohl metrische (M3.5×0,6) als auch zöllige Halteschrauben, die untereinander nicht zusammenpassen. Per 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. Es ist sowohl eine sternförmige als auch eine linear angeordnete Verkabelung möglich, und auch Mischformen sind 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.
- Commodore führte die Steckverbindung am Computer vielfach als kostengünstige, aber unpraktische Platinensteckverbindung aus, die so belegt ist, dass ein 24-poliger Standardstecker per Flachkabel 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
- Ebenfalls von Commodore gab es eine proprietäre serielle Variante des Busses unter der Bezeichnung CBM-Bus, bei der runde DIN-Stecker verwendet wurden.
Anwendung
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 Disketten-Laufwerken ü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-Modelle vom VC-20 bis zum C128 verwendeten die proprietäre serielle Variante CBM-Bus.
Siehe auch
- 60488.1: 2004 (488.1-2003) Higher performance protocol for the standard digital interface for programmable instrumentation – Part 1: General [ISBN 2-8318-7440-8]
- 60488.2-2004 Standard digital interface for programmable instrumentation – Part 2: Codes, formats, protocols and common commands [ISBN 2-8318-7441-6]
- CAMAC
- LAN eXtensions for Instrumentation (LXI)
- VXI
- PCI eXtensions for Instrumentation (PXI)
- HS488
Weblinks
- http://www.zock.com/8-Bit/D_IEEE488.HTML
- http://www.techsoft.de/htbasic/tutgpib.htm (Englisch)
- http://www.hit.bme.hu/people/papay/edu/GPIB/tutor.htm (Englisch)
- http://www.interfacebus.com/Design_Connector_GPIB.html (Englisch)
- http://linux-gpib.sourceforge.net/ (Linux-Treiber für zahlreiche GPIB-Karten)
- http://zone.ni.com/devzone/cda/pub/p/id/280 (Die Zukunft von GPIB)
Wikimedia Foundation.