UART ou Universal Asynchronous Receiver Transmitter é um hardware dedicado associado à comunicação em série. O hardware para UART pode ser um circuito integrado no microcontrolador ou um CI dedicado. Isto contrasta com o SPI ou I2C, que são apenas protocolos de comunicação.
UART é uma das técnicas mais simples e mais comummente utilizadas de Comunicação em Série. Actualmente, a UART está a ser utilizada em muitas aplicações como receptores GPS, Módulos Bluetooth, Modems GSM e GPRS, Sistemas de Comunicação sem fios, aplicações baseadas em RFID, etc.
Se se lembrar de sistemas informáticos mais antigos, dispositivos como Rato, Impressora e Modem são ligados usando um conector pesado na parte de trás. Todos estes dispositivos comunicados usando UART.
P>Even embora USB tenha substituído todos os tipos de padrões de comunicação em computadores e outros dispositivos, UART ainda está a ser usado nas aplicações acima mencionadas.
A maior parte dos microcontroladores têm hardware UART dedicado incorporado na sua arquitectura. A principal razão para integrar o hardware UART nos microcontroladores é que se trata de uma comunicação em série e requer apenas dois fios para a comunicação.
Antes de entrar em explicações mais detalhadas sobre UART, como funciona e passos envolvidos na transmissão e recepção de dados, tentaremos recolher alguma informação sobre Comunicação em Série e uma pequena comparação entre comunicações em série e paralelas.
Outline
Breve Nota sobre Comunicação Paralela e Série
Transferência de Dados Digitais de um dispositivo para outro pode ser conseguida de duas maneiras: Transferência Paralela de Dados e Transferência de Dados em Série. Na transferência paralela de dados, todos os bits são transferidos da fonte para o destino de uma só vez.
Isto é possível porque a transferência paralela de dados usa múltiplas pistas ou fios entre o transmissor e o receptor para transferir os dados.
Os métodos de transferência paralela de dados são mais rápidos e dispendiosos, uma vez que necessitam de mais hardware e muitos fios. As impressoras dos velhos tempos são o melhor exemplo de comunicação paralela externa. Outros exemplos são a RAM, PCI, etc.
Com o progresso na tecnologia de circuitos integrados, os IC’s digitais estão a tornar-se mais pequenos e mais rápidos e como resultado, as taxas de transferência em Comunicação Paralela com várias vias chegaram a um gargalo de garrafa.
Com a Comunicação em Série na mão, transfere dados bit a bit utilizando uma única linha ou fio. Para uma comunicação bidireccional entre o transmissor e o receptor, precisamos apenas de dois fios para uma transferência de dados em série bem sucedida.
Desde que a comunicação em série precisa de menos circuitos e fios, o custo de implementação é menor. Como resultado, utilizar a comunicação em série em circuitos complexos pode ser mais prático do que a comunicação paralela.
br>mas a única preocupação com a transferência de dados em série é a velocidade. Uma vez que a transferência de dados ocorre numa única linha, a velocidade de transferência na comunicação em série é menor do que a da comunicação paralela. Agora – a – dias, a velocidade da transferência de dados em série não é uma preocupação uma vez que os avanços na tecnologia levaram a velocidades de transferência mais rápidas.
Introdução à Comunicação UART
UART ou Universal Asynchronous Receiver Transmitter é um dispositivo de comunicação em série que efectua a conversão de dados paralela – para – série no lado do transmissor e em série – para – paralela no lado do receptor. É universal porque os parâmetros como velocidade de transferência, velocidade de dados, etc. são configuráveis.
Como mencionado na secção de introdução, UART é uma peça de hardware que actua como uma ponte entre o processador e o protocolo ou porta de comunicação série. A imagem seguinte mostra brevemente esta interface. A comunicação em série pode ser qualquer coisa como USB, RS – 232, etc.
br> A letra ‘A’ em UART significa Assíncrono, ou seja, não há sinal de relógio para sincronizar ou validar os dados transmitidos a partir do transmissor e recebidos pelo receptor (Comunicação Serial Assíncrona).
Esta letra está em contraste com Comunicação Série Síncrona, que utiliza um sinal de relógio que é partilhado entre o transmissor e o receptor a fim de “Sincronizar” os dados entre eles.
Se não houver relógio (ou qualquer outro sinal de cronometragem) entre o transmissor e o receptor, então como é que o receptor sabe quando ler os dados?
Na UART, o transmissor e o receptor devem acordar previamente os parâmetros de cronometragem. Além disso, UART utiliza bits especiais no início e no fim de cada palavra de dados para sincronizar o transmissor e o receptor. Mais sobre estes bits especiais nas secções posteriores.
Em UART based Serial Communication, o transmissor e o receptor comunicam da seguinte forma. A UART no dispositivo emissor, isto é, a UART transmissora recebe dados paralelos da CPU (microprocessador ou microcontrolador) e converte-os em dados em série.
Estes dados em série são transmitidos para a UART no dispositivo receptor, isto é, a UART receptora. A UART receptora, ao receber os dados seriais, converte-os de volta para dados paralelos e entrega-os à CPU.
O pino na UART transmissora, que transmite os dados seriais, chama-se TX e o pino na UART receptora, que recebe os dados seriais, chama-se RX.
Desde que a UART envolve conversão de dados paralela – para – série e em série – para – paralela, os registos de turnos são uma parte essencial do hardware UART (dois registos de turnos para ser específico: Registo de Turno do Transmissor e Registo de Turno do Receptor).
Como funciona a UART?
Na Comunicação Série UART, os dados são transmitidos de forma assíncrona, ou seja, não há nenhum relógio ou outro sinal de cronometragem envolvido entre o emissor e o receptor. Em vez do sinal de relógio, UART usa alguns bits especiais chamados Start e Stop bits.
Estes bits são adicionados ao pacote de dados real no início e no fim, respectivamente. Estes bits adicionais permitem à UART receptora identificar os dados reais.
A imagem acima mostra uma típica ligação UART. A UART transmissora recebe dados do dispositivo de controlo através do barramento de dados. O dispositivo de controlo pode ser qualquer coisa como uma CPU de um microprocessador ou um microcontrolador, unidade de memória como uma RAM ou ROM, etc. Os dados recebidos pela UART de transmissão a partir do barramento de dados são dados paralelos.
A estes dados, a UART adiciona bits Start, Parity e Stop, a fim de os converter num pacote de dados. O pacote de dados é então convertido de paralelo para série com a ajuda do registo de deslocamento e é transmitido bit – por – bit a partir do pino TX.
A UART receptora recebe estes dados em série no pino RX e detecta os dados reais identificando os bits de início e de paragem. O bit de paridade é utilizado para verificar a integridade dos dados.
Up ao separar os bits de início, paridade e paragem do pacote de dados, os dados são convertidos em dados paralelos com a ajuda do registo de turnos. Estes dados paralelos são enviados para o controlador no fim receptor através de um bus de dados.
Estrutura do Pacote ou Quadro de Dados
Os dados na comunicação em série UART são organizados em blocos chamados Pacotes ou Quadros. A estrutura de um Pacote de Dados UART típico ou o enquadramento padrão dos dados é mostrado na imagem seguinte.
Deixe-nos ver sobre cada peça da moldura.
Start Bit: Start Bit é um bit de sincronização que é adicionado antes dos dados reais. O bit de início marca o início do pacote de dados. Normalmente, uma linha de dados ociosa, isto é, quando a linha de transmissão de dados não está a transmitir quaisquer dados, é mantida a um nível de alta tensão (1).
Para iniciar a transferência de dados, a UART de transmissão puxa a linha de dados do nível de alta tensão para o nível de baixa tensão (de 1 a 0). A UART receptora detecta esta alteração de alto para baixo na linha de dados e começa a ler os dados reais. Normalmente, existe apenas um bit de início.
Stop Bit: O bit de paragem, como o nome sugere, marca o fim do pacote de dados. É normalmente de dois bits, mas muitas vezes só é utilizado em bits. Para terminar a transmissão, a UART mantém a linha de dados em alta voltagem (1).
Paridade Bit: A paridade permite ao receptor verificar se os dados recebidos estão correctos ou não. A paridade é um sistema de verificação de erros de nível baixo – nível e vem em duas variedades: Paridade uniforme e Paridade ímpar. O bit de Paridade é opcional e na realidade não é muito utilizado.
Bits de dados: Bits de dados são os dados reais que estão a ser transmitidos do remetente para o receptor. O comprimento da moldura de dados pode situar-se entre 5 e 9 (9 bits se não for utilizada paridade e apenas 8 bits se for utilizada paridade). Normalmente, o LSB é o primeiro bit de dados a ser transmitido (salvo especificação em contrário).
Regras de UART
Como mencionado anteriormente, não há sinal de relógio em UART e o transmissor e o receptor devem acordar algumas regras de comunicação em série para uma transferência de dados sem erros. As regras incluem:
- Synchronisation Bits (Start and Stop bits)
- Parity Bit
- Data Bits and
- Baud Rate
Vimos acerca de bits de sincronização, bits de paridade e bits de dados. Outro parâmetro importante é a Baud Rate.
Baud Rate: A velocidade a que os dados são transmitidos é mencionada utilizando a Baud Rate. Tanto a UART de transmissão como a UART de recepção devem chegar a acordo sobre a Baud Rate para uma transmissão de dados bem sucedida.
Baud Rate é medida em bits por segundo. Algumas das taxas de Baud padrão são 4800 bps, 9600 bps, 19200 bps, 115200 bps, etc. Destes 9600 bps, a taxa de transmissão de dados é a mais comumente utilizada.
Vejamos um exemplo de quadro de dados em que dois blocos de dados, 00101101 e 11010011, devem ser transmitidos. O formato da moldura é 9600 8N1 i.e. 9600 bps com 8 bits de dados, sem paridade e 1 bit de paragem. Neste exemplo, não utilizámos o bit de paridade.
Vantagens de UART
- Requer apenas dois fios para transmissão de dados duplex completos (excepto as linhas eléctricas).
- Não há necessidade de relógio ou qualquer outro sinal de cronometragem.
- Bit de paridade assegura que a verificação básica de erros está integrada na moldura do pacote de dados.
Desvantagens da UART
- O tamanho dos dados na moldura é limitado.
- A velocidade de transferência de dados é menor em comparação com a comunicação paralela.
- Transmissor e receptor devem concordar com as regras de transmissão e a taxa de transmissão deve ser seleccionada.