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?
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?
Respostas:
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.
( fonte )
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 TX
uma RX
linha 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 TX
e 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 TX
e 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 TX
e 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.
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.