Neste artigo, estaremos analisando o popular dispositivo UART. Não se trata de um protocolo de comunicação, mas sim do circuito físico usado em microcontroladores ou em circuitos integrados autônomos para transmitir e receber dados seriais. Ele suporta a série de artigos que produzimos para examinar alguns dos diferentes tipos de Protocolos de Comunicação Serial disponíveis.
As comunicações seriais são o mecanismo perfeito para transmitir informações entre dispositivos como microcontroladores, periféricos produtores de dados e outros dispositivos inteligentes. Esperamos que você encontre este recurso inestimável na próxima vez que seu design precisar incorporar um barramento de comunicação serial. O UART é comumente também referido como a Porta Serial em um dispositivo. No entanto, isso pode ser frequentemente confundido com outro tipo de porta serial, que usa o conector estilo DB9 e utiliza o RS-232 como um protocolo de hardware. Não é incomum ter um UART conectado a um transceptor RS-232 para um periférico UART em um microcontrolador e um dispositivo baseado em RS-232 para se comunicarem um com o outro.
UART significa Transmissor Receptor Assíncrono Universal. Este sistema de comunicação requer dois pinos, exceto o terra. Um é rotulado como TX, o transmissor, e o outro como RX, o receptor. A aparição da palavra assíncrono no nome significa que não requer um sinal de relógio. Como não possui um relógio, os dispositivos de transmissão e recepção devem usar a mesma taxa de baud.
A taxa de baud (Bd) é uma unidade de medida da taxa de transmissão. Este parâmetro determina a velocidade de comunicação sobre o canal de dados do transmissor e receptor. A taxa de baud pode ser representada como bits por segundo para simplificar. Assim, uma taxa de 1000 Bd significa que a velocidade de comunicação é de 1000 bits por segundo, ou a duração de um bit é de 1/1000 segundo ou 1 milissegundo. As taxas de baud têm prefixos métricos padrão como kBd (quilobaud), MBd (megabaud) ou GBd (Gigabaud). A taxa de baud inclui partes não relacionadas a dados de uma mensagem, como bits de início e parada, o que significa que a taxa de transmissão de informações úteis enviadas do transmissor para o receptor será um pouco menor.
Algumas das taxas de baud UART pré-definidas mais populares incluem:
Às vezes, a taxa de baud dos dispositivos comunicantes pode ser ajustada, enquanto em outras, um dos dispositivos terá uma taxa de baud fixa, exigindo que o outro se ajuste para corresponder.
Então, para conectar os dois dispositivos usando os UARTs, o pino transmissor TX deve ser conectado ao pino receptor RX:
Ligação UART básica com TX, RX e terra
Você terá pinos RX e TX em ambos os dispositivos em algumas configurações, permitindo que você envie comandos de um microcontrolador para um CI dedicado e receba ordens ou informações de volta na outra direção. Isso é chamado de conexão duplex. Também existem aplicações quando o feedback do segundo dispositivo não é necessário. Portanto, comunicações são necessárias apenas em uma direção; assim, apenas uma linha de transmissão TX para RX é necessária. Isso é chamado de conexão simplex.
O dispositivo transmissor precisará enviar um bit de início para iniciar as comunicações desse dispositivo para o dispositivo receptor. Esse bit informa ao dispositivo receptor que as comunicações começaram.
Dispositivo UART envia um bit de início (iniciando comunicações)
Os bits de dados são então enviados como um fluxo de oito bits, representando os dados reais, onde o bit mais significativo (MSB) é rotulado como D7, e o bit menos significativo (LSB) é rotulado como D0.
O primeiro dispositivo na comunicação UART envia bits de dados após o primeiro bit de início.
E no final desses bits de dados, o transmissor então envia um bit de parada, que indica que este é o fim da mensagem, e coloca o barramento UART em seu modo de espera.
O primeiro dispositivo na comunicação UART envia um bit de parada após os bits de dados.
Podemos ver neste caso; a mensagem UART completa consistirá em 10 bits. No modo de espera, o barramento UART é puxado para alto, ele envia um bit de início que é baixo, e depois disso vêm 8 bits de dados, seguidos pelo bit de parada. O bit de parada não se limita a ser apenas um bit; ele pode vir em várias configurações, dependendo de quão rápida é a taxa de comunicação. Esta configuração significa que o conjunto de bits da mensagem inteira muda constantemente o nível de tensão do sinal do barramento de baixo para alto pelo menos uma vez:
Exemplo de pacote de comunicação serial UART
O bit mais significativo D7 também pode ser usado como um bit de Paridade. Esse bit fornece um mecanismo rudimentar de verificação de erros que aparece nos menores blocos das comunicações. O bit de paridade pode ser usado para garantir que o número total de bits altos ou uns seja ímpar ou par, dependendo da codificação. Para uma verificação de paridade par, se os bits de dados D0 a D6 estiverem definidos, eles consistem em um número par de bits altos, então o bit de paridade é definido como 0 (baixo). Por outro lado, se esse conjunto de bits tiver um número ímpar de bits altos, então o bit de paridade é definido como 1 (alto). Isso garante que o número total de bits altos na mensagem será par. No caso de uma verificação de paridade ímpar, então se os bits de dados D0 a D6 estiverem definidos de tal forma que consistam em um número par de bits altos, o bit de paridade é definido como 1 (alto). Por outro lado, se esse conjunto de bits tiver um número ímpar de bits altos, então o bit de paridade é definido como 0 (baixo). Isso garante que o número total de bits altos na mensagem será ímpar.
Portanto, ao usar o bit de paridade, erros podem ser detectados verificando os bits definidos. Suponha que o número total de bits, incluindo o bit de paridade, definido como alto esteja incorreto. Nesse caso, o bit de paridade permitiu que o receptor detectasse um erro durante a transmissão. No entanto, esse tipo de proteção contra erros não pode corrigir o erro, apenas capturar que um ocorreu, pois não há como determinar qual bit no conjunto total de bits está incorreto. Ele só pode detectar se um bit está no estado errado; quaisquer erros que afetem vários bits podem não ser detectados se a paridade geral acabar sendo correta.
Se o erro de paridade for detectado, então toda a mensagem deve ser descartada e retransmitida do zero. No caso de altos níveis de interferência ou ruído, pode levar um tempo significativo para alcançar uma transmissão bem-sucedida; no entanto, isso ajuda a prevenir erros de mensagem.
Além disso, o lado receptor e transmissor das comunicações UART deve usar exatamente a mesma taxa de baud, comprimento de caractere, mecanismo de paridade e configuração de bit de parada para comunicações bem-sucedidas.
Existe também uma variante da UART, que é chamada de USART. Esta é uma Transmissora Receptora Assíncrona Síncrona Universal. Ela pode atuar tanto como um canal assíncrono (assim como a UART) quanto um canal síncrono quando os dados são sincronizados pelo relógio. O relógio pode ser recuperado dos próprios dados ou enviado como um sinal externo separado.
Ao usar uma USART no seu modo síncrono, não são necessários bits de início e parada. Isso permite que as comunicações usem uma taxa de dados mais alta quando operam de forma síncrona, porque os tempos de bit têm a referência do relógio. Portanto, mais bits podem ser usados para dados em vez de serem usados para os bits de início/parada.
Exemplo de comunicação USART
UART |
USART |
A UART requer apenas um sinal de dados |
O modo síncrono da USART requer tanto dados quanto um relógio. |
Na UART, os dados não precisam ser transmitidos a uma taxa fixa. |
No modo síncrono da USART, os dados são transmitidos a uma taxa fixa. |
Na UART, os dados são normalmente transmitidos um byte de cada vez. |
Na USART, os dados síncronos são tipicamente transmitidos na forma de blocos de dados. |
Na UART, a velocidade de transferência de dados é definida em torno de valores específicos como 4800, 9600, 38400 bps, etc. |
Na USART, o modo síncrono permite uma taxa de transferência de dados (DTR) mais alta do que o modo assíncrono, se todos os outros fatores permanecerem constantes. |
A velocidade da UART é limitada a cerca de 115200 bps. |
A USART pode alcançar taxas superiores a 115 kbps. |
Comunicações full-duplex: os dados podem ser enviados em ambas as direções simultaneamente. |
Comunicações half-duplex: os dados só podem ser enviados em uma direção de cada vez. |
O objetivo principal da UART e da USART é converter os dados paralelos nas linhas de ônibus do PC em dados seriais que podem ser transmitidos usando drivers de linha por um ônibus que esteja em conformidade com um padrão de protocolo de comunicações seriais, como RS-232 ou RS-485. Será necessário um conversor para fazer a interface entre a UART/USART e o ônibus externo. Isso, então, permite que os dados sejam lidos por um dispositivo similar sem que os dois precisem usar exatamente o mesmo formato de dados seriais. Contanto que a transmissão entre os dois seja para um protocolo padrão comum suportado, a implementação das comunicações seriais dentro de cada dispositivo pode ser específica para aquele dispositivo.
Embora o UART tenha sido amplamente superado pelo USB no mercado de computadores, eles ainda são amplamente utilizados para comunicações seriais em dispositivos de baixo custo.
Este artigo examinou algumas das características populares dos dispositivos UART e discutiu algumas de suas vantagens e detalhes de implementação. No próximo artigo, Protocolos de Comunicações Seriais - Parte Três: RS-232, vamos olhar para alguns dos protocolos de comunicação serial disponíveis. Perdeu alguma coisa? Confira a introdução aos Protocolos de Comunicação Serial.
As ferramentas de design em Altium Designer® contêm tudo o que você precisa para acompanhar a nova tecnologia. Fale conosco hoje e descubra como podemos aprimorar seu próximo Design de PCB.