Controllo di processo - "E.Majorana" AVEZZANO

I.T.I.S “E.Majorana” - Avezzano
Ing. C.M.Seritti
Ver.1.1
Controllo di processo
Con il termine di Acquisizione dati si deve intendere qualsiasi sistema in
grado di rilevare e memorizzare grandezze analogiche o digitali.
La Distribuzione dei dati consiste nell’inviare segnali analogici o digitali
ad attuatori, come motori, dispositivi riscaldanti, relè, teleruttori ecc.
Quando l’acquisizione è completata da un sistema di distribuzione dati si
parla di Controllo di Processo.
Un sistema di acquisizione e distribuzione dati è generalmente,
composto dai seguenti blocchi funzionali:
1) Un sottosistema di misura a contatto con il nodo fisico in grado di
rilevare, per mezzo di opportuni sensori e trasduttori, le variazioni delle
grandezze fisiche interessate, quali la temperatura, la velocità,
l’umidità, la pressione ecc.
2) Un sottosistema costituito da un’unità centrale che fornisce i segnali
di controllo e temporizzazione per i sottosistemi di acquisizione e
distribuzione. L’unità centrale esegue anche le eventuali operazioni di
elaborazione e memorizzazione richieste dalle specifiche del sistema.
3) Un sottosistema di uscita (distribuzione).
L’acquisizione di grandezze fisiche nei diversi casi, avviene, a volte, con
trasduttori di tipo digitale altre con trasduttori analogici.
Mentre nel primo caso la grandezza acquisita può essere direttamente
inviata al sistema di elaborazione e controllo, nel secondo caso occorre
effettuare una conversione trasformandola da analogica a digitale
attraverso dei ADC (Convertitori Analogico-Digitali).
In modo simile nelle catene di distribuzione possono essere fornite agli
attuatori sia segnali di tipo analogico che di tipo digitale.
Viene riportata di seguito una struttura a blocchi di un generico sistema
di acquisizione e distribuzione dati:
1
Grandezza da
controllare
Trasduttore
analogico
Sottosistema di
misura
(acquisizione)
Trasduttore digitale
Convertitore A/D
Interfaccia hardware
Sistema a microprocessore
Sottosistema di
controllo
Interfaccia hardware
Uscite digitali
Convertitore D/A
Attuatore
Attuatore
Sottosistema di
uscita
(distribuzione)
Grandezza
controllata
Esempio proposto: Controllo di temperatura gestito da PC
Uno schema indicativo di un sistema di controllo di temperatura, che usa
come interfaccia hardware una porta parallela, può essere il seguente:
2
Temperatura
Sensore (LM35)
condizionamento
ADC (0804)
Buffer TRI-STATE
(74LS241)
4+4 bit
Interf.parallela
ELABORATORE
Attuatore
Il sensore LM35 trasforma la temperatura in un segnale elettrico che,
opportunamente condizionato, cioè adattato alle specifiche dell’AD
entra in questo dispositivo che trasforma il segnale analogico presente
all’ingresso, in un segnale digitale a 8 bit (1 byte).
Siccome sulla parallela possono transitare 4 bit alla volta, il byte
all’uscita dell’ADC viene memorizzato nel buffer e, poi, in sincronia con
un opportuno segnale di controllo generato dal software di gestione,
viene inviato alla parallela, in blocchi di 4 bit alla volta.
3
Analizziamo, ora i singoli sottosistemi presenti nella figura.
- Il sottosistema di misura è composto da:
Grandezza
da controllare
Convertitore
Circuito di
condizionamento
Rivelatore
A/D
Il rivelatore è un trasduttore o un sensore che rileva la grandezza fisica
da controllare e fornisce un segnale(grandezza elettrica) legata ad essa
da una relazione nota (molto spesso di sola proporzionalità).
Lo schema completo dell’hardware del sistema:
R2
RP
ADC 0804
+Vcc
12 V
+Vcc
5V
LM35
R1
2
-
7
CA3140
3
OUT
+
4
6
6
Vcc
7
8
9
R3
Vcc
2
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
5
CS
1
2 RD
3 WR
10
R4
GND
+Vcc
1A
1A
1A
1A
2A
2A
2A
2A
2
4
6
8
11
13
15
17
20
18
16
14
12
9
7
5
3
+Vcc
1 1GI
19 2GI
INTR
10
n.c.
15
13
12
10
11
Parallela
C
20
18
19(CLK-R)
17
4 (CLK-IN)
16
15
14
13
12
11
74LS241
R
16
I1
14
17
1
PC
IP (D2)
ALF(D1)
SI (D3)
ST (D0)
25
Tabella dati:
R = 10 K Ω
C = 150 pF
R 1 = 1 KΩ
R 2 + R p= 9 KΩ (R 2+Rp/R1= A-1, se A=10)
R 3 = 10 MΩ
R 4 = 10 MΩ
Sensore T°
I1 = Inverter 04
Circuito di
condizionamento
ADC
Buffer 3State
PC
P.Parallela
S/H
4
- Il circuito di condizionamento provvede ad amplificare, filtrare, in
generale ad adattare il segnale alle specifiche del convertitore A/D.
Il circuito di condizionamento proposto è il più semplice che si possa immaginare, in quanto
composto da un semplice amplificatore non invertente, adatto a questa applicazione (supposta
lentamente variabile nel tempo).
Molto spesso è più complesso e presenta: differenziatori, moduli S/H, filtri passa basso ecc, tutto
quanto, in sostanza, fa adattare il segnale alle specifiche dell’ADC.
Il S/H viene utilizzato quando l’ampiezza della variazione di Vi in tc supera ½ LSB (bit meno
significativo).
- Sottosistema di controllo
I segnali acquisiti dal sottosistema di misura attraverso opportuni circuiti
d’interfaccia, che sono oggi disponibili in numerosi tipi (interfaccia
standard IEEE 488, porta seriale RS 232, le porte parallele, USB, ecc.)
vengono inviati all’unità di controllo. Questa è dotata di
- un microprocessore per l’elaborazione dei dati;
-memorie RAM-ROM per la memorizzazione dei programmi di gestione
del sistema e dei dati;
- una tastiera ed un dispositivo di visualizzazione che consentono
all’operatore di interagire col sistema.
Il sottosistema di uscita è composto da:
- un convertitore D/A;
- una serie di circuiti di condizionamento che amplificano il segnale
generato dal convertitore in modo da renderlo adatto a comandare gli
attuatori.
Gli schemi descritti sono di principio e possono essere realizzati in modo
diverso e si differenziano essenzialmente per le modalità di
collegamento tra il sottosistema di misura e quello di uscita con l’unità
centrale, cioè dal tipo di interfaccia usata.
Convertitore A/D e circuito S/H
Il convertitore A/D ha il compito di trasformare il segnale analogico,
presente al suo ingresso, in un segnale digitale ad n bit.
I più comuni convertitori presenti sul mercato hanno una risoluzione pari
a 8, 12, 16 bit (ma anche 10, 14, 18, 20).
I convertitori in commercio adoperano metodi diversi per effettuare la
conversione del segnale. I più utilizzati adoperano quella ad
approssimazioni successive.
5
Ad un convertitore, oltre al segnale analogico d’ingresso, deve essere
applicata una tensione continua particolarmente stabile di opportuno
valore detta tensione di riferimento (VREF).
Quelli ad approssimazioni successive necessitano, inoltre di un segnale di
clock.
Un convertitore A/D per trasformare il segnale da analogico a digitale
impiega un tempo detto di conversione (tc ).
La tensione d’ingresso analogica (VIN ) viene trasformata, durante la
conversione, in un dato binario ad n bit e la relazione che intercorre tra
la tensione d’ingresso ed il dato (decimale) in uscita è:
VIN = VREF N10
2n
N10 /2n = 1 LSB
V REF viene anche detta tensione di fondo scala (VFS).
Il valore N 10 / 2 n viene definito come 1 LSB (bit meno significativo) e
rappresenta la risoluzione del convertitore, cioè la più piccola tensione
che, applicata all’ingresso, produce un cambiamento del dato digitale in
uscita.
Poiché il segnale prelevato all’uscita del circuito di condizionamento è
variabile, quando l’ampiezza delle variazioni di t c supera ½ LSB, è
necessario inserire tra il circuito di condizionamento e l’ADC un
dispositivo S/H (Sample/Hold).
Questo circuito è in grado di memorizzare il valore assunto dal segnale
in un determinato istante (sample) e mantenerlo costante all’ingresso
del convertitore per tutto il tempo impiegato per la conversione (hold).
Se il segnale è variabile molto lentamente (è il caso del nostro esempio)
si può fare a meno del S/H ed il segnale condizionato può essere
applicato direttamente all’ingresso ed il convertitore A/D.
Porta parallela LPT1
La porta parallela, comunemente denominata “Centronics” è
normalmente utilizzata per connettere il computer con una stampante,
ma può essere utilizzata come interfaccia hardware.
Essa è accessibile all’esterno del computer attraverso un connettore di
tipo a vaschetta, a 25 poli , femmina.
6
Sono disponibili 8 linee per i dati, 9 per i segnali di ingresso e di uscita
che, normalmente permettono il colloquio tra i computer e la stampante
ma possono essere utilizzate come bit di input e controllo.
Nei più recenti PC la porta parallela può essere abilitata, per mezzo del
software (in genere attraverso il BIOS) a modalità diverse di
funzionamento.
Si parla così di:
-Modalità standard Centronics denominata SPP (Standard Printer Port);
-Trasferimento bidirezionale EPP (Enhanced Parallel Port) o ECP
(Extended Capabilities Port) per le otto linee dati D 0-D7;
-Trasferimento Byte Mode, come sopra con protocollo diverso;
-Trasferimento Nibble Mode che usa quattro linee di stato (Busy,
PE,SE,ER) + la linea ACK per il segnale di Pronto a ricevere.
Le modalità sopraesposte sono definite nello standard IEEE 1248-1994.
La seguente tabella ci fornisce le connessioni tra piedini e segnali (si fa
riferimento al linguaggio della stampante) ed inoltre ci fornisce la
funzione del bit e l’indirizzo della locazione di memoria cui i singoli bit
fanno riferimento.
Segnale
Pin
Bus dati
I/O
Registro
Indirizzo
STROBE
D0-D7
ACK
BUSY
PE
SE
AF
ER
IP
SI
GND
1
2-9
10
11
12
13
14
15
16
17
18-25
D0
D0-D7
D6
D7
D5
D4
D1
D3
D2
D3
OUT (IN)
OUT (IN)
IN
IN
IN
IN
OUT (IN)
IN
OUT (IN)
OUT (IN)
CONTROLLO
DATI
STATO
STATO
STATO
STATO
CONTROLLO
STATO
CONTROLLO
CONTROLLO
37AH
378H
379H
379H
379H
379H
37AH
379H
37AH
37AH
7
I vari pin del connettore sono organizzati in tre gruppi e vengono gestiti
dal PC come se fossero delle celle di memoria indirizzabili su indirizzi
consecutivi.
Si tenga presente che i dati inviati in uscita sulla porta parallela
rimangono memorizzati e non variano fino all’invio di un nuovo dato.
Si definisce porta un canale attraverso il quale ci si collega con il mondo
esterno.
Si parlerà, quindi, di porta di output per l’uscita dei dati e di porta di
input per la loro lettura.
Nel caso della porta parallela esaminata, gli indirizzi da usare sono:
LPT1
379H (esadecimale) 889 (decimale)
INPUT DEI DATI
378H (esadecimale) 888 (decimale)
OUTPUT DEI DATI
37AH (esadecimale) 890 (decimale)
CONTROLLO
LPT2
279H (esadecimale)
278H (esadecimale)
663 (decimale)
632 (decimale)
INPUT DEI DATI
OUTPUT DEI DATI
Con il circuito d’interfaccia realizzato i dati ricevuti e quelli inviati in
uscita sono formati da 4 bit, tanti quante le linee implementate.
Si potrà formare un byte utilizzando due metà byte (nibble).
Nella seguente tabella sono riportate le istruzioni da utilizzare nei
principali linguaggi di programmazione per trasmettere (output) o
ricevere (input) dati attraverso una porta parallela:
QBASIC
T.PASCAL
TURBO C
VISUAL
BASIC
dato = INP (&H379)
OUT &H378, dato
il dato letto viene assegnato alla variabile di stato
il valore presente in dato, viene inviato in uscit a
INPUT
OUTPUT
dato := PORT ($H379)
PORT [$H378] := dato
il dato letto viene assegnato alla variabile data
il valore presente in dato, viene inviato in uscit a
INPUT
OUTPUT
dato = inportb (0x379)
outportb (0x378, dato)
il dato letto viene assegnato alla variabile di stato
il valore presente in dato, viene inviato in uscita
INPUT
OUTPUT
Non esistono, in questo linguaggio, istruzioni specifiche per effettuare
l’INPUT o l’OUTPUT su periferiche. E’ necessario utilizzare un file di
Libreria Dinamica (DLL) appositamente creato e scritto in VISUAL C.
I/O
8
I vari pin del connettore sono organizzati in tre gruppi e vengono gestiti
dal PC come se fossero delle celle di memoria indirizzabili in tre indirizzi
consecutivi.
Quindi si può immaginare una porta parallela come l’insieme di tre
registri.
La porta LPT1 ha gli indirizzi 378H, 379H e 37AH così organizzati:
DATI
378H
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
9
PIN
8
7
6
5
4
3
2
STATO (ingresso)
379H
7
6
5
4
3
2
1
0
BUSY
ACK
PE
SE
ER
X
X
X
11
PIN
10
12
13
15
CONTROLLI
37AH
7
6
5
4
3
2
1
0
X
X
X
X
SI
IP
AF
STROBE
17
16
14
1
9
Esempi:
- (OUTPUT su parallela)
Inviare sulla parallela il dato binario 10110111, cioè il byte:
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 0 1 1 1
B
7
Bin.
Hex
TurboPascal:
-------------var dato: byte:
-------------dato:= $B7
PORT [$378]:= dato
--------------
QBasic:
-------------dato = &HB7
OUT &H378, dato
--------------
- INPUT su parallela
Leggere la porta parallela ed assegnare ad una variabile il valore
numerico binario relativo ai livelli presenti nelle quattro linee d’ingresso
(utilizzate nella scheda d’interfaccia) al momento della lettura.
Ricordando che all’indirizzo 379H sono disponibili 5 bit ed utilizzando
solo i quattro D6, D5, D4, D3, si avrà:
D7 D6 D5 D4 D3 D2 D1 D0
379 H
x D D D D x x x
Per ottenere un dato significativo a 8 bit (4 bit per due volte), si dovrà
effettuare una traslazione verso destra, di tre posizioni, dei bit D6-D3 e
porre a zero i rimanenti D7-D4, cioè:
D7 D6 D5 D4 D3 D2 D1 D0
379H
0 0 0 0 D D D D
Configurazione dopo la traslazione
(SHIFT) di tre posizioni a destra e
l’azzeramento. [/8]
Turbo Pascal
-----------------var dato: byte;
-----------------dato:= PORT[$379]
dato:= dato SHR 3
dato:= dato AND$0F
QBasic:
-------------(il dato letto viene assegnato alla variab. dato)
(si effettua lo shift di tre posizioni a destra)
(vengono azzerati i bit più significativi)
dato% = INP (&H379)
dato% = dato% \ 8
dato% = dato% AND &HB7
10
379H
379H
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 1 1 1 1
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D3 D2 D1 D0
Applicazione AND: 0F
Così ho trasformato i primi quattro
bit in zero per far posto ai successivi.
D7 D6 D5 D4 D3 D2 D1 D0
379H
x D7 D6 D5 D4 x x x
Riacquisiamo i bit successivi.
Adesso si dovrà effettuare una traslazione verso sinistra, di una
posizione, dei nuovi bit acquisiti ponendo a zero i rimanenti, ripetendo
l’operazione già effettuata precedentemente e cioè:
D7 D6 D5 D4 D3 D2 D1 D0
379H
379H
D7 D6 D5 D4 x x x x
Configurazione dopo la traslazione
(SHIFT) di una posizioni a sinistra [x2]
D7 D6 D5 D4 D3 D2 D1 D0
1 1 1 1 0 0 0 0
Applicazione AND: F0H
D7 D6 D5 D4 D3 D2 D1 D0
379H
D7 D6 D5 D4 0 0 0 0
Ora il registro N = NH + N L
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
Non rimane altro che studiare il funzionamento del sistema attraverso il
seguente codice in Visual Basic:
11
Ecco il codice in VB:
Dim L As byte
___________________________________________________________________
Private Sub Form Load ()
Timer1.Enabled = True
End Sub
‘ attiva Timer per temporizzazione acquisizione
___________________________________________________________________
Private Sub Timer1_Timer ()
Call Fout (&H0, &H37A)
‘ attiva Mux per parte alta (o attiva Buffer3st)
NH = Fin (&H379)
Call Fout (&H1, &H37A)
‘ legge Nibble alto
‘ attiva Mux per parte bassa
NL = Fin (&H379)
N = NH + 2
NH = And &HF0
‘ legge Nibble basso
‘ uno shift a sinistra di NH
‘ azzera quattro bit bassi
NL = NL \ 8
NL = NL And &H0F
L = NH + NL
‘ 3 shift a destra di NL
‘ azzera quattro bit alti
‘ in L byte completo
Print L
End Sub
‘stampa su video: txttemp.Text = Str(L)
-------------------------------------------------------------Il Byte dovrà, poi, essere riconvertito al valore iniziale:
T = N \ 2,5 (2,5= Av)
---------------------------------------------------------------- -------------------------------------------------Programma realizzato a scuola:
Private Sub trmtimer_Timer()
Dim nl, nh, n, a, t As Byte
Call Fout(&H1, &H37A)
nl = Fin(&H379)
nl = nl / 8
nl = nl And &HF
Call Fout(&H0, &H37A)
nh = Fin(&H379)
nh = nh * 2
nh = nh And &HF0
n = nh + nl
t=n\ 5
txttemp.Text = Str(t)
a=n\5
Call Fout(a, &H378)
End Sub
‘stampa su video dopo averlo trasformato in stringa
‘riconverti al valore iniziale, Av=5
‘visualizza su display esterno, se presente sulla scheda.
12
Trasduttore di temperatura LM 35
Si tratta di un circuito integrato prodotto dalla NATIONAL e le sue
caratteristiche principali sono:
- tensione di alimentazione da 4 V a 30 V;
- range di temperatura da –55 °C a 150 °C;
- uscita lineare in tensione uguale a 10 mV/°C;
- corrente di uscita uguale a 10 mA;
-Bassa impedenza d’uscita da 0,1-0,001 Ohm;
- tensione di uscita da –1 V a 6 V.
Il trasduttore fornisce, quindi, una tensione di uscita proporzionale alla
temperatura con V0 = KT e K = 10 10-3 V/°C.
Anche se la struttura circuitale è molto complessa, in maniera
schematica, l’LM 35 può essere così rappresentato:
+Vcc
LM 35
+Vcc
(+12 V)
+Vo
(+12 V)
-Vo
LM 35
R
-VR
Per tensione d’uscita negativa
Esempio sensore:
T°
Vs = αT
LM35
α= 10 mV/C°
Vs
Cond./Amplif.
Vs(0°)= 0 mV
Vs(50°)= 500 mV
Vs(100°)= 1000 mV = 1V
ADC
Av = VFS/ VM = 5,12/1 = 5 (volte amplificato)
13
Circuito di condizionamento
Dato un range di temperatura compreso tra 0°C e 50 °C, si vuole
dimensionare il circuito di condizionamento in modo tale da avere in
uscita una tensione tra zero e 5 V.
Poiché il segnale all’uscita del trasduttore
V0 = 0 V
per T = 0 °C
V 0 = 500 mV per T = 50°C
Per ottenere la tensione desiderata occorre utilizzare un A.O. invertente
con Guadagno = 10.
R2
+Vcc
RP
+Vcc
R1
-
CA3140
LM 35
Vo
+
Vs
Vcc = 12 V
Attraverso il potenziometro R P, viene effettuata
la regolazione “fine”, ovvero la taratura, del
valore dell’amplificazione in modo tale che, ad
una certa temperatura nota, corrisponda il valore
desiderato della tensione.
V0 = Vs ( 1+ R2+RP ) =
R1
V0 / Vs = 1+ R2+R P = 10
R1
R2+RP = 9
R1
14
Convertitore ADC 0804
E’ un convertitore analogico-digitale ad approssimazioni successive con
risoluzione ad 8 bit. Il segnale di clock può essere generato
internamente con una rete esterna RC [fc = 1/(1,1 RC)] e con i seguenti
valori: R = 10 Kohm e di C = 150 pF (fc = freq.campionam. = 640 kHz).
Oppure essere applicato dall’esterno al pin 4.
Le caratteristiche del convertitore sono:
CS
RD
WR
1
2
3
CLOCK-R
CLOCKIN
VREF/2
19
4
9
VIN +
VIN AGND
6
7
10
ADC 0804
Direttamente interfacciabile con il processore (linee CS, RD e WR);
Latch d’uscita di tipo 3State;
Precisione +/- 1 LSB; Clock = 640 kHz;
Tempo di conversione = 100 microsecondi;
Range ingresso analogico da 0 a 5 V;
Tensione alimentazione da 4,5 a 6 V (tipica 5 V);
Corrente sink (livello basso) per le uscite D7-D0 e INTR = 16 mA;
Corrente source (livello alto) per le uscite D7-D0 e INTR = 6 mA;
20
5
11
12
13
14
15
16
17
18
8
Vcc
INTR
D7 HSB
D6
D5
D4
D3
D2
D1
D0 LSB
DGND
Funzionamento:
Per avviare la conversione deve porsi CS=0 (abilitazione) e WR=0. A fine
conversione la linea INTR subisce la transizione H
L portandosi a
livello basso. Il dato convertito è memorizzato sul LATCH interno; per
renderlo disponibile sul bus dati (D0:D7) bisogna attivare la linea RD,
ponendola a livello basso così INTR torna alto.
15
Buffer TRI-STATE 74LS241-74HC244
Un Buffer può essere considerato come un dispositivo in grado, con la
sua elevata impedenza d’ingresso e d’uscita di interfacciare, in maniera
ottimale, due dispositivi.
Questo integrato può essere considerato come un BUS bidirezionale
“comandato”.
Buffer con E attivo alto
I
o
o
O
E
0
1
1
I
X
0
1
O
HZ
0
1
E
1
0
0
I
X
0
1
O
HZ
0
1
o E (Enable)
Buffer con E attivo basso
I
o
o
O
o
I = Input
O = Output
E = Ingresso di
abilitazione
X = condizione di
indifferenza
HZ =
Alta
impedenza
o E (Enable)
L’integrato 74HC241
1G 2G Yi
0
0 1Ai
1
1 2Ai
Quando 1G = 0 e 2G = 0 vengono
trasferiti in uscita gli ingressi 1A.
Quando 1G = 1 e 2G = 1 vengono
trasferiti in uscita gli ingressi 2A.
Quindi, quando 1G = 2G = 0 viene trasferito in uscita il primo blocco di quattro bit
mentre, quando 1G = 2G = 1 viene trasferito in uscita il secondo blocco di quattro bit.
16
Interfacciamento dei convertitori A/D e D/A
Nella figura seguente è rappresentata una generica (ma completa)
catena di acquisizione dati analogici:
Trasduttore
Circuito
Condizionat.
Filtro
MUX
S/H
A/D
PC
Nella figura seguente è rappresentata una generica (ma completa)
catena di distribuzione dati: (il Latch indicato è spesso inserito nel D/A)
PC
Latch
D/A
Filtro
PB
Amplificatore
di potenza
Attuatore
17
Trasferimento seriale dei dati a breve distanza
Alla base del trasferimento seriale dei dati è legata la possibilità di
inviare dei dati utilizzando un numero ridotto di linee. Solo due.
In tal caso il trasmettitore è collegato col ricevitore con due
conduttori, uno dei quali è la massa:
Tx
Rx
TX
RX
_
E’ evidente che, volendo trasmettere un dato da otto bit è necessario
che ciascun bit del dato venga inviato, in tempi diversi, sull’unica linea
disponibile. Cioè si deve effettuare la trasformazione seriale del dato.
Supponiamo di voler trasmettere il byte 10010110 con D7=1, D6=0, D5=0,
D4=1, D3=0, D 2=1, D1=1 e D0=0. Per rendere seriale tale dato i bit
debbono essere inviati uno alla volta, partendo, per esempio, dal bit
meno significativo D0 (vedi figura A).
Ogni bit deve permanere sulla linea per uno stesso periodo di tempo,
per cui la durata dell’operazione dovrà essere pari a: durata del bit x 8.
Per diminuire la velocità di trasmissione occorrerà diminuire la durata
del bit.
Nasce, poi, il problema di come il ricevitore possa distinguere un byte
dall’altro.
In base alla tecnica di successione dati si parlerà di modalità sincrona o
asincrona. Noi esamineremo quest’ultima.
Con tale modalità per permettere il riconoscimento di ciascun byte,
viene aggiunto ad esso un bit iniziale detto bit di start a livello basso ed
uno o più bit alla fine detti bit di stop a livello alto.
Il numero di bit di stop può essere di uno, uno e mezzo o due. In tal
modo il dato da inviare potrà essere composto da più di otto bit
complessivi. Inoltre, nelle pause di trasmissione il livello rimarrà alto.
18
Trasferimento seriale
Tavole:
A)
D0
D1
D2
D3
D4
D5
D6
D7
Durata del bit
Linea a riposo
Linea a riposo
B)
D0
D1
D2
D3
D4
Bit di Start
D5
D6
D7
Bit di Stop
Carattere di 8 bit
Linea a riposo
Bit di Parità
Linea a riposo
C)
D0
D1
D2
D3
D4
D5
Bit di Start
D6
D7
Bit di Stop
1° carattere di bit
2° carattere di bit
Linea a riposo
D)
Bit di Start
Bit di Stop
Bit di Parità
Clock di campionamento dei bit
19
I bit che costituiscono il dato, a volte, possono subire delle alterazioni a
causa di disturbi di diversa natura e così possono essere interpretati dal
ricevitore con un livello diverso da quello iniziale. Si producono errori.
E’ possibile effettuare un certo controllo sull’esattezza del dato
aggiungendo al carattere un ulteriore bit detto di parità.
La parità può essere pari (parole con un numero pari di 1) o dispari
(parole con numero dispari di 1).
Tale tipo di controllo però risulta efficace solo se si altera un numero
dispari di bit, durante la trasmissione.
Dall’assenza di sincronismo tra l’invio di un carattere ed un altro si parla
di trasmissione seriale asincrona.
Da quanto precedentemente affermato emerge che per effettuare il
trasferimento dati in modo asincrono il trasmettitore ed il ricevitore
debbono lavorare con:
• stesso numero di bit per carattere (5, 6, 7, 8);
• stesso numero di bit di stop (1, 1,5,2);
• stessa velocità di trasmissione;
• controllo di parità identico;
• stesso tipo di parità (pari o dispari).
UART-ACE
Sono dei dispositivi programmabili che possono essere direttamente
interfacciati direttamente con le CPU, svolgendo le funzioni di
trasmettitori e ricevitori di dati seriali.
L’ACE si interpone tra il computer ed il modem e quando ha la funzione
di trasmettitore, riceve un carattere in formato parallelo dal PC, lo
memorizza e lo trasforma in dato seriale. Viceversa da ricevitore.
USB
L’utilizzo delle porte usb con il VB è piuttosto complesso e non gestibile
direttamente da programma.
Per cominciare, il protocollo usb ha bisogno di essere interfacciato ad un
controller (hardware) e di un driver specifico (software).
Tutte le routine di comunicazione sono contenute in una libreria
specifica dinamica (DLL).
Questa contiene funzioni e procedure che debbono essere prima
richiamate via software e poi rese disponibili all’utente.
20
Sample e Hold LF398
Durante un ciclo di campionamento-mantenimento il Sample-Hold deve
campionare il segnale per un breve periodo e restare in stato di
mantenimento per la rimanente parte del ciclo.
Il S7H LF398, prodotto dalla National Semiconductor, è un integrato di
costo contenuto che si presta ad applicazioni con segnali di non elevata
frequenza. Il condensatore di Hold (CS ) deve essere posto esternamente.
S
+12 V
H
V in
3
1
2
3
4
8
7
6
5
LF398
+V
DA
IN
-V
LG
LR
CS
OUT
1
V out
2
5
LF398
S/H
8
4
7
6
Cs
GRD
-12 V
GRD
Tab. n.1
tac
Tempo di acquisizione
4 microsec. con Cs = 1000pF
20 microsec. con Cs = 10000pF
ta
Tempo di apertura (T=75°C)
200 ns
Droop Rate
30 mV/s con Cs = 1000 pF
3 mV/s con Cs = 10000 pF
Alimentazione
Da +/- 5 V a +/- 18 V
21