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