Seja periféricos de computador, aparelhos inteligentes, dispositivos da Internet das Coisas (IoT) ou eletrônicos ferramentas de medição, todos eles usam protocolos de comunicação serial para conectar diferentes componentes eletrônicos juntos.
Esses componentes geralmente consistem em um microcontrolador e módulos escravos, como um sensor de impressão digital, um ESP8266 (módulo Wi-Fi), servos e monitores seriais.
Esses dispositivos usam diferentes tipos de protocolos de comunicação. A seguir, você aprenderá sobre alguns dos protocolos de comunicação serial mais populares, como eles funcionam, suas vantagens e por que permanecem em uso.
O que é comunicação serial?
Os protocolos de comunicação serial existem desde a invenção do Código Morse em 1838. Hoje, os protocolos de comunicação serial modernos usam os mesmos princípios. Os sinais são gerados e transmitidos em um único fio, colocando repetidamente em curto dois condutores. Este curta atua como um interruptor; ele liga (alto) e desliga (baixo), fornecendo sinais binários. A forma como este sinal é transmitido e recebido dependerá do tipo de protocolo de comunicação serial usado.
Com a invenção do transistor e as inovações que se seguiram, engenheiros e consertadores tornaram as unidades de processamento e a memória menores, mais rápidas e mais eficientes em termos de energia. Essas mudanças exigiam que os protocolos de comunicação de barramento fossem tão avançados tecnologicamente quanto os componentes sendo conectados. Assim, a invenção de protocolos seriais, como UART, I2C e SPI. Embora esses protocolos seriais tenham várias décadas, eles ainda são preferidos para microcontroladores e programação bare-metal.
UART (receptor-transmissor assíncrono universal)
O protocolo UART é um dos protocolos de comunicação serial mais antigos, porém mais confiáveis, que ainda usamos hoje. Este protocolo usa dois fios conhecidos como Tx (transmitir) e Rx (receber) para que ambos os componentes se comuniquem.
Para transmitir dados, tanto o transmissor quanto o receptor devem concordar com cinco configurações comuns, que são:
- Velocidade Baud: A velocidade de transmissão de quão rápido os dados devem ser transmitidos.
- Comprimento dos dados: O número acordado de bits que o receptor salvará em seus registros.
- Bit inicial: Um sinal baixo que permite ao receptor saber quando os dados estão prestes a ser transferidos.
- Bit de parada: Um sinal alto que permite ao receptor saber quando o último bit (bit mais significativo) foi enviado.
- Bit de paridade: Um sinal alto ou baixo usado para verificar se os dados enviados estão corretos ou corrompidos.
Como o UART é um protocolo assíncrono, ele não tem seu próprio relógio que regula a velocidade de transmissão de dados. Como alternativa, ele utiliza a taxa de transmissão para cronometrar quando um bit está sendo transmitido. A taxa de transmissão usual usada para UART é 9600 baud, o que significa uma taxa de transmissão de 9600 bits por segundo.
Se fizermos as contas e dividirmos um bit por 9600 baud, podemos calcular a rapidez com que um bit de dados é transmitido ao receptor.
1/9600 =104 microssegundos
Isso significa que nossos dispositivos UART começarão a contar 104 microssegundos para saber quando o próximo bit será transmitido.
Quando os dispositivos UART são conectados, o sinal padrão é sempre elevado. Ao detectar um sinal de baixa frequência, o receptor começará a contar 104 microssegundos mais outros 52 microssegundos antes de começar a salvar os bits em seus registros (memória).
Como já foi acordado que oito bits seriam o comprimento dos dados, uma vez que salvou oito bits de dados, ele começará a verificar a paridade para verificar se os dados são pares ou ímpares. Após a verificação de paridade, o bit de parada emitirá um sinal alto para notificar os dispositivos de que todos os oito bits de dados foram transmitidos com sucesso para o receptor.
Sendo o protocolo serial mais minimalista que utiliza apenas dois fios, o UART é comumente usado hoje em dia em cartões inteligentes, cartões SIM e automóveis.
Relacionado: O que é um cartão SIM? Coisas que você precisa saber
SPI (Interface Periférica Serial)
SPI é outro protocolo serial popular usado para taxas de dados mais rápidas de cerca de 20 Mbps. Ele usa um total de quatro fios, a saber, SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) e SS / CS (Chip Select). Ao contrário do UART, o SPI usa um formato mestre para escravo para controlar vários dispositivos escravos com apenas um mestre.
MISO e MOSI agem como o Tx e Rx do UART sendo usado para transmitir e receber dados. Chip Select é usado para selecionar com qual escravo o mestre deseja se comunicar.
Como o SPI é um protocolo síncrono, ele usa um relógio interno do mestre para garantir que os dispositivos mestre e escravo estejam funcionando na mesma frequência. Isso significa que os dois dispositivos não precisam mais negociar uma taxa de transmissão.
O protocolo começa com o mestre selecionando o dispositivo escravo, reduzindo seu sinal para o SS / CK específico conectado ao dispositivo escravo. Quando o escravo recebe um sinal baixo, ele começa a escutar tanto o SCK quanto o MOSI. O mestre então envia um bit inicial antes de enviar os bits que contêm dados.
Tanto o MOSI quanto o MISO são full-duplex, o que significa que podem transmitir e receber dados ao mesmo tempo.
Com sua capacidade de se conectar a vários escravos, comunicação full-duplex e menor consumo de energia do que outros protocolos síncronos como I2C, SPI são usados em dispositivos de memória, cartões de memória digital, conversores ADC para DAC e cristal monitores de memória.
I2C (Circuito Inter-integrado)
I2C é mais um protocolo serial síncrono como o SPI, mas com várias vantagens sobre ele. Isso inclui a capacidade de ter vários mestres e escravos, endereçamento simples (sem necessidade de Chip Selecione), operando com várias tensões e usando apenas dois fios conectados a dois pull-up resistores.
I2C é frequentemente usado em muitos dispositivos IoT, equipamentos industriais e eletrônicos de consumo.
Os dois pinos em um protocolo I2C são o SDA (Serial Data Line), que transmite e recebe dados, e o pino SCL (Serial Clock Line), que funciona como um relógio.
- O protocolo começa com o mestre enviando um bit inicial (baixo) de seu pino SDA, seguido por um endereço de sete bits que seleciona o escravo e um bit para selecionar leitura ou gravação.
- Depois de receber o bit de início e o endereço, o escravo envia um bit de reconhecimento ao mestre e começa a escutar o SCL e o SDA para as transmissões de entrada.
- Assim que o mestre recebe isso, ele sabe que a conexão foi feita com o escravo correto. O mestre agora selecionará qual registro específico (memória) do escravo ele deseja acessar. Ele faz isso enviando outros oito bits especificando qual registro deve ser usado.
- Ao receber o endereço, o escravo agora prepara o registrador de seleção antes de enviar outro reconhecimento ao mestre.
- Tendo selecionado qual escravo específico e qual de seus registros usar, o mestre finalmente envia o bit de dados para o escravo.
- Depois que os dados são enviados, um bit de reconhecimento final é enviado ao mestre antes que o mestre termine com um bit de parada (alto).
Relacionado: Os melhores projetos de IoT do Arduino
Por que as comunicações seriais vieram para ficar
Com o surgimento de muitos protocolos paralelos e sem fio, as comunicações seriais nunca perderam a popularidade. Geralmente usando apenas dois a quatro fios para transmitir e receber dados, os protocolos seriais são um modo essencial de comunicação para eletrônicos que têm apenas algumas portas sobressalentes.
Outra razão é a sua simplicidade, que se traduz em confiabilidade. Com apenas alguns fios enviando dados uma vez por vez, o serial provou sua confiabilidade para enviar os pacotes completos de dados sem qualquer perda ou corrupção durante a transmissão. Mesmo em altas frequências e comunicação de longo alcance, os protocolos seriais ainda superam muitos protocolos de comunicação paralela modernos disponíveis hoje.
Embora muitos possam pensar que as comunicações seriais como UART, SPI e I2C têm a desvantagem de serem antigos e desatualizados, o fato é que eles provaram sua confiabilidade em vários décadas. Os protocolos sendo tão antigos, sem qualquer substituição real, apenas sugere que eles são, de fato, indispensáveis e continuarão a ser usados na eletrônica no futuro previsível.
Ficou confuso entre SBCs como o Raspberry Pi e microcontroladores como o Arduino e o Raspberry Pi Pico? Aqui está o que você precisa saber.
Leia a seguir
- Tecnologia Explicada
- Uso de dados
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Clique aqui para se inscrever