| L'azione associata a ciascun bit di questo
registro è ora descritta in dettaglio:
|
Received Data Ready
o Data
Available: il
bit0 è trovato a 1
se un nuovo dato è stato
completamente ricostruito dal registro a scorrimento
interno (Receive Shift Register,
RSR) e da esso è stato trasferito nel
Registro
di Ricezione
[port_8]
(Receive
Buffer Register,
RBR)
(o nel
buffer FIFO in
Ricezione, con UART
16550A); questo bit è riportato a 0
logico non appena il processore estrae il dato dal
RBR (o
dal
FIFO) oppure se il processore azzera il
contenuto del FIFO
in Ricezione; l'evento "dato pronto" genera una
richiesta di interruzione di seconda priorità (se è abilitata, cioè se
bit0=1
nel
Registro
di Abilitazione delle Interruzioni
[port_9])
segnalandola con il codice binario
bit2/bit1/bit0=100 nel
Registro
di Identificazione delle Interruzioni
[port_A] |
|
Errori in Ricezione:
i
bit1,
bit2,
bit3 e
bit4 sono trovati a 1
se la ricezione è gravata da errori o se
il computer
remoto richiede attenzione; ciascuno di essi sarà riportato a 0
logico non appena questo registro (LSR)
viene letto e l'evento seriale ad essi associato genererà la
richiesta di interruzione della massima priorità (se è abilitata, cioè se
bit2=1
nel
Registro
di Abilitazione delle Interruzioni
[port_9])
segnalandola con il codice binario
bit2/bit1/bit0=110 nel
Registro
di Identificazione delle Interruzioni
[port_A]; in
dettaglio:
|
Overrun Error:
il
bit1 è trovato a
1 se la ricezione è gravata da errore di sovrapposizione: con UART
8250/16450
il processore non ha fatto in tempo a leggere un dato dal
Registro
di Ricezione [port_8]
(Receive
Buffer Register,
RBR, prima dell'arrivo del successivo,
oppure (con UART
16550) il
buffer FIFO in
Ricezione è pieno e il dato ricostruito nel registro a scorrimento
interno (Receive Shift Register,
RSR) non può esservi inserito; il dato non
letto viene perduto, sovrascritto da quello in arrivo |
|
Parity Error:
il
bit2 è trovato a
1 se la ricezione è gravata da errore
di parità: prima del bit di stop l'UART
ha rilevato nel dato ricevuto un numero di bit a 1
diverso da quello (pari o
dispari) previsto dalla programmazione del
Registro
di Controllo Linea [port_B] |
|
Framing Error:
il
bit3 è trovato a
1 se la ricezione è gravata da errori di composizione:
se, dopo l'ultimo bit di dato previsto dalla programmazione del
Registro
di Controllo Linea [port_B],
viene rilevato uno 0
logico la struttura (frame) del
dato ricevuto è scorretta perchè priva del bit di stop
(notoriamente un bit a 1) |
|
Break Interrupt:
il
bit4 è trovato a
1 se sulla linea d'ingresso seriale (SIN,
pin10 dell'UART)
è presente un segnale di Break,
cioè se la linea è tenuta a livello logico 0
(SPACE) per un tempo maggiore a
quello previsto per ricevere un dato formattato (cioè completo di
bit di start, eventuale parità e
di stop); nel
Registro
di Ricezione [port_8]
(o nel
FIFO in
Ricezione, con UART
16550) è inserito un byte nullo. Questo segnale
può essere generato dal computer
remoto per
richiedere attenzione e la ricezione riprenderà solo quando la linea
SIN torna a livello logico
1, in attesa del
bit di start (notoriamente un bit a 0)
del nuovo dato in arrivo |
|
|
Transmitter Holding Register
Empty: il
bit5 è trovato a 1
se il
Registro
di Trasmissione
[port_8]
(Transmitter
Holding Register,
THR) (o il
buffer FIFO in
Trasmissione, con UART
16550A) è vuoto:
il dato in esso
scritto in precedenza dal processore è stato
trasferito al registro a scorrimento
interno, Transmit Shift Register,
TSR; l'UART è pronto ad
accettare nuovi caratteri da trasmettere e, non appena uno di essi entra nel
THR (o nel
FIFO), riporta a 0
logico questo bit; l'evento "trasmettitore
vuoto" genera una
richiesta di interruzione di terza priorità (se è abilitata, cioè se
bit1=1
nel
Registro
di Abilitazione delle Interruzioni
[port_9])
segnalandola con il codice binario
bit2/bit1/bit0=010 nel
Registro
di Identificazione delle Interruzioni
[port_A] |
|
Transmitter Shift Register Empty (Data
Holding Register Empty): il
bit6 è trovato a 1
se non ci sono dati da trasmettere
cioè se anche il registro a scorrimento
interno, Transmit Shift Register,
TSR, è vuoto: il
trasmettitore è inoperoso, in attesa di dati da mettere in linea; in queste
condizioni anche il
Registro
di Trasmissione
[port_8]
(Transmitter
Holding Register,
THR) (o il
buffer FIFO in
Trasmissione, con UART
16550A) è ovviamente
vuoto e, non appena un dato vi entrerà, questo bit torna a
0 logico
|
|
Reserved:
il
bit7 è sempre a
0, con UART
8250/16450;
nelle versioni più recenti (16550 e
successivi) il
bit5 è trovato a 1
se, nel
buffer FIFO in
Ricezione sono presenti bytes gravati da
errori (di
sovrapposizione, di parità
o
di composizione o
di break); sarà riportato a 0
logico non appena questo registro (LSR)
viene letto, se non ci sono altri bytes non corretti |
|