UART - O Receptor-Transmissor Assíncrono Universal

UART é uma interface serial duplex completa. Permite que dois dispositivos comuniquem através de apenas três fios e suporta velocidades variáveis.
Características UART
Como o nome sugere, UART é uma interface assíncrona. Ao contrário da SPI ou I2C, não há necessidade de um relógio dedicado. Os dois dispositivos apenas precisam de utilizar a mesma velocidade de transmissão. A velocidade de transmissão é variável e dita quantos bits o autocarro pode enviar por segundo (bits/s).

O formato dos dados também é configurável. Assim, outra forma de medir a velocidade de transmissão é o baud rate (bauds/s), em que um baud é um símbolo ou carácter. Assim, se um baud consiste em 8 bits, isso significa que uma taxa de bits de 115200 bits/s é igual a 14400 bauds/s.
A UART utiliza dois fios de dados, pelo que na maioria dos casos a comunicação é full duplex (ambas as direcções ao mesmo tempo). Além disso, ambos os dispositivos UART precisam de um fio para partilhar a tensão de referência GROUND. Em suma, isso significa que só são necessários três fios.
Cablagem
Um dispositivo UART precisa de três pinos para comunicar. RX para leitura, TX para a transmissão e GND para referência GROUND.

Ligar os pinos RX de ambos os dispositivos aos pinos TX do outro dispositivo. Ligue ambos os pinos GND e o seu feito com a configuração do hardware.
Em teoria, até se poderia ligar os pinos RX de vários dispositivos no pino TX de um dispositivo. Dessa forma, se souber o que está a fazer, pode deixar que um dispositivo transmita os dados para vários dispositivos. Mas o RX de qualquer dispositivo só pode ser ligado a um pino TX de cada vez.
Comunicação UART
É necessário definir ambos os dispositivos com o mesmo baudrate. Se diferirem mais de 3%, os dados serão corrompidos. Os baudrates comuns são 4800, 9600, 19200 e 115200, entre outros. Além disso, ambos os dispositivos precisam de concordar com o mesmo formato de dados e bit de paridade. O bit de paridade é um meio de verificar os dados transmitidos em busca de erros.

Sempre que um dispositivo quer transmitir dados, começa por enviar o bit de início.
O estado de inactividade do fio de dados é ALTO, pelo que o transmissor puxa-o para BAIXO durante um ciclo de relógio. Depois puxa o fio BAIXO para um 0 e ALTO para um 1 na frequência exacta do baudrate. Após cada moldura de dados, envia um bit de paridade se for desejada uma verificação de erro. Em seguida, define o fio ALTO para sinalizar o bit de paragem.
Vantagens, Desvantagens e Aplicações
Vantagens
A vantagem mais marcante é a simplicidade da UART. Tanto o software como o hardware são extremamente fáceis de configurar. A velocidade variável significa que se pode manter um consumo de energia muito baixo. E, claro, a interface permite uma comunicação duplex completa.
Além disso, os dados podem percorrer longos percursos até 1000 metros.

Desvantagens
A interface é basicamente limitada a dois dispositivos. Também não há relógio para controlar e alterar a velocidade de transmissão durante a transmissão. Na maioria dos casos é mais lento do que, por exemplo, o SPI ou I2C.

Aplicações UART
A UART é muito capaz de enviar quantidades menores de dados. É utilizado por muitos receptores de GPS, módulos Bluetooth, sistemas de comunicação sem fios ou aplicações baseadas em RFID.
Também pode utilizar a interface para ligar o seu Raspberry Pi ao seu Raspberry Pi Pico, como mostramos neste vídeo.
Também tem um bom desempenho em aplicações de longo alcance onde SPI e I2C não são uma opção.
[UART - O Recetor-Transmissor Assíncrono Universal [...]
[UART - O Recetor-Transmissor Assíncrono Universal [...]