Laboratorio di metodi di acquisizione datimaggi/Laboratorio_DAQ/metodi_acq_dati_lez3.pdf · TXD -...

34
Laboratorio di metodi di acquisizione dati Giorgio Maggi

Transcript of Laboratorio di metodi di acquisizione datimaggi/Laboratorio_DAQ/metodi_acq_dati_lez3.pdf · TXD -...

Laboratorio di metodi diacquisizione dati

Giorgio Maggi

Possibili esperienze

Lettura di un oscilloscopio attraverso il BusGPIB

Realizzazione di un plot tensione correnteper un dispositivo a semiconduttore medianteun generatore di tensione (Bus GPIB)

Lettura dei dati ambientali misurati da unacentralina (interfaccia seriale RS232)

Posizionamento automatico della punta di unmicromanipolatore (RS232 oppure Bus GPIB)

Altri standards di acquisizionedati

Esaminato sistema basato su Scheda NI PCI 6023E

ADC, Input output register, Counter

Interfacciata al Bus PCI (il bus del PC)

Non è l’unico metodo Porta seriale RS-232-C

GPIB IEEE 488

Crate VME

Principali standards di comunicazione

Trasmissione punto-punto e bus

Nella trasmissione punto-punto due dispositivi sonoconnessi fra loro e connessun altro attraverso illink (esempio: un monitorcon la scheda graficaattraverso il cavo VGA)

I bus connettono piùdispositivi tra loro medianteil medesimo link (esempio:più dischi con il computer efra loro tramite il bus SCSI oIDE).

Trasmissione seriale e parallela

La trasmissione dei dati si diceseriale, se questi sonotrasmessi attraverso il link unbit alla volta, in sequenza. Èquesto il caso, per esempio,quando è presente un solocavo per la trasmissione.

La trasmissione si diceparallela quando tutti i bit diuna parola sono trasmessicontemporaneamente, inparallelo. Per ottenere ciò, ènecessario avere adisposizione tanti cavi (o canali)quanti sono i bit della parola.

Full duplex/Half duplex

Una linea di comunicazione di dice full duplexse è in grado di ricevere e trasmetterecontemporaneamente – ci sono due canali:uno in ingresso l’altro in uscita.

Si dice half duplex se non può trasmettere ericevere allo stesso tempo. C’è un solocanale su cui i dati possono viaggiare in unsenso o nell’altro.

Rivelazione degli errori – bit diparità

Può capitare che i bit trasmessi risultino alterati al momento dellaricezione, a causa di interferenze o errori nella trasmissione.

C’è bisogno di un metodo per permettere la rivelazione di errori. Si possono trasmettere assieme ai dati uno o più bit di controllo. Un metodo comunemente usato è il bit di parità: esso vale 1 se il

numero di bit con valore 1 compreso il bit di parità è pari (parityeven), 0 se dispari (parity odd).

Se in ricezione il bit di parità calcolato è diverso da quelloricevuto, un bit deve essere cambiato nel tragitto o erroneamentetrasmesso .

Non funziona se cambia più di un bit ma la probabilità di dueerrori nella trasmissione di un singolo byte è bassa.

Sincronizzazione Sia nella trasmissione seriale sia in quella parallela, spesso viene trasmesso un

segnale di sincronizzazione su un canale dedicato (clock). Il clock consente al ricevitore di decodificare i segnali nello stesso tempo in cui

vengono inviati. Il ricevitore ed il trasmettitore sono, così, sincronizzati nel tempodi clock.

La comunicazione, in questo, caso si dice sincrona. La frequenza del clock definisce anche la velocità della comunicazione che si

misura in bit x s=bps o baud (in realtà baud indica la frequenza con cui la lineacambia stato che non è necessariamente pari a bps).

Il vantaggio di questo tipo di trasmissione è che qualsiasi drift nella frequenza ditrasmissione è riconosciuto dal ricevitore. Sono, inoltre, possibili frequenze moltoalte.

Comunicazione asincrona Nella comunicazione asincrona, non viene trasmesso alcun

segnale di clock. Ai dati vengono aggiunti in testa ed in coda una serie di bit, detti di

start e stop, che istruiscono il ricevitore dell’inizio e della fine diuna parola.

Il vantaggio è che trasmettitore e ricevitore hanno clockindipendenti e le parole possono essere separate da un qualsiasiintervallo di tempo.

Linee seriali RS232 RS-232 è uno standard per le comunicazioni seriali definito dalla Electronic

Industries Association (EIA). RS sta per Recommended Standard. Esiste in tre diverse versioni A, B o C che definiscono i differenti voltaggi per i

livelli on ed off. La versione più utilizzata è RS-232C che definisce un bit on (mark) come una

tensione tra -3V e -12V e off (space) tra +3V e +12V. Lo standard definisce anche che la massima distanza lungo la quale questi

segnali possono essere trasmessi è 8m (25 ft). Le porte o i dispositivi seriali sono etichettati come Data Communication

Equipment (DCE) o Data Terminal Equipment (DTE). I segnali di trasmissionee ricezione fra queste due tipologie sono invertiti di posto.

RS232 – schema del connettore

Oltre ai cavi per latrasmissione e la ricezione deidati, RS232 necessita di altricavi per il controllo del flussodi dati.

Il connettore utilizzato è unconnettore a “D” a 25 poli sucui coesistono un canaleprimario ed uno secondario.

Il segnale FG non è quasi maiutilizzato,per cui spesso èsufficiente un connettore a 9poli.

Eliminando il segnale DSR sipuò usare anche un connettorea 8 poli come quelli in uso peril networking (RJ45)

RS232 Connettori ridotti

RI9

CTS8

RTS7

DSR6

GND5

DTR4

TXD3

RXD2

DCD1

DB9RJ45

RTS8

CTS7

TXD6

RXD5

GND4

DTR3

DCD2

RI1

RS232 Segnali di controllo I

GND - Logic Ground: Riferimento di tensione per tutti gli altri segnali. TXD - Transmitted Data: Linea di trasmissione dei bit di informazione dal DTE

(periferica) a DCE (computer). Il DTE mantiene tale linea al valore logico 1quando non ci sono dati da trasmettere; la trasmissione del dato su questa lineaè possibile solo se i segnali Request To Send, Clear To Send, Data Set Readye Data Terminal Ready, quando presenti, assumono valore logico 0.

RXD - Received Data: Linea di trasmissione dei bit di informazione dal DCE(computer) a DTE (periferica).Il dato (bit) primario viene inviato su questa lineadal DCE al DTE. Questo segnale viene mantenuto ad un valore logico 1 quandoDCE non trasmette dati e viene portato a 0 per un breve intervallo di tempodopo una transizione della linea Request To Send da 1 a 0, per consentire ilcompletamento della trasmissione.

DCD - Data Carrier Detect: Il segnale DCD indica che il computer o ildispositivo sono connessi o on line. DCD non è sempre usato o disponibile.

DSR – Data set Ready: Su questa linea il DCE dice al DTE che il canale dicomunicazione è disponibile, ma non indica che effettivamente sia stato stabilitoun link con un dispositivo remoto.

RS232 Segnali di controllo II

DTR - Data Terminal Ready: Se questo segnale è a livello logico 1, DCE vieneinformato che DTE è pronto per la ricezione. Il segnale DTR deve essere attivoprima che DCE attivi il segnale Data Set Ready, indicando così di essereconnesso al canale di comunicazione. Se il segnale DTR assume il valore logico0, DCE interrompe la trasmissione in corso.

CTS - Clear To Send: Segnale di risposta a DTE. Quando attivo, indica a DTEche può dare inizio alla trasmissione (linea TXD)

RTS - Request To Send: dal DTE al DCE, disponibilità a trasmettere; quandoattivo questo segnale informa il DCE che il DTE è pronto a spedire un byte.

Transmitter Signal Element Timing: Linea usata da DTE per inviare a DCE unsegnale di clock. La transizione da 1 a 0 indica il punto centrale del tratto disegnale corrispondente ad un bit sul Transmitted Data.

Receiver Signal Element Timing: Segnale di clock inviato da DCE a DTE inmodo che DTE sia in grado di sincronizzare il proprio circuito di ricezione chepilota la linea Received Data. La frequenza del segnale di clock dipende dal bit-rate della trasmissione sulla linea Received Data. La transizione da 1 a 0 indicail punto centrale del tratto di segnale corrispondente ad un bit sulla ReceivedData.

Collegare fra loro due DTE

Serve un collegamento contrasmissione e ricezione incrociate(null modem).

Bisogna tener conto anche deisegnali di controllo (handshaking)o collegare mutuamente DTR conDSR e RTS con CTS o tra loro gliRTS e CTS di ciascuna porta edentrambi al DCD dell’altra

Alternativamente si possonomettere “a loop” i segnali dihandshaking su entrambe le porte,ma a questo punto il controllo diflusso non potrà più esserehardware.

Full Handshaking

partial Handshaking

Loop Handshaking

Controllo di flusso software

Per la trasmissione asincrona su RS232 è possibile non fare usodei segnali di controllo per il controllo di flusso.

A tale scopo vengono trasmessi byte particolari di start e stop.Questi sono definiti dal codice ASCII (American Standard Codefor Information Exchange) come XON (binario:10001) e XOFF(10011)

Questo metodo è utile quando si trasferiscono dati in formatotesto (codice ASCII), meno quando si trasferiscono altri formati.

Il controllo di flusso software è più lento di quello hardware(handshaking).

Il bus GPIB fu progettato nel 1965 dalla Hewlett-Packard perconnettere i propri strumenti di misura ai PC e fu allora nominato HPIB

(Hewlett Packard Interface Bus). Successivamente è stato resostandard dalla IEEE (Institute of Electrical and Electronics Engineers)

ed è divenuto il più importante e popolare bus di comunicazione per glistrumenti di misura.

In particolare IEEE standard 488-1975 definisce le specificheelettroniche e meccaniche mentre ANSI/IEEE 488.2-1987 standard

definisce il protocollo di comunicazione fra PC e strumenti.

GPIBIntroduzione

GPIBIntroduzione

Lo standard IEEE 488 nasce con gli obiettivi di:

1. Definire un sistema di interconnessione su breve distanza.

2. Rendere possibile l’integrazione di strumenti di diversi costruttori in ununico sistema.

3. Permettere lo scambio dati ad una velocità sufficientemente elevata (finoad 1MByte/s).

GPIBI connettori 488

I connettori 488 hanno una particolare struttura meccanica, rigorosamentestabilita dallo standard, e presentano 24 terminazioni o pin.

Caratteristiche essenziali dello standard IEEE 488:

1. Il bus è formato da 24 linee, 8 linee dati DIO0-7 (sulle quali viaggiano anche,a seconda del valore della linea ATN, i comandi multilinea), 3 linee per ilprotocollo di Handshake e 5 linee di comando (unilinea) (ATN, IFC, REN,SRQ, EOI), e 8 linee di massa.

2. Utilizza logica negata con livelli TTL compatibili, utilizza per le linee del busdriver TTL open collector o tri-state allo scopo di ridurre il consumo dicorrente nello stato logico falso e utilizza la connessione wired-or (logicanegata).

3. Il codice utilizzato per il protocollo è l’ASCII a 7 bit più un ulteriore bit di parità.

4. Il sistema ammette di interconnettere un massimo di 15 strumenti (di cuialmeno 2/3 autoalimentati) oppure un numero N di strumenti tali che lalunghezza della connessione sia al massimo 2*N metri ma che non superi i20 m.

GPIBI connettori 488

(wire twisted with ATN)GNDPin 23

(wire twisted with SRQ)GNDPin 22

(wire twisted with IFC)GNDPin 21

(wire twisted with NDAC)GNDPin 20

(wire twisted with NRFD)GNDPin 19

(wire twisted with DAV)GNDPin 18

Remote enable.RENPin 17

Data input/output bit.DIO8Pin 16

Data input/output bit.DIO7Pin 15

Data input/output bit.DIO6Pin 14

Data input/output bit.DIO5Pin 13

SHIELDPin 12

Attention.ATNPin 11

Service request.SRQPin 10

Interface clear.IFCPin 9

Not data accepted.NDACPin 8

Not ready for data.NRFDPin 7

Data valid.DAVPin 6

End-or-identify.EOIPin 5

Data input/output bit.DIO4Pin 4

Data input/output bit.DIO3Pin 3

Data input/output bit.DIO2Pin 2

Data input/output bit.DIO1Pin 1

GPIBModalità di connessione

GPIBStruttura del bus IEEE 488

Lo standard prevede un solo controller del bus che stabilisce i ruoli ditutti i componenti del sistema e gestisce il bus.

Ciascun dispositivo connesso è individuato da un indirizzo (che va da 0a 30) e può agire come Listener (il dispositivo riceve, quindi piùstrumenti contemporaneamente possono essere in questo stato), ocome Talker (il dispositivo è l’unico a trasmettere). Il Controller(generalmente il PC) attribuisce di volta in volta la capacità di funzionarecome listener oppurecome talker.

Ciascun dispositivo puòinfine essere nello statoIdle (in grado di riceveredal controllore i segnali chene facciano commutare lostato).

GPIBStruttura del bus IEEE 488

CONTROLLERCONTROLLERSpecifiche funzionali

• Gestisce l’uso del bus dati da parte degli altri dispositivi mediante gli interfacemessages.

• Più controllers possono essere fisicamente collegati al bus.

• Un solo controller alla volta può essere attivo sul bus, il controller in charge.

• Ogni controller in charge può cedere le proprie prerogative ad un altro.

• Uno solo dei controllers collegati al bus può assumerne autonomamente ilcontrollo, il system controller.

GPIBStruttura del bus IEEE 488

TALKERTALKERSpecifiche funzionali

• Invia device messages agli altri dispositivi connessi al bus (uno parla, moltiascoltano)

• Inizia a trasmettere se il controller in charge lo indirizza come talker

• Interrompe la trasmissione se:

1. Il controller glielo ordina2. Il controller designa un altro talker

GPIBStruttura del bus IEEE 488

LISTENERLISTENERSpecifiche funzionali

• Riceve device messages da un altro dispositivo connesso al bus

• Inizia ad ascoltare se il controller in charge lo indirizza come listener

• Interrompe l’ascolto se:

1. Il controller glielo ordina2. E’ indirizzato come talker

GPIBStruttura del bus IEEE 488

Il POLLING identifica il modo in cui il controllore scandisce i dispositivi per capirequale di essi abbia fatto richiesta della sua attenzione.

Si possono scegliere due strategie:

1. Polling Seriale2. Polling Parallelo

GPIBStruttura del bus IEEE 488

1. Serial Poll

Il Serial Poll è una procedura che consente al controller di ricevere informazionisullo stato di un dispositivo: in particolare il controller può stabilire se uno opiù dispositivi hanno effettuato una richiesta di servizio.

I dispositivi in grado di rispondere ad un Serial Poll inviano al controller unoStatus Byte, che ne descrive lo stato.

La procedura di interrogazione mediante Serial Poll prevede l’invio del comandoSPE seguito dall’abilitazione sequenziale di ciascun dispositivo collegato albus a rispondere al comando Serial Poll inviando il byte di stato (Status Byte).

Il controller, una volta conclusa la scansione dei dispositivi per la lettura dellostatus byte, deve inviare i comandi SPD e UNT (la maggior parte deicontroller permettono l’esecuzione di tutti i precedenti passi automaticamente,attraverso chiamate a funzioni di libreria di alto livello).

GPIBStruttura del bus IEEE 488

2. Parallel Poll

Lo scopo di tale procedura è di ottenere informazioni sullo stato dei dispositiviconnessi al bus.

I dispositivi, individualmente o collettivamente, ritornano uno Status Bit su unadelle linee DIO. L’assegnazione di una linea DIO ad un dispositivo vieneeffettuata attraverso interruttori, jumpers o dal controller per mezzo delcomando PPC.

Quando più dispositivi rispondono collettivamente, la lettura delle linee DIOfornisce al controller l’AND logico (se il livello logico 1 corrisponde a tensionealta) o l’OR logico (se il livello logico 1 corrisponde a tensione bassa) dei bit distato.

Lo standard 488 specifica che i dispositivi coinvolti debbano rispondere alParallel Poll entro 200 ns; il controller deve leggere la risposta 2 ms dopo loscadere dei 200 ns di attesa seguente al Parallel Poll.

GPIBComunicazione e regole sintattiche

Distinguiamo i comandi IEE 488 che sono in generale device independentperché attivano una particolare funzione di interfaccia di uno o più ricevitoridai dati (che possono correre sulle stesse linee) sono device dependentperché attivano una funzione interna di uno o più dispositivi.

Gli indirizzamenti servono a stabilire lo stato di un dispositivo, cioè aattivarlo come LISTNER o come TALKER, il controller trasmette sulle DIO 7bit, (l’ottavo non viene utilizzato): i primi due (MSBs) sono utilizzati perstabilire lo stato del dispositivo, e gli altri cinque contengono l’indirizzoIEEE488 del dispositivo (in codice binario) al quale si vuole indirizzare ilcomando.

Più in dettaglio, Il bit più significativo del comando 488 di indirizzamento èsempre posto a zero. Il controller pone ad 1 il bit LA per indirizzare undispositivo come listener, il bit TA per indirizzare un dispositivo cometalker; è possibile, inoltre, assegnare ad un dispositivocontemporaneamente i ruoli di listener e talker, settando entrambi i bit TAe LA. Il controller utilizza normalmente l’indirizzo 0.

GPIBComunicazione e regole sintattiche

Le informazioni che lo strumento riceve, sotto forma di stringhe di testo, sono di2 tipi:

• Commands: sono stringhe che fanno si che lo strumento compiaun’azione (ad es. la variazione di un settaggio)

• Queries: sono stringhe che fanno si che lo strumento generi una risposta,di solito senza causare nessun cambiamento di stato dello strumento.

Il bus GPIB opera con modello block oriented che consente di poter combinarepiù commands e queries in un’unica linea di testo.Commands e queries seguono la stessa regola sintattica: entrambe sonocostituite da un header (una stringa di massimo 12 caratteri, ma in genere nonpiù lunga di 4) che rappresenta l’abbreviazione del settaggio o della richiestainviata allo strumento. L’unica differenza è che le queries terminano sempre conil punto interrogativo. Commands e queries sono in genere reperibili sui manualidei rispettivi dispositivi, nella sezione programming GPIB.

GPIBGPIB e LABVIEW

La comunicazione via GPIB viene gestita da 2 moduli presenti in LabVIEW:

• write gpibgestisce l’invio dei commands e delle queries allo strumento

• read gpibche gestisce la ricezione delle risposte relative alle queries.

GPIBGPIB e LABVIEW

WRITE GPIB

GPIBGPIB e LABVIEW

READ GPIB