Compreender UART

Você tem interesse em saber mais?

R&S®Essentials | Princípios básicos de osciloscópios e pontas de prova digitais

Compreender UART

O que é o UART?

UART significa "universal asynchronous receiver/transmitter", outransmissor/receptor assíncrono universal e define um protocolo, ou seja, um conjunto de regras para a troca de dados seriais entre dois dispositivos. O UART é muito simples e utiliza somente dois fios entre o transmissor e o receptor para transmitir e receber em ambas as direções. Ambas as extremidades também têm um aterramento. A comunicação em UART pode ser simplex(os dados são enviados apenas em uma direção), half-duplex(os dois lados transmitem, mas somente um de cada vez), ou full-duplex(ambos os lados podem transmitir simultaneamente). Dados em UART são transmitidos na forma de frames. O formato e o conteúdo desses frames serão brevemente descritos e explicados.

Dados em UART são transmitidos na forma de frames

Quando o UART é utilizado?

O UART é um dos mais antigos protocolos seriais. As portas seriais, antes quase universalmente utilizadas, geralmente eram baseadas em UART; e dispositivos utilizando interfaces RS-232, modens externos, etc. são alguns exemplos comuns de locais em que UART é utilizado.
Recentemente, a popularidade do UART tem diminuído: protocolos como SPI e I²C têm substituído UART entre chips e componentes. Ao invés de se comunicarem através de uma porta serial, os mais modernos computadores e dispositivos periféricos agora usam tecnologias como Ethernet e USB. Contudo, o UART ainda é utilizado para aplicações de velocidades e fluxos mais baixos pela sua simplicidade, seu baixo custo e sua facilidade de implementação.

Temporização e sincronização de protocolos UART

Uma das grandes vantagens do UART é que ele é assíncrono – o transmissor e o receptor não compartilham um sinal de clock comum. Apesar de isso simplificar significativamente o protocolo, também impõe alguns requisitos para o transmissor e o receptor. Uma vez que eles não compartilham um clock, ambas as extremidades devem transmitir ao mesmo tempo e em velocidade predefinida para poder ter a mesma temporização de bits. As taxas de baud mais comuns utilizadas em UART atualmente são 4.800, 9.600, 19,2 K, 57,6 K e 115,2 K. Além de ter a mesma taxa de baud, ambos os lados de uma conexão UART também têm que usar a mesma estrutura de frames e parâmetros. A melhor forma de compreender isso é examinar um frame UART.

Formato de frame UART

Frames UART contém bits iniciais e finais, bits de dados e um bit opcional de paridade que será explicado abaixo.

Como na maioria dos sistemas digitais, um "alto" nível de tensão é utilizado para indicar um "1" lógico e um "baixo" nível de tensão é utilizado para indicar um "0" lógico. Uma vez que o protocolo UART não define tensões ou faixas de tensão específicas para esses níveis, algumas vezes o nível alto é chamado "marca", enquanto o nível baixo é chamado "espaço". Observe que, no estado inativo (em que nenhum dado está sendo transmitido) a linha é mantida alta. Isso permite detectar facilmente danos em uma linha ou em um transmissor.

Bits iniciais e finais

Devido ao UART ser assíncrono, o transmissor precisa sinalizar que os bits de dados estão chegando. Isso é possível ao utilizar o bit inicial. O bit inicial é uma transição do estado inativo para um estado baixo, imediatamente seguido pelos bits de dados do usuário.
Depois que os bits de dados tiverem terminado, o bit final indica o fim dos dados do usuário. O bit de parada é uma transição de volta para o estado alto ou inativo, ou a permanência no estado alto for um tempo de bit adicional. Um segundo bit final (opcional) pode ser configurado, geralmente para dar ao receptor tempo para se preparar para o próximo frame, mas essa é uma prática relativamente incomum.

Bits de dados

Os bits de dados são dados de usuário ou bits "úteis" e vêm imediatamente depois do bit inicial. Pode haver de 5 a 9 bits de dados de usuários, apesar de ser mais comum haver 7 ou 8 bits. Esses bits de dados geralmente são transmitidos com o bit menos significativo primeiro.

Exemplo:
Se quisermos enviar a letra maiúscula “S” em um ASCII de 7 bits, a sequência de bits é 1 0 1 0 0 1 1. Primeiro invertemos a ordem dos bits para colocá-los na ordem menos significativa, ou seja, 1 1 0 0 1 0 1, antes de enviá-los. Depois que o último bit de dados é enviado, o bit final é utilizado para terminar o frame e a linha retorna ao estado inativo.

  • 7 bits ASCII 'S' (0x52) = 1 0 1 0 0 1 1
  • Ordem LSB = 1 1 0 0 1 0 1

Bits iniciais e finais

Bits de dados

Bit de paridade

Um frame UART também pode conter um bit opcional de paridade que pode ser utilizado para detecção de erros. Esse bit é inserido entre o fim dos bits de dados e o bit final. O valor do bit de paridade depende do tipo de paridade sendo utilizado (par ou ímpar):

  • Na paridade par, esse bit é definido de modo que o número total de 1s no frame seja par.
  • Na paridade ímpar, esse bit é definido de modo que o número total de 1s no frame seja ímpar.

Exemplo:
“S” maiúsculo (1 0 1 0 0 1 1) contém um total de três zeros e 4 uns. Ao utilizar a paridade par, o bit de paridade é zero porque já existe um número par de uns. Ao utilizar a paridade ímpar, o bit de paridade tem que ser um para fazer o frame ter um número ímpar de 1s.
O bit de paridade somente pode detectar um único bit invertido. Se mais de um bit estiver invertido, não há como detectá-los de maneira confiável utilizando um único bit de paridade.

Exemplo de bit de paridade

Compreender UART

Assista nosso vídeo "Compreender UART" para aprender mais

Esse vídeo explica a visão geral técnica do protocolo serial UART (transmissor/receptor assíncrono universal), incluindo uma descrição da estrutura de frame e do significado de cada bit do frame.

Resumo

  • UART significa "transmissor/receptor assíncrono universal" e é um protocolo simples com dois fios para troca de dados seriais.
  • O termo "assíncrono" nesse caso significa que não há clock compartilhado, portanto, para que o UART funcione, o mesmo bit ou a mesma taxa de bauds deve ser configurada em ambos os lados da conexão.
  • Os bits inicial e final são utilizados para indicar onde os dados do usuário começam e terminam, ou seja, como "frame", para "enquadrar" os dados.
  • Um bit de paridade opcional pode ser utilizado para detectar erros de bit individuais.
  • O UART ainda é um protocolo de dados seriais amplamente utilizado, mas recentemente vem sendo substituído em algumas aplicações por tecnologias como SPI, I²C, USB e Ethernet.

Você tem questões sobre UART ou outros protocolos seriais? Nossos especialistas ajudam você.