Comprensione dell’UART

Interessati?

R&S®Essentials | Nozioni fondamentali si oscilloscopio digitali e sonde

Comprensione dell’UART

Cos’è l’UART?

UART sta per Universal Asynchronous Receiver / Transmitter (ricevitore / trasmettitore asincrono universale)e definisce un protocollo, o un insieme di regole, per lo scambio di dati seriali tra due dispositivi. Il protocollo UART è molto semplice e utilizza solo due fili fra il trasmettitore e il ricevitore per trasmettere e ricevere in entrambe le direzioni. Entrambe le estremità hanno anche una connessione a massa. La comunicazione UART può essere simplex(i dati sono inviati in una sola direzione), half-duplex(ogni lato parla ma solo uno alla volta) o full-duplex(entrambi i lati possono trasmettere contemporaneamente). I dati in un'interfaccia UART sono trasmessi sotto forma di frame. Il formato e il contenuto di questi frame sono brevemente descritti e spiegati.

I dati in UART sono trasmessi sotto forma di frame

Dove si utilizza il protocollo UART?

UART è stato uno dei primi protocolli seriali. Le porte seriali, un tempo onnipresenti, sono quasi sempre basate sul protocollo UART, e i dispositivi che utilizzano interfacce RS-232, modem esterni, ecc. sono esempi comuni di dove è utilizzato il protocollo UART.
Negli ultimi anni, la popolarità del protocollo UART è diminuita: protocolli come SPI e I2C hanno sostituito il protocollo UART per la comunicazione tra chip e componenti. Invece di comunicare attraverso una porta seriale, la maggior parte dei computer e delle periferiche moderni ora utilizzano tecnologie come Ethernet e USB. Tuttavia, il protocollo UART è ancora utilizzato per applicazioni a bassa velocità, perché è molto semplice, a basso costo e facile da implementare.

Tempistica e sincronizzazione dei protocolli UART

Uno dei grandi vantaggi del protocollo UART è che è asincrono: il trasmettitore e il ricevitore non condividono un segnale di clock comune. Anche se questo semplifica molto il protocollo, impone alcuni requisiti al trasmettitore e al ricevitore. Poiché non condividono un clock, entrambe le estremità devono trasmettere alla stessa velocità prestabilita per avere la stessa tempistica dei bit. I baud rate UART più comuni in uso oggi sono 4800, 9600, 19,2K, 57,6K e 115,2K. Oltre ad avere lo stesso baud rate (frequenza di simbolo), entrambi i lati di una connessione UART devono anche utilizzare la stessa struttura di frame e gli stessi parametri. Il modo migliore per comprendere questo è guardare un frame UART.

Formato del frame UART

I frame UART contengono bit di inizio e di stop, bit di dati e un bit di parità opzionale, che sarà spiegato di seguito.

Come per la maggior parte dei sistemi digitali, un livello di tensione “alto” è utilizzato per indicare un “1” logico e un livello di tensione “basso” è utilizzato per indicare uno “0” logico. Poiché il protocollo UART non definisce tensioni o intervalli di tensione specifici per questi livelli, a volte il livello alto è anche chiamato “impulso positivo” o "mark) mentre quello basso è chiamato “spazio”, o "space". Notare che nello stato di inattività (dove non sono trasmessi dati), la linea è tenuta alta. Questo permette un facile rilevamento di una linea o di un trasmettitore danneggiati.

Bit di inizio e di stop

Poiché l'interfaccia UART è asincrona, il trasmettitore deve segnalare che i bit di dati stanno arrivando. Ciò viene realizzato utilizzando il bit di inizio (start bit). Il bit di inizio è una transizione dallo stato alto inattivo a uno stato basso, e immediatamente seguito da bit di dati utente.
Dopo che i bit di dati sono finiti, il bit di stop (stop bit) indica la fine dei dati utente. Il bit di stop è o una transizione di ritorno allo stato alto o inattivo o la permanenza allo stato alto per un ulteriore tempo di bit. È possibile configurare un secondo (opzionale) bit di stop, di solito per dare al ricevitore il tempo di prepararsi per il prossimo frame, ma questo è poco comune nella pratica.

Bit di dati

I bit di dati sono i dati utente o bit “utili” e vengono immediatamente dopo il bit di inizio. Ci possono essere da 5 a 9 bit di dati utente, anche se 7 o 8 bit sono i più comuni. Questi bit di dati sono di solito trasmessi con il bit meno significativo (LSB) per primo.

Esempio:
Se vogliamo inviare la lettera maiuscola “S” in ASCII a 7 bit, la sequenza di bit è 1 0 1 0 0 1 1. Invertiamo prima l’ordine dei bit per metterli nell’ordine del bit meno significativo, cioè 1 1 0 0 1 0 1, prima di inviarli. Dopo l’invio dell’ultimo bit di dati, il bit di stop è utilizzato per terminare il frame e la linea ritorna allo stato di inattività.

  • ’S’ ASCII a 7 bit (0x52) = 1 0 1 0 0 1 1
  • Ordine LSB = 1 1 0 0 1 0 1

Bit di inizio e di stop

Bit di dati

Bit di parità

Un frame UART può anche contenere un bit di parità opzionale che può essere utilizzato per il rilevamento degli errori. Questo bit è inserito tra la fine dei bit di dati e il bit di stop. Il valore del bit di parità dipende dal tipo di parità utilizzato (pari o dispari):

  • In parità pari, questo bit è impostato in modo tale che il numero totale di 1 nel frame sarà pari.
  • In parità dispari, questo bit è impostato in modo tale che il numero totale di 1 nel frame sarà dispari.

Esempio:
La “S” maiuscola (1 0 1 0 0 1 1) contiene un totale di tre 0 e quattro 1. Se si utilizza la parità pari, il bit di parità è zero perché c’è già un numero pari di 1. Se si utilizza la parità dispari, allora il bit di parità deve essere uno per far sì che il frame abbia un numero dispari di 1.
Il bit di parità può rilevare solo un singolo bit invertito. Se più di un bit è invertito, non c’è modo di rilevarli in modo affidabile utilizzando un singolo bit di parità.

Esempio di bit di parità

Comprensione dell’UART

Il nostro video “Comprensione dell’UART” può fornire maggiori informazioni

Questo video spiega la panoramica tecnica del protocollo seriale UART (ricevitore/trasmettitore asincrono universale), compresa una descrizione della struttura del frame e il significato di ogni bit del frame.

Riassunto

  • UART sta per ricevitore / trasmettitore asincrono universale ed è un semplice protocollo a due fili per lo scambio di dati seriali.
  • Asincrono significa che non c’è un clock condiviso quindi, perché il protocollo UART funzioni, lo stesso bit o baud rate deve essere configurato su entrambi i lati della connessione.
  • I bit di inizio e di stop sono utilizzati per indicare dove i dati dell’utente iniziano e finiscono, o per “inquadrare” (framing) i dati.
  • Un bit di parità opzionale può essere utilizzato per rilevare errori di un singolo bit.
  • UART è ancora un protocollo di dati seriali ampiamente utilizzato, ma è stato sostituito in alcune applicazioni da tecnologie come SPI, I2C, USB ed Ethernet negli ultimi anni.

Per qualsiasi domanda su UART o altri protocolli seriali, i nostri esperti forniranno assistenza.