Concetti Chiave

  • I dati vengono inviati a intervalli non regolari, rendendo difficile la previsione per il ricevitore sulla loro ricezione.
  • Il ricevitore campiona la linea in stato idle per rilevare il livello logico, effettuando il campionamento più volte in un tempo di bit.
  • Se il ricevitore rileva un livello logico a 0, sospende il campionamento e verifica eventuali disturbi che possono essere falsi bit di start.
  • In caso di errore, il ricevitore esegue il controllo di parità e verifica il bit di stop, segnalando eventuali errori nel registro di stato dell'UART.
  • Il dispositivo UART può comunicare con la CPU per la gestione degli errori rilevati durante il processo di ricezione dei dati.

Sincronizzazione del ricevitore

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.

Campionamento e rilevamento errori

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.

Gestione degli errori UART

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.

Domande da interrogazione

  1. Come si sincronizza il ricevitore con i dati inviati dal trasmettitore?
  2. Il ricevitore campiona la linea in stato di idle per rilevarne il livello logico, effettuando il campionamento più volte durante un tempo di bit, ad esempio 16 volte. Questo processo consente di sincronizzarsi con i dati inviati in modo non regolare.

  3. Cosa succede se il ricevitore rileva un livello logico a 0 durante il campionamento?
  4. Se il ricevitore campiona un livello logico a 0, sospende il campionamento multiplo per 8 volte e poi ricampiona. Se il nuovo livello è 1, si tratta di un disturbo e il ricevitore riprende il campionamento; se rimane a 0, significa che è stato trasmesso un bit di start e il ricevitore inizia a campionare il dato.

  5. Come gestisce il ricevitore gli errori durante la ricezione dei dati?
  6. Dopo aver ricevuto i bit, il ricevitore esegue un controllo di parità e verifica la presenza del bit di stop. In caso di errore, come un parity Error o un framing Error, il dispositivo UART segnala la condizione di errore nel registro di stato e può inviare una segnalazione alla CPU per la gestione dell'errore.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community