Diferença entre UART e RS-232?

80

Na maioria das vezes, o RS-232 e o UART se reúnem em teorias de comunicação serial. Ambos são iguais? Pelas minhas leituras, concluí que o UART é uma forma de hardware do protocolo RS-232. Estou correcto?

tollin jose
fonte
1
As respostas acima forneceram informações sobre as diferenças. Mas gostaria de acrescentar a essas respostas adicionando um link da National Instruments que discuta esse tópico em detalhes. Segue-se o link: RS-232, RS-422, RS-485 Serial Conceitos Gerais de Comunicação
devangmotwani

Respostas:

80

Não, UART e RS-232 não são os mesmos.

O UART é responsável por enviar e receber uma sequência de bits. Na saída de um UART, esses bits geralmente são representados por tensões no nível lógico. Esses bits podem se tornar RS-232, RS-422, RS-485 ou talvez alguma especificação proprietária.

O RS-232 especifica os níveis de tensão . Observe que alguns desses níveis de tensão são negativos e também podem atingir ± 15V. Um balanço de tensão maior torna o RS-232 mais resistente a interferências (embora apenas em certa medida).

Um microcontrolador UART não pode gerar esses níveis de tensão sozinho. Isso é feito com a ajuda de um componente adicional: driver de linha RS-232. Um exemplo clássico de um driver de linha RS-232 é o MAX232 . Se você consultar a folha de dados, notará que este IC possui uma bomba de carga, que gera ± 10V de + 5V.

insira a descrição da imagem aqui ( fonte )

Nick Alexeev
fonte
4
A definição RS-232 que li não fala sobre uma sequência de bits ou de tempo. Na verdade, nunca encontrei um padrão oficial que descreva o protocolo assíncrono de start-stop da NRZ.
Wouter van Ooijen
1
O RS-232 não especifica a sequência de bits.
Slebetman 15/05
Aparentemente, o desenvolvimento do formato de caracteres UART foi tão dominado pela companhia telefônica Bell que não surgiram variantes. Como resultado, o formato de bit de início / dados / paridade / parada nunca foi objeto de um padrão independente. O uso em toda a indústria era tão uniforme que nenhuma definição "oficial" era necessária. Isso não era verdade para os links físicos e, portanto, o RS-232 foi desenvolvido.
WhatRoughBeast
3
Os formatos de caracteres UART são anteriores aos modems de Bell, eles estavam no hardware Teletype (oito bits com paridade) em ASCII e Baudot antes disso.
Whit3rd
34

UART (ou USART) - Receptor / Transmissor Assíncrono Universal (Síncrono)

Esta é, essencialmente, uma interface de comunicação serial. A parte "universal" significa que pode ser configurada para suportar muitos protocolos seriais específicos diferentes. O termo é genérico e não representa um padrão específico. No mínimo, significa que possui TXuma RXlinha e uma , que envia um fluxo de dados serial e recebe um fluxo de dados serial.

RS-232 - Um padrão que define os sinais entre dois dispositivos, definindo os nomes dos sinais, sua finalidade, níveis de tensão, conectores e pinagens.

Este é um padrão de interface específico que permite a interoperabilidade do equipamento. Embora duas peças de hardware possam ter UARTs, você não sabe se elas se conectam sem danos ou se comunicam adequadamente, a menos que saiba que possuem os mesmos padrões de pinagem e tensão, ou incluem um conversor ou cabo com fio específico para a interconexão de esses dois dispositivos específicos. Para evitar a necessidade de conversores ou cabos especiais, os fabricantes podem optar por seguir o padrão RS-232. Você sabe, então, que um cabo RS-232 padrão conectará os dois.

No entanto, nem o UART nem o padrão RS-232 definem o que é enviado nas linhas TXe RX. Geralmente, quando as pessoas usam RS-232, elas usam uma codificação NRZ de 8 bits simples, com um bit de início e um bit de parada. A maioria dos equipamentos fabricados atualmente usa essa codificação, mas não há necessidade de fazê-lo. Você pode encontrar equipamentos mais antigos que incluem bits de paridade ou usam 7 ou 9 bits. O UART pode ser configurado para suportar esses vários protocolos em suas linhas TXe RX.

Normalmente, os UARTs não fazem interface diretamente com o RS-232. Você precisará converter a saída do UART para o padrão +/- 12V exigido pelo RS-232. Uma interface RS-232 completa normalmente envolve um UART e um conversor de nível RS-232. Além disso, o padrão RS-232 inclui a definição de vários outros pinos de sinalização além TXe RX, os quais você pode precisar usar dependendo do equipamento ao qual precisa se conectar. Eles também precisarão ser convertidos em nível, e seu UART pode ou não suportar esses sinais. Caso contrário, você terá que controlá-los diretamente com seu software / firmware.

Portanto, embora um UART possa ajudá-lo a implementar uma interface RS-232, não é uma interface RS-232 propriamente dita.

Adam Davis
fonte
Cabo RS-232 padrão? Não existe tal coisa. Na minha bolsa de equipamentos, carrego cerca de uma dúzia de adaptadores para RS-232. O RS-232 especifica um conector DB-25, mas já vi DD-9, RJ45, din8 e outros conectores; além de conectar um modem a um PC, nunca consegui usar um cabo COTS para qualquer projeto rs232. Felizmente, 90% das vezes que um par de adaptadores realiza ou um cabo personalizado, eles são fáceis de fabricar.
hildred 15/05
Apenas para constar: acho que o 'S' no USART significa "Synchronous", não "Serial". Veja aqui . Os USARTs são "extensões" sobre os chips UARTs mais antigos, que também permitem modos de comunicação síncrona.
Lorenzo Donati
14

O UART funciona para converter dados paralelos das linhas de barramento do PC em dados seriais para transmissão via drivers de linha para dispositivos RS-232, RS-422 e RS-485 . O pino do relógio do chip UART é alimentado por uma fonte de relógio programável. A velocidade do relógio é determinada pela configuração da taxa de transmissão que o dispositivo usará. A velocidade do relógio é 16 X a taxa de transmissão. A colocação de uma sonda do osciloscópio no pino do relógio de um chip UART e a determinação da frequência e, em seguida, a divisão por 16 é uma maneira de determinar uma taxa de transmissão desconhecida.

Don Slade
fonte
5
+1 para "converter dados paralelos em dados seriais", nenhuma outra resposta aqui menciona isso.
TisteAndii