Domanda:
UART: un protocollo o un hardware?
Lelouch Yagami
2018-10-05 20:58:48 UTC
view on stackexchange narkive permalink

Alcuni dicono che UART è hardware, altri dicono che UART è uno dei protocolli di comunicazione seriale.

UART è un protocollo

UART è un protocollo

UART è hardware

UART è hardware

Se cerchi le parole nell'acronimo, l'origine è chiara.L'uso comune può essere più abituale che corretto.Una domanda composta principalmente da 4 link e chiedere un'opinione non rientra nella missione di questo sito.
Vedo qualcuno che guarda Death Note, signor Yagami;) Comunque, direi che è entrambe le cose.Il modo in cui trasmette e riceve le informazioni attraverso l'elaborazione del segnale digitale è il protocollo e il chip che fornisce questi protocolli è l'hardware.
Alcune persone dicono "[Async Serial] (https://en.wikipedia.org/wiki/Asynchronous_serial_communication)" quando si riferiscono specificamente al protocollo e non all'hardware.Le sue origini risalgono [fino al 1800] (https://en.wikipedia.org/wiki/Teleprinter#History).Non so se sia descritto in uno standard formale e internazionale.
Alcune persone dicono anche "[RS-232] (https://en.wikipedia.org/wiki/RS-232)", ma a rigor di termini, RS-232 specifica l'interfaccia elettrica tra un UART e un modem, senza dire moltosull'UART stessa.
Cinque risposte:
WhatRoughBeast
2018-10-05 21:33:39 UTC
view on stackexchange narkive permalink

Entrambi i tuoi primi due link sono, semplicemente, sbagliati. Un UART è un componente hardware che può implementare una serie di protocolli diversi che vengono utilizzati per inquadrare flussi di dati asincroni. La U è l'acronimo di "Universal" e, sebbene sia effettivamente corretto, non c'è motivo per cui non possa essere utilizzato un protocollo che confonda l'attuale popolazione di UART, a parte il fatto che non ne vale la pena.

I diversi protocolli gestiti utilizzano diversi numeri di bit per rilevare le condizioni di avvio e arresto, la presenza o l'assenza di un bit di parità (e la sua polarità) e la lunghezza dei dati del frame. In genere è possibile specificare 5,6,7 o 8 bit di dati per frame. Se qualcuno dovesse insistere sul fatto che i suoi dati devono essere formattati in frame a 4 bit, nessun chip UART esistente sarebbe in grado di gestirli.

In parte, questa è una questione di definizione. Merriam-Webster, ad esempio, definisce il protocollo (per questo contesto) come

una serie di convenzioni che regolano il trattamento e in particolare il formattazione dei dati in un sistema di comunicazione elettronica

Nota che l'implementazione hardware non fa parte della definizione.

Michel Keijzers
2018-10-05 21:06:12 UTC
view on stackexchange narkive permalink

In realtà è entrambe le cose.UA sta per Universal Asynchronous che gestisce la trasmissione seriale asincrona.RT sta per ricevitore / trasmettitore che sono chiaramente termini hardware.

L'UART è sia l'hardware che implementa il protocollo (UART).La parte hardware è principalmente chiamata "periferica" o dispositivo UART.

Tuttavia, il protocollo UART può anche essere implementato solo dal software (utilizzando 2 pin GPIO per la ricezione e la trasmissione).Per lo più questo consuma gravemente la potenza della CPU (a seconda della velocità di comunicazione).

Poiché la comunicazione seriale è così ampiamente utilizzata, la maggior parte dei microncontrollori dispone di almeno una periferica UART hardware per consentire la maggior parte della gestione eseguita dall'hardware (come il buffering, la suddivisione dei byte in bit e l'invio / ricezione, l'aggiunta di bit di avvio / arresto, la gestione delbit di parità ecc.).

Quindi, UART è un protocollo di comunicazione seriale e il microcontrollore può avere circuiti hardware dedicati.
È vero, la maggior parte dei microcontrollori ne ha almeno uno, alcuni ne hanno fino a 8 (o forse anche di più).
Peter Green
2018-10-05 22:32:29 UTC
view on stackexchange narkive permalink

UART (Universal Asynchronous Reciever / Transmitter) si riferisce più propriamente a un blocco funzionale (normalmente hardware ma occasionalmente software) per la trasmissione e la ricezione di dati seriali asincroni che possono essere configurati per una selezione di diverse velocità di trasmissione, conteggi di bit, parità ecc.

Ma nonostante "universale" nel nome, la flessibilità è ancora piuttosto limitata e il formato di base in gran parte fisso. C'è un "bit di inizio" quando la linea si allontana dallo stato di inattività per indicare l'inizio di un "byte", un numero (solitamente 7 o 8) di bit di dati, opzionalmente un bit di parità e poi uno o due "bit di stop" con la riga di nuovo in stato di inattività per garantire che ogni byte inizi con una transizione dallo stato di inattività.

Le persone hanno bisogno di un nome per questa famiglia di codifiche, potrebbero semplicemente usare il termine "seriale asincrono", ma questo è un po 'troppo valido. Ci sono molte codifiche seriali asincrone molto diverse da quelle che possono essere gestite da un UART. Quindi, nel bene e nel male, questo metodo di codifica viene chiamato "seriale UART" o semplicemente "UART". Essenzialmente la codifica prende il nome dall'hardware utilizzato per implementarla.

In alcune circostanze possono esserci 1 1/2 bit di stop, in particolare quando si utilizza il partizionamento a 5 bit.
Sergiy Kolodyazhnyy
2018-10-06 23:23:40 UTC
view on stackexchange narkive permalink

UART / USART è davvero hardware. In effetti, prima ancora di iniziare la discussione sulla terminologia, ecco un esempio popolare degli anni '80: UART 8250, che è

"... un circuito integrato progettato per implementare l'interfaccia per comunicazioni seriali".

Se esamini la terminologia, vedrai riferimenti a elementi hardware. Ad esempio nella presentazione di Microchip "Using the USART in modalità asincrona ", noterai cose come orologio, pin, duplex e interfaccia menzionata:

USART è l'acronimo di Universal Synchronous Asynchronous Receiver Transmitter. È a volte denominato Serial Communications Interface o SCI. L'operazione sincrona utilizza clock e data line mentre non c'è un orologio separato accompagnamento dei dati per la trasmissione asincrona. Poiché non esiste un orologio signal nel funzionamento asincrono, è possibile utilizzare un pin per trasmissione e un altro pin può essere utilizzato per la ricezione. Sia la trasmissione che la ricezione può avvenire allo stesso tempo - questo è noto come operazione full duplex. La trasmissione e la ricezione possono essere abilitate indipendentemente. Tuttavia, quando il file serial port è abilitato, USART controllerà entrambi i pin e uno non può essere utilizzato per I / O per scopi generici quando l'altro viene utilizzato per la trasmissione o la ricezione.

Diamo ora un'occhiata al documento TI "Circuiti di interfaccia per TIA / EIA-232-F":

Guardando l'interfaccia DB9 un passo indietro nel sistema digitale, c'è, in nella maggior parte dei casi, un ricevitore / trasmettitore asincrono universale (UART) o elemento di comunicazione asincrona (ACE). L'ACE fornisce l'estensione conversione da parallelo a seriale e i necessari bit di avvio / arresto , bit di parità generazione e controllo della trasmissione dei dati senza errori .

Per citare Prototipazione FPGA di Verilog Esempi: Xilinx Spartan-3 Version:

Un ricevitore e trasmettitore asincrono universale (UART) è un circuit che invia dati paralleli tramite serial line. Gli UART vengono spesso utilizzati insieme allo standard RS-232 EIA (Electronic Industries Alliance), che specifica le caratteristiche elettriche, meccaniche, funzionali e procedurali di due apparecchiature di comunicazione dati.

E un po 'di più:

Un UART include un trasmettitore e un ricevitore. Il trasmettitore è essenzialmente uno speciale registro shift

Lo stesso vale per la descrizione su Wikipedia, che essenzialmente elenca gli elementi hardware che l'interfaccia UART dovrebbe avere.


Dove entra in gioco l'aspetto software? Viene gestito dal protocollo seriale asincrono stesso. Il libro 'Programmazione di microcontrollori PIC a 16 bit in C: Imparare a far volare il PIC 24' fornisce un'introduzione molto carina nel Capitolo 8: nell'aviazione hai un protocollo preciso su come e cosa dovrebbe essere detto, chi parla primo e secondo, ecc., e questo è lo stesso per la comunicazione seriale. Il software controllerà l'hardware fornito da UART per trasmettere - inviare il bit di avvio, i dati, quindi il bit di stop - e quando ascoltare.

La parte importante da notare è che UART non deve essere collegato al connettore DB-9 - UART non è DB-9. Oggigiorno hai Raspberry Pi, Arduino e molti altri sistemi embedded che usano solo 4 linee di cavi. A volte ci sono convertitori da USB a RS-232. Ad esempio, ho lavorato con la scheda PICDEM PIC18 che può utilizzare DB-9 o USB per la comunicazione seriale. I dati seriali possono essere inviati anche tramite linee Ethernet.

Lambtron
2018-10-06 01:19:33 UTC
view on stackexchange narkive permalink

È hardware che - come suggerisce il nome - include un trasmettitore fisico e un ricevitore fisico.Non è e non può essere un protocollo perché un protocollo è un sistema di regole (che ovviamente non è un'entità fisica).



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...