vuoi
o PayPal
tutte le volte che vuoi
USART (Universal Synchronous – Asynchronous receiver – transmitter)
L'USART (Intel 8251A) consente di realizzare una comunicazione seriale tra dispositivi secondo un protocollo sincrono oppure asincrono. Esso è composto da 7 registri leggibili o scrivibili (più 2 registri a scorrimento) ma è visto dal processore come un insieme di soli 2 registri.
Illustrazione 1: schema dell'USART
Collegamento col processore:
- DATA BUS: bus dati di ingresso/uscita
- CS: chip select
- A0: bit per la selezione dei registri interni
- RD, !WR: segnali di lettura/scrittura
- Reset: reset del dispositivo
- CLK: clock
- RxRDY: linea per iterruzione scatenata quando viene copiato un dato da Receiver shift register in Data-in buffer register
- TxRDY: linea per iterruzione scatenata quando viene copiato un dato da Data-out buffer-register in Transmitter shift register
Collegamento esterno:
- Rx: linea per la ricezione
- Tx: linea per la trasmissione
- DTR: (data terminal ready) l'interfaccia 1 chiede
La connessione DSR (data set ready) è quando l'interfaccia 2 segnala all'interfaccia 1 che la connessione è pronta.
RTS (request to send) è quando l'interfaccia 1 richiede all'interfaccia 2 di trasmettere.
CTS (clear to send) è quando l'interfaccia 2 invia in linea la portante e segnala all'interfaccia 1 che è pronta a trasmettere.
Illustrazione 2: segnali di handshaking
Illustrazione 3: collegamento USART-USART
Comunicazione asincrona:
Il clock del ricevitore viene settato ad una velocità molto superiore a quella del trasmettitore (16x o 64x) in maniera tale da non perdere la transizione 1->0 del segnale di MARK (bit di START). Dopo aver ricevuto lo START, il ricevitore rifasa il suo clock campionando in modo tale da posizionarsi al centro del bit di start e inizia a campionare tenendosi sempre al centro delle celle per non perdere il dato (nell'esempio campiona ogni 16 impulsi a partire dal centro del bit di START).
Illustrazione 4: sincronizzazione dell'USART
- MODE: permette la configurazione iniziale del dispositivo ed è accedibile in sola scrittura all'indirizzo dispari subito dopo il RESET.
- SYNC1, SYNC2: accedibili in sequenza in sola scrittura all'indirizzo dispari subito dopo l'accesso a MODE ma solo se la trasmissione è stata settata come sincrona in MODE.
- CNTRL: registro di controllo accessibile in sola scrittura all'indirizzo dispari (subito dopo l'accesso a MODE in comunicazione asincrona, altrimenti dopo SYNC2).
- DATIN: registro in cui viene copiato il carattere contenuto in RSHIFT per essere letto dal processore. Esso è accessibile in sola lettura all'indirizzo pari (l'accesso provoca l'azzeramento del bit 1 di STATUS).
- DATOUT: registro in cui viene scritto dal processore il carattere che deve essere copiato in TSHIFT per essere trasmesso. Esso è accessibile in sola scrittura all'indirizzo pari (l'accesso provoca l'azzeramento del bit 1 di STATUS).
azzera il bit 0 di STATUS
).
RSHIFT
, TSHIFT
: sono degli shift register non accessibili che vengono utilizzati dall'interfaccia per effettuare la trasformazione del formato serie/parallelo in ricezione e parallelo/serie in trasmissione.
STATUS
: registro che contiene informazioni sull'interfaccia che possono essere usate dal driver. Esso è accessibile in sola lettura all'indirizzo pari.
Illustrazione 5: modalità di accesso ai registri
* il primo accesso in scrittura è a MODE
i restanti accessi sono a SYNC1
, SYNC2
e CNTRL
in comunicazione sincrona mentre si accede direttamente a CNTRL
in modalità asincrona
Illustrazione 6: significato dei bit di MODE
Illustrazione 7: significato dei bit di CNTRL