G.- F. Dalla Betta, G. Soncini. Appunti di Elettronica 2. Capitolo I Introduzione ai circuiti elettronici digitali I.1. Segnali analogici e digitali Appendice A.1. Sistemi di numerazione A.2. Sistema binario A.3. Codici 1 I.1. Segnali analogici e digitali 2 Segnale analogico: variabile continua assume un numero infinito di valori entro l’intervallo di variazione intervallo di variazione v t Elettronica analogica: sistemi di elaborazione di segnali analogici vi(t) Sistema elettronico analogico Esempio: amplificatore vo(t)=f[vi(t)] vo(t)=A·vi(t) I segnali vi(t) e vo(t) per evitare distorsioni devono rimanere intervallo di variazione in ogni istante all’interno dell’intervallo di variazione caratteristico del funzionamento lineare del sistema vo(t)=A·vi(t) vi(t) t 3 4 Segnale digitale: variabile discreta intervallo di variazione assume un numero finito di valori entro l’intervallo di variazione Il segnale digitale approssima v il segnale analogico t intervallo di campionamento L’approssimazione migliora al crescere del numero di valori discreti in cui viene suddiviso l’intervallo di variazione e l’intervallo di campionamento temporale 5 Mondo digitale Ingressi digitali Sistema elettronico digitale (elaboratore) Uscite digitali Sistema elettronico digitale (elaboratore) Convertitore D/A segnale analogico (sensor output) Convertitore A/D Per comunicare con il mondo analogico ... segnale analogico (actuator input) Teorema del campionamento (Nyquist): Ts = 1/(2×fmax) Discretizzazione del tempo e delle ampiezze dei segnali Convertitore Analogico/Digitale (A/D) A Sample&Hold A* Quantizzatore (A/D) REF A* Valori continui tempo-discreti B Valori discreti tempo-discreti Classificazione dei convertitori A/D • a contatore • a integrazione • ad approssimazioni successive • paralleli B1 B2 B3 Bn Convertitore Digitale/Analogico (D/A) Segnale Digitale (binario) B1 B2 B3 A REF f ( B ) D/A Segnale Analogico Bn REF (riferimento analogico) f(B) = caratteristica di conversione (lineare o non lineare) n Caso lineare: f ( B ) Bi 2 i 1 i 8 Il segnale binario assume nominalmente due soli valori e costituisce quindi il caso piu’ elementare di segnale discreto. La quasi totalità delle apparecchiature digitali impiega segnali binari. • Occorrono ovviamente più segnali binari per sostituire un segnale discreto G • La forma d’onda del segnale binario raramente presenta un’alternanza di due soli valori (continuità della grandezza fisica impiegata, disturbi, …) L • All’interno dell’intervallo di variabilità sono definiti a priori due distinti valori di soglia, H e L; normalmente il valore dei segnali è sopra H o sotto L. • Il passaggio nella fascia intermedia di valori avviene con rapidi transitori, detti “fronti di salita” e “fronti di discesa”. H t G H Fronte di salita Fronte di discesa L t Esempio: controllo livello liquido in un serbatoio a) analogico b) digitale 9 Vcc Vcc va (t) vd (t) massa massa va , vd Vcc 3 2 1 0 0 10 Digit di ingresso Sistema elettronico digitale (elaboratore) Digit di uscita • Sistema elettronico digitale combinatorio: il digit di uscita all’istante t dipende dai digit di ingresso allo stesso istante t. • Sistema elettronico digitale sequenziale: il digit di uscita all’istante t dipende e dai digit di ingresso allo stesso istante t e dai digit di ingresso agli istanti precedenti. Presuppone l’esistenza di circuiti di memorizzazione dei dati. I sistemi sequenziali possono essere ulteriormente classificati in: Sistemi asincroni, ovvero privi di ogni riferimento temporale. Sistemi sincroni, nei quali invece i segnali possono cambiare solo in corrispondenza di istanti di tempo prefissati e, di norma, ugualmente intervallati. 11 Vantaggi approssimazione (approccio) digitale: • maggiore immunità ai disturbi, sia in fase di acquisizione che di trasmissione dei dati margine d’immunità ai disturbi 000 001 010 011 100 101 110 111 • facilità di elaborazione numerica e di memorizzazione del segnale • bassi costi dell’elettronica integrata digitale • versatilità e programmabilità APPENDICE A.1. Sistemi di numerazione a) sistema decimale: numerazione a base 10 Cifre (digits): Ci0, 1, 2, …9. Numero10 : N10 k n 1 k C 10 i k 0 Alla posizione della cifra nel numero è associato un peso decimale Esempio (numero intero): 345910 3 103 4 10 2 5 101 9 10 0 migliaia centinaia decine Esempio (numero frazionario decimale): unità 34.5910 3 101 4 10 0 5 10 1 9 10 2 decine unità decimi centesimi Esiste una infinita possibilità di sviluppare diversi sistemi di numerazione modificando la scelta della base. Di fatto si usano un numero limitato di sistemi di numerazione 12 13 b) sistema binario: numerazione a base 2 Cifre Ci0, 1. Binary digit=Bit=informazione elementare Numero2: N2 k n 1 k C 2 i k 0 Alla posizione della cifra nel numero è associato un peso binario Esempio (numero intero): 101112 1 2 4 0 2 3 1 2 2 1 21 1 2 0 2310 Esempio (numero frazionario): 10.1112 1 21 0 2 0 1 2 1 1 2 2 1 2 3 2.87510 Il sistema binario è particolarmente vantaggioso per semplificare la realizzazione dei circuiti elettronici di elaborazione numerica e per interfacciarsi con calcolatori e microprocessori 14 c) sistema ottale: numerazione a base 8 Cifre Ci0, 1,…, 7. Numero: esempio: N8 k n 1 k C 8 i k 0 1618 1 8 2 6 81 1 80 11310 d) sistema esadecimale: numerazione a base 16 Cifre Ci0, 1,…, 9, A, B, C, D, E, F. Numero: N16 k n 1 k C 16 i k 0 esempio: F15 A16 15 163 1 16 2 5 161 10 16 0 6178610 Conversione fra i diversi sistemi di numerazione Regola generale: conversione del numero reale a (maggiore di 1) in base b=10 nel corrispondente numero reale c in base d. c si ottiene dividendo a per d. I resti ad ogni passo della divisione rappresentano le cifre di c. Esempio: convertire 2710 nel suo equivalente in base 2 in questo caso: c=?; a=27(decimale >1); b=10; d=2 27:2=13 resto 1 ( bit meno significativo: peso 20 ) 13:2=6 resto 1 ( peso 21 ) 6:2=3 resto 0 ( peso 22 ) 3:2=1 resto 1 ( peso 23 ) 1:2=0 resto 1 ( bit più significativo: peso 24 ) per cui: 2710=110112 (=1 24+ 1 23+ 0 22+ 1 21+ 1 20 ) 15 16 Regola generale: conversione del numero reale a (minore di 1) in base b=10 nel corrispondente numero reale c in base d. c si ottiene moltiplicando a per d. Le parti intere ad ogni passo della moltiplicazione rappresentano le cifre di c. Esempio: convertire 0.37510 nel suo equivalente in base 2 in questo caso: c=?; a=0.375(decimale <1); b=10; d=2 0.375×2 = 0.750 parte intera 0; parte frazionaria 0.750; ( peso 2 1 ) 0.750×2 = 1.500 parte intera 1; parte frazionaria 0.500; ( peso 2 2 ) 0.500×2 = 1.000 parte intera 1; parte frazionaria 0.000; ( peso 2 3 ) per cui: 0.37510=0.0112 (=0+0 2 1 + 1 2 2 + 1 2 3) Per convertire un numero frazionario, basta procedere separatamente alla conversione della parte intera e della parte frazionaria Analogamente per le conversioni da decimale in altri sistemi numerici 17 Esempio 1: convertire 11910 nel suo equivalente in base 8 in questo caso: c=?; a=119; b=10; d=8 119:8=14 resto 7 ( bit meno significativo: peso 80 ) 14:8=1 resto 6 ( peso 81 ) 1:8=0 resto 1 ( bit più significativo: peso 82 ) per cui: 11910=1678 ( =1 82+ 6 81+ 7 80 ) Esempio 2: convertire 93310 nel suo equivalente in base 16 in questo caso: c=?; a=933; b=10; d=16 933:16=58 resto 5 ( bit meno significativo: peso 160 ) 58:16=3 resto 10A ( peso 161 ) 3:16=0 resto 3 ( bit più significativo: peso 162 ) per cui: 93310=3A516 ( =3 162+ A 161+ 3 160 ) Esempio 3: convertire 207.87410 nel suo equivalente in base 2 Parte intera 207:2=103 resto 1 ( peso 20 ) 103:2=51 resto 1 ( peso 21 ) 51:2=25 resto 1 ( peso 22) 25:2=12 resto 1 ( peso 23) 12:2= 6 resto 0 ( peso 24) 6:2= 3 resto 0 ( peso 25) 3:2= 1 resto 1 ( peso 26) 1:2= 0 resto 1 ( peso 27) 18 Parte frazionaria 0.874x2=0.748 parte intera 1 ( peso 2-1 ) 0.748x2=0.496 parte intera 1 ( peso 2-2) 0.496x2=0.992 parte intera 0 ( peso 2-3) 0.984x2=0.968 parte intera 1 ( peso 2-4) 0.968x2=0.936 parte intera 1 ( peso 2-5) 0.936x2=0.872 parte intera 1 ( peso 2-6) 0.872x2=0.744 parte intera 1 ( peso 2-7) 0.744x2=0.488 parte intera 1 ( peso 2-8) ... troncamento alla ottava cifra dopo la virgola per cui: 207.87410=11001111.110111112 Esempio 4: convertire 40.310 nel suo equivalente in base 16 Parte intera 40:16=2 resto 8 ( bit meno significativo: peso 160 ) 2:16=0 resto 2 ( bit più significativo: peso 161 ) Parte frazionaria 0.3x16=0.8 parte intera 4 ( bit più significativo: peso 16-1) 0.8x16=0.8 parte intera 12 = C ( peso 16-2) 0.8x16=0.8 parte intera 12 = C ( peso 16-3) periodico ... ... troncamento alla terza cifra dopo la virgola per cui: 40.310=28.4CC16 19 20 Esempio 5: convertire il numero binario 10110110010001102 nel suo equivalente in base 8. Raggruppare le cifre in gruppi di tre partendo da destra, completando l’ultimo terzetto a sinistra con degli zeri se necessario: 001 011 011 001 000 1102 Convertire i terzetti binari nel loro equivalente in base 8: 011 011 001 000 1102 1 3 3 1 0 6 { { { { { { 001 10110110010001102 = 1331068 21 Esempio 6: convertire il numero binario 10110110010001102 nel suo equivalente in base 16. Raggruppare le cifre in gruppi di quattro partendo da destra, completando l’ultimo quartetto a sinistra con degli zeri se necessario: 1011 0110 0100 01102 { 1011 { 0110 { 0100 { Convertire i quartetti binari nel loro equivalente in base 16: B 6 4 6 10110110010001102 = B64616 01102 Appendice A.2. Sistema binario sistema di numerazione a base 2 Cifre Ci0, 1. Binary digit=Bit=informazione elementare Numero2: N2 k n 1 k C 2 i sequenza ordinata di bits k 0 I numeri binari sono convenzionalmente suddivisi in gruppi di 4 bits Con 4 bits (nibble) si conta da 0 ad 1111 (da 0 a 15 in decimale) Con 8 bits (byte) si conta da 0 ad 11111111 (da 0 a 255 in decimale) Con 16 bits (word) si conta da 0 a 1111111111111111 (da 0 a 65535 in decimale) N 2 n 1 max. numero decimale rappresentabile con n bit E’ possibile sviluppare una matematica binaria e definire regole di calcolo in binario in analogia al sistema decimale (Algebra di Boole) 22 Sistema binario: operazioni aritmetiche elementari Si applicano regole formalmente analoghe al sistema decimale a) somma di due numeri binari: Esempio: 1012+1112= ? 11 riporto 1 0 1+ 1 1 1= 110 0 b) sottrazione di due numeri binari: Esempio: 10012 – 1112=? 11 prestito 1001– 0 1 1 1= 0010 0+0=0 0+1=1 1+0=1 1 + 1 = 0 con riporto 1 0–0=0 1–0=1 1–1=0 0 – 1 = 1 con resto 1 23 24 c) moltiplicazione di due numeri binari: Esempio:1012 102=? 101 10= 000 101 1010 00=0 10=0 01=0 11=1 d) La divisione di due numeri binari non e’ immediata e si basa sul seguente procedimento: • si pone il divisore sotto il dividendo in modo che le cifre piu’ significative coincidano; • si confronta il divisore con la porzione del dividendo equivalente; • se questa porzione e’ maggiore o uguale al divindendo, si scrive un 1 nel quoziente e il divisore e’ sottratto alla porzione del dividendo, altrimenti si pone uno zero nel quoziente; altrimenti si scrive uno 0 nel quoziente. • si sposta il divisore di una posizione verso destra e si ripete la procedura finche’ la cifra meno significativa del divisore e’ allineata con la cifra meno significativa del dividendo. Esempio: 10012 : 112=? A Dividendo 1 0 0 1 Divisore 1 1 Dividend o 1 0 0 1 B Divisore 11 Sottrazione 0 1 Dividend o 0 1 1 C Divisore 11 Sottrazione 0 0 1 1 Quoziente Resto 25 26 La moltiplicazione (divisione) è riconducibile ad una semplice operazione di scorrimento o shift a sinistra (destra) di m posizioni del moltiplicando (dividendo) nel caso in cui il valore del moltiplicatore (divisore) coincida con una potenza intera m della base (2). Esempi: 1012 102 = 10102 scorrimento a sinistra di una posizione 11102 1002 = 1110002 scorrimento a sinistra di due posizioni 1010102 : 102 = 101012 scorrimento a destra di una posizione 10112 : 10002 = 1.0112 scorrimento a destra di tre posizioni Rappresentazione numeri negativi a) bit di segno rappresentazione modulo preceduta dal bit di segno: 0 per + 1 per – Esempio: +4510 = 0 101101 – 4510 = 1 101101 bit bit di di segno modulo Con questa convenzione una parola di 8 bit (di cui uno di segno e sette di modulo) può rappresentare numeri decimali interi nell’intervallo: 27 1 127 N 27 1 127 27 28 b) complemento ad 1 di un numero binario Il complemento ad 1 di un numero binario N2 ad n cifre si ottiene sottraendo il numero stesso da (2n–1). In formule: N 2 1 2 n 1 N 2 Esempio: N2=101 complemento ad 1: (23–1) – 101= (1000 –1) – 101=111 – 101=010 Esempio: N2 =10110 complemento ad 1: (25–1) – 10110 = 11111 – 10110=01001 Cambia ogni cifra del numero binario con il suo opposto: 0 per 1 1 per 0 Esempio: N2 = 101101 (= 4510 ); complemento ad 1: 010010 N2 = 100100 (= 3610 ); complemento ad 1: 011011 29 c) complemento a 2 di un numero binario Il complemento a 2 di un numero binario N ad n cifre si ottiene sottraendo il numero stesso da 2n. In formula: N 2 2 n N Esempio: N2=101 complemento a 2: 23– 101= 1000 –101= 011 Esempio: N2=10110 complemento ad 1: 25 – 10110 = 100000 - 10110 = 01010 Si copia ogni cifra del numero binario partendo dall’ultimo bit (bit meno significativo) fino al primo 1 incluso, quindi si procede sostituendo i bit successivi con il loro opposto: 0 per 1 e 1 per 0 Esempio: N2= 101101(= 4510 ); complemento a 2: 010011 N2= 100100(= 3610 ); complemento a 2: 011100 30 Convenzione: il numero binario negativo viene rappresentato dal suo compl. a 2 Esempio: +1110 = – 610 = +1010 = – 1410 = 0 1011 1 0110 0 1010 1 1110 0 1011 1 1010 0 1010 1 0010 In questa convenzione la somma algebrica tra due numeri binari si effettua sommando i due numeri, incluso il bit di segno Esempio: +1110 = 0 1011 – 610 = 1 1010 +510 = 0 0101 + 1010 = 0 1010 – 1410 = 1 0010 –410 = 1 1100 complemento a 2 di –410 31 L’utilizzo della rappresentazione convenzionale in complemento a 2 del numero binario negativo si rivela in generale vantaggiosa, poiché semplifica la realizzazione dei circuiti elettronici di elaborazione nel sistema binario (basta realizzare circuiti sommatori). Esempio: + 310 = 0 0011 – 610 = 1 0110 0 0011 1 1010 1 1101 complemento a 2 di –310 Esempio: + 710 = 0 0111 – 810 = 1 1000 0 0111 1 1000 1 1111 complemento a 2 di –110 32 Esempio: – 310 = 1 0011 – 510 = 1 0101 1 1 1101 1011 1 1000 complemento a 2 di –810 Esempio: + 2.7510 = 0 10.11 – 0.5010 = 1 00.10 0 10.11 1 11.10 0 Esempio: + 1.12510 = 0 01.001 – 3.37510 = 1 11.011 10.01 (=2.2510) 0 01.001 1 00.101 1 01.110 complemento a 2 di 1 10.0102 = –2.2510 Appendice A.3. Codici 33 E’ denominato Codice Binario ogni regola che stabilisce una funzione dall’insieme formato dalle configurazioni binarie di N bit ad un insieme costituito da simboli, oggetti, o da eventi mutuamente esclusivi. Proprieta’ dei codici binari: • non si devono utilizzare necessariamente tutte le possibili configurazioni di N bit; • la stessa informazione può essere associata a più configurazioni, ma ogni configurazione utilizzata deve avere significato univoco; • per stabilire un codice è necessario che il numero delle configurazioni rese disponibili dagli N bit di codifica sia maggiore o uguale al numero M degli elementi dell’insieme che si vuole rappresentare, ovvero: 2N M NMIN = il più piccolo intero superiore a log2 M 34 Rappresentazioni convenzionali di numeri decimali con numeri binari A) codice BCD (Binary Coded Decimal), detto anche 8-4-2-1, dal valore dei pesi: NBCD=b3b2b1b0= 8b3+ 4b2 + 2b1 + 1b0 Le singole cifre decimali vengono rappresentate da 4 cifre binarie decimale 9 2 5 Esempio: 925 10 1001 0010 0101 Codice BCD B) codice Gray Le singole cifre decimali vengono rappresentate da cifre binarie che variano sempre di un solo bit nel procedere con il conteggio: Decimale : 0 1 2 3 4 5 6 7 8 9 Binario: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Gray: 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 Altri codici vengono utilizzati per specifiche applicazioni. 35 Esempio: Calcolatrice tascabile Ingresso operandi Codice 1 su 10 Esecuzione operazione Codice BCD Uscita risultato Codice a 7 segmenti Cifra Codice “1 su 10” Codice BCD Codice a 7 segmenti 9876543210 xyzw abcdefg 0 0000000001 0000 1111110 1 0000000010 0001 0110000 2 0000000100 0010 1101101 3 0000001000 0011 1111001 4 0000010000 0100 0110011 5 0000100000 0101 1011011 6 0001000000 0110 0011111 7 0010000000 0111 1110000 8 0100000000 1000 1111111 9 1000000000 1001 1110011 a f b g e c d 36 Esempio: Position encoders ottici (trasduttori che forniscono in forma digitale ed in parallelo la posizione angolare di un albero rotante). N corone circolari, 2N tacche opache e trasparenti, disposte secondo il codice Gray (variazione di un solo bit nella codifica di settori contigui) Esempio (3 bit) V a lo ri a n g o la ri 0° - 45° 45° - 90° 90° - 135° 135° - 180° 180° - 225° 225° - 270° 270° - 315° 315° - 360° C o n fig u ra z io n e G ra y a 3 b it 000 001 011 010 110 111 101 100