Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Fondamenti di elettronica digitale
Modulo 3 Fondamenti di elettronica digitale
2
Segnale analogico E’ un segnale in cui ogni valore assunto nel tempo dalla grandezza fisica che reca l’informazione è significativo; al variare del valore della grandezza cambia quindi il significato dell’informazione ad essa associata. I sistemi elettronici che operano con tale tipo di segnale sono indicati come sistemi analogici.
3
Segnale digitale o numerico
E’ un segnale in cui è definito un certo numero di campi di valori della grandezza fisica, all’interno dei quali l’informazione associata non cambia significato; se i campi significativi sono solo due (indicati, in genere, come High e Low) il segnale digitale è detto binario. Se il segnale subisce delle variazioni (per esempio a causa di disturbi e.m.) il significato ad esso associato non cambia purchè i valori corrispondenti si mantengano all’interno dei campi definiti come L o H. Tali campi si possono distinguere ponendo una soglia di riconoscimento (in genere a metà dell’escursione L-H). I sistemi elettronici che operano con tale tipo di segnale sono indicati come sistemi digitali.
4
Le ragioni dell’affermazione della tecnologia digitale
Negli ultimi decenni si è assistito ad un rapido e progressivo affermarsi della tecnologia digitale, rispetto a quella analogica, per le seguenti ragioni: i circuiti integrati digitali contengono, su un’unica piastrina di silicio, milioni di componenti elettronici (ingombro, costi e consumi notevolmente ridotti); i segnali digitali sono molto meno sensibili ai disturbi e.m. ed alle distorsioni operate dai circuiti elettronici (principalmente dovute alla non linearità); vi è la possibilità di convertire un segnale analogico in digitale e viceversa (rendendo così possibile elaborare, con tecniche digitali, segnali che all’origine sono analogici).
5
Sistemi di numerazione
Nell’ambito dell’elettronica digitale (e dell’informatica) i sistemi di numerazione maggiormente impiegati sono il binario e l’esadecimale. Sappiamo che nel sistema di numerazione decimale, o a base 10, si utilizzano 10 simboli o cifre (0,1,2,3,4,5,6,7,8,9). Tale sistema, inoltre, è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Ad esempio: Il valore numerico di una cifra è quindi pari al valore che essa esprime moltiplicato 10n dove n rappresenta l’ordine della cifra.
6
Sistema di numerazione binario
Nel sistema di numerazione binario, o a base 2, si utilizzano 2 simboli o cifre (0,1). Anche tale sistema è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Ad esempio: Il valore numerico di una cifra è quindi pari al valore che essa esprime moltiplicato 2n dove n rappresenta l’ordine della cifra. Una singola cifra binaria è detta bit (acronimo di binary digit). Un raggruppamento di 8 cifre binarie è indicato con il termine byte. Un raggruppamento, invece, di 4 cifre binarie è indicato con il termine nibble. Infine, un raggruppamento di 2n cifre binarie viene indicato word di 2n bit.
7
Sistema di numerazione esadecimale
Nel sistema di numerazione esadecimale, o a base 16, si utilizzano 16 simboli o cifre (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Anche tale sistema è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Le prime dieci cifre hanno lo stesso significato assunto nel sistema decimale. Le successive sei assumono il valore: Ad esempio:
8
Conversioni tra sistema decimale ed un altro sistema di numerazione
Per convertire un numero decimale in un numero di un sistema di numerazione in base b si opera nel seguente modo: si divide il numero per b ottenendo un quoziente ed un resto; il resto costituisce la cifra meno significativa del numero in base b; si divide il quoziente appena ottenuto per b; il resto costituisce la penultima cifra significativa; si prosegue in questo modo fino a quando il quoziente non diviene zero. Ad esempio, supponiamo di voler convertire il numero 13 in binario: dividiamo 13 per 2 ed otteniamo 6 col resto di 1; poi dividiamo 6 per 2 ed otteniamo 3 col resto di 0; poi dividiamo 3 per 2 ed otteniamo 1 col resto di 1; infine dividiamo 1 per 2 ed otteniamo 0 col resto di 1. Quindi: 1310=11012
9
Conversioni da un sistema di numerazione in base b al sistema decimale
Per convertire un numero espresso in un numero di un sistema di numerazione in base b nel sistema decimale si opera nel seguente modo: si scrive il numero sotto forma di polinomio associando ad ogni cifra la potenza avente base b determinata dalla sua posizione, si determina quindi la cifra decimale corrispondente e se ne fa la somma. Ad esempio, supponiamo di voler convertire il numero in decimale: =1·27+1·26+1·25+0·24+1·23+0·22+1·21+0·20= =23410
10
Conversioni tra sistema binario e sistema esadecimale
Per convertire un numero espresso in binario in un numero espresso in esadecimale si usa la tabella seguente. Da binario a esadecimale: ad ogni gruppo di quattro cifre binarie si associa la corrispondente cifra esadecimale (se il numero di cifre binarie è inferiore a quattro si aggiungono tanti zeri, a sinistra, quanti ne sono necessari per arrivare a quattro). Da esadecimale a binario: ad ogni cifra esadecimale si fa corrispondere un gruppo di quattro cifre binarie.
11
Le operazioni aritmetiche nel sistema binario
Le regole dell’aritmetica binaria sono identiche a quelle del sistema decimale (entrambi sono sistemi posizionali).
12
Operazioni in binario: addizione e sottrazione
13
Operazioni in binario: moltiplicazione e divisione
14
La codifica dei numeri binari relativi
Le modalità di rappresentazione dei numeri relativi sono due: segno e modulo; complemento a due. La seconda codifica è più utilizzata perché semplifica le operazioni di sottrazione. Per non creare ambiguità, per entrambe le rappresentazioni, è indispensabile definire a priori il numero di bit che si intendono utilizzare per la codifica.
15
La codifica dei numeri binari relativi: segno e modulo
In questa codifica il bit più a sinistra rappresenta il segno (0 per il “+” e 1 per il “-”) mentre i restanti bit codificano in binario il modulo, cioè il valore assoluto del numero. Vediamo alcuni esempi: 01112=710 10112=-310
16
La codifica dei numeri binari relativi: complemento a due
In questa codifica la rappresentazione dei numeri positivi è identica a quella con segno e modulo. Per quelli negativi occorre calcolare il complemento a due del corrispondente numero positivo. Per calcolare il complemento a due di un numero binario si procede in questo modo: si esegue prima il complemento ad 1 (ovvero, si invertono tutte le cifre 0 -> 1; 1 -> 0); Si somma poi 1 al numero ottenuto.
17
La codifica dei numeri binari relativi: complemento a due
Per esprimere con 4 bit il numero -6 si procede nel seguente modo. Si parte da 6, in binario, e si calcola il complemento a 2: 610=01102 C1(0110)=1001 1001+1=1010 Quindi, in complemento a due : - 610=10102 Osservazione: il complemento a 2 di un qualunque numero ne inverte il segno. Infatti: C1(1010)= =0110=610 Matematicamente un numero binario in complemento a due è rappresentabile in forma polinomiale nel seguente modo (in sostanza, il bit MSB è negativo): N10=-Cn-12n-1+Cn-22n-2+…+C121+C020 Facciamo un esempio: 10102=-1·23+0·22+1·21+0·20=-8+2=-6
18
La sottrazione con il complemento a due
La sottrazione tra due numeri può essere eseguita sommando al minuendo il complemento alla base del sottraendo: A-B = A+(-B) Questa tecnica, in generale, è detta metodo del complemento alla base. Vediamo un esempio in decimale. La differenza: 12-3=9 la possiamo ottenere eseguendo il complemento a 10 del sottraendo, sommando tale risultato al minuendo e sottraendo 10 dal totale: 12-3=12+(10-3)-10=9 Nel caso di numero decimale a due cifre occorre fare il complemento a 100 (e poi, naturalmente, sottrarre 100). In generale si esegue il complemento a 10n con n pari al numero delle cifre del sottraendo. In tal modo un circuito sommatore può essere utilizzato sia per l’esecuzione dell’addizione che per la sottrazione.
19
La sottrazione con il complemento a due: procedimento
i numeri A e B devono essere espressi con lo stesso numero di bit; si esegue il complemento a due di B; si esegue la somma A+(-B) ignorando l’eventuale n+1-esimo bit del risultato; se il bit di segno (l’n-esimo) è 0 – quindi il risultato è positivo – i restanti n-1 bit rappresentano il modulo; se il bit di segno (l’n-esimo) è 1 – quindi il risultato è negativo – si calcola il complemento a due ottenendo il modulo (oppure si ricorre alla conversione polinomiale). Esempio. Eseguire la sottrazione: 9-15 Si convertono i due numeri in 4 bit più il segno: 910= =011112 Si esegue il complemento a due del sottraendo: C2(01111)= =10001 Si esegue la somma: =11010 Poiché il bit di segno del risultato vale 1 si esegue il complemento a due del risultato: C2(11010)= =00110=6 Il risultato della sottrazione, quindi, vale -6 (in decimale).
20
Rappresentazione dei numeri binari non interi in virgola fissa e mobile
Per rappresentare un numero binario con parte frazionaria si può usare la tecnica della virgola fissa in cui i bit della locazione sono organizzati come in figura dove, oltre al bit di segno, si impiegano quantità fisse di bit per rappresentare la parte intera e la parte frazionaria. La rappresentazione in virgola mobile, oltre al bit di segno, prevede l’allocazione di una parte dei bit per la mantissa e della restante parte per l’esponente. In tale rappresentazione il numero binario è espresso in forma esponenziale normalizzata (la cifra più significativa è subito a destra della virgola; in decimale: 127,16=0,12716·103). Ad esempio: 10001,001=0, ·2101 In questo caso avremo: mantissa: esponente: 101 (che equivale al numero di spostamenti della virgola verso sinistra).
21
Codici numerici e alfanumerici
Vi sono molti modi per codificare l’informazione numerica (codici numerici) e quella alfanumerica (codici alfanumerici). Sono codici che risultano molto utili nella pratica in quanto consentono di semplificare notevolmente alcune operazioni.
22
Codici numerici: il codice BCD
Nel codice BCD (Binary Code Decimal) ad ogni cifra decimale viene associata una codifica binaria espressa in 4 bit. I bit BCD vanno letti a gruppi di 4 (la lettura consecutiva non ha senso). Tale codice, ad esempio, è utile per visualizzare su display decimali il risultato dell’elaborazione di circuiti digitali come, per esempio, I valori d’uscita dei contatori. Esempio: Il numero 112,4 è convertito in BCD: , 0100
23
Codici alfanumerici: il codice ASCII
Il codice ASCII (American Standard Code for Information Interchange) identifica un codice a 7 bit impiegato per rappresentare 128 caratteri. Si tratta dei caratteri alfabetici maiuscoli e minuscoli, dei caratteri numerici, dei simboli di punteggiatura e di alcuni caratteri speciali. Ad esempio, in tale codice: A -> B -> 0 -> 1 ->
24
Le reti logiche combinatorie
Le reti logiche combinatorie sono quelle reti digitali che non possiedono memoria, per cui l’uscita in un istante dipende solo dai valori degli ingressi nel medesimo istante; al contrario quelle con memoria sono dette reti logiche sequenziali.
25
Descrizione di una rete logica combinatoria
Per descrivere una RLC (Rete Logica Combinatoria) è necessario esprimere la relazione tra l’uscita e gli ingressi. Tale relazione può assumere le forme: proposizione logica (in sostanza una descrizione a parole) tabella della verità (tdv) funzione di commutazione (ovvero un’espressione algebrica) rete logica (cioè il suo schema elettrico) Progettare (sintesi) una RLC significa passare dalla descrizione a parole allo schema elettrico della medesima. Analizzare una RLC significa fare il percorso inverso.
26
Variabile logica Una variabile logica, o binaria, può assumere solo due possibili valori. Valori che, generalmente, vengono indicati 0 e 1. Ma anche vero e falso, oppure High e Low. Una variabile binaria può essere utilizzata per rappresentare il funzionamento di dispositivi che possiedono solo due stati possibili di funzionamento. Si pensi ad una lampada, o ad un interruttore.
27
Le porte logiche fondamentali
Le porte logiche sono gli elementi base di una RLC. Le tre porte fondamentali sono NOT, AND e OR. In tabella sono indicati I simboli logici, le tdv e le descrizioni di funzionamento.
28
Le porte logiche derivate
Le porte logiche derivate sono porte logiche che derivano dalla combinazione delle porte fondamentali. Un circoletto sull’ingresso o sull’uscita di una porta equivale alla presenza di una NOT.
29
Circuiti integrati digitali
Le porte logiche sono contenute all’interno di specifici circuiti digitali integrati. La funzione svolta dall’integrato è individuata dal codice stampato sul contenitore.
30
Controllo del flusso dei segnali con porte logiche
Le porte logiche consentono di bloccare o di lasciar passare un segnale impulsivo in base al valore di un altro segnale di abilitazione (enable); da ciò deriva il nome di “porta”. La porta AND di figura, ad esempio, consente il passaggio del segnale impulsivo posto in A quando l’ingresso B=1. Quando B=0 lo blocca e l’uscita, Y, vale sempre 0.
31
EX-OR come invertitore controllato e comparatore
La porta logica EX-OR può essere impiegata come un invertitore controllato (figura A). Dalla tdv, infatti, si può notare che se B=0 allora l’uscita assume il valore di A. Se, invece, B=1 allora l’uscita assume il valore negato di A. Questa porta, inoltre, consente di distinguere l’uguaglianza di due variabili A e B (figura B): se A=B allora Y=0; se A≠B allora Y=1.
32
Analisi di una rete logica
Per analizzare il comportamento di una RLC è necessario esprimere il legame tra ogni uscita e tutti gli ingressi della rete. In sostanza si devono ricavare tante funzioni di commutazione quante sono le uscite della rete. Per far ciò si scrive l’espressione logica all’uscita di ogni porta procedendo dagli ingressi all’uscita (o alle uscite se la RLC ha più uscite).
33
L’algebra di Boole: simboli, operatori e assiomi
Data una proposizione logica, esistono infinite RLC in grado di soddisfarla. E’ quindi importante determinare quale, tra queste reti, è la migliore dal punto di vista del costo, del consumo e della velocità (e/o di altri parametri definiti in sede di specifiche di progetto). Per semplificare una RLC ci si avvale dell’algebra di Boole, sviluppata da George Boole intorno alla metà del 1800. Quest’algebra è definita da: due simboli (0 e 1) tre operatori (+, ·, ¯ : OR, AND e NOT) un insieme di assiomi
34
L’algebra di Boole: proprietà e teoremi
In figura sono indicate le proprietà dell’algebra di Boole per funzioni di 1 e 2 variabili.
35
L’algebra di Boole: un esempio di semplificazione
Il seguente esempio mostra come sia possibile, avvalendosi dell’algebra di Boole, di semplificare una funzione di commutazione ottenendone un’altra dal costo più ridotto.
36
Analisi di una RLC Analizzare una rete significa partire dallo schema della RLC ed arrivare alla tdv. Per far ciò occorre prima scrivere la funzione di commutazione e compilare poi la tdv. Vediamo un esempio.
37
Progetto (sintesi) di una RLC
E’ il procedimento che dalla proposizione logica (descrizione a parole fornita da un committente) conduce a disegnare lo schema della RLC. Per ricavare la RLC nella forma minima (minimo numero di porte impiegate) si utilizza il metodo delle mappe di Karnaugh.
38
Le mappe di Karnaugh Per passare dalla tdv alla mappa di Karnaugh (mappa K) si segue il seguente procedimento:
39
Le mappe di Karnaugh: la compilazione
Vediamo come, a partire dalla tdv, si possa ottenere la mappa K.
40
Le mappe di Karnaugh: la minimizzazione
Per ottenere la funzione di commutazione in forma minima da una mappa K si segue il seguente procedimento:
41
Il progetto di una RLC E’ un procedimento che si sviluppa attraverso i seguenti passi:
42
Il progetto di una RLC: un esempio
Vediamo un esempio di progetto di rete RLC.
43
Funzioni combinatorie integrate
Alcuni circuiti combinatori di media complessità e di uso frequente sono disponibili già in forma integrata. Pertanto, quando in un progetto si presenta l’esigenza di una di queste funzioni, non sarà necessario progettarla da zero; semplicemente si ricorrerà alla sua forma integrata. In questo modo si riesce ad ottimizzare maggiormente la rete complessiva.
44
Il multiplexer Il multiplexer è un selettore che trasferisce sull’uscita Y il valore logico presente in uno dei 2n ingressi dati (Di) sulla base di un numero binario posto sugli ingressi di selezione. L’ingresso di abilitazione (Enable) abilita il funzionamento dell’integrato: nel caso dell’esempio deve essere posto al livello basso. In caso contrario l’uscita rimane ad un livello fisso. Esempi di Mux integrati: 74151, ad 8 ingressi; 74150, a 16 ingressi.
45
Il codificatore Il codificatore o encoder, è un circuito con 2n ingressi che riporta sulle uscite il numero binario corrispondente all’unico ingresso su cui è posto un livello attivo. Tale circuito funziona correttamente se solamente uno degli ingressi è posto al livello attivo. Sono anche realizzati, in forma integrata, i codificatori con priorità, o priority encoder. Tali circuiti, in caso di attivazione contemporanea di più ingressi, forniscono in uscita il numero binario relativo all’ingresso con priorità maggiore (quello identificato dal numero decimale più alto). Esempi di encoder integrati: e
46
Il decodificatore ed il demultiplexer
Il decodificatore o dencoder ha la funzione inversa dell’encoder: riceve in gresso un numero binario di n bit e attiva l’uscita corrispondente tra le 2n. Il demultiplexer, o Demux, opera nel seguente modo: il dato presente nell’ingresso I viene riprodotto sull’uscita che corrisponde al numero binario posto sugli n ingressi di selezione; svolge la funzione inversa del Mux.
47
Il sommatore Tra gli integrati dedicati al calcolo vi è il sommatore o Full Adder. E’ un circuito che somma due bit più un riporto (Ci, Carry Input) e genera un bit di somma ed un altro di riporto (Co, Carry Output). Collegando n FA in parallelo si ottiene il sommatore parallelo, in grado di sommare due parole di n bit ciascuna.
48
Il comparatore Tra gli integrati dedicati al calcolo vi è anche il comparatore. E’ un circuito che confronta due numeri binari e verifica l’uguaglianza o la diseguaglianza tra questi. Il 7485 è un comparatore per numeri binari di 4 bit ciascuno. Gli ingressi a cascata sono impiegati per espandere il numero di ingressi. Le uscite del circuito complessivo sono quelle dell’integrato che riceve i bit più significativi. Quando non sono utilizzati occorre porre A>B e A<B al livello L ed A=B al livello H.
49
Il diodo LED E’ un componente bipolare a semiconduttore il cui scopo è quello di emettere luce. Se polarizzato direttamente, VAK>0, lascia passare corrente e si illumina. Se polarizzato inversamente, VAK<0, si comporta come un circuito aperto (e non si illumina). Per polarizzarlo direttamente occorre applicargli una d.d.p. di circa 1,8-3,5 volt (in dipendenza del tipo di diodo e di colore: rosso 1,8V, giallo 1,9V, verde 2,0 V, blu 3,5V). In figura sono mostrati due esempi di circuiti pilota per diodo Led.
50
Il display a 7 segmenti E’ utilizzato per visualizzare le dieci cifre decimali. Può visualizzare anche le lettere da A ad F per la rappresentazione di simboli esadecimali. E’ costituito da 7 led più un ottavo per la rappresentazione del punto decimale. Vi sono display ad anodo comune (FND507, TIL729) e display a catodo comune (FND500, TIL730). Per pilotare questi display vi sono opportuni circuiti integrati denominati decoder-driver.
51
Le reti digitali sequenziali
Sono reti combinatorie i cui valori delle uscite dipendono sia dai valori di ingresso attuali sia da quelli passati; in ogni istante l’informazione sull’evoluzione passata degli ingressi deve essere mantenuta in memoria e costituisce quello che si chiama stato presente della rete. Lo stato presente viene in genere memorizzato sotto forma di una combinazione dei valori di n variabili binarie (variabili di stato) che determinano, insieme agli ingressi presenti, i valori futuri delle uscite e lo stato futuro, cioè i valori che assumeranno le variabili di stato nell’istante successivo.
52
Il latch Può essere realizzato con porte Nand o con porte Nor.
E’ un circuito in grado di memorizzare una variabile binaria. Il valore dell’uscita è modificabile per mezzo di opportuni comandi sugli ingressi: S (Set), che porta Q a 1, e R (Reset) che porta Q a 0. Può essere realizzato con porte Nand o con porte Nor.
53
Il Flip-Flop (FF) I latch sono circuiti asincroni: l’uscita reagisce istantaneamente al comando di ingresso. Nei FF, invece, l’uscita può commutare solo in corrispondenza di istanti precisi individuati dai fronti di un segnale di sincronizzazione detto clock. Per tale ragione i FF sono circuiti sincroni. I FF possono essere di tipo D, T e JK.
54
I Flip-Flop D e JK Il FFD ha un funzionamento molto semplice: in corrispondenza del fronte attivo di clock, il valore logico presente sull’ingresso viene portato in uscita e mantenuto fino al successivo fronte attivo del segnale di clock. Il funzionamento del FFJK richiama quello del latch SR. L’uscita, però, può variare solo in corrispondenza dei fronti attivi di clock. Nel caso di questo FF è ammessa anche la combinazione J=1, K=1.
55
Il diagramma temporale di un FFJK
Vediamo un esempio di diagramma temporale.
56
Gli ingressi asincroni
Gli ingressi asincroni di un FF producono un effetto immediato sull’uscita. Sono pertanto indipendenti dal segnale di clock. Generalmente sono due: Clear (CLR): se attivato porta l’uscita Q al valore logico 0; Preset (PR): se attivato porta l’uscita Q al valore logico 1.
57
I registri Un registro è un gruppo di n latch o n flip-flop il cui scopo è quello di memorizzare una parola di n bit. L’introduzione del dato nel registro è l’operazione di scrittura. L’estrazione del dato dal registro è l’operazione di lettura. Un esempio di registro è il PIPO (Parallel Input Parallel Output) in cui tutti i FF sono comandati dallo stesso segnale di clock. Una parola di n bit, posta sugli n ingressi, viene memorizzata in corrispondenza del successivo fronte attivo di clock. E mantenuta fino all’arrivo del successivo fronte attivo.
58
Il registro a scorrimento
Un registro a scorrimento (shift register), o SISO (Serial Input Serial Output), è costituito da n FFJK o FFD collegati in cascata e sincronizzati per mezzo dello stesso segnale di clock. Ad ogni fronte attivo di clock i bit presenti agli ingressi dei FF passano sulle rispettive uscite, traslando di una posizione verso l’uscita del registro. Per caricare tutto il registro occorreranno n fronti attivi di clock.
59
I contatori Sono circuiti sequenziali che incrementano o decrementano il numero binario sulle uscite in corrispondenza di ogni impulso applicato sull’ingresso di clock. Il modulo di un contatore è pari al numero dei possibili stati, cioè il numero delle combinazioni delle uscite attraverso le quali si svolge il conteggio. Il conteggio può essere crescente (up) o decrescente (down). Sono asincroni quei contatori per cui la commutazione delle uscite si propaga con un certo ritardo dall’uscita meno significativa a quella più significativa, a causa della struttura del contatore. Sono sincroni, invece, quei contatori in cui la commutazione di tutte le uscite avviene nello stesso istante.
60
Un esempio di contatore asincrono up
La figura mostra un contatore asincrono up, modulo 8, realizzato con tre FFJK. Gli impulsi da contare (quelli del clock) vengono applicati sul primo FFJK di sinistra ed il risultato del conteggio viene letto sulle uscite Q0Q1Q2. Ogni uscita (tranne quella del FF2) è applicata all’ingresso clock del FF successivo. Pertanto la commutazione delle uscite non può avvenire simultaneamente. Tutti gli ingressi CLR sono connessi fra loro per comandare l’azzeramento del contatore. Ogni FF, avendo JK=11, inverte lo stato dell’uscita in corrispondenza del fronte attivo di clock. Si ottiene, così, una progressione ciclica da 000 a 111.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.