Tastiera
Porta Seriale Porta Parallela Stampanti Timer di Sistema
 Home

  Tecniche di Interruzione

Vai al menu - Tecniche d'Interruzione

  Porta Seriale

TECNICHE D'INTERRUZIONE 3/3 [7 di 9] 

 

****  GESTIONE EVENTI SERIALI: INTERRUPT [3 di 4]

               

bulletPoichè entrambe, INT 0BH e INT 0CH, devono comunque provvedere a soddisfare ognuna delle possibili 4 cause, in rigoroso ordine di priorità, è necessario sapere quali eventi hanno avuto servizio e quali hanno ancora richiesta pendente; per questo è possibile consultare i bit2/bit1/bit0 nel Registro di Identificazione delle Interruzioni [port_A]:

 

bit2 bit1 bit0

Interrupt Identification Register [port_A]

    0 0 = interruzione pendente: un evento ha richiesto servizio d'interruzione
1 = nessuna interruzione pendente
x x   Indica (Interrupt ID) quale degli eventi interrompenti è attualmente in attesa di servizio:
11 = Receiver Line Status Interrupt, priorità 1, massima, errore in linea o break
10 = Received Data Available Interrupt, priorità 2, dato ricevuto pronto
01 = Transmit Holding Register Empty Interrupt, priorità 3, dato trasmesso
00 =
Modem Status Interrupt, priorità 4, minima, variazione segnali CD, RI, DSR o CTS

 

bulletSe il bit0 è 0 significa che c'è un'interruzione è pendente, cioè uno o più eventi hanno indotto l'UART ha generare una richiesta che non è stata ancora stata servita (o servita del tutto) dal processore.

 

bulletIl compito di stabilire quale dei possibili 4 eventi è in attesa di essere servito è affidato ai bit2/bit1: è prevista una codifica per ciascuno di essi che consente anche di dirimere l'ordine con cui dovranno essere serviti, nel caso di 2 o più richieste contemporanee: la coppia di bit presente di volta in volta nel registro è quella dell'evento a più alta priorità e, dopo il suo completo servizio, sarà sostituita (dall'UART) con quella dell'evento con la successiva più alta prioritaria. Ecco le codifiche, in dettaglio:
bullet bit2/bit1 = 11: durante la ricezione di dati è stata rilevata la presenza di errori (di sovrapposizionedi parità o di composizione) o la presenza di un segnale di break; l'UART ha generato una richiesta di Receiver Line Status Interrupt, di priorità massima (prima), ed è in attesa di essere servito
bullet bit2/bit1 = 10: il numero di bytes ricevuti ha superato quello massimo (trigger  level) previsto per il FIFO in Ricezione oppure il FIFO contiene bytes in misura inferiore al massimo ma il tempo concesso a nuovi arrivi è terminato (timeout) oppure nel Receive Buffer Register è pronto un singolo dato; l'UART ha generato una richiesta di Received Data Available Interrupt, di seconda priorità, ed è in attesa di essere servito
bullet bit2/bit1 = 01: il Transmit Holding Register è vuoto (con UART 8250/16450 o con UART 16550A, se il FIFO in Trasmissione è disabilitato) oppure il FIFO ha posti liberi per uno o più bytes; l'UART ha generato una richiesta di Transmit Holding Register Empty Interrupt, di terza priorità, ed è in attesa di essere servito
bullet bit2/bit1 = 00: durante la comunicazione con il Modem è stata rilevata la variazione dei segnali in arrivo, direzione DCE>DTE, come Data Carrier Detect (CD, rilevato modem remoto/possibile comunicare), Ring Indicator (RI, ricevuto segnale acustico sul canale), Data Set Ready (DSR, DCE connesso e pronto a comunicare) e Clear To Send (CTS, DCE Pronto a ricevere); l'UART ha generato una richiesta di Modem Status Interrupt, di priorità più bassa (quarta), ed è in attesa di essere servito

 

bulletSebbene la cosa sia ora irrilevante ricordo che gli eventi a priorità 1, 2 e 3 sono segnalati anche da software nel Registro di Stato della Linea [port_D], bit0 (Ricezione dato), bit1 (errore di sovrapposizione), bit2 (errore di parità), bit3 (errore di composizione), bit4 (segnale di Break) e bit5 (dato ricevuto)] mentre quelli a priorità 4 sono segnalati anche da software nel Registro di Stato del Modem [port_E], bit0 (variazione CTS), bit1 (variazione DSR), bit2 (variazione RI) e bit3 (variazione CD)]

    

Pagina Precedente Tecniche INT Pagina Successiva TECNICHE D'INTERRUZIONE 3/3   Torna alla Home della Sezione Vai al menu - Tecniche d'Interruzione Torna al Menu di "Dentro al Computer"
7 di 9
1 2 3 4 5 6 7 8 9

    

Tecniche di Interruzione » Tastiera | Porta Seriale | Porta Parallela | Stampanti
Timer di Sistema | Home
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati