Protocolli di Comunicazione Seriale - Parte Due: UART

Mark Harris
|  Creato: aprile 14, 2021
Protocolli di comunicazione seriale - UART

In questo articolo, esamineremo il popolare dispositivo UART. Non si tratta di un protocollo di comunicazione, ma piuttosto del circuito fisico utilizzato nei microcontrollori o nei circuiti integrati autonomi per trasmettere e ricevere dati seriali. Supporta la serie di articoli che abbiamo prodotto per esaminare alcuni dei diversi tipi di Protocolli di Comunicazione Seriale disponibili.

Le comunicazioni seriali sono il meccanismo perfetto per trasmettere informazioni tra dispositivi come microcontrollori, periferiche produttrici di dati e altri dispositivi intelligenti. Speriamo che troverete questa risorsa inestimabile la prossima volta che il vostro design necessiterà di incorporare un bus di comunicazione seriale. L'UART è comunemente riferito anche come Porta Seriale su un dispositivo. Tuttavia, questo può spesso essere confuso con un altro tipo di porta seriale, che utilizza il connettore di stile DB9 e usa RS-232 come protocollo hardware. Non è raro avere un UART connesso a un trasmettitore RS-232 per un periferico UART su un microcontrollore e un dispositivo basato su RS-232 per comunicare tra loro.

UART sta per Universal Asynchronous Receiver Transmitter. Questo sistema di comunicazione richiede due pin, escluso il terra. Uno è etichettato TX, il trasmettitore, e l'altro etichettato RX, il ricevitore. La presenza della parola asincrono nel nome significa che non richiede un segnale di orologio. Non avendo un orologio, i dispositivi di trasmissione e ricezione devono utilizzare lo stesso baud rate.

Il baud rate (Bd) è un'unità di misura della velocità di trasmissione. Questo parametro determina la velocità di comunicazione sul canale dati del trasmettitore e del ricevitore. Il baud rate può essere rappresentato come bit al secondo per semplificarne la comprensione. Quindi, un tasso di 1000 Bd significa che la velocità di comunicazione è di 1000 bit al secondo, o la durata di un bit è 1/1000 di secondo o 1 millisecondo. I baud rate hanno prefissi metrici standard come kBd (kilobaud), MBd (megabaud) o GBd (Gigabaud). Il baud rate include parti non dati di un messaggio come bit di inizio e di stop, il che significa che la velocità di trasmissione delle informazioni utili inviate dal trasmettitore al ricevitore sarà leggermente inferiore.

Alcuni dei baud rate UART predefiniti più popolari includono:

  • 110 Baud
  • 300 Baud
  • 1200 Baud
  • 4800 Baud
  • 9600 Baud
  • 19200 Baud
  • 38400 Baud
  • 115200 Baud

A volte, la velocità in baud dei dispositivi che comunicano può essere regolata, mentre in altri casi, uno dei dispositivi avrà una velocità in baud fissa che richiede che l'altro si adatti.

Quindi, per connettere i due dispositivi utilizzando gli UART, il pin di trasmissione TX dovrebbe essere connesso al pin di ricezione RX:

UART

Cablaggio UART di base con TX, RX e terra

In alcune configurazioni, avrai i pin RX e TX su entrambi i dispositivi, permettendoti di inviare comandi da un microcontrollore a un circuito integrato dedicato e ricevere ordini o informazioni nella direzione opposta. Questo si chiama una connessione duplex. Ci sono anche applicazioni in cui il feedback dal secondo dispositivo non è richiesto. Pertanto, le comunicazioni sono necessarie solo in una direzione; quindi, è necessaria solo una linea di trasmissione TX a RX. Questo si chiama una connessione simplex.

UART

Il dispositivo trasmittente dovrà inviare un bit di start per avviare le comunicazioni da quel dispositivo al dispositivo ricevente. Questo bit informa il dispositivo ricevente che le comunicazioni sono iniziate.

UART

Il dispositivo UART invia un bit di start (inizio comunicazioni)

I bit di dati vengono quindi inviati come un flusso di otto bit, rappresentando i dati reali, dove il bit più significativo (MSB) è etichettato D7, e il bit meno significativo (LSB) è etichettato D0.

UART

Il primo dispositivo nella comunicazione UART invia i bit di dati dopo il primo bit di start.

E alla fine di questi bit di dati, il trasmettitore invia quindi un bit di stop, che indica che questo è la fine del messaggio e porta il bus UART nella sua modalità inattiva.

UART

UART

Il primo dispositivo nella comunicazione UART invia un bit di stop dopo i bit di dati.

Possiamo vedere in questo caso; il messaggio UART completo consiste di 10 bit. Nella modalità inattiva, il bus UART è tirato in alto, invia un bit di start che è basso, e dopo di ciò vengono 8 bit di dati, seguiti quindi dal bit di stop. Il bit di stop non è limitato ad essere solo un bit; può presentarsi in varie configurazioni, a seconda di quanto veloce sia la velocità di comunicazione. Questa configurazione significa che l'intero set di bit del messaggio cambia costantemente il livello di tensione del segnale del bus da basso ad alto almeno una volta:

Sampling Points

Esempio di pacchetto di comunicazione seriale UART

Il bit più significativo D7 può essere utilizzato anche come bit di parità. Questo bit fornisce un meccanismo rudimentale di controllo degli errori che appare nei blocchi più piccoli delle comunicazioni. Il bit di parità può essere utilizzato per assicurare che il numero totale di bit alti o uno sia dispari o pari, a seconda della codifica. Per un controllo di parità pari, se i bit di dati da D0 a D6 sono impostati, e consistono in un numero pari di bit alti, allora il bit di parità è impostato a 0 (basso). Al contrario, se questo insieme di bit ha un numero dispari di bit alti, allora il bit di parità è impostato a 1 (alto). Questo assicura che il numero totale di bit alti nel messaggio sarà pari. In caso di controllo di parità dispari, allora se i bit di dati da D0 a D6 sono impostati in modo tale che consistano in un numero pari di bit alti, il bit di parità è impostato a 1 (alto). Al contrario, se questo insieme di bit ha un numero dispari di bit alti, allora il bit di parità è impostato a 0 (basso). Questo assicura che il numero totale di bit alti nel messaggio sarà dispari.

Quindi, utilizzando il bit di parità, gli errori possono essere rilevati controllando i bit impostati. Supponiamo che il numero totale di bit, incluso il bit di parità, impostati su alto sia incorretto. In tal caso, il bit di parità ha permesso al ricevitore di rilevare un errore durante la trasmissione. Tuttavia, questo tipo di protezione dall'errore non può correggere l'errore, ma solo rilevare che si è verificato, poiché non c'è modo di determinare quale bit nell'insieme totale dei bit sia incorretto. Può solo rilevare se un bit è in uno stato errato; eventuali errori che influenzano più bit potrebbero non essere rilevati se la parità complessiva risulta essere corretta.

Se viene rilevato l'errore di parità, allora l'intero messaggio deve essere scartato e ritrasmesso da capo. In caso di elevati livelli di interferenza o rumore, potrebbe essere necessario un tempo significativo per ottenere una trasmissione di successo; tuttavia, ciò aiuta a prevenire errori nel messaggio.

In aggiunta a ciò, il lato di ricezione e trasmissione delle comunicazioni UART deve utilizzare esattamente lo stesso tasso di baud, lunghezza dei caratteri, meccanismo di parità e configurazione dei bit di stop per una comunicazione di successo.

Esiste anche una variante dell'UART, che si chiama USART. Questo è un Trasmettitore Ricevitore Asincrono Sincrono Universale. Può agire sia come un canale asincrono (proprio come l'UART) sia come un canale sincrono quando i dati sono sincronizzati con un orologio. L'orologio può essere recuperato dai dati stessi o inviato come un segnale esterno separato.

Quando si utilizza un USART nella sua modalità sincrona, non sono necessari bit di start e stop. Questo permette alle comunicazioni di utilizzare un tasso di trasmissione dati più elevato quando operano in modo sincrono perché i tempi dei bit hanno il riferimento dell'orologio. Pertanto, più bit possono essere utilizzati per i dati invece che essere utilizzati per i bit di start/stop.

 

UART

Esempio di comunicazione USART

UART

USART

L'UART richiede solo un segnale dati

La modalità sincrona USART richiede sia i dati che un orologio.

Nell'UART, i dati non devono essere trasmessi a una velocità fissa.

Nella modalità sincrona USART, i dati sono trasmessi a una velocità fissa.

Nell'UART, i dati sono solitamente trasmessi un byte alla volta.

Nell'USART, i dati sincroni sono tipicamente trasmessi sotto forma di blocchi di dati.

Nell'UART, la velocità di trasferimento dati è impostata attorno a valori specifici come 4800, 9600, 38400 bps, ecc.

Nell'USART, la modalità sincrona consente un DTR (tasso di trasferimento dati) più elevato rispetto alla modalità asincrona se tutti gli altri fattori rimangono costanti.

La velocità dell'UART è limitata a circa 115200 bps.

L'USART può raggiungere velocità superiori a 115 kbps.

Comunicazioni full-duplex: i dati possono essere inviati in entrambe le direzioni contemporaneamente.

Comunicazioni half-duplex: i dati possono essere inviati solo in una direzione alla volta.

Lo scopo principale dell'UART e dell'USART è convertire i dati paralleli sulle linee bus del PC in dati seriali che possono essere trasmessi utilizzando driver di linea su un bus che si conforma a uno standard di protocollo di comunicazione seriale come RS-232 o RS-485. Sarà necessario un convertitore per interfacciare tra l'UART/USART e il bus esterno. Ciò consente quindi che i dati possano essere letti da un dispositivo simile senza che i due debbano utilizzare esattamente lo stesso formato di dati seriali. Finché la trasmissione tra i due avviene secondo un protocollo standard supportato comune, l'implementazione delle comunicazioni seriali all'interno di ciascun dispositivo può essere specifica per quel dispositivo.

Sebbene UART sia stato in gran parte soppiantato da USB nel mercato dei computer, essi sono ancora ampiamente utilizzati per le comunicazioni seriali in dispositivi a basso costo.

Riassunto

Questo articolo ha esaminato alcune delle caratteristiche popolari dei dispositivi UART e discusso alcuni dei suoi vantaggi e dettagli implementativi. Nel prossimo articolo, Protocolli di Comunicazione Seriale - Parte Tre: RS-232, esamineremo alcuni dei protocolli di comunicazione seriale disponibili. Ti sei perso qualcosa? Dai un'occhiata all'introduzione ai Protocolli di Comunicazione Seriale.

Gli strumenti di progettazione in Altium Designer® contengono tutto ciò di cui hai bisogno per stare al passo con le nuove tecnologie. Parla con noi oggi e scopri come possiamo migliorare il tuo prossimo Design PCB.

Sull'Autore

Sull'Autore

Mark Harris è un ingegnere eccezionale con oltre 12 anni di esperienza diversificata nel settore dell'elettronica, che va dai contratti aerospaziali e di difesa ai prodotti start-up, passatempi, ecc. Prima di trasferirsi nel Regno Unito, Mark ha lavorato per uno dei più grandi istituti di ricerca del Canada. Ogni giorno portava con sé un progetto o una sfida diversa che coinvolgeva l'elettronica, la meccanica e il software. È responsabile della pubblicazione della “Celestial Database Library”, la più grande libreria di componenti di database open source per Altium Designer. Mark è attratto dall'hardware e dal software open source, nonché a trovare soluzioni innovative per le sfide quotidiane di questi progetti. L'elettronica è pura passione: seguire la trasformazione di un'idea in realtà e interagire con il mondo è fonte di infinito piacere.
Puoi contattare Mark direttamente a: mark@originalcircuit.com

Risorse correlate

Tornare alla Pagina Iniziale
Thank you, you are now subscribed to updates.