GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è UART (ricevitore/trasmettitore asincrono universale)

Pubblico di destinazione

Questo articolo presuppone che il lettore abbia una conoscenza di base di dispositivi elettronici, circuiti e terminologia.

Introduzione

Nel mondo delle comunicazioni dei dispositivi embedded, esiste una piccola manciata di protocolli utilizzati per molte applicazioni diverse. Capita spesso che i protocolli più comuni comunemente usati per le operazioni quotidiane, come FTP e TCP, non funzionino con piccoli dispositivi embedded o non siano adatti (spesso a causa di requisiti di alimentazione o spazio). È in casi come questi che gli standard di comunicazione più basilari, "fino al metallo", come UART, sono molto utili.

Cos'è UART?

Immagine Exar16550onItronixPCB dell'utente di Wikipedia Myself248/Licenza sotto CC BY-SA 3.0

UART (Universal Asynchronous Receiver/Transmitter) è un dispositivo di comunicazione piccolo ed efficiente, simile a I2C. UART è spesso installato in un pezzo di hardware, incorporato in un IC (circuito integrato), che traduce i dati comunicati tra moduli seriali e paralleli. In altre parole, un dispositivo UART prende un flusso di bit di dati (il più delle volte progettato per la comunicazione parallela), lo converte in bit di dati seriali per la trasmissione su un singolo filo, o bus, e quindi lo trasmette. All'altra estremità del filo, un altro dispositivo UART riceve i bit seriali e li converte in pacchetti di dati paralleli. La parte "Universale" del nome si riferisce alla configurabilità sia del formato dei dati che delle velocità con cui vengono trasmessi/ricevuti.
.
UART è uno dei più antichi dispositivi di comunicazione utilizzati dai computer, datazione le sue origini risalgono agli anni '60 quando veniva utilizzato per collegare i computer alle tastiere delle telescriventi, o “teletipi”. Negli anni '70 era il protocollo utilizzato per leggere e scrivere dati su cassette, e in seguito è stato utilizzato per comunicare con i modem durante i primi giorni di dial-up dei servizi BBS (Bulletin Board System) e Internet. Da allora è stato soppiantato da dispositivi più complessi che utilizzano protocolli come TCP e IP, ma il suo design è ancora utile con i dispositivi embedded.
.

Come comunicano gli UART

Come accennato in precedenza, UART funziona traducendo tra comunicazione parallela e comunicazione seriale. Perché farlo, dal momento che la comunicazione parallela è molto più veloce? Sebbene la comunicazione parallela sia più veloce, è anche molto più costosa in termini di potenza e mezzo di trasmissione. Puoi inviare lo stesso batch di dati in bit seriali sequenziali, uno per uno, lungo un singolo filo, piuttosto che in bit paralleli sincronizzati, contemporaneamente, lungo un mucchio di fili. Se la tua applicazione è affamata di spazio, ad esempio, potrebbe avere molto più senso utilizzare un solo filo. Per questo motivo, i dispositivi UART sono molto utili in situazioni a basso consumo e di basso profilo, come i sistemi embedded.
.
Allora, come funziona esattamente? La cosa bella della trasmissione asincrona è che i dati possono essere trasmessi senza che mittente e destinatario debbano condividere un segnale di clock, un segnale che può occupare spazio dati prezioso. Invece, la tempistica viene concordata in anticipo tra le due unità e vengono aggiunti bit speciali a ciascun pacchetto di dati, ogni "parola". Gli UART utilizzano questi bit per sincronizzarsi tra loro. Quando il trasmettitore si prepara a inviare una parola, aggiunge uno speciale bit di START all'inizio del pacchetto. Questo bit avvisa il ricevitore che un pacchetto di dati sta arrivando e sincronizza l'orologio interno del ricevitore con quello del trasmettitore. (Normalmente, per altri accoppiamenti trasmettitore/ricevitore, tutto ciò che è necessario per sincronizzare gli orologi dei due dispositivi è che si accordino su una velocità di trasmissione in bit al secondo, o "baud".)
.
Dopo il bit START, il trasmettitore invia la parola. La maggior parte dei sistemi UART utilizza lunghezze di parole da cinque a dieci bit. La trasmissione dei bit avviene in un tempo di clock coerente e il ricevitore sincronizzato nel tempo esamina il bus esattamente a metà del tempo di "invio" designato per determinare se viene inviato un 1 o uno 0 (se il bus è ALTO, un "1" viene inviato; in caso contrario, è uno '0'). Infine, il trasmettitore invia un bit di parità (se il sistema è stato configurato in questo modo) e un bit END. Quindi avvia un'altra parola con un altro bit START e il processo continua. Il ricevitore, nel frattempo, scarta i bit START e STOP, utilizza il bit di parità se necessario, registra la parola e continua ad ascoltare altri dati. Se il circuito è una configurazione duplex (comunicazione bidirezionale), lo stesso processo può ripetersi nella direzione opposta. In alcuni sistemi UART, i cavi non sono nemmeno necessari; I dispositivi a infrarossi (IR) e Bluetooth sono spesso impostati per trasmettere e ricevere tramite lo schema di segnalazione UART.

Curiosità storica :Quando non viene trasmesso nulla, la linea viene mantenuta ALTA da entrambi i dispositivi, anziché BASSA (non alimentata). Questa convenzione è un retaggio dei giorni in cui le linee telegrafiche-telegrafiche erano tenute alte in modo che ogni utente finale potesse dire che la linea era ininterrotto.

.

Gli usi degli UART persistono

I dispositivi UART sono in circolazione da molto tempo e si sono dimostrati ancora utili, anche insieme a dispositivi in ​​grado di fornire comunicazioni a velocità più elevate e velocità di trasferimento gigabit rese possibili oggi con server di hosting VPS veloci e hosting di server gestiti.
.
La maggior parte dei moderni microcontrollori contiene un dispositivo UART; i singoli circuiti integrati possono contenere uno, due o anche 8 UART su un chip (questi ultimi due progetti sono chiamati rispettivamente DUART e OCART). L'Arduino, il popolare IDE per microcontrollori per hobby, ha un'interfaccia UART integrata in ciascuna delle sue schede, anche le più piccole. Il Raspberry Pi, un altro popolare dispositivo per hobbisti, può anche interfacciarsi con i dispositivi UART. Per chiunque sia interessato a lavorare con piccoli dispositivi incorporati, è un dispositivo degno da imparare a usarlo.

.


Linux
  1. Che cos'è un database relazionale?

  2. Che cosa sono i modelli di sviluppo Web senza stato e con stato

  3. Database NoSQL distribuito Elasticsearch:cos'è e dovresti usarlo?

  4. Qual è la differenza tra evento guidato e asincrono? Tra epoll e AIO?

  5. Come funziona rm? Cosa fa rm?

Che cos'è un database OLTP?

Che cos'è la denormalizzazione del database?

Che cos'è un database?

Che cos'è un database distribuito e a cosa servono i sistemi di dati distribuiti?

Qual è la differenza tra DMA e IO mappato in memoria?

Qual è il modo più semplice per visualizzare i dati da stdout come grafico?