Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » calculatoare
Utilizarea interfetei paralele GPIB in sistemele de achizitii de date

Utilizarea interfetei paralele GPIB in sistemele de achizitii de date


Utilizarea interfetei paralele GPIB in sistemele de achizitii de date

1. Scopul lucrarii

In cadrul lucrarii se va studia modul in care se configureaza un sistem de achizitii de date care are ca standard de comunicatie GPIB.
Studiul comunicatiei pe magistrala GPIB va debuta prin prezentarea modului de instalare si configurare a interfetei. In continuare se vor analiza din punct de vedere teoretic si practic standardele IEEE 488.1 si IEEE 488.2 - SCPI.

2. Definitii

GPIB (General Purpose Interface Bus) - interfata de comunicatie dedicata interconectarii instrumentelor de masurare programabile intr-un sistem de masurare condus de calculator
IEEE 488.1 - Specificatia tehnica in cadrul careia sunt prezentate caracteristile logice, electrice si mecanice impuse unui sistem de masurare automat prin interfata GPIB
IEEE 488.2 - Specificatia tehnica in cadrul careia sunt extinse precizarile specificatiei IEEE 488.1, completate cu definirea precisa a modului de comunicare controller/instrumente si intrumente/instrumente
SCPI (Standard Commands for Programmable Instruments) - Specificatia tehnica prin care se precizeaza un set de comenzi unic si complet pentru programarea claselor de instrumente cu interfata programabila
Controller (Coordonator) - un echipament asemanator microprocesorului intr-un calculator, capabil a dirija pachetele de date catre/dinspre instrumente
Listener (Ascultator) - un instrument capabil a capta datele dupa magistrala atunci cand ii sunt adresate de catre controller sau vorbitor
Talker (Vorbitor) - un instrument capabil a transmite date pe magistrala atunci cand este adresat de controller



3. Studiul standardelor IEEE 488.1, IEEE 488.2 si SCPI

3.1. Structura unui sistem automat de masurare

Structura unui sistem automat de masurare utilizand specificatiile GPIB este prezentata in figura 1 avand in componenta:

instrumente de masurare echipate cu interfata programabila;
cablu de conexiune special;
placa dedicata functiei de controller, care poate fi plasata intr-un slot liber al calculatorului;
drivere software pentru instrumente si controller;
aplicatie software care gestioneaza protocolul de comunicatie, achizitia, stocarea, analiza si afisarea informatiilor.

3.2. Mod de configurare si caracteristici

numarul instrumentelor interconectate: maxim 15 fara amplicatoare de magistrala.
modul de conectare: stea, liniar sau combinatii ale acestora avand lungimea totala a cablurilor de conectare maxim 20 m.

linii de semnal: 16 active, dintre care 8 pentru transferul datelor si 8 pentru managementul comunicarii (Figura 3);

schema de transfer a unui mesaj: byte serial, bit paralel, asincron utilizand 3 fire pentru protocolul de comunicatie (handshake);
viteza de transfer a datelor: 1 Mb/s pentru distante reduse, 250 . 500 kb/s
pentru lungimea maxima a cablurilor si numar maxim de instrumente conectate;
mod de adresare: adresa primara, adresa secundara.

Caracteristicile unui instrument definite ca stari masina conform lui IEEE 488.1 sunt:
T/TE - instrumentul are capacitatea de a vorbi (vorbitor/vorbitor extins);
L/LE - instrumentul are capacitatea de a asculta (ascultator/ascultator extins);
SH - instrumentul poate transmite comenzi sau date utilizand protocolul specific pe 3 fire (sursa de handshake);
AH - instrumentul poate receptiona comenzi sau date utilizand protocolul specific pe 3 fire (acceptor de handshake);
R/L - instrumentul permite comutarea intre comanda data de la panoul frontal la cea de la distanta;
SR - instrumentul poate transmite un mesaj de intrerupere catre controller;
PP - instrumentul permite modul de identificare paralela la o interogare a controller-ului ca urmare a unei cereri de intrerupere;
DC - instrumentul permite trecerea intr-o stare initiala;
DT - instrumentul permite declansarea executiei unor operatii ca urmare a unei comenzi primite pe magistrala;
C - este specifica controller-ului si reprezinta capacitatea acestuia de a transmite adrese, comenzi universale catre instrumentele conectate pe magistrala pe care o conduce.
Pentru a exemplifica modul de utilizare al codurilor prezentate anterior sa consideram ca in cartea tehnica a unui instrument de masurare sunt trecute urmatoarele:
SH1, AH1, T6, L3, SR1, RL2, PP2, DC1, DT0, DT0, C0 ceea ce inseamna:
· posibilitate de vorbitor;
· poate transmite informatii despre starea in care se afla atunci cand este interogat;
· posibilitate de ascultator;
· existenta unui comutator pentru modul doar ascultator;
· posibilitate de cerere serviciu;
· posibilitate de comanda de la distanta fara blocarea tastaturii locale;
· posibilitate de configurare locala pentru testare paralela in cazul unei cereri de serviciu;
· posibilitate de stergere completa;
· nu poate fi declansat pentru efectuarea unor operatii;
· nu poate fi utilizat in functie de controller.
Cifrele care insotesc identificatorii sunt definite in cadrul specificatiei IEEE 488.1.

3.3. Configurarea interfetei instrumentelor

La osciloscopul HP54600A:
Print/Utility
HPIB Menu --> ADDR 

La generatorul HP33120A:
E: I/O MENU
1: HPIB ADDR
 

La instrumentul virtual:
Meniu HP VEE: I/O --> Instrument

3.4. Protocolul de comunicatie

Liniile de date permit transferul informatiilor sub format byte paralel la un anumit moment de timp. Protocolul de comunicatie utilizeaza pentru transferul informatiilor 4 linii dedicate:

ATN (ATeNtion) - utilizat de sursa pentru a indica faptul ca un byte de date este pregatit pentru a putea fi citit, este linia pe care controller-ul indica daca magistrala de date este in "modul date" (ATN = 0) sau in "modul comenzi" (ATN = 1);
DAV (DAta Valid) - utilizat de sursa pentru a indica faptul ca un byte de date este pregatit pentru a putea fi citit;
NRFD (Not Ready For Data) - utilizat de acceptor pentru a indica faptul ca nu este pregatit sa primeasca byte-ul de date;
NDAC (Not Data ACcepted) - utilizat de acceptor pentru a indica faptul ca inca nu a citit byte-ul de date pus pe magistrala.

Din punct de vedere logic protocolul lucreaza in logica inversata. Schita protocolului de transfer al informatiilor este urmatoarea:

NRFD = high toti acceptorii sunt pregatiti pentru un nou transfer;
DAV = low sursa valideaza byte-ul pus pe magistrala de date;
NRFD = low dupa validarea datelor de catre sursa acceptorii trec in starea de lucru
NDAC = high acceptorii confirma citirea datei de pe magistrala
DAV = high dupa ce toti acceptorii au preluat data, sursa invalideaza data
NDAC = low acceptorii trec in stare de asteptare
NRFD = high toti acceptorii sunt pregatiti pentru alt transfer

Liniile NRFD si NDAC trec in starea high sau low dupa ce toti acceptorii au confirmat starea. Mai precis aceste linii realizeaza un OR-cablat controlat de acceptorul cel mai lent.

3.5. Modul de operare al magistralei

Modul de operare al magistralei se diferentiaza in functie de starea liniei ATN.
Atunci cand ATN este activat de controller ne gasim in modul comanda. Controller-ul in acest mod poate configura interfata sau poate realiza diverse operatii de control.
Atunci cand ATN este dezactivat ne gasim in modul data, iar vorbitorul adresat transmite byte-urile de date catre ascultatorii adresati.
Legatura intre operatiile efectuate si liniile de semnal pentru managementul protocolului este:

1. daca un instrument cere un serviciu controller-ului atunci acesta activeaza linia SRQ;
2. pentru a afla cine a cerut o intrerupere, controller-ul lanseaza in executie o testare (polling) seriala sau paralela a instrumentelor, prin verificarea bitului 6 din byte-ul de stare al fiecarui instrument:
- pentru testarea seriala se trece linia ATN in modul date si se lanseaza in executie comanda SPE (Serial Poll Enable);
- pentru testarea paralela se trece linia ATN in modul date, se activeaza linia EOI (End Of Identification) si se lanseaza comanda PPC (Parallel Poll Configure) urmata de PPE (Parallel Poll Enable);
3. pentru transferul controlului magistralei de la un controller la altul se adreseaza noul controller ca vorbitor si i se transmite comanda TCT (Take Control);
4. pentru a aduce toate instrumentele de pe magistrala intr-o stare initiala se activeaza linia IFC (Interface Clear).

Partea practica a lucrarii are ca scop:

schitarea sistemului automat de masurare care formeaza platforma experimentala evidentiindu-se elementele componente;
vizualizarea protocolului de comunicatie si corelarea acestuia cu modul de operare al magistralei.

P1. Crearea instrumentelor de tip Direct I/O care sa comunice cu multimetrul HP34401A, generatorul HP33120A, osciloscopul HP54600A.

P2. Pentru a studia activitatea de pe magistrala paralela se pot interfata toate cele trei instrumente pentru a realiza urmatoarele:
1. resetarea tuturor instrumentelor interfatate: *RST
2. realizarea diverselor tipuri de modulari cu ajutorul generatorului de functii (modularea in amplitudine, in frecventa si in impuls a unui semnal triunghiular cu o functie sinusoidala); masurarea cu ajutorul osciloscopului a valorii varf la varf a semnalului.
Scrierea instructiunilor.


P3. Pentru a salva activitatile dupa magistrala pentru obiectul Bus I/O Monitor se va activa optiunea To File, iar numele fisierul va fi de forma: Grupa_Subgrupa_Nr.asc

Platforma experimentala utilizata este:

Pentru a se intelege modul de operare al interfetei GPIB se vor utiliza instrumentele conectate pe magistrala. Pentru fiecare instrument se va crea un instrument virtual. Adresele acestora vor fi:

multimetru: adresa = 12;

generator de semnal: adresa = 14;

osciloscop: adresa = 16.

In spatiul de lucru se va insera mai intai monitorul de magistrala care se va configura corespunzator si apoi se va insera instrumentul virtual pentru aparatul vizat. Aceasta ordine este necesara pentru a putea inregistra protocolul care are loc intre controller si instrument.
Operatiilor vor fi inregistrate intr-un nou fisier urmarind sablonul prezentat la pasul P3.

Platforma experimentala se va particulariza pentru a simula un sistem automat de masurare care sa permita trasarea caracteristici de amplitudine a unui filtru. Pentru aceasta se vor schita operatiile pe care trebuie sa le execute generatorul, respectiv osciloscopul. In continuare se va dezvolta o aplicatie HP VEE care va utiliza instrumente virtuale tip Direct I/O in care se vor scrie comenzile necesare.

In cadrul prereferatului se vor nota:

notiuni generale (topologie), componentele sistemului;
structura interfetei de comunicatie;
comenzi SCPI necesare generarii unui semnal si modularii acestuia;
comenzi SCPI necesare masurarii semnalului.

In cadrul referatului se vor nota:

activitatile de pe magistrala (fisierele furnizate de monitorul de magistrala), evidentiindu-se: starea semnalelor, rolul fiecarei componente a sistemului de masurare in momentul respectiv si operatia care se executa;
formele de unda preluate cu osciloscopul.

In final se vor comenta rezultatele.

4. Cativa algoritmi de protocol

Majoritatea algoritmilor descrisi in cadrul specificatiei IEEE 488.2 se bazeaza pe o bucla de cautare parcursa prin modificarea unui pointer proportional cu numarul de instrumente conectat pe magistrala.
In continuare sunt propuse pentru implementare cativa algoritmi.

4.1. Identificarea instrumentului care a cerut un serviciu

Se initializeaza variabila care descrie numarul instrumentelor conectate la magistrala.
Se initializeaza pointerul de parcurgere a listei de instrumente.
Se trece magistrala in modul comanda prin activarea liniei ATN
Se transmite comanda UNL si adresa de ascultator a controller-ului (LAG)
Se declaseaza modul de testare seriala prin transmiterea comenzii SPE
Se repeta

Se transmite adresa vorbitorului selectionat prin valoarea pointerului
Se trece magistrala in modul date (ATN = false)
Se citeste byte-ul de stare si se testeaza bitul 6 (RSQ)
Se incrementeaza pointerul
Se trece magistrala in modul comanda (ATN=true)

Pana cand bitul 6 al byte de stare este gasit TRUE sau pointerul are valoarea maxima
Se dezactiveaza testarea seriala prin transmiterea comenzii SPD
Se interzice posibilitatea de a vorbi a instrumentelor prin transmiterea comenzii UNT
Daca bitul 6 este TRUE atunci

Se memoreaza ultima adresa testata
Se memoreaza ultimul byte de stare citit

Altfel se trateaza o eroare

Ordinea in care sunt atribuite adresele instrumentelor poate fi importanta atunci cand numarul acestora este mare. Se recomanda atribuirea adreselor pe baza evaluarii prioritatii si a frecventei posibilitatii aparitiei unei cereri de serviciu, pentru a scurta timpul de recunoastere a instrumentului care a cerut serviciul.

4.2. Detectarea instrumentelor conectate la magistrala

Se initializeaza variabila care descrie numarul maxim de instrumente conectate la magistrala. Se initializeaza pointerul de parcurgere a listei de instrumente. Atata timp cat nu am parcurs toata lista se executa

Nici un ascultator pe magistrala (comanda UNL)
Se transmite adresa primara corespunzatoare valorii pointerului
Se trece magistrala in modul date (ATN = FALSE)
Se asteapta cel putin 1 ms

Daca controller-ul detecteaza NDAC = TRUE atunci

Se marcheaza adresa respectiva ca verificata

Altfel

Se transmit toate adresele secundare Se trece magistrala in modul date (ATN = FALSE) Se asteapta cel putin 1 ms

Daca NDAC = TRUE atunci

Nici un ascultator (comanda UNL) Se transmite adresa primara a ascultatorului (LAG valoare pointer)

Atata timp cat nu au fost testate toate adresele secundare executa

Se transmite o adresa secundara netestata Se trece magistrala in modul data (ATN = FALSE) Se asteapta cel putin 1 ms

Daca NDAC = TRUE atunci

Se inscrie adresa in lista de adrese Se transmite UNL Se transmite adresa primara (LAG) Se afiseaza lista cu adrese

Acesta procedura se executa la inceputul unei aplicatii pentru a stabili lista de instrumente care sunt conectate la magistrala, precum si adresa acestora. Procedura se poate modifica in vederea decsrierii cat mai complete a instrumentului conectat la o adresa prin adaugarea informatiilor referitoare la tipul, versiune, producator utilizand comanda specifica *IDN. Timpul de asteptare de 1 ms se impune pentru a fi siguri ca semnalele pe magistrala s-au stabilizat.

Tabela ASCII corespunzatoare magistralei GPIB

__________ ______ ____ __________ ______ ____ ____________

ch ctl cmd D H O ch cmd D H O ch cmd D H O ch cmd D H O

___________________ ________________ ________________ __________________

NUL ^@ 0 0 0 sp L0 32 20 40 @ T0 64 40 100 ' SC0 96 60 140

SOH ^A GTL 1 1 1 ! L1 33 21 41 A T1 65 41 101 a SC1 97 61 141

STX ^B 2 2 2 ' L2 34 22 42 B T2 66 42 102 b SC2 98 62 142

ETX ^C 3 3 3 # L3 35 23 43 C T3 67 43 103 c SC3 99 63 143

EOT ^D SDC 4 4 4 $ L4 36 24 44 D T4 68 44 104 d SC4 100 64 144

ENQ ^E PPC 5 5 5 % L5 37 25 45 E T5 69 45 105 e SC5 101 65 145

ACK ^F 6 6 6 & L6 38 26 46 F T6 70 46 106 f SC6 102 66 146

BEL ^G 7 7 7 ` L7 39 27 47 G T7 71 47 107 g SC7 103 67 147

___________________ _______________ ________________ __________________

BS ^H GET 8 8 10 ( L8 40 28 50 H T8 72 48 110 h SC8 104 68 150

HT ^I TCT 9 9 11 ) L9 41 29 51 I T9 73 49 111 i SC9 105 69 151

LF ^J 10 a 12 * L10 42 2a 52 J T10 74 4a 112 j SC10 106 6a 152

VT ^K 11 b 13 + L11 43 2b 53 K T11 75 4b 113 k SC11 107 6b 153

FF ^L 12 c 14 , L12 44 2c 54 L T12 76 4c 114 l SC12 108 6c 154

CR ^M 13 d 15 - L13 45 2d 55 M T13 77 4d 115 m SC13 109 6d 155

SO ^N 14 e 16 . L14 46 2e 56 N T14 78 4e 116 n SC14 110 6e 156

SI ^O 15 f 17 / L15 47 2f 57 O T15 79 4f 117 o SC15 111 6f 157

___________________ _______________ ________________ __________________

DLE ^P 16 10 20 0 L16 48 30 60 P T16 80 50 120 p SC16 112 70 160

DC1 ^Q LLO 17 11 21 1 L17 49 31 61 Q T17 81 51 121 q SC17 113 71 161

DC2 ^R 18 12 22 2 L18 50 32 62 R T18 82 52 122 r SC18 114 72 162

DC3 ^S 19 13 23 3 L19 51 33 63 S T19 83 53 123 s SC19 115 73 163

DC4 ^T DCL 20 14 24 4 L20 52 34 64 T T20 84 54 124 t SC20 116 74 164

NAK ^U PPU 21 15 25 5 L21 53 35 65 U T21 85 55 125 u SC21 117 75 165

SYN ^V 22 16 26 6 L22 54 36 66 V T22 86 56 126 v SC22 118 76 166

ETB ^W 23 17 27 7 L23 55 37 67 W T23 87 57 127 w SC23 119 77 167

___________________ _______________ ________________ __________________

CAN ^X SPE 24 18 30 8 L24 56 38 70 X T24 88 58 130 x SC24 120 78 170

EM ^Y SPD 25 19 31 9 L25 57 39 71 Y T25 89 59 131 y SC25 121 79 171

SUB ^Z 26 1a 32 : L26 58 3a 72 Z T26 90 5a 132 z SC26 122 7a 172

ESC ^[ 27 1b 33 ; L27 59 3b 73 [ T27 91 5b 133 SC29 125 7d 175

RS ^^ 30 1e 36 > L30 62 3e 76 ^ T30 94 5e 136 ~ SC30 126 7e 176

US ^_ 31 1f 37 ? UNL 63 3f 77 _ UNT 95 5f 137 DEL SC31 127 7f 177

__________ ______ ____ __________ ______ ____ ____________

GTL Go To Local. PPU Parallel Poll Unconfigure.

SDC Selected Device Clear. SPE Serial Poll Enable.

PPC Parallel Poll Configure. SPD Serial Poll Disable.

GET Group Execute Trigger. L0-L30 Listen addresses (32+ADDR).

TCT Take Control. UNL Unlisten (= L31).

GTL Go To Local. T0-T30 Talk addresses (64+ADDR).

LLO Local Lockout. UNT Untalk (= T31).

DCL Device Clear. SC0-SC31 Secondary commands (96+ADDR).

__________ ______ ____ __________ ______ ____ ____________

NOTATII.

ch caracterul ASCII

cmd atunci cand magistrala de date este in modul de lucru COMANDA

D,H,O codul zecimal, hexa si octal corespunzator caracterului ASCII





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.