Anteprima
Vedrai una selezione di 5 pagine su 20
Dispositivi seriali Pag. 1 Dispositivi seriali Pag. 2
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Dispositivi seriali Pag. 6
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Dispositivi seriali Pag. 11
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Dispositivi seriali Pag. 16
1 su 20
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Interfacce Seriali Universali

In modalità seriale, il ricevitore provvede a contare i caratteri e a verificare la presenza periodica del carattere di sincronismo, che viene filtrato dal messaggio. Il mancato riconoscimento del carattere di sincronismo significa che il clock del ricevitore non è più in fase con il clock del trasmettitore, per cui la trasmissione dell'intero messaggio deve essere ripetuta.

La tipologia della trasmissione seriale sincrona richiede un meccanismo di rilevazione degli errori orientato al controllo di errore in un intero blocco, ai fini di una sua ritrasmissione se si riscontra un errore di trasmissione. Si usa, pertanto, un tale meccanismo di controllo basato sui codici a ridondanza ciclica (CRC) che aggiungono in coda allo stesso un numero fisso di bit, indipendentemente dalla lunghezza del messaggio stesso.

L'efficienza di trasmissione per tale tipo di comunicazione risulta elevata e prossima al valore nettamente superiore al 98%.

Formattazione del testo

All'efficienza ottenibile con la trasmissione asincrona.

0.2 Interfacce seriali universali

La comunicazione seriale nei sistemi a microprocessore è gestita mediante dispositivi hardware che si interfacciano al processore mediante un suo bus e provvedono in autonomia alla serializzazione del dato in trasmissione, alla parallelizzazione del dato in ricezione e alla gestione dei protocolli asincroni o asincroni verso l'interlocutore collegato, limitatamente al frame da trasmettere/ricevere (caratteri o blocchi) e del controllo e segnalazione degli errori. Sono spesso dotati di una base dei tempi e di un divisore di frequenza programmabile in grado di generare i clock di ricezione e trasmissione. Come visto precedentemente i device operano secondo il modello Stato-Controllo-Dato e, pertanto, sono dotati di un numero adeguato di registri adibiti alla memorizzazione di tali informazioni e accessibili in lettura/scrittura dalla CPU. I dispositivi per la gestione della comunicazione

seriale nei sistemi a microprocessore vanno sotto il nome di UART o USART, il primo "Universal Asynchronous Receiver and Transmitter" è limitato alla sola trasmissione di tipo asincrono, il secondo "Universal Synchronous-Asynchronous Receiver and Transmitter" può operare sia in modalità asincrona che sincrona a seguito di una apposita configurazione iniziale. Esiste, infine, un ulteriore tipo di dispositivi denominati SDLC (Synchronous Data Link Control) o HDLC (High level Data Link Control) o ADLC (Advanced Data Link Control) che, in modalità esclusivamente sincrona, gestiscono una trasmissione bit oriented utilizzata nei sistemi di comunicazione più complessi (ad esempio l'architettura di rete SNA di IBM o il livello LAP dell'ISO-OSI X25) e destinati a supportare maggiore velocità di trasmissione e efficienza. Gli UART/USART operano con uno spazio di indirizzabilità limitato, tipicamente due-quattro.

indirizzi di memoria sufficienti a riferire tutti i registri in essi presenti. I dispositivi seriali implementano in hardware le funzionalità di base connesse all'interfaccia di comunicazione ma necessitano di un driver software per programmare i trasferimenti. I driver sono scritti quasi sempre in linguaggio assembler (in taluni casi si ricorre anche a linguaggi a basso livello quale C) e, pertanto, fanno riferimento a una specifica CPU e architettura di sistema. Essi sono strutturati in genere in quattro parti principali: configurazione iniziale del device, ciclo di Tx/Rx, gestione errori e/o eccezioni, chiusura del servizio.

Nella fase di inizializzazione, essendo i device configurabili per diverse tipologie di trasmissione, un'apposita routine provvede a specializzare il dispositivo, scrivendo nei suoi registri di controllo (si inizializzano registri o campi di essi) i necessari comandi. L'inizializzazione è specifica per

ciascun device utilizzato, può essere generalizzata solo nelle funzioni principali ma resta, comunque, legata alla struttura del dispositivo adottato stante l'architettura dei suoi registri di Stato/Controllo sempre non standard. Nella fase di normale operatività, si succedono cicli di trasferimento in ricezione e trasmissione, in tali cicli il driver gestisce, in modalità polling o interruzione, la lettura/scrittura del dato di trasmissione che può essere un byte o una word di sistema oppure un intero blocco di byte/word (ad esempio un buffer di lunghezza prefissata di 128, 256, 512 o più byte). Le interfacce seriali non sono dotate di buffer per l'archiviazione temporanea su ampia scala dei caratteri ricevuti dalla linea seriale. Di conseguenza, al fine di evitare perdite di dati per over-running, è necessario che la CPU provveda a leggere il più rapidamente possibile il dato in ricezione, prima che a questo si

Sovrapponga il suc-cessivo. Per rispondere a questa necessità, la CPU può sicronizzarsi con l’interfacciain polling o tramite interrupt. Nel primo caso, il programma deve prevedere la letturaperiodica del registro di stato ed il successivo test del flag receiver ready, che segnalala presenza di un carattere nel registro di ricezione, provvedendo in caso positivo allalettura di tale registro. Nel secondo caso, è necessario collegare alla CPU una linea diinterruzione uscente dall’interfaccia che segnali la presenza di un carattere nel registrodi ricezione. Per quanto riguarda la trasmissione, invece, la CPU può sincronizzarsicon l’interfaccia seriale sulla base di requisiti temporali meno stringenti, almeno nelmodo asincrono. In particolare, il dispositivo seriale può indicare in due diversi modila disponibilità a trasmettere un nuovo carattere: abilitando il flag trasmitter readydel registro di stato, oppure abilitando una

linea di interruzione. =================???? In fig. è presentata una tipica architettura funzionale di un device seriale USART (nel caso specifico derivata dal componente USART commerciale prodotto dall'Intel, I8251A). Essa si presenta logicamente strutturata in 4 parti principali, così come mostrato in fig.: un'interfaccia verso la CPU costituita dai registri di modo, stato e comando accessibili mediante un bus bidirezionale a 8 bit per lo scambio di dati con RD, WR, RC/D, selezionano i vari registri interni se il device è ala CPU. Le linee di CS, a sua volta selezionato mediante il segnale di Il segnale di Reset inizializza il dispositivo predisponendolo pe la programmazione di una nuova configurazione, il segnale di clock serve a fornire la base dei tempi per la tempificazione interna, infine i segnali di TxRDY e RxRDY .... La sezione Tx si occupa di trasmettere i dati, prevedendo un registro a scorrimento per la serializzazione dei caratteri e un buffer per

La temporanea memorizzazione del carattere da trasmettere. La sezione Rx si occupa della ricezione dei dati, prevedendo un registro a scorrimento per la parallelizzazione dei caratteri e un buffer per la temporanea memorizzazione del carattere ricevuto. Le sezioni Tx e Rx possono essere attivate e configurate attraverso i registri di modo e comando: il registro di modo permette di selezionare la modalità di comunicazione sincrona o asincrona, mentre il registro di comando permette di attivare la trasmissione, abilitare la ricezione, chiedere il reset di errori interni, e così via. Infine, la sezione clock si occupa di generare, a partire dal clock base dei tempi, i clock da usare per il cambiamento in trasmissione e in ricezione (Baud generator) dividendo la frequenza, eventualmente, per 1x, 16x, 64x.

seconda del valore di Baud da ottenere a partire dalla frequenza del clock esterno (Per maggiore precisione si fornisce una base dei tempi di frequenza maggiore al fine di ridurre gli errori di generazione della frequenza oggetto della trasmissione e ricezione).

Architettura dell'interfaccia USART I8251A.

2. INTERFACCE SERIALI UNIVERSALI

Figura 0.60.2.1 Interfacce UART

Un'interfaccia UART gestisce la trasmissione dei caratteri con una precisa sequenza di operazioni:

  1. quando la CPU comanda l'attivazione della trasmissione, l'interfaccia seriale attiva il bit Tx-ready del registro di stato e la corrispondente linea di interruzione. La sezione Tx si pone in attesa del carattere da trasmettere mantenendo la linea seriale nello stato di idle;
  2. la CPU scrive nel buffer di trasmissione il carattere da inviare. Il bit Tx-ready e la corrispondente linea di interruzione vengono disabilitate;
  3. se il registro a scorrimento è ancora impegnato con la serializzazione del carattere precedente,
  1. viene attesa la fine della trasmissione, dopodiché il contenuto del buffer di trasmissione viene trasferito nel registro a scorrimento. Il clock di trasmissione viene abilitato, avviando la serializzazione del nuovo carattere da trasmettere;
  2. una volta ultimata la serializzazione del carattere, se il buffer di trasmissione e il registro a scorrimento sono vuoti, ma la trasmissione è ancora abilitata, la sezione Tx dell'UART riporta la linea seriale nello stato di idle e riprende la sequenza di operazioni dalla fase 1.

Viceversa, la ricezione dei caratteri è gestita da un'interfaccia UART nel seguente modo:

  1. la linea seriale viene campionata per ricercare lo start bit, in modo da ottenere la sincronizzazione di carattere. Al riconoscimento dello start bit, il clock di campionamento viene rifasato in modo da portarsi a "centro bit". A questo punto, la sezione Rx inizia la parallelizzazione dei bit ricevuti, attivando il registro a scorrimento per un
numero di volte pari alla lunghezza prevista del carattere;

2. quando la parallelizzazione del carattere è completata, la sezione Rx verifica gli stop bit e i bit di ridondanza, riportando l'esito dei controlli sui bit parity, errore frame e error del registro di stato;

3. il contenuto del registro a scorrimento viene trasferito nel buffer di ricezione. Il bit Rx-ready del registro di stato e la corrispondente linea di interruzione vengono abilitate, per poi disattivarsi in corrispondenza di una successiva lettura della CPU sul buffer di ricezione. Se il trasferimento dal registro a scorrimento verso il buffer di ricezione avviene quando il bit Rx-ready è già abilitato, ovvero se il carattere precedente non è stato ancora letto dalla CPU, viene attivato il flag overrun error del registro di stato, denunciando la perdita irreversibile di un carattere;

4. dopo la scr

Dettagli
Publisher
A.A. 2012-2013
20 pagine
SSD Scienze matematiche e informatiche MAT/02 Algebra

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Calcolatori Elettronici II e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Pastore Stefano.