Introdução ao Protocolo de Comunicação UART no Arduino UNO

O Arduino é a plataforma de programável mais popular na área de edução e prototipagem e sua comunicação é através do protocolo UART

Arduino UNO utiliza protocolo UART para comunicação
Arduino UNO utiliza protocolo UART para comunicação

A comunicação utilizada pelo Arduino é o protocolo UART, sigla de Universal Asynchrounous Receiver / Transmitter e em tradução livre é Transmissão e Recepção Universal Assíncrona.

A fundamentação deste protocolo é concretizado através dos pinos RX0 e TX1 do Arduino, que aqui será usado o modelo UNO e pode ser diferente de outros modelos. Esses pinos ficam privados para este padrão de comunicação.

Se houver pretensão de trocar dados entre dois Arduínos UNO, por exemplo, será feita de forma cruzada, ou seja, o Arduíno UNO A terá o pino RX0 conectado no pino TX1 do Arduíno UNO B e o pino RX0 da placa B será ligado com o pino TX1 da placa A. Pense como uma ligação cruzada.

Assim sendo, se a conexão ocorrer entre o Arduino UNO e uma porta USB de um computador ou notebook, o pino TX do Arduino é conectado na RX da porta USB e o mesmo com o pino RX com a TX da porta USB, conforme salientado por Stevan Junior (2019).

No entanto, não é assim de forma direta, pois há um circuito integrado que faz a condução entre o circuito integrado principal do Arduino com uma porta USB de um dispositivo qualquer. Isso será explicado mais à frente.

Mas, o termo serial, geralmente, aparecerá junto com o protocolo UART porque os dados são transmitidos um a um, bit por bit. Serial traduzido do inglês significa série e essa tradução facilita o entendimento da forma como os dados são enviados de forma sequencial. Isso é o envio em série, como se fosse uma linha de produção em que um produto hipotético como fogão é produzido em sequência.

Antes de prosseguir, é preciso entender o que é um dado. O dado é qualquer conceito, algo discreto e sem entendimento significativo, se visto isoladamente. Imagine um cruzamento de rua que tem uma placa pintada na cor vermelha. O que pode significar? É uma incógnita. No entanto, se combinar a palavra “Pare”, motoristas ou pedestres que ali transitarem entenderão que precisarão parar e aguardar antes de atravessar a rua.

Essa combinação da cor vermelha e da palavra é uma informação, pois os dois elementos combinados dão um entendimento claro do que significam. A comunicação serial é o envio de dado por dado que, combinados, geram uma informação. E como é esse dado? Através do sinal TTL (Transistor- Transistor Logic Level), Nível Lógico Transitor-Transitor. O transistor é um semicondutor que atua tanto na eletrônica analógica quanto digital (Scsikabel, 2018).

É necessário conhecer um pouco do transistor para facilitar o entendimento. Aqui, é abordado rapidamente no sentido digital e o transistor tem a capacidade de chavear, ou seja, ligar e desligar quantas vezes forem possíveis. Esse liga e desliga, em termos simples, e esse liga e desliga é o que caracteriza os dados sendo transmitidos.

Desta forma, os dados são na verdade pulsos elétricos e não elétricos enviados através de um condutor. No Arduino Uno, esses dados são de 5V e 0V, respectivamente. O nível de tensão pode ser alterado.

Você já deve ter ouvido falar de um bit, certo? Bit é de binary digit que é a menor informação possível no meio digital. Para entender melhor basta pensar no bit como a célula de um corpo-humano, neste caso, é a menor parte de uma pessoa. E esse bit é o dado explicado acima.

Binário são dois. Dois o que? O nível de tensão 5V e 0V. Mas ao lidar na eletrônica, não é possível sempre dizer sinal enviado de 5V ou 0V, então, o recomendado é utilizar 1 para os 5V e 0 para 0V. E para resumir ainda mais, o termo técnico usado é nível lógico alto para o 1 e nível lógico baixo para o 0.

No envio dos dados através do Arduino sabe-se que não são sincronizados. Talvez, possa levar mais tempo para explicar o sincronismo, mas de forma resumida, os bits, ou níveis lógicos, não são enviados todos de uma vez e em pacotes.

Se eles não são síncronos, logo, eles são assíncronos. O sincronismo é obtido com o clock, mas há outra forma de se obter através de um “clock simulado” com a sincronização através da própria mensagem, mas isso não é um recurso presente no protocolo UART. Logo, a única forma de não ter dados perdidos é utilizar a fixação da velocidade que os dados serão enviados (Mundo Projetado, 2018).

É por isso que existe o método serial.begin(9600); o qual define que serão enviados 9.600 bits por segundo, ou seja, muitos 0 e 1. Por padrão, o Arduino deixa programado com 9600 bits por segundo e seu programa funcionará mesmo que não inclua a função no código (Embarcados, 2014).

De todo modo, lembra que foi falado acima sobre o 0 e 1? O próprio software em níveis bastante baixos, ou seja, em linguagem de máquina (0 e 1) tem "apontamentos" do início e fim da comunicação.

No Arduino, os pinos RX0 e TX1 são reservados nos pinos 0 e 1 e estão conectados no circuito integrado ATMEGA16U2 que está posicionado na parte superior esquerda do Arduino UNO ao lado da porta USB. Este circuito é responsável pela tradução da comunicação USB com o computador.

O ATMEG16U2 tem funcionalidades próprias e precisaria de um conteúdo próprio para entender bem a sua ligação com o protocolo UART. De qualquer forma, este trabalho é apenas uma introdução e precisa de mais abordagens para continuar o conteúdo.

Referências Bibliográficas

Embarcados, 2014. Disponível: <https://embarcados.com.br/arduino-comunicacao-
serial/>. Acesso em: 26 abril de 2023. Fábio Souza. Arduino – Comunicação Serial.

Mundo Projetado, 2018. Disponível em:
<https://mundoprojetado.com.br/comunicacao-serial-assincrona/>. Acesso em: 26
abril 2023. Fábio Guimarães. Comunicação serial assíncrona.

Scsikabel, 2018. Disponível em: <https://pt.scsikabel.com/info/difference-of-uart-
serial-and-rs232-serial-30257471.html>. Acesso em: 26 abril de 2023. Sem autor.

Diferença de serial UART e serial RS232.
Stevan Junior, S. L. Domótica: automação residencial e casas inteligentes com
Arduino e esp8266. São Paulo: Erica, 2019.


Trabalho originalmente apresentado na Disciplina de Internet das Coisas do Curso Técnico de Desenvolvimento de Sistemas.

Este é um blog da Info Usado que divulga informações e conhecimento técnico. A Info Usado comercializa peças usadas para informática.

 

Márcio Baldo

Comentários

Mais lidos:

LISTA de TODOS os CÓDIGOS e BIPES de ERROS das principais marcas de PLACAS-MÃE de PC

Como saber se placa de vídeo é compatível com a placa-mãe?

Como ativar o slot PCI Express x16 (placa de vídeo) da placa-mãe de PC?