| L'azione associata a ciascun bit di questo
registro è ora descritta in dettaglio:
|
Word Length:
i
bit0 e
bit1 stabiliscono il
numero di bit previsti per ogni
carattere trasmesso o ricevuto, associando
loro la codifica binaria:
bit1/bit0=00 =
5 bit,
bit1/bit0=01 =
6 bit,
bit1/bit0=10
= 7 bit,
bit1/bit0=11 =
8 bit; la dimensione più diffusa è
quella a 8 bit, ma in passato si è
praticata anche quella a 7 bit, tipica
dei caratteri ASCII standard (con 1 bit in meno su 10 la comunicazione
seriale è più veloce del 10%) |
|
Stop bits:
il
bit2 stabilisce il
numero di stop previsti per completare il
frame del dato seriale:
0 = 1 bit di stop,
1 = 2 bit di stop
(o 1½ bit di stop,
nel caso rarissimo di caratteri a 5 bit,
cioè con i
bit0/bit1=00);
la presenza di (almeno) un bit di stop
è stata pensata per dare all'UART
il tempo di processare il dato corrente,
prima di servire il successivo; con 2 bit di stop questo tempo raddoppia ma
si tratta di un'esigenza sentita solo da
dispositivi particolarmente lenti e quindi
da evitare (con 1 bit in più su 10 la
comunicazione seriale è più lenta del 10%) |
|
Parity Enable:
se il
bit3
è 1 significa che il frame
seriale asincrono prevede la presenza
del bit di parità, posizionato
subito prima di quello di stop con lo scopo di
tentare di scoprire
se il dato ricevuto è uguale a quello
trasmesso, a causa della possibile
rumorosità della linea di comunicazione. Il
suo valore è generato dall'UART in modo
ad rendere
pari o
dispari il numero di bit a 1
presenti prima del bit di stop (quindi
quelli del dato ospitato e dello stesso
bit di parità); ovviamente con
bit3=0
(=nessuna parità)
la mancanza del bit aggiunto rende più veloce la comunicazione seriale |
|
Parity control:
il
bit4, significativo solo se il controllo
di parità è
abilitato (bit3=1),
stabilisce il criterio scelto per verificarla:
| con bit4=0
si utilizza parità dispari (odd):
se il dato seriale contiene un numero
dispari di bit a 1
(esempio:
10010010) il
bit di parità è lasciato a 0,
e viceversa |
| con bit4=1
si utilizza parità pari (even): se il dato seriale contiene un numero
pari di bit a 1
(esempio:
10110010) il bit di parità
è lasciato a 0, e viceversa |
|
|
Sticky Parity:
il
bit5, significativo solo se il controllo
di parità è
abilitato (bit3=1),
introduce una variante sui valori fatti
assumere dall'UART al
bit di parità:
| con bit5=0
è quello dinamico, legato al numero di bit a 1
presenti prima del bit di stop e
qualificato dalla tipologia "pari o
dispari" suggerita dal valore del
bit4 |
| con bit5=1
è invece fisso (parità
bloccata), cioè sempre uguale a
1 (se
bit4=0=parità
dispari) o a 0 (se
bit4=1=parità
pari); è evidente che, in questo caso il
controllo di parità
non c'entra per nulla; l'idea (particolarmente cervellotica) è quella
di trasmettere dati seriali a
7 bit come fossero a
8 bit, aggiungendo l'ottavo con
questa tecnica, rigorosamente a
1 o a 0 |
|
|
Transmit break:
in condizioni normali il
bit6
è 0; quando è posto a
1 il trasmettitore porrà in
continuazione sulla linea SOUT (pin11
dell'UART) il livello logico 0 (SPACE, 0V in
TTL, tra +25V e
+3V in linea), ignorando ogni dato ancora da trasmettere fino a
quando non sarà riportato a 0; la
presenza di questo segnale di Break
può essere utilizzata per obbligare un computer
remoto ad interrompere l'esecuzione di un suo programma o per
richiedere la sua attenzione. |
|
Baud Rate Divisor Latch:
con ogni versione di UART il valore
logico assunto dal
bit7 influenza il tipo di registro che
può essere puntato con gli indirizzi
[port_8] e
[port_9]:
|
|