UART (Universal Asynchronous Transmitter Receiver), este é o protocolo mais comum utilizado para comunicação em série full-duplex. É um único chip LSI (integração em grande escala) concebido para realizar comunicação assíncrona. Este dispositivo envia e recebe dados de um sistema para outro sistema.
Neste tutorial, aprenderá o básico da comunicação UART, e o funcionamento da UART.
O que é UART?
“UART” significa receptor-transmissor Assíncrono Universal. É um periférico de hardware que está presente dentro de um microcontrolador. A função da UART é converter os dados de entrada e de saída no fluxo binário em série. Um dado de série de 8 bits recebido do dispositivo periférico é convertido na forma paralela usando conversão série para paralela e os dados paralelos recebidos da CPU são convertidos usando conversão série para paralela. Estes dados estão presentes na forma modulada e transmitem a uma taxa de transmissão definida.
Porquê UART é usado?
Protocolos como SPI (interface periférica série) e USB (Universal Serial Bus) são usados para comunicação rápida. Quando a transferência de dados a alta velocidade não é necessária UART é utilizada. É um dispositivo de comunicação barato com um único transmissor/receptor. Requer um único fio para transmitir os dados e outro fio para receber.
Interface UART
Pode ser interfaceado com um PC (computador pessoal) usando um conversor RS232-TTL ou um conversor USB-TTL. A coisa comum entre RS232 e UART é que ambos não precisam de um relógio para transmitir e receber dados. A moldura Uart consiste em 1 bit inicial, 1 ou 2 bits de paragem e um bit de paridade para transferência de dados em série.
Diagrama de blocos
A UART consiste nos seguintes componentes principais. Eles são o transmissor e o receptor. O transmissor consiste no registo de retenção de transmissão, registo de deslocamento de transmissão, e lógica de controlo. Da mesma forma, o receptor consiste num registo de recepção de espera, registo de mudança de receptor e lógica de controlo. Em comum, tanto o transmissor como o receptor são fornecidos com um gerador de taxa de transmissão.
Diagrama de Bloco UART
O gerador de taxa de transmissão gera a velocidade à qual o transmissor e o receptor têm de enviar/receber os dados. O registo de espera de transmissão contém o byte de dados a transmitir. O registo de deslocamento de transmissão e o registo de deslocamento do receptor deslocam os bits para a esquerda ou direita até que um byte de dados seja enviado/recebido.
Além destes, é fornecida uma lógica de controlo de leitura ou escrita para dizer quando ler/escrever. O gerador de taxa de transmissão gera velocidades que variam de 110 bps (bits por segundo) a 230400. Na maior parte dos casos, os microcontroladores produzem velocidades de transmissão mais elevadas, tais como 115200 e 57600 para uma transferência de dados mais rápida. Dispositivos como GPS e GSM utilizam taxas de transmissão mais lentas em 4800 e 9600.
Como funciona a UART?
Para conhecer o funcionamento da UART, é necessário compreender a funcionalidade básica da comunicação em série. Em suma, o transmissor e o receptor utilizam bit de início, bit de paragem, e parâmetros de sincronização para se sincronizarem entre si. Os dados originais estão em forma paralela. Por exemplo, temos dados de 4 bits, para os convertermos em forma de série, precisamos de um conversor paralelo para série. Geralmente, os flip-flops ou trincos D são utilizados para desenhar os conversores.
Trabalho de D – Flip-flop
Basic D Flip-Flop
D flip-flop também conhecido como Data flip-flop muda um bit do lado de entrada para o lado de saída se e só, quando o relógio muda a transição de um estado alto para um estado baixo ou de um estado baixo para um estado alto. Do mesmo modo, se se quiser transferir quatro bits de dados, são necessários 4 flip-flops.
Nota: Aqui,
‘D’ representa dados de entrada.
‘CLK’ indica pulsos de relógio.
‘Q’ denota dados de saída. Agora, vamos desenhar um conversor paralelo para série e de série para paralelo.
Conversão Paralela a Série
Conversão Paralela a Série
P>Passo#1:
P>Take 4 Flip-flops. O número de chinelos de dedo é equivalente ao número de bits a serem transmitidos. Da mesma forma, colocar Multiplexers à frente de cada chinelo de dedo, mas excluindo o primeiro. Um multiplexador é colocado para combinar os dados e convertê-los em bits de série. Tem duas entradas, um dado de bit paralelo e outro do flip-flop anterior.
P>Passo#2:
Agora, carregue os dados de cada vez nos flip-flops D. Ele puxará os dados paralelos e moverá o último bit do último flip-flop (quatro), e depois o terceiro bit, o segundo bit, e finalmente o primeiro bit. Agora, para reconverter os dados paralelos em forma de série para o conversor paralelo é utilizado.
Conversão Série para Paralela
Conversão Série para Paralela
P>Passo#1:
P>Take 4 Flip-flops. O número de chinelos de dedo é o mesmo que o número de bits a transmitir.
P>Passo#2:
Initidamente, desactivar o autocarro paralelo. Não activar até que todos os bits estejam carregados. Armazene os dados na entrada do primeiro flip-flop. Agora faça um relógio alto, isto deslocará o bit menos significativo para a entrada do segundo flip-flop e para a saída do primeiro. Da mesma forma, deslocar todos os bits um a um, fazendo o relógio pulsar alto. O conversor está no estado de espera até que todos os bits sejam transferidos para a saída.
Passo#3:
Agora cada flip-flop contém um bit de dados em série. Entretanto, todos os bits são transferidos para a saída do flip-flop, activar o bus. Isto fará com que o conversor envie todos os bits de cada vez.
Formato do protocolo
A UART inicia a comunicação com um bit inicial ‘0’. O bit de início inicia a transferência de dados em série e o bit de paragem termina a transacção de dados.
Formato de protocolo
É também fornecido com um bit de paridade (par ou ímpar). O bit de paridade paritária é representado por ‘0’ (número par de 1’s) e o bit de paridade ímpar é representado por ‘1’ (número impar de 1’s).
Transmissão
A transmissão de dados é feita utilizando uma única linha de transmissão (TxD). Aqui ‘0’ é considerado como espaço e ‘1’ é conhecido como mark state.
Transmission Frame
O transmissor envia um único bit de cada vez. Depois de enviar um bit, o bit seguinte é enviado. Desta forma, todos os bits de dados são enviados para o receptor com uma taxa de transmissão pré-definida. Haverá um certo atraso na transmissão de cada bit. Por exemplo, para enviar um byte de dados à taxa de 9600 bauds, cada bit é enviado com um atraso de 108 µsec. Os dados são adicionados com um bit de paridade. Assim, são necessários 10 bits de dados para enviar 7 bits de dados.
Nota: Na transmissão, o LSB (Bit Menos Significativo) é sempre enviado primeiro.
Recepção
Durante a recepção, a linha RxD (Receptor) é utilizada para receber os dados.
Exemplo de interface UART
Este exemplo demonstra a interface do ESP8266 UART com MAX232. Mas, antes de saltar para os detalhes da interface, deixe-me partilhar os detalhes dos pinos do Max232 driver.
MAX232 Pinout
MAX232 IC é alimentado por uma fonte de 5V que inclui um gerador de tensão capacitiva para conduzir 232 tensões de nível. Vem com transmissores duplos também chamados condutor (TIN, TOUT) e receptores (RIN e ROUT).
Aqui, utilizei o ESP8266 (microcontrolador de 32 bits) que tem embutido a UART. A comunicação pode ser feita com o ESP8266 usando comandos AT via RS232 para o conversor de nível TTL (MAX232). A figura abaixo mostra a ligação do ESP8266 com PC (computador pessoal).
Ao solicitar comandos AT válidos através do PC o chip Wi-Fi responderá com um aviso de recepção. Não quero aprofundar o ESP8266 e será explicado nos futuros tutoriais.
Aqui estão os passos para implementar a comunicação em série com o PC.
- Conecte o Transmissor (TX) do ESP8266 ao Receptor (TX) do RS232 ao conversor de nível TTL (MAX232) e RX do PC.
- Conecte o Receptor (RX) do ESP8266 ao TX do PC e RX do conversor TTL.
ESP8266 Comandos
AT command (Sent from PC) | ESP8266 Response (recebido por PC) |
---|---|
AT<CR><LF> | OK<CR><LF> |
AT+CIPMUX=1 | OK<CR><LF> |
AT+CIPSERVER=1,23<CR><LF> |
A imagem abaixo mostra a resposta dada pelo módulo ESP8266.
UART vs USART
USART é a forma básica de UART. Tecnicamente, não são a mesma coisa. Mas, a definição é a mesma para ambos. Estes são periféricos microcontroladores que convertem dados paralelos em bits de série e vice-versa.
A principal diferença entre UART e USART é, UART suporta apenas comunicação assíncrona, enquanto que USART suporta comunicação síncrona bem como assíncrona. Para facilitar a compreensão, aqui está a comparação entre a USART e a UART.
UART | USART |
---|---|
O Relógio é gerado internamente pelo microcontrolador. | O dispositivo emissor irá gerar o relógio. |
A taxa de dados é lenta. | A taxa de dados é mais alta devido ao relógio externo. |
Protocolo de Standalone | Suporta múltiplos protocolos como LIN, RS-485, IrDA, Smart Card, etc. |
A taxa baud deve ser conhecida antes da transmissão. | Não é necessário saber a taxa baud mais cedo. |
Adequado para comunicações de alta velocidade. | |
Passagem de energia reduzida. | Comunicação em série Handles durante consumo elevado de energia |
RS232 e UART
Níveis lógicos representam os níveis de tensão de funcionamento que um dispositivo pode suportar para funcionar numa zona segura. Aqui estão os níveis de voltagem para RS232 e TTL.
Lógica para RS232:
RS232 Níveis de voltagem
Nível lógico | Voltage Range |
---|---|
Logic High or OFF output | -5V para -15V |
Saída Lógica Baixa ou ON | +5V a +15V |
Entrada Lógica Alta ou OFF | -3V a -15V |
Logic Low or ON input | +3V a +15V |
Na maioria dos casos os níveis RS232 variam de -12V a +12V. Por exemplo, um valor ASCII para um carácter ‘A’ em RS232 é 65 e 41 em Hexadecimal. Portanto, num formato binário de 8 bits, é 0100 0001. Aqui mostra a representação dos níveis lógicos RS232 para ASCII ‘A’.
RS232 Sinal para ASCII Letra A
TTL/CMOS Logic:
A UART funciona na lógica TTL.
- Inicialmente, a linha de série está no estado de marcha lenta (Logic 1). Agora, a transmissão de dados começa com um bit inicial (lógica 0).
- Outros, oito bits de dados são enviados sobre a linha de série um após o outro com LSB (bit menos significativo) primeiro.
- Depois de toda a transmissão ter terminado, um bit de paragem (lógica 1) é encontrado.
Vantagens
A vantagem de UART é que suporta comunicação full-duplex usando dois fios. Além disso, não requer relógio externo para a comunicação de dados. Suporta a verificação de erros usando um bit de paridade e o comprimento dos dados pode ser facilmente alterado.
Desvantagens
A maior desvantagem da UART é que não suporta configuração multiescravo ou multi-mestre. E, o tamanho do pacote de dados é limitado a 9 bits. A UART não é adequada para a comunicação em série de levantamento pesado durante o elevado consumo de energia.
Aplicações
- Porta de depuração em série utiliza o controlador UART para imprimir os dados provenientes do mundo externo.
- Podemos utilizá-lo para enviar e receber comandos de e para os dispositivos incorporados.
- Comunicação em GPS, modem GSM/GPRS, chips Wi-Fi, etc. funciona com UART.
- Utilizado no acesso Mainframe para ligar diferentes computadores.