Dreke90 di Dreke90
Genius 6795 punti

Ricezione di dati

I dati possono essere inviati a intervalli non regolari e pertanto da parte del ricevitore non è prevedibile a priori quando predisporsi alla loro ricezione.
Per potersi sincronizzare con i dati che il trasmettitore invia quando la linea e nello stato di idle il ricevitore la campiona cioè la esamina per rilevarne il livello logico. Il campionamento avviene per più volte durante un tempo di bit:supponiamo ad esempio che avvenga 16 volte per ogni tempo di bit.

Nel momento in cui vien campionato un livello logico a 0,il ricevitore sospende il campionamento multiplo per 8 volte e successivamente ricampiona la linea. Se il nuovo livello logico rilevato e 1,allora si è trattato di un disturbo,o spike,e pertanto persistendo lo stato di idle ,il ricevitore riprende il campionamento multiplo questo errore vine anche detto falso bit di start.
Se invece il livello logico rilevato e ancora a 0,allora è stato trasmesso un bit di start e il ricevitore può iniziare a campionare il dato una volto ogni tempo di bit.

Questa tecnica permette al ricevitore di ricevere ogni bit circa a metà del bit corrispondente e di compensare in questo modo eventuali piccoli sfasamenti.
Dopo aver ricevuto come da protocollo i biti stabiliti il ricevitore esegue il controllo di parità e verifica la presenza del bit di stop nel caso in cui sia rilevato un errore viene segnalato nel registro di stato dell'UART rispettivamente un parity Error o un framing Error.
Il dispositivo UART può inviare una segnalazione alla CPU affinché possa gestire queste condizioni di errore.

Registrati via email