IEEE-488 | |
---|---|
| |
Sorts | däck |
Berättelse | |
Utvecklaren | HP |
Tagit fram | 1965 |
avsatt | IEEE-488.2 |
Förskjuten | HP-IB, GPIB (1975) |
Specifikationer | |
Hot swap | Ja |
Dataalternativ | |
Bitbredd | 8 bitar |
Bandbredd | 8 Mb/s |
Max. enheter | femton |
Protokoll | parallell |
Mediafiler på Wikimedia Commons |
IEEE-488 ( Standard Digital Interface for Programmable Instrumentation ) är en internationell standardspecifikation som beskriver ett gränssnitt för anslutning av digitala mätinstrument till en buss .
Utvecklad av Hewlett-Packard i slutet av 1960-talet för användning i automatiserad testutrustning ( ATE ) under namnet Hewlett-Packard Interface Bus (HP-IB) [ 1] . 1975 standardiserades den av American Institute of Electrical and Electronics Engineers som IEEE-488, och används fortfarande i denna egenskap. IEEE-488 är även känd som GPIB ( General Purpose Interface Bus ), IEC-625 ( IEC 625.1) och andra namn . I den liknande sovjetiska standarden GOST 26.003-80 "Gränssnittssystem för mätanordningar med byte-seriell, bitparallell informationsutbyte", kallas det "flertrådig offentlig trunkkanal".
Varje enhet på bussen har en unik fembitars primäradress som sträcker sig från 0 till 30 (således är ett möjligt antal enheter 31). Enhetsadresser behöver inte vara sammanhängande, utan måste vara distinkta för att undvika konflikter. Standarden tillåter upp till 15 enheter att anslutas till en tjugometers fysisk buss, med kopplingar av kedjetyp för förlängning [2] [3] .
Aktiva expandrar låter dig utöka bussen och använda upp till 31 teoretiskt möjliga enheter på den logiska bussen.
Tre olika typer av enheter är definierade som kan anslutas till bussen: "lyssnare" (lyssnare), "talare" (högtalare) och / eller kontroller (mer exakt, enheter kan vara i tillståndet "lyssnare" eller "talare", eller vara av typen "controller"). En enhet i tillståndet "lyssnare" läser meddelanden från bussen; en enhet i tillståndet "talare" skickar meddelanden till bussen. Vid varje given tidpunkt kan det finnas en och endast en enhet i tillståndet "talare", medan det kan finnas ett godtyckligt antal enheter i tillståndet "lyssnare". Kontrollanten fungerar som en medlare och bestämmer vilken av enheterna som för närvarande är i tillstånden "talare" och "lyssnare". Flera kontroller kan kopplas till bussen samtidigt. I det här fallet är en av styrenheterna (vanligtvis placerad på GPIB-gränssnittskortet) ansvarig styrenhet (Controller-in-Charge, CIC) och delegerar sina funktioner till andra styrenheter efter behov.
Kontroll- och dataöverföringsfunktionerna är logiskt åtskilda; avsändaren kan hänvisa till en enhet som talare och en eller flera enheter som lyssnare utan att behöva delta i dataöverföringen . Detta gör det möjligt att dela samma buss över flera kontroller. Vid varje given tidpunkt kan endast en bussenhet vara aktiv som ansvarig styrenhet.
Data överförs över bussen under en trefas klar/tillgänglig/accepterad anslutningsetableringsprocedur där den långsammaste deltagande enheten bestämmer transaktionshastigheten. Den maximala dataöverföringshastigheten var 1 MB/s i originalutgåvan av standarden och har höjts till 8 MB/s i tillägg till standarden.
Elektriskt är IEEE-488 en åttabitars parallellbuss som innehåller sexton signallinjer (åtta dubbelriktade för data, tre för anslutning, fem för bussstyrning) plus åtta returledningar för jord.
Alla signallinjer använder negativ logik: den största positiva spänningen tolkas som en logisk "0", och den största negativa spänningen tolkas som en logisk "1". Datalinjer (DIO) är numrerade från 1 till 8, och datalinjer (LD) i GOST är numrerade från 0 till 7.
De fem kontrolllinjerna för gränssnittet talar om för enheter som är anslutna till bussen vilka åtgärder de ska vidta, vilket läge de ska vara i och hur de ska svara på GPIB-kommandon.
GPIB-kommandon överförs alltid med det klassiska IEEE-488.1-protokollet. Standarden definierar formatet för kommandon som skickas till verktyg och formatet och kodningen av svar. Kommandon är vanligtvis förkortningar av motsvarande engelska ord. Frågekommandon slutar med ett frågetecken. Alla obligatoriska kommandon har en asterisk (*). Standarden definierar den minsta uppsättning möjligheter som varje verktyg måste ha, nämligen: ta emot och överföra data, skicka en serviceförfrågan och svara på "Rensa gränssnitt"-signalen. Alla kommandon och de flesta data använder 7-bitars ASCII -uppsättningen , där den 8:e biten inte används eller används för paritet.
För att ta emot information från enheter som är anslutna till bussen och konfigurera om bussen, skickar styrenheten kommandon i fem klasser: "Uniline" ("single-bit"), "Universal Multiline" ("multi-bit allmänt ändamål"), "Address Multiline" " ("multi-bit adress") , "Talk Address Group Multiline" ("multi-bit gruppadress sändning") och "Listen Address Group Multiline" ("multi-bit grupp adress mottagning").
Beskrivning | Escape-sekvens | IEEE-488.2 krav |
---|---|---|
Skicka ATN-kommando sant | skicka kommando | Nödvändigtvis |
Ställa in adressen för att skicka data | Skicka inställning | Nödvändigtvis |
Skicka kommandon ATN-falskt | Skicka databytes | Nödvändigtvis |
Skickar ett programmeddelande | skicka | Nödvändigtvis |
Ställa in adressen för att ta emot data | Ta emot inställningar | Nödvändigtvis |
Ta emot data ATN-falskt | Ta emot svarsmeddelande | Nödvändigtvis |
Får ett svarsmeddelande | motta | Nödvändigtvis |
IFC-linjeaktivering | Skicka ifc | Nödvändigtvis |
Rengöring av apparater | Enhet Rensa | Nödvändigtvis |
Ställa in enheter offline | Aktivera lokala kontroller | Nödvändigtvis |
Ställa in apparater till fjärrkontrollläge | Aktivera fjärrkontroll | Nödvändigtvis |
Ställa in enheter i fjärrkontrollläge i låst läge | Ställ in RWLS | Nödvändigtvis |
Ställer in enheter offline i låst läge | Skicka LLO | Nödvändigtvis |
Läs statusbyte 488.1 | Läs Statusbyte | Nödvändigtvis |
Skicka ett utlösningsmeddelande till en grupp (GET) | utlösare | Nödvändigtvis |
Överför kontrollen till en annan enhet | Passkontroll | Nödvändigtvis |
Parallell undersökning | Utför parallellundersökning | |
Enhetskonfiguration för parallell polling | Parallell undersökningskonfiguration | |
Upphävning av möjligheten till parallellavröstning | Avkonfigurera parallellundersökning |
Den andra komponenten i kommandosystemet är Programmable Instrument Command Standard, SCPI .( Eng. Standard Commands for Programming Instruments ), antagen 1990 . SCPI definierar standardregler för att förkorta nyckelord som används som kommandon. Nyckelord kan användas i antingen långa (till exempel MEASure - mått) eller korta bokstäver (MEAS). Kommandon i SCPI-format har ett kolon som prefix. Kommandoargument separeras med kommatecken. SCPI-standarden fungerar på en programmerbar instrumentmodell. Modellens funktionella komponenter inkluderar ett mätsystem (undersystem "ingång", "sensor" och "kalkylator"), ett signalgenereringssystem (undersystem "kalkylator", "källa" och "utgång") och undersystem "format", " display", "minne" och "trigger". Naturligtvis saknar vissa verktyg vissa system eller delsystem. Till exempel har ett oscilloskop inget signalgenereringssystem, men en programmerbar digital sekvensgenerator har inget mätsystem. Kommandon för att arbeta med komponenter i system och undersystem är hierarkiska och består av underkommandon separerade med kolon.
Ett exempel på ett kommando som konfigurerar en digital multimeter för att mäta växelspänning upp till 20 V med en noggrannhet på 1 mV och samtidigt begär mätresultatet [1] :
:MÅT:SPÄNNING:AC?20,0,001
Protokoll kombinerar uppsättningar av kontrollsekvenser för att utföra en fullständig mätoperation. 2 obligatoriska och 6 valfria protokoll är definierade. RESET-protokollet säkerställer att alla instrument initieras. ALLSPOLL-protokollet pollar varje fixtur i sekvens och returnerar en statusbyte för varje fixtur. PASSCTL- och REQUESTCTL-protokollen tillhandahåller överföring av styrning av bussen till olika enheter. TESTSYS-protokollet implementerar en självtestfunktion för varje enhet.
FINDLSTN- och FINDRQS-protokollen stöder GPIB-systemhantering. I det här fallet används de möjligheter som finns i 488.1-standarden. Styrenheten exekverar FINDLSTN-protokollet, genererar en lyssnaradress och kontrollerar närvaron av en enhet på bussen baserat på tillståndet för NDAC-linjen. FINDLSTN-protokollet returnerar en lista över lyssnare, och exekvering av detta protokoll innan programmet börjar köra säkerställer att den aktuella systemkonfigurationen är korrekt. FINDRQS-protokollet använder möjligheten att testa SRQ-linjen. Inmatningslistan över enheter kan prioriteras. Detta säkerställer att de mest kritiska enheterna servas först.
Nyckelord | namn | Krav |
---|---|---|
ÅTERSTÄLLA | Systeminstallation | Nödvändigtvis |
ALLSPOLL | Sekventiell enhetsförhör | Nödvändigtvis |
FINDRQS | Hitta ett instrument som kräver FINDRQS | Frivillig |
PASSCTL | Överföring av kontroll | Frivillig |
REQUESTCTL | Ledningsförfrågan | Frivillig |
FIDLSTN | Sök efter lyssnare | Frivillig |
TESTSYS | System autotest | Frivillig |
SETADD | Adressinställning | Valfritt, men kräver FIDLSTN |
stift nr [4] | namn enligt IEEE | namn enligt GOST | Ändamål | ||
---|---|---|---|---|---|
ett | Data input/output bit. | DIO1 | Datarad 0 | LD0 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
2 | Data input/output bit. | DIO2 | Datarad 1 | LD1 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
3 | Data input/output bit. | DIO3 | Datarad 2 | LD2 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
fyra | Data input/output bit. | DIO4 | Datarad 3 | LD3 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
5 | Avsluta eller identifiera. | EOI | Slut på överföringslinjen | KP | Använde "talare" för att identifiera slutet av meddelandet. Styrenheten bekräftar denna signal för att initiera parallell avfrågning av enheter anslutna till bussen. |
6 | data giltiga. | DAV | Rad "medföljande data" | SD | Används av en talareenhet för att meddela lyssnarenheter att informationen som förbereds av talaren finns på datalinjerna och är giltig. |
7 | Inte redo för data. | NRFD | Raden "klar att ta emot" | GP | Används av "lyssnar"-enheter för att informera "talar"-enheten att de inte är redo att ta emot data. I det här fallet slutar "talar"-enheten att utbyta information tills alla enheter av typen "lyssnare" är redo att fortsätta dialogen. Bussen är implementerad på principen om "monterad ELLER", vilket gör att varje lyssnare som tas separat kan stänga av hela bussen. |
åtta | Ej data accepteras. | NDAC | Rad "data mottagen" | DP | Används av "lyssnar"-enheter och talar om för "talar"-enheten att data har tagits emot av alla destinationer. När denna signal inte är aktiv kan talaren vara säker på att alla klienter framgångsrikt har läst data från bussen och kan fortsätta med överföringen av nästa byte med data. |
9 | gränssnitt tydligt. | IFC | Rad "rensa gränssnitt" | OI | Signalen används för att initiera eller återinitiera bussen och återställa gränssnittet. |
tio | serviceförfrågan. | SRQ | Servicebegäran linje | ZO | Signalen är tillgänglig för alla bussklienter. Den genereras av enheten när det är nödvändigt att överföra information till den registeransvarige om förändringar i enhetens funktion (tillstånd) och behovet av att överföra dessa data till den registeransvarige för att kunna fatta ett beslut om förändringar i driften av enheten. systemet som helhet. På denna signal överför styrenheten, om möjligt, enheten som skickade den till "talar"-tillståndet och överför dataöverföringsfunktioner till den. |
elva | Uppmärksamhet. | ATN | Linje "kontroll" | UPP | Bussstyrenheten använder linjen för att tala om för klienter att det finns kommandon på bussen, inte data. |
12 | Skydda | SKYDDA | Skärm | SP UPP | Tråden från stift 12 är tvinnad med tråden från stift 11 |
13 | Data input/output bit. | DIO5 | Datarad 4 | LD4 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
fjorton | Data input/output bit. | DIO6 | Datarad 5 | LD5 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
femton | Data input/output bit. | DIO7 | Datarad 6 | LD6 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
16 | Data input/output bit. | DIO8 | Datarad 7 | LD7 | En tråd i CPC för ett gränssnittssystem som används för att överföra information mellan anslutna enheter. |
17 | fjärraktivering. | REN | Rad "fjärrkontroll" | DU | Växlar enheten som är ansluten till bussen till läget för att utföra kommandon från bussen (och inte från kontrollpanelen) och vice versa. Den genereras av styrenheten för att aktivera driften av enheter som är anslutna till bussen enligt kommandon som tas emot från styrenheten. |
arton | (tråd snodd med DAV) | GND | Tvinnat par LED-signalledning | SP SD | En av de "logiska jordledningarna" vrids med signalledningen för att minimera ömsesidig interferens mellan signallinjerna, signalledningarnas känslighet för externt brus och överföringen av gränssnittssignaler till den yttre miljön. |
19 | (tråd snodd med NRFD) | GND | Tvinnat par av GP-signalledning | SP GP | Liknande |
tjugo | (tråd tvinnad med NDAC) | GND | Tvinnat par av DP-signalledning | SP DP | Liknande |
21 | (tråd snodd med IFC) | GND | Tvinnad trådsignalledning OI | SP OI | Liknande |
22 | (tråd tvinnad med SRQ) | GND | Tvinnat par av trådsignalledning ZO | SP ZO | Liknande |
23 | (tråd tvinnad med ATN) | GND | Tvinnat par av UE-signalledning | SP UPP | Liknande |
24 | Logisk grund | "Logic Land" |
IEEE-488 specificerar en 24-stifts mikrokontakt av Amphenol -bandtyp för anslutning. Mikrokontakten av bandtyp har ett D-format metallhölje som är större än D-subminiatyrkontakten . Kontakten kallas ibland felaktigt för en " Centronics-kontakt " eftersom samma typ av 36-stiftskontakt användes av skrivartillverkare för sina respektive skrivaranslutningar.
En ovanlig egenskap hos IEEE-488-kontakten är att den vanligtvis använder en "dubbelhövdad" design, med en kontakt på ena sidan och en hona på den andra sidan av kontakten (i båda ändarna av kabeln). Detta möjliggör anslutning av kontakter för en enkel kedjekoppling. De mekaniska egenskaperna hos kopplingen begränsar antalet kontakter i en stapel till fyra eller färre.
De hålls på plats med antingen UTS ( Unified Thread Standard ) gängade skruvar (nu till stor del föråldrade) eller M3,5×0,6 metriska skruvar. Enligt konvention är de metriska skruvarna svartmålade så att två kontakter av olika typer inte skär varandra.
IEC-625-standarden kräver användning av 25-stifts D-subminiatyrkontakter, samma som används av en IBM PC-kompatibel dator för parallellporten . Denna kontakt har, jämfört med den 24-poliga kontakttypen, inte vunnit någon betydande acceptans på marknaden.
I slutet av 1960-talet tillverkade Hewlett-Packard (HP) olika mätverktyg och testutrustning som digitala multimetrar och logiska signalanalysatorer. De använde HP Interface Bus (HP-IB) för att upprätta kommunikation mellan sig själva och datorn .
Bussen var relativt enkel, baserad på den dåvarande tekniken, med enkla parallella elbussar och några enskilda styrlinjer. Till exempel var HP 59501 Power Supply Programmer och HP 59306A Relay Actuator relativt enkla kringutrustning som använde HP-IB, implementerade endast på TTL-logik och använde inte mikroprocessorer .
Andra tillverkare har effektivt kopierat HP-IB och kallar deras design för General Purpose Interface Bus (GPIB), vilket skapar de facto industristandarden för automatiserad mätkontroll. När populariteten för GPIB ökade, ökade också dess standardisering av internationella standardiseringsorganisationer.
1975 standardiserade IEEE bussen som "Standard Digital Interface for Programmable Instrumentation" IEEE-488 (nu IEEE-488.1). Den formaliserade de mekaniska, elektriska och grundläggande parametrarna för GPIB-protokollet, men sa ingenting om kommandot eller dataformatet.
1987 introducerade IEEE "Standard Codes, Formats, Protocols and Common Commands" IEEE-488.2, vilket omdefinierade den tidigare specifikationen som IEEE-488.1. IEEE-488.2 gav en grundläggande syntax och format för konventioner som enhetsoberoende kommandon, datastrukturer, felprotokoll och liknande. IEEE-488.2, byggd på IEEE-488.1 utan att ersätta den; utrustning kan överensstämma med 488.1 utan att uppfylla 488.2. Den nya standarden innehåller två delar: IEEE-488.1, som beskriver hårdvaran och lågnivåinteraktionen med bussen, och IEEE-488.2, som definierar i vilken ordning kommandon sänds över bussen. IEEE-488.2-standarden reviderades igen 1992. Vid tiden för antagandet av den första versionen av standarden fanns det ännu ingen standard för verktygsspecifika kommandon. Kontrollkommandon för samma klass av instrument (som en multimeter) varierade mycket mellan tillverkare och även modeller.
1990 introducerades "Programmable Instrument Command Standard". [5] SCPIlagt till universella standardkommandon och en serie verktygsklasser med överföring av klassspecifika kommandon. Även om SCPI utvecklades baserat på IEEE-488.2-standarden, kan den enkelt anpassas till vilken annan (icke-IEEE-488.1) hårdvarubas.
IEC har parallellt med IEEE utvecklat en egen standard - IEC-60625-1 och IEC-60625-2.
Motsvarande ANSI- standard var känd som "ANSI Standard MC 1.1" .
2004 kombinerade IEEE och IEC sina respektive standarder till IEEE/IEC "Dual Protocol" IEC-60488-1, där Standard for Higher Performance Protocol for the Standard Digital Interface for Programmable Instrumentation - Del 1: Allmänt [6] ersattes IEEE -488.1/IEC-60625-1 och IEEE-488.2/IEC-60625-2. [7] IEC-60488-2 har ersatts i enlighet därmed med del 2: Koder, format, protokoll och vanliga kommandon [8]
Det totala antalet adresser till mottagare och informationskällor i systemet bör inte överstiga 961 med en två-byte organisation.
Bilaga nr 8 förklarar faktiskt frånvaron av feldetekteringsverktyg i standarden:
Behovet av feldetektering i enheter varierar kraftigt beroende på den bullriga miljön, vikten av data som passerar genom gränssnittet, typen av enhetsfunktioner som är aktiva vid datakällan och sänkan och den allmänna tillämpningen av systemet där enheten är Begagnade.
Specialiserade och specifika metoder för feldetektering ingår inte i denna standard. Den lämpliga feldetekteringsmetoden beror på den specifika applikationen eller systemet och specificeras därför inte i denna standard.
Några av de allmänna punkterna nedan tjänar till att illustrera fördelarna med konventionella feldetekteringsverktyg.
Paritetsbiten på LD7 för att detektera fel som finns på LD0-LD6 av en 7-bitars kod [9] ger minimala medel för feldetektering och kräver minimal hårdvara. Paritetskontroll låter dig upptäcka ett enda fel inom grupperingen av bitar i vilken byte som helst. Flera felaktiga bitar inom en enda byte kanske inte upptäcks.
Den longitudinella paritetsbiten på varje LD-linje i slutet av en rad eller datablock kan användas på samma sätt som en paritetsbit (för samma syfte och samma resultat).
Cyklisk styrning som använder redundanta koder är mer komplex och ökar avsevärt kostnaden för kontroll jämfört med ovanstående metoder. Olika cykliska styrkoder kan användas för att upptäcka olika typer av fel. Särskilda cykelkontrollrörelser omfattas inte av denna standard.
National Instruments har introducerat en bakåtkompatibel tillägg till IEEE-488.1, ursprungligen kallad High Speed GPIB (HS-488). Med hjälp av standardkablar och hårdvara förbättrar HS-488 bussens prestanda genom att eliminera fördröjningar i samband med behovet av att vänta på en bekräftelse i IEEE-488.1 (DAV/NRFD/NDAC) tri-signalschema, där den maximala genomströmningen inte överstiger 1,5 MB/s. Således var det möjligt att öka dataöverföringshastigheten till 8 MB/s, även om hastigheten minskade när fler enheter kopplades till bussen. Detta återspeglades i standarden 2003 (IEEE-488.1-2003) [10] .
Produkter tillverkade av National Instruments är inriktade på automatisering av laboratoriearbetsstationer . Dessa är sådana klasser av mätinstrument som analysatorer-testare, kalibreringssystem , oscilloskop och strömförsörjning baserade på GPIB-bussen [11] . Modulära lösningar (VXI) råder för multifunktionssystem, och de mest populära enheterna här är alla typer av multiplexeromkopplare. Multimetrar är lika representerade i båda fallen.
Komplexa mätsystem tillverkas av HP, Wavetek, B&K Precision (Cobra Electronics), Kinetic Systems, Inc. 1993 fanns mer än hälften av GPIB-gränssnitten på Sun , SGI , IBM RISC System/6000 och HP-arbetsstationer. De använder mjukvaruverktyg på nivå med speciella språk som förkortat testspråk för alla system(ATLAS) och allmänna språk som Ada [12] .
HP-utvecklarnas uppmärksamhet var fokuserad på att utrusta gränssnittet med digital instrumentering, designerna planerade inte särskilt att göra IEEE-488 till ett gränssnitt för kringutrustning för stordatorer. Men när HP:s första mikrodatorer behövde ett gränssnitt till kringutrustning ( hårddiskar , bandenheter , skrivare , plottrar , etc.), var HP-IB lättillgänglig och lätt att anpassa för detta ändamål.
Datorer tillverkade av HP använde HP-IB, såsom HP 9800 [13] , HP 2100-serien [14] och HP 3000-serien [15] . Några av de tekniska miniräknare som tillverkades av HP på 1980-talet, såsom HP-41 och HP-71B-serien, hade också IEEE-488-kapacitet, via den valfria HP-IL/HP-IB-gränssnittsmodulen.
Andra tillverkare har också antagit Universal Interface Bus för sina datorer, till exempel Tektronix 405x-linjen.
Commodore PET använde IEEE-488-bussen med en icke-standard kortkontakt för att ansluta sina externa enheter. Commodore ärvde åttabitars datorer som VIC-20, C-64 och C-128, som använde ett seriellt gränssnitt med en rund DIN-kontakt, för vilken de behöll IEEE-488-gränssnittsprogrammering och terminologi.
Medan IEEE-488-busshastigheten har höjts till 10 MB/s för vissa applikationer, har bristen på kommandoprotokollstandarder begränsat tredjepartserbjudanden och interoperabilitet . I slutändan ersatte snabbare och mer kompletta standarder (som SCSI ) IEEE-488 i kringutrustning.
Datorbussar och gränssnitt | |
---|---|
Grundläggande koncept | |
Processorer | |
Inre | |
Anteckningsböcker | |
Driver | |
Periferi | |
Utrustningshantering | |
Universell | |
Videogränssnitt | |
Inbyggda system |
IEEE- standarder | |||||||
---|---|---|---|---|---|---|---|
Nuvarande |
| ||||||
Serie 802 |
| ||||||
P-serien |
| ||||||
Ersatt | |||||||
|