APPUNTI DI ELETTRONICA DIGITALE ITIS MARCONI-GORGONZOLA docente :dott.ing. Paolo Beghelli pag.1/24 Indice 1.ELETTRONICA DIGITALE 4 1.1 Generalità 4 1.2 Sistema di numerazione binario 4 1.3 Operazioni con i numeri binari 5 1.3.1 Somma 5 1.3.2 Differenza 6 1.3.3 Moltiplicazione 6 1.3.4 Divisione 6 1.3.5 Complemento di un numero 7 1.4 Altri sistemi di numerazione 9 1.4.1 Sistema esadecimale 9 1.4.2 Sistema ottale 9 1.4.3 Perché altri sistemi di numerazione ? 9 1.5 I codici 10 1.5.1 Codice BCD ( Binary Coded Decimal ) 10 1.5.2 Codice ASCII ( American Standard Code for Information Interchange ) 11 1.5.3 Codice EBCDIC ( Extended Binary Coded Decimal Interchange Code ) 11 1.6 La logica combinatoria 12 1.6.1 Operatori fondamentali 12 1.7 Regole fondamentali dell’algebra di Boole 14 1.7.1 Proprietà della somma logica (OR) 14 1.7.2 Proprietà del prodotto logico ( AND) 14 1.7.3 Proprietà della negazione (NOT) 14 1.8 Teoremi fondamentali dell’algebra di Boole 15 1.8.1 Teorema dell’Idempotenza 15 1.8.2 Teoremi dell’assorbimento 15 1.8.3 Teoremi di De Morgan 15 1.9 Forme canoniche delle funzioni di commutazione 16 pag.2/24 1.9.1 Prima forma canonica 16 1.9.2 Seconda forma canonica 16 1.10 Le mappe di Karnaugh 17 ESERCIZI 18 pag.3/24 1.ELETTRONICA DIGITALE 1.1 Generalità L’elettronica digitale si occupa dell’elaborazione di segnali elettrici per eseguire operazioni di carattere matematico o logico. I segnali elettrici vengono elaborati sotto due stati diversi : - ON ( acceso ) = percorso da corrente - - OFF ( spento ) = non percorso da corrente Alla base della elettronica digitale c’è il : 1.2 Sistema di numerazione binario Ogni sistema di numerazione si basa sulla seguente EQUAZIONE FONDAMENTALE N = Cn• bn + Cn-1• bn-1+ C1• b1 + C0 + b0 b Ci N = = = dove: base del sistema numero qualsiasi compreso tra 0 e b-1 (=cifra) esponente La generica cifra è detta anche DIGIT. IMPORTANTE : LE CIFRE 0 E 1 VENGONO CHIAMATE BIT ( = BInary digiT ) Il sistema decimale comunemente usato non è altro che ricavato dalla E.F. con base b = 10 Esempio : 432 4•102+3•101+2•100 = 432 La posizione occupata dalla cifra (DIGIT) indica il peso della cifra stessa ( centinaia, decine, unità …) NEL SISTEMA BINARIO: b Ci = = 2 può essere 1 oppure 0 L’equazione fondamentale diventa : N = Cn•2n+Cn-1•2n-1+ C1•21+C0•20 Perciò: i numeri sono esprimibili nel sistema binario come successione di 1 e 0 Esempio : 2 = 1•21+0•20 C1 C0 (=2+0) pag.4/24 Quindi, siccome Esempio N= C1C0 : Per cui 9 , nel sistema binario 2 diventa 9 = 1•23+0•22+0•21+1•20 : 10 (=uno, zero) (=8+0+0+1) 1001 nel sistema binario PASSAGGIO DAL SISTEMA DECIMALE AL SISTEMA BINARIO Per passare dal sistema binario al decimale basta applicare l’equazione fondamentale. Per passare invece dal decimale al binario, occorre invece dividere successivamente il numero per 2 segnando i resti, ordinandoli poi in modo inverso. ESEMPIO N=27 27:2 = 13 13:2 = 6 6:2 = 3 3:2 = 1 1:2 = 0 resto 1 resto 1 resto 0 resto 1 resto 1 Quindi 27 1 1 0 1 1 Infatti : 1•24+1•23+0•22+1•21+1•20 = 16+8+0+2+1 = 27 1.3 Operazioni con i numeri binari ( da non confondere con la LOGICA BINARIA ) 1.3.1 Somma Le regole della somma sono : 0+0 0+1 1+0 1+1 Esempio : = = = = 13 + 8 ------21 0 1 1 0 senza riporto senza riporto senza riporto con riporto 1101 1000 -------10101 16+0+4+1 = 21 pag.5/24 1.3.2 Differenza Le regole della differenza sono : 0-0 1-0 0-1 1-1 Esempio : = = = = 0 1 1 1 senza richiamo senza richiamo con richiamo senza richiamo 110101 1000 ---------01101 21 8 -----13 0+8+4+0+1 = 13 1.3.3 Moltiplicazione Le regole della moltiplicazione sono: 0•0 0•1 1•0 1•1 = = = = 0 0 0 1 esempio : 8•7=56 senza riporti 1000 • 111 ----------------1000 10001000-----------------111000 32+16+8+0+0+0=56 1.3.4 Divisione La divisione si esegue per sottrazioni successive come nel caso decimale Esempio : 72= ------52= ------32= -------resto 1 7:2 111 10 = ---------1101 – 10 = ----------011 – 10 = ----------001 Risultato : 3 con resto 1 ( sia nel caso decimale che binario ) pag.6/24 Nota : in seguito useremo più sovente la somma e la moltiplicazione, mentre per la differenza vedremo il sistema del COMPLEMENTO in quale è più usato in quanto più adatto all’elaborazione nei circuiti elettronici. IMPORTANTE : LE CIFRE 0 E 1 VENGONO CHIAMATE BIT ( = BInary digiT ) 1.3.5 Complemento di un numero Si definisce complemento di un numero, qualunque sia la base del sistema di numerazione, la differenza tra la potenza n-esima della base e il numero stesso, dove n è il numero di cifre del numero Esempio : complemento a 10 del numero 127 103-127 = 873 Lo stesso risultato si può ottenere facendo il complemento a 9 e aggiungendo 1 Complemento a 9 di 1 = Complemento a 9 di 2 = Complemento a 9 di 7 = 8 7 2 872+1 = 873 In matematica binaria si preferisce pertanto calcolare il complemento a 1 e sommare successivamente 1 per ottenere il COMPLEMENTO a 2 Ciò perché il complemento a 1 è presto ricavato invertendo tutti i bit Esempio : N = 1011 Complemento a 1: = 0100 Complemento a 2 = 0100+ 1= -------0101 A questo punto possiamo eseguire la DIFFERENZA BINARIA come somma del complemento a 2 Esempio : 27 – 11 = 16 27 11 11011 1011 Il complemento a 2 di 01011 è : 10100+ 1= -----------10101 complemento a 1 complemento a 2 pag.7/24 Eseguo : 11011+ 10101 = ---------110000 Eliminando la prima cifra a sinistra si ottiene : 1000 = 16 ( nel sistema decimale ) Note : 1) 2) 3) prima di eseguire il complemento a 1 devo pareggiare le cifre del sottraendo con quelle del minuendo aggiungendo a sinistra degli 0 eseguita la somma con il complemento a 2, il risultato ottenuto va privato del primo 1 a sinistra nei sistemi elettronici si usa il sistema del complemento a 1, perché più semplice ed immediato ( basta invertire i bit ) pag.8/24 1.4 Altri sistemi di numerazione 1.4.1 Sistema esadecimale E’ un sistema a base 16 in cui le cifre vengono indicate con i simboli: 0 1 2 Esempio : 3 4 5 6 7 8 9 A B C D E F (10) (11) (12) (13) (14) (15) il numero E2B in esadecimale, corrisponde a : 14•162+2•161+11•160 = 14•256+2•16+11•1 = 3627 1.4.2 Sistema ottale E’ analogo al precedente ma utilizza le cifre : 0 1 2 3 4 5 6 7 1.4.3 Perché altri sistemi di numerazione ? I motivi per cui sono stati introdotti questi due sistemi derivano dalla necessità di codificare in modo binario il nostro sistema decimale. Ora se utilizzo n. 3 bit, non riesco a codificare tutte l cifre da 0 a 9, infatti: decimale 0 1 2 3 4 5 6 7 binario 000 001 010 011 100 101 110 111 Se invece utilizzo 4 bit, questi non sono sfruttati per le massime prestazioni possibili, perché con 4 bit posso rappresentare 16 cifre decimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 pag.9/24 1.5 I codici In generale la codifica è un metodo per rappresentare determinate informazioni per mezzo di simboli. I simboli normalmente usati sono le lettere dell’alfabeto e le cifre da 0 a 9. I simboli disponibili, invece, nel sistema binario sono esclusivamente 0 e 1. Per poter quindi utilizzare questi simboli per rappresentare informazioni in modo comprensibile, sia di tipo numerico che non, sono stati formulati dei CODICI. 1.5.1 Codice BCD ( Binary Coded Decimal ) E’ un sistema di codifica soltanto numerico ed utilizza la rappresentazione binaria delle cifre da 0 a 9 ordinandole ( dando perciò un “ peso “ ) come nel sistema decimale. Per ogni cifra si utilizzano 4 bit. decimale 0 1 2 3 4 5 6 7 8 9 Esempio : binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 N10 = 427 NBCD = 4 2 7 0100 / 0010 / 0111 Con il codice BCD il numero di bit necessari per rappresentare un numero è sempre maggiore dei corrispondenti in Binario puro, ma l’interpretazione è più semplice. pag.10/24 1.5.2 Codice ASCII ( American Standard Code for Information Interchange ) E’ un sistema di codifica per rappresentare oltre ai numeri e alle lettere anche i simboli di punteggiatura, nonché alcuni comandi già formulati ( il codice ASCII era nato inizialmente per le telescriventi ). Esso utilizza 7 bit , per cui sono possibili 27 = 128 rappresentazioni di simboli diversi. I primi 3 bit hanno un “ peso “ maggiore ed indicano grosso modo la famiglia di appartenenza del simbolo, mentre gli altri 4 bit lo individuano esattamente. Esempio : DEC ASCII 65 A 26 25 24 100 (famiglia delle lettere maiuscole) Binario 23 22 21 20 0001 HEX 161 160 4 1 Viene aggiunto poi un ottavo bit di controllo parità. Esso non ha significato per la codifica, ma serve solo come controllo di eventuali errori. Vale 1 se i bit a 1 della codifica sono dispari, vale 0 se viceversa sono pari. Per quanto riguarda la codifica dei 128 simboli del codice ASCII, si fa riferimento alla tabella allegata. NOTA : l’insieme di 8 bit è molto utilizzato in elettronica. Esso si chiama comunemente byte. Un insieme di 4 bit si chiama semibyte o nible. Un Kbyte vale 210 = 1024 byte 1.5.3 Codice EBCDIC ( Extended Binary Coded Decimal Interchange Code ) E’ un codice che utilizza 8 bit, per cui consente 28= 256 rappresentazioni di simboli per le quali si rimanda alla tabella allegata. E’ un codice utilizzato in particolare dall’IBM per i grossi calcolatori. pag.11/24 1.6 La logica combinatoria Un sistema che utilizza segnali di tipo binario ( 0-1 ) si può definire sistema di COMMUTAZIONE. Le funzioni che studiano un sistema di COMMUTAZIONE, si chiamano FUNZIONI DI COMMUTAZIONE. In esse il valore di uscita può essere solo 0 oppure 1 e dipende dallo stato degli ingressi ( 0 o 1 ) e non dalla “ storia “ degli stessi ( esempio : tempo di applicazione ) Y = f(x) X1 (0,1) f.c. y (0,1) X2 (0,1) Rappresentazione schematica di una funzione di commutazione Le regole che permettono lo studio di questi tipi di funzione, sono contenute nell’ALGEBRA di BOOLE. NOTA : nell’Algebra di Boole tutte le variabili dipendenti e indispensabili possono avere solo valore 0 oppure 1. Variabili indipendenti:: Variabili dipendenti x : : y ; ingressi uscite 1.6.1 Operatori fondamentali Gli operatori fondamentali dell’Algebra di Boole sono : - la NEGAZIONE - la SOMMA LOGICA - il PRODOTTO LOGICO = = = NOT OR AND Il significato di queste operazioni è esaminabile tramite le TABELLE DI VERITA’. Esse consistono in tabelle dove vengono rappresentati gli stati degli ingressi con i corrispondenti stati delle uscite. NOT negazione x tabella di verità simbolo x y x 0 1 y 1 0 l’uscita è allo stato opposto dell’ingresso pag.12/24 OR somma logica x1+x2 simbolo X1 0 0 1 1 X2 0 1 0 1 Y 0 1 1 1 X1 0 0 1 1 X2 0 1 0 1 Y 0 0 0 1 l’uscita è a 1 se almeno un ingresso è a 1 AND prodotto logico x1•x2 simbolo l’uscita è a 1 quando tutti gli ingressi sono a 1 pag.13/24 1.7 Regole fondamentali dell’algebra di Boole 1.7.1 Proprietà della somma logica (OR) a) b) c) d) e) x+1 x+0 x1+x2 x1+x2+x3 x1•x2+x1•x3 = = = = = 1 x x2+x1 (x1+x2)+x3 x1•( x2+x3) 1.7.2 Proprietà del prodotto logico ( AND) a) b) c) d) e) x•0 = x•1 = = x1•x2 x1•x2•x3 (x1+x2)•(x1+x3) = 0 x x2•x1 = (x1•x2)•x3 x1+ x2•x3 1.7.3 Proprietà della negazione (NOT) a) b) c) d) e) o 1 x x+x x•x = = = = = 0 1 x 1 0 pag.14/24 1.8 Teoremi fondamentali dell’algebra di Boole 1.8.1 Teorema dell’Idempotenza a) b) x+x+x = x•x•x = x x 1.8.2 Teoremi dell’assorbimento a) b) c) d) x1+ x1•x2 x1• (x1+ x2) x 1+ x 1 x 2 x1•( x 1+ x2) = = = = x1 x1 x1+x2 x1•x2 1.8.3 Teoremi di De Morgan a) Il negato di un prodotto logico è uguale alla somma dei negati dei singoli fattori: x1• x2•.......•xn = x 1+ x 2+..........+ x n b) Il negato di una somma logica è uguale al prodotto dei negati dei singoli addendi x1+ x2+.......+xn = x 1• x 2•..........• x n pag.15/24 1.9 Forme canoniche delle funzioni di commutazione Scopo dell’algebra di commutazione è quella di rappresentare i problemi logici partendo dalla tabella di verità nel modo più semplice, dopodiché trasformarlo in un circuito logico realizzabile con le PORTE LOGICHE a disposizione. Un metodo di rappresentazione è quello delle FORME CANONICHE: 1.9.1 Prima forma canonica Esempio : Data la tabella di verità x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 y 0 1 1 0 0 0 1 1 : Mintermine : Mintermine : Mintermine : Mintermine Si definiscono MINTERMINI gli stati in cui y = 1. Essi sono determinati dai valori che assumono gli ingressi in quella situazione. Ogni MINTERMINE, per la precisione, è rappresentato dal prodotto logico degli ingressi che sono a 1 e dai negati di quelli che sono a 0. La funzione di commutazione nella PRIMA FORMA CANONICA è data dalla somma logica dei vari MINTERMINI. Nel nostro caso : x1•x2•x3 + x1•x2•x3 + x1•x2•x3 + x1•x2•x3 mintermini 1.9.2 Seconda forma canonica Nella seconda forma canonica si considerano invece gli stati in cui y = 0 definiti MAXTERMINI. Ogni MAXTERMINE è definito dalla somma logica degli ingressi che hanno valore 0 e dei negati di quelli che hanno valore 1. La seconda forma canonica è data dal prodotto logico di tutti i maxitermini. Nel caso dell’esempio precedente essa sarebbe : (x1+x2+x3) • (x1+x2+x3) • (x1+x2+x3) • (x1+x2+x3) maxtermini pag.16/24 1.10 Le mappe di Karnaugh Le mappe di Karnaugh sono un metodo grafico per la soluzione di problemi in logica di commutazione consentendo di rappresentare la funzione di commutazione in forma già semplificata, senza dover ricorrere molto all’algebra di commutazione. L’uso delle mappe è comunque comodo per problemi con al massimi 6 ingressi. La mappa viene realizzata partendo dalla tabella di verità, riportando nelle caselle gli stati in cui y = 1. Dall’esempio di prima : x2 x3 0 x1 1 00 0 1 01 1 11 10 1 x1•x2•x3 x1•x2•x3 1 x1•x2•x3 1 x1•x2•x3 Praticamente è un metodo grafico di rappresentazione dei MINTERMINI. La funzione di commutazione si ottiene dai raggruppamenti formati da caselle adiacenti in cui lo stato è 1. I mintermini sono formati dal prodotto logico degli ingressi che nel passaggio da una casella all’altra del raggruppamento si mantengono costanti allo stato 1 e dei negati di quelli che si mantengono a 0. Un raggruppamento deve avere i lati costituiti da un numero di caselle pari a una potenza di 2 ( 1,2,4,8, ....). Nel nostro caso : x2 x3 0 x1 1 x1•x2•x3 00 01 1 11 10 1 1 x1•x2 1 x2•x3 La funzione così ottenuta può essere ulteriormente semplificata. pag.17/24 ESERCIZI 1. Rappresentare nel sistema binario i seguenti numeri espressi nel sistema decimale: 162 : 9 : 10 : 121 : 85 : 2. Convertire in sistema decimale i seguenti numeri binari : 11001 : 00100 : 00010 : 01110 : 01111 : 10101 : 3. Eseguire le seguenti somme di numeri binari ( con verifica ) : 12 + 7 = ------19 27 + 5= ------32 pag.18/24 4. Rappresentare i complementi a 1 e a 2 dei seguenti numeri binari : complemento 1 complemento 2 1101 0101 1110 0001 5. Eseguire le seguenti sottrazioni di numeri binari con metodo normale e del complemento a 2 ( verificare i risultati ) : 15 3= -----12 31 17 = ------- pag.19/24 Esercizi su logica combinatoria Date le seguenti tabelle di verità , scrivere le corrispondenti funzioni combinatorie complete , lo schema a contatti e lo schema con porte logiche . Eseguire le opportune semplificazioni e riportare gli schemi semplificati . 1) X1 0 0 1 1 X2 0 1 0 1 Y 0 1 1 0 X2 0 1 0 1 Y 1 1 0 1 X2 0 1 0 1 Y 0 1 0 1 2) X1 0 0 1 1 3) X1 0 0 1 1 pag.20/24 4) X1 0 0 0 0 1 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 Y 0 0 1 0 0 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 Y 1 0 1 1 0 0 1 0 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 Y 5) X1 0 0 0 0 1 1 1 1 6) X1 0 0 0 0 1 1 1 1 pag.21/24 7) X1 0 0 0 0 1 1 1 1 X2 0 0 1 1 0 0 1 1 X3 0 1 0 1 0 1 0 1 Y MAPPE DI KARNAUGH pag.22/24 ESERCIZI : problema : Supponiamo di avere al contatore un limitatore di potenza per 1,5 Kw , Voglio avere un avvertimento se la potenza dei carichi supera 1,2 kW televisione : 350 W frigorifero : 250 W boiler : 1100 W ferro da stiro : 900 W pag.23/24 PROGETTARE UN SISTEMA DI COMANDO PER MONTACARICHI COME IN FIGURA : finecorsa piano 1 f.c1 = X1 finecorsa piano 2 f.c2 = X2 pulsante chiamata piano 1 pulsante chiamata piano 2 f.c.2 = X3 p2 = X4 salita motore K1 = Y1 discesa motore K2= Y2 tabella di verità per i movimenti salita e discesa : x1 x2 x3 x4 y1 y2 assegnazione ingressi e uscite eseguire programma plc: pag.24/24