|
Ogni integrato logico, come ad esempio come le porte AND, OR, NAND e NOR, oppure i FLIP-FLOP, funziona obbedendo ad una tavola della verità prestabilita. La tavola della verità riporta, sotto forma di zeri e di uno, tutti i valori che assumeranno le uscite in corrispondenza dei valori presenti agli ingressi.
TAVOLA DEL NAND | ||
IN1 | IN2 | OUT |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Ad esempio, la riga in giallo di questa tavola della verità del NAND ci dice
che:
La tavola della verità di solito elenca tutte le condizioni che si possono verificare: entrambi gli ingressi a uno, entrambi gli ingressi a zero, il primo ingresso a zero mentre il secondo è a uno e viceversa. Per ogni condizione la tavola ci indica quale sarà l'effetto sulle uscite dell'integrato, specificando se si disporranno a livello alto (1) oppure a livello basso (0).
Le tavole della verità si prestano bene a descrivere il funzionamento della
maggior parte dei circuiti logici, con piccole modifiche.
Gli stati sono una delle aggiunte più utili, e sono utilizzati
anche dai flip-flop da tutti gli integrati logici di
una certa complessità. Capita spesso infatti che la stessa
condizione porti a risultati differenti a seconda dello stato
in cui si trova un dispositivo. Ritroviamo gli stati in un grandissimo numero
di automatismi della vita di tutti i giorni.
Ad esempio:
In un circuito a stati, il valore delle uscite non dipende soltanto dalle condizioni che si verificano sugli ingressi (come nel NAND), ma anche dallo stato in cui ci si trova in quel preciso istante. Quindi nello scrivere la tavola della verità di un interruttore, dovremo necessariamente inserire anche lo stato. La tavola della verità che otteniamo (detta più propriamente tavola degli stati) è la seguente:
TABELLA DELL'INTERRUTTORE | ||
STATO (E USCITA) | INGRESSO | STATO SUCCESSIVO |
SPENTO (USCITA= 0) | PREMUTO | ACCESO |
NON PREMUTO | SPENTO | |
ACCESO (USCITA=1) | PREMUTO | ACCESO |
NON PREMUTO | SPENTO |
Notate che in questa tavola abbiamo scritto, fra parentesi, le uscite nella
stessa casella dello stato. In gran parte dei casi pratici le uscite dipendono
esclusivamente dallo stato in cui ci si trova, per cui è comodo scrivere
assieme lo stato e le uscite. Se si deve cambiare una delle uscite, allora si
cambia anche stato. Si può anche cambiare stato senza variare in alcun
modo le uscite, infatti due stati diversi possono tranquillamente dare le stesse
uscite. Un'altra peculiarità di questa tavola è l'introduzione della colonna
che riporta lo stato successivo, cioè lo stato in cui ci troveremo non appena
la condizione di ingresso si verificherà.
Esempio: il contatore è uno fra i tantissimi integrati che funzionano a stati. La stessa condizione di ingresso , rappresentata dall'arrivo di un impulso, otterrà un effetto diverso delle uscite a seconda dello stato del contatore. Il valore binario delle uscite dipenderà dal conteggio raggiunto dal contatore fino a quel momento. In altre parole, il conteggio è anche lo stato del contatore. Per il contatore, così come accadeva per l'interruttore, è lo stato a determinare quali debbano essere le uscite a '0' a quali a '1'. |
In un integrato a stati è importante sapere da quale stato cominciare. Un buon contatore deve iniziare a contare da zero, non da un numero scelto a caso! Lo stato iniziale, detto anche stato zero, è sempre indicato dal costruttore, oppure deve essere presente un piedino apposito che riporta forzatamente l'integrato allo stato zero.
Come accade per moltissimi integrati digitali, anche per i Nutchip lo stato determina le uscite: i Nutchips sono integrati a stati. I Nutchips hanno quattro uscite: le uscite cambiano solo se anche lo stato cambia, per cui accanto ad ogni stato indicheremo anche la rispettiva combinazione di uscite. Per ogni stato, c'è la massima libertà nello stabilire quali uscite debbano essere a 0 e quali a 1.
Ecco qui una tipica tabella di un Nutchip:
|
Tipica tavola della verità di un Nutchip; st00 è
un'abbreviazione per 'stato 00', etc.
Si tratta di un timer per luci da giardino, luci azionabile da un interruttore
o da telecomando.
Trascuriamo per il momento la colonna remote (che vedremo più avanti), e notiamo che abbiamo messo in evidenza le uscite utilizzando un'apposita colonna output1...4. E' in queste caselle che si mettono i valori che devono assumere le quattro uscite del Nutchip, stato per stato. Gli stati possono avere anche più di una condizione di ingresso (è il caso dello stato 0 del nostro esempio, che ne conta due), ma sempre e solo una combinazione di uscite. Le uscite non devono necessariamente cambiare fra uno stato e l'altro: nella tabella del nostro esempio l'uscita 1 va a zero nello stato 0, e va a 1 negli stati 2 e 3. Le uscite 2, 3 e 4 invece non cambiano mai.
Rispetto alle tavole viste in precedenza, con i Nutchip possiamo anche inserire un trattino '-' quando non ci interessa specificare il valore di un ingresso. Il trattino '-' equivale alla X (don't care) che compare talvolta nella descrizione degli integrati commerciali. Un ingresso con il trattino è come che non esistesse e viene ignorato durante la valutazione della condizione.
La colonna remote si riferisce al telecomando: è un ingresso a tutti gli effetti, che invece di '0' o '1' può assumere i valori key1, key2, key3, key4, key5 e key6 corrispondenti ai 6 tasti del telecomando. Inserendo i trattini '---' il telecomando viene ignorato. Maggiori dettagli sui telecomandi: cliccare qui.
I Nutchip contengono anche un preciso temporizzatore: per utilizzarlo lo inseriamo nella tavola sotto forma di timeout. Il timeout è una condizione che si verifica quando è passato il tempo caricato nel temporizzatore. Lo stato st01 del nostro esempio è un timeout che si verifica dopo un minuto. Maggiori dettagli sui timeout: cliccare qui.
Gli stati sono separati da una linea orizzontale, quindi questa tavola
conta tre stati: st00, st01, st02. Ogni riga della tabella contiene una condizione. Quindi nel nostro caso lo stato st00 ha 2 condizioni, mentre st01 e st02 contengono una sola condizione. All'inizio ci si trova nello stato st00. Le uscite cambiano in base allo stato. Si analizzano le sole condizioni dello stato in cui ci si trova: se una condizione si verifica*, ci si porta sullo stato indicato nell'ultima colonna (next).
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
I Nutchip si differenziano dai circuiti integrati logici standard perchè la loro tabella della verità non è fissata in fabbrica: siete voi stessi a "caricare" al loro interno la vostra tavola personalizzata. Lo stesso Nutchip può fare mille cose differenti, a seconda della tavola che carichiamo al suo interno. Quando una tavola della verità non ci piace più, possiamo sempre ricaricare il Nutchip con una tavola nuova, che sostituirà automaticamente quella precedente.
Per permettervi di provare subito il vostro Nutchip appena acquistato, lo forniamo precaricato con una tavola che lo fa funzionare da lampeggiatore; basta collegare un LEd per avere la certezza che il vostro prototipo funziona. In più, se collegate anche un ricevitore ad infrarossi, la stessa tavola vi permette di controllare se il vostro telecomando è compatibile, bloccando il lampeggio ogni volta che riceve un impulso. |
Per scrivere la nostra tavola utilizziamo un comune PC ed un software apposito, Nutstation. La memorizziamo poi nel chip usando una semplice interfaccia da collegare alla porta seriale del computer. Una volta programmato, il Nutchip obbedirà fedelmente alla tavola della verità che gli abbiamo inserito sino a che non lo riprogrammeremo con una tavola diversa. Lo stesso chip si può riprogrammare migliaia di volte.
Avere un solo Nutchip è come avere un'intero campionario di integrati, e molto di più. Potremo realizzare anche quelle funzioni logiche che, non essendo standardizzate, richiedono tre o quattro integrati per essere realizzate. In più ogni NUTCHIP contiene, oltre alle porte logiche, anche un decodificatore per telecomandi, un timer ed un comparatore analogico! |