IZ5FCY
Superare le proprie limitazioni e divenire signori dell'universo
ELETTRONICA DIGITALE
… studiare, studiare ed ancora studiare, è il solo modo di capire quanto possa essere grande sia la propria ignoranza!
CODICI BINARI
CODICI BINARI Definizioni Un codice è un insieme convenzionale di regole e di simboli idonei a rappresentare gli elementi di un altro insieme. In elettronica digitale i numeri, le lettere dell’alfabeto e i segni d’interpunzione sono rappresentati con stringhe di bit. Il codice binario è un insieme di regole che servono per stabilire una corrispondenza biunivoca tra i numeri, le lettere dell’alfabeto, i segni d’interpunzione e le stringhe di bit che li devono rappresentare; un codice può essere definito:
efficiente; • ridondante; • pesato; • non pesato; • a distanza unitaria (o ciclico); • autocomplementante. Se la stringa è lunga n bit, il numero massimo di simboli che si possono rappresentare è Se i simboli sono allora tutte le configurazioni binarie sono utilizzate; se alcune configurazioni restano inutilizzate, quindi sono senza significato. Noti gli N simboli da rappresentare, per determinare il numero intero di bit necessari si utilizza la relazione: Un codice si dice efficiente se utilizza un numero di bit strettamente necessario, cioè quando e quindi tutte le configurazioni sono utilizzate. Un codice si dice ridondante se utilizza un numero di bit superiore a quello strettamente indispensabile, cioè se .
Un codice si dice pesato quando è possibile stabilire una regola matematica che consenta di determinare la stringa di bit corrispondente al simbolo da rappresentare. Condizione necessaria ma non sufficiente perché un codice sia pesato è che la somma dei pesi sia compresa tra 9 e 15. Se si rispetta questa condizione, sono rappresentate tutte le dieci cifre decimali. Un codice è non pesato, se non esiste una regola matematica per determinarlo; affinché sia noto, è necessario conoscere l’intera tabella di corrispondenza tra le stringhe di bit e i simboli da rappresentare. Per esempio, il sistema di numerazione binario può essere considerato un codice pesato, anche se è difficilmente utilizzabile perché il numero di bit varia continuamente, mentre i circuiti digitali devono lavorare su un numero di bit fisso. Si definisce distanza il numero di bit che varia tra due configurazioni successive. Un codice è a distanza unitaria quando, tra ogni configurazione e la successiva, cambia un solo bit. Un codice è autocomplementante quando, invertendo ogni singolo bit (complemento a 1), si ottiene il complemento a 9 del numero decimale rappresentato. Condizione necessaria perché un codice pesato sia ad autocomplementazione è che la somma dei pesi deve essere ugale a 9.
I codici possono essere anche definiti: numerici; alfanumerici; a controllo di errore.
Codici numerici Sono strutturati in modo tale da rappresentare numeri; si esaminano di seguito i codici BCD (8421), AIKEN (o BCD 2421), XS3 (Eccesso 3) e Gray.
Codice BCD Il BCD (Binary Coded Decimal, decimale codificato in binario) è un codice pesato più vicino al sistema di numerazione binario. Ogni numero decimale è rappresentato con un nibble (gruppo di quattro bit), perché la cifra 9, che è la più grande della base, necessita di quattro bit per la sua rappresentazione. Delle sedici combinazioni che si possono scrivere con quattro bit, solo dieci sono quelle utilizzate, le altre sei sono combinazioni non utilizzate. Si tratta dunque di un codice ridondante. Partendo dal bit più significativo (a sinistra), i pesi sono 8, 4, 2, 1, cioè multipli di 2 come nel sistema binario naturale. È il codice più utilizzato per eseguire le somme e in genere per la rappresentazione dei numeri nell’interfacciamento dei sistemi digitali con periferiche, stampanti o strumenti di misura. Non è idoneo per le sottrazioni e inoltre, per il numero di bit utilizzato, non è efficiente. La sottostante tabella riporta le dieci cifre decimali per i primi tre codici.
Cifre decimali codificate nei codici numerici.
Decimale
BCD 8421
AIKEN 2421
XS3
0
0000
0000
0011
1
0001
0001
0100
2
0010
0010
0101
3
0011
0011
0110
4
0100
0100
0111
5
0101
1011
1000
6
0110
1100
1001
7
0111
1101
1010
8
1000
1110
1011
9
1001
1111
1100
Codice AIKEN Il BCD 2421 o AIKEN è un codice pesato e autocomplementante. Le configurazioni sono riportate nella seguente tabella. Rispetto al BCD 8421, l’AIKEN non è ridondante, dato che tutte le sedici configurazioni sono utilizzate. Ogni singola cifra deimale è convertita su quattro bit i cui pesi sono, a partire dal bit più significativo, 2, 4, 2, 1. Come si nota dalla tabella, l’AIKEN, per le cifre decimali da 2 a 7, ammette due notazioni diverse.
Codice BCD 2421 o AIKEN.
Decimale
AIKEN 2421
0
0000
1
0001
2
0010
3
0011 0011
4
0100 1010
5
1011 0101
6
1100 0110
7
1101 0111
8
1110
9
1111
Il codice pertanto perde la caratteristica della corrispondenza biunivoca tra i numeri decimali e le stringhe di bit. È necessario, ovviamente, stabilire quale delle due configurazioni adottare per i numeri da 2 a 23. La scelta non è indifferente perché il codice è costru- -ito in modo tale che il complemento a 9 di ogni cifra decimale si ottiene con il suo complemento a 1. Per esempio, se si sceglie per il 7 la configurazione 1101, per il 2 è obbligatoria la notazione 0010; e così via per le altre coppie di numeri.
Il codice Eccesso 3 Il codice Eccesso 3 (XS3) è non pesato e autocomplementante. È stato ottenuto somma- -ndo 3 a ogni configurazione del BCD 8421. Anche in questo caso il complemento a 9 si ottiene invertendo ogni singolo bit; ad esempio, 7 (1010) ha come complemento a 9 il 2 (0101). Il codice XS3 viene utilizzato da alcuni circuiti contatori. Con il codice autocomplementante sono facilitate le operazioni di sottrazione.
Il codice Gray Il codice Gray, non pesato e a distanza unitaria, è utilizzato per la codifica degli angoli, generalmente nei codificatori meccanici di posizione, realizzati con piste metalliche sulle quali strisciano dei contatti. Con la codifica Gray un solo contatto alla volta commuta da zona isolante a zona conduttrice. Il sistema diventa così insensibile a eventuali false combinazioni che invece si verificano se più contatti commutano contemporaneamente. Si ipotizzi che il sistema debba commutare dalla posizione 7 alla posizione 8: nella notazione binaria vuol dire eseguire una transizione da 0111 a 1000. Poiché i circuiti reali hanno tempi di commutazione diversi quando passano da 0 a 1 piuttosto che da 1 a 0, il sistema non passa direttamente da 0111 a 1000, ma attraversa una combinazione intermedia: . Si ha quindi una falsa risposta in corrispondenza di 0000, sequenza che il sistema non ha attraversato. La tabella a lato riporta il codice Gray su 4 bit
Codice GRAY a 4 bit
Decimale
Binario
Gray
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
1001
0111
6
0110
0101
7
0111
0100
8
1000
1100
9
1001
1101
10
1010
1111
11
1011
1110
12
1100
1010
13
1101
1011
14
1110
1001
15
1111
1000
Codici alfanumerici I codici alfanumerici sono strutturati in modo tale da rappresentare lettere (maiuscole e minuscole), numeri, segni di punteggiatura, simboli matematici e speciali, comandi per la trasmissione, la stampa e la separazione dati. Gli standard più utilizzati sono ASCII ed EBCDIC. L’ASCII (American Standard Code for Information Interchange) è lo standard americano per lo scambio di informazioni; è noto anche come US-ASCII (si pronuncia «æski» in inglese e «asci» in italiano). È un codice a 7 bit più un bit di parità (pari o dispari). Proposto nel 1963 come standard di comunicazione per telescriventi, fu in seguito approvato dall’ISO (International Organization Standardization, organismo internazionale di standardizzazione) con ISO 646 per tutte le comunicazioni. È stato approvato anche dal CCITT (Consultative Committee International on Telephones and Telegraphy, comitato consultativo internazionale telefonico e telegrafico) che stabi- -lisce gli standard per i modem. Il formato ASCII è universalmente riconosciuto da tutti i computer, cosa non vera per i testi digitati e formattati con i diversi programmi applicativi in commercio. Qualsiasi computer può generare un file ASCII, ad esempio con Blocco Note di Windows o con un applicativo analogo, salvando il file in un formato esclusivamente testuale. ISO ha poi diffuso anche un altro standard, chiamato comunemente ASCII esteso, che si diversifica per ogni tipo di alfabeto. L’esigenza nacque dalla necessità di codificare i simboli degli alfabeti diversi da quello occidentale. L’ASCII esteso è codificato su 8 bit e può rappresentare 256 caratteri, tra i quali sono compresi i 128 caratteri dell’ASCII a 7 bit. Le denominazioni sono le seguenti: • ISO 8859-1 (Latin-1) per i linguaggi dell’Europa occidentale; • ISO 8859-2 (Latin-2) per i linguaggi dell’Europa centrale; • ISO 8859-5 (Latin/Cirillico) per i caratteri cirillici; • altri, anche per le lingue orientali. Il codice EBCDIC (Extended Binary Coded Decimal Interchange Code) è un’estensione del BCD strutturato su 8 bit , senza bit di parità, e può codificare 256 caratteri. Era utilizzato nei sistemi operativi dei minicomputer e dei mainframe dell’IBM.
Codici a controllo di errore Le cause di errori nelle stringhe di bit possono essere due: • variazioni indesiderate di tensione in fase di memorizzazione, • rumore sul canale nei sistemi di trasmissione a distanza. Ne consegue che un 1 può trasformarsi in uno 0 e uno 0 può trasformarsi in un 1. La possibilità che un canale introduca un errore nella trasmissione di un dato è studiato con la teoria della probabilità. Si definisce capacità di un canale il numero di bit (del dato) che può transitare nell’unità di tempo. Se un trasmettitore genera messaggi a un ritmo inferiore alla capacità del canale, esiste un sistema di codifica tale che la probabilità di errore può essere piccola a piacere. Viceversa se il ritmo con cui vengono generati i messaggi è superiore alla capacità del canale, non sarà possibile trasmettere i messaggi senza errori. Un canale si definisce simmetrico se la probabilità che un 1 si trasformi in uno 0 è uguale alla probabilità che uno 0 si trasformi in un 1. Un’ulteriore ipotesi è che gli errori siano tutti eventi indipendenti tra loro. Ogni canale è caratterizzato da un parametro BER (Bit Error Rate) definito come rapporto tra il numero di bit errati e il numero di bit trasmessi. In genere il BER è compreso tra , valori che apparentemente sembrerebbero trascurabili, ma che in realtà non lo sono.
È possibile ridurre la probabilità di errore sui bit del dato utilizzando tecniche di codifica di canale, che consiste nell’aggiungere bit di ridondanza al dato da trasmettere. In ricezione la presenza dei bit di ridondanza permette di rilevare e/o correggere i bit errati nella trasmissione del messaggio. La codifica di canale non riduce la probabilità di errore in trasmissione (errore che è do- -vuto unicamente al rumore presente sul canale), ma riduce gli errori sul dato in ricezione. L’inconveniente della codifica di canale consiste proprio nella ridondanza, cioè nella trasmissione di bit non appartenenti al dato e quindi nella necessità di un tempo maggiore per la trasmissione, e nella maggiore complessità circuitale. I codici a controllo di errore possono essere di due tipi: rilevatori di errori, cioè codici in grado di rilevare la presenza di un errore, ma non di correggerlo; correttori di errori, cioè codici in grado di rilevare i bit errati e di correggerli. I codici a controllo di errore sono finalizzati alla ricerca dell’errore singolo. Infatti la probabilità che si verifichi un errore singolo, ovvero che un solo bit del dato in trasmissione sia errato, è di gran lunga superiore alla probabilità che si verifichi un errore doppio, ovvero che due bit siano errati contemporaneamente. Gli errori multipli, cioè più di due bit errati contemporaneamente, hanno ovviamente probabilità molto più bassa rispetto all’errore doppio e quindi a quello singolo.

Lorem Ipsum Dolor

Cupidatat excepteur ea dolore sed in adipisicing id? Nulla lorem deserunt aliquip officia reprehenderit fugiat, dolor excepteur in et officia ex sunt ut, nulla consequat. Laboris, lorem excepteur qui labore magna enim ipsum adipisicing ut. Sint in veniam minim dolore consectetur enim deserunt mollit deserunt ullamco. Mollit aliqua enim pariatur excepteur. Labore nulla sunt, in, excepteur reprehenderit lorem fugiat. Ipsum velit sunt! Non veniam ullamco amet officia ut, ex mollit excepteur exercitation fugiat eu ut esse cupidatat in velit. Non eu ullamco in pariatur nisi voluptate mollit quis sed voluptate ea amet proident dolore elit. Occaecat nostrud dolore sunt, ullamco eu ad minim excepteur minim fugiat. Nostrud culpa eiusmod dolor tempor et qui mollit deserunt irure ex tempor ut dolore. Dolore, nostrud duis ad. In nulla dolore incididunt, sit, labore culpa officia consectetur mollit cupidatat exercitation eu. Aute incididunt ullamco nisi ut lorem mollit dolore, enim reprehenderit est laborum ut et elit culpa nulla. Excepteur fugiat, laboris est dolore elit. In velit lorem id, et, voluptate incididunt ut ad in sunt fugiat, esse lorem. Nisi dolore ea officia amet cillum officia incididunt magna nisi minim do fugiat ut nostrud dolore Qui in est in adipisicing ea fugiat aliqua. Reprehenderit excepteur laboris pariatur officia sit amet culpa aliquip quis elit eiusmod minim. Sint ut ut, proident in mollit do qui eu. Pariatur et cupidatat esse in incididunt magna amet sint sit ad, sunt cillum nulla sit, officia qui. Tempor, velit est cillum sit elit sed sint, sunt veniam.
Add your one line caption using the Image tab of the Web Properties dialog
LOGOTYPE
© Irure ut pariatur ad ea in ut in et. In incididunt sed tempor