Il più delle volte RS-232 e UART si fondono in teorie della comunicazione seriale. Sono entrambi uguali? Dalle mie letture ho concluso che UART è una forma hardware del protocollo RS-232. Ho ragione?
Il più delle volte RS-232 e UART si fondono in teorie della comunicazione seriale. Sono entrambi uguali? Dalle mie letture ho concluso che UART è una forma hardware del protocollo RS-232. Ho ragione?
Risposte:
No, UART e RS-232 non sono uguali.
UART è responsabile dell'invio e della ricezione di una sequenza di bit. All'uscita di un UART questi bit sono generalmente rappresentati da tensioni di livello logico. Questi bit possono diventare RS-232, RS-422, RS-485 o forse alcune specifiche proprietarie.
RS-232 specifica i livelli di tensione . Si noti che alcuni di questi livelli di tensione sono negativi e possono anche raggiungere ± 15 V. Un'oscillazione di tensione maggiore rende RS-232 più resistente alle interferenze (anche se solo in una certa misura).
Un microcontrollore UART non può generare tali livelli di tensione da solo. Questo viene fatto con l'aiuto di un componente aggiuntivo: il driver di linea RS-232. Un classico esempio di un driver di linea RS-232 è MAX232 . Se si passa attraverso la scheda tecnica, si noterà che questo IC ha una pompa di carica, che genera ± 10 V da + 5 V.
( fonte )
UART (o USART) - Ricevitore / trasmettitore asincrono universale (sincrono)
Questa è, essenzialmente, un'interfaccia di comunicazione seriale. La parte "universale" significa che può essere configurata per supportare molti protocolli seriali specifici diversi. Il termine è generico e non rappresenta uno standard specifico. Almeno significa che ha una TX
e una RX
linea, che invia un flusso di dati seriali e riceve un flusso di dati seriali.
RS-232 - Uno standard che definisce i segnali tra due dispositivi, definendo i nomi dei segnali, il loro scopo, i livelli di tensione, i connettori e le piedinature.
Questo è uno standard di interfaccia specifico che consente l'interoperabilità delle apparecchiature. Mentre due componenti hardware possono avere UART, non sai che si collegheranno senza danni o comunicheranno correttamente a meno che tu non sappia che hanno gli stessi standard di pinout e voltaggio, o includono un convertitore o un cavo appositamente cablato specifico per l'interconnessione di questi due dispositivi specifici. Per evitare la necessità di convertitori o cavi speciali, i produttori possono scegliere di seguire lo standard RS-232. Sai, quindi, che un cavo RS-232 standard collegherà i due.
Tuttavia, né l'UART, né lo standard RS-232 definiscono ciò che viene inviato sulle linee TX
e RX
. Generalmente, quando le persone usano RS-232, usano una semplice codifica NRZ a 8 bit con un bit di avvio e un bit di stop. La maggior parte delle apparecchiature prodotte oggi utilizza questa codifica, ma non è necessario farlo. È possibile trovare apparecchiature meno recenti che includono bit di parità o che utilizzano 7 o 9 bit. L'UART può essere configurato per supportare questi vari protocolli su di esso TX
e RX
linee.
Gli UART in genere non si interfacciano direttamente con RS-232. Sarà necessario convertire l'uscita dell'UART nello standard +/- 12V richiesto da RS-232. Un'interfaccia RS-232 completa coinvolge in genere sia un convertitore di livello UART che un convertitore RS-232. Inoltre, lo standard RS-232 comprende la definizione di diversi altri segnalazione spilli oltre TX
e RX
che potrebbe essere necessario utilizzare a seconda delle attrezzature necessarie per connettersi. Questi dovranno anche essere convertiti a livello e l'UART potrebbe o meno supportare questi segnali. In caso contrario, dovrai controllarli direttamente con il tuo software / firmware.
Pertanto, mentre un UART può aiutarti a implementare un'interfaccia RS-232, non è un'interfaccia RS-232 stessa.
Le funzioni UART consentono di convertire i dati paralleli dalle linee del bus PC in dati seriali per la trasmissione tramite driver di linea ai dispositivi RS-232, RS-422 e RS-485 . Il pin del clock del chip UART è alimentato da una sorgente di clock programmabile. La velocità di clock è determinata dalla configurazione della velocità di trasmissione che il dispositivo utilizzerà. La velocità di clock è 16 volte la velocità di trasmissione. Posizionare una sonda dell'oscilloscopio sul pin di un chip UART e determinare la frequenza, quindi dividere per 16 è un modo per determinare una velocità di trasmissione sconosciuta.