Protocolo de comunicação Arduino

Protocolo de comunicação Arduino
Protocolos de comunicação é o conjunto de regras que permite que os dispositivos comuniquem e trocam dados. Esses protocolos são muito significativos na comunicação Arduino, pois o Arduino envia e recebe dados constantemente. O uso desses protocolos ajuda o Arduino a cobrir a detecção de erros e possíveis métodos de recuperação de erros. Esses protocolos reúnem dispositivos analógicos e digitais e possibilitam projetar vários projetos.

Protocolos de comunicação Arduino

Usando protocolos de comunicação, podemos enviar e receber os dados de qualquer sensor em Arduino.

Alguns sensores simples como o Infravery (IR) podem se comunicar diretamente com o Arduino, mas alguns dos sensores complexos, como módulo Wi-Fi, Módulo de cartão SD e giroscópio, não podem se comunicar diretamente com o Arduino sem nenhum protocolo de comunicação. Então, é por isso que esses protocolos são parte integrante da comunicação Arduino.

Arduino tem vários periféricos ligados a ele; Entre eles, existem três periféricos de comunicação usados ​​nas placas Arduino.

  • Uart
  • Spi
  • I2c

Protocolos de comunicação Arduino

A comunicação entre diferentes dispositivos eletrônicos, como o Arduino, é padronizada entre esses três protocolos; Ele permite que os designers se comuniquem entre diferentes dispositivos facilmente sem problemas de compatibilidade. O trabalho desses três protocolos é o mesmo que servem ao mesmo objetivo de comunicação, mas diferem na implementação dentro de um circuito. Descrição adicional desses protocolos é discutida abaixo.

Uart

Uart é conhecido como o Transmissor de receptor assíncrono universal. O UART é um protocolo de comunicação serial que significa que os bits de dados são transferidos na forma seqüencial um após o outro. Para configurar a comunicação UART, precisamos de duas linhas. Um é o pino TX (D1) da placa Arduino e o segundo é o pino RX (D0) da placa Arduino. O pino TX é para transmitir dados para dispositivos e o pino RX é usado para receber dados. Diferentes placas de Arduino têm vários pinos UART.

Pin Digital Arduino Pino uart
D1 Tx
D0 Rx

Para estabelecer a comunicação serial usando a porta UART, precisamos conectar dois dispositivos abaixo da configuração mostrada:

No Arduino Uno, uma porta serial é dedicada à comunicação que é comumente referida como porta USB. Como o nome sugere o barramento serial universal, é uma porta serial. Usar o USB Port Arduino pode estabelecer comunicação com computadores. A porta USB está conectada aos pinos de bordo TX e RX de Arduino. Usando esses pinos, podemos conectar qualquer hardware externo que não seja o computador através do USB. Arduino IDE fornece biblioteca softwareserial (Softwareserial.h) que permite que os usuários usem pinos GPIO como pinos em série TX e RX.

  • Uart é simples de operar com arduino
  • Uart não precisa de nenhum sinal de relógio
  • A taxa de transmissão deve ser definida dentro de 10% limite de dispositivos de comunicação para evitar a perda de dados
  • Vários dispositivos com Arduino na configuração de escravos principais não são possíveis com o UART
  • UART é meio duplex, o que significa que os dispositivos não podem transmitir e receber dados ao mesmo tempo
  • Apenas dois dispositivos por vez podem se comunicar com o protocolo UART

Interface periférica em série (SPI)

Spi é um acrônimo de interface periférica em série que é projetada especialmente para microcontroladores para se comunicar com eles. O SPI opera no modo Full-Duplex, o que significa que o SPI pode enviar e receber dados simultaneamente. Quando comparado com UART e I2C, é o periférico de comunicação mais rápido nas placas Arduino. É comumente usado onde a alta taxa de dados é necessária, como no LCD Display e Micro SD Card Applications.

Os pinos digitais SPI no Arduino são predefinidos. Para a configuração do Arduino Uno SPI Pin, é o seguinte:

Linha spi Gpio PIN do cabeçalho do ICSP
Sck 13 3
MISSÔ 12 1
Mosi 11 4
Ss 10 -
  • Mosi significa Mestre escravo em, Mosi é linha de transmissão de dados para mestre para escravo.
  • SCK é um Linha do relógio que define a velocidade de transmissão e as características finais iniciais.
  • SS significa Selecionar escravo; A linha SS permite que o mestre selecione um determinado dispositivo de escravo ao operar em múltiplas escombros de escravos.
  • Miso significa Mestre em escravo; O miso é escravo de dominar a linha de transmissão para dados.

Um dos principais destaques do protocolo SPI é a configuração mestre-escravos. O uso do dispositivo SPI One pode ser definido como mestre para controlar vários dispositivos escravos. Master está no controle total de dispositivos escravos através do protocolo SPI.

O SPI é um protocolo síncrono, o que significa que a comunicação está ligada ao sinal de relógio comum entre mestre e escravo. O SPI pode controlar vários dispositivos como escravo em uma única linha de transmissão e recebimento. Todos os escravos estão conectados ao mestre usando comum MISSÔ receber linha junto com Mosi uma linha de transmissão comum. Sck é também a linha de relógio comum entre dispositivos mestre e escravo. A única diferença nos dispositivos escravos é que cada dispositivo escravo é controlado por meio de separados Ss Selecione a linha. Isso significa que cada escravo precisa de um pino de gpio extra da placa Arduino, que atuará como linha selecionada para esse dispositivo escravo em particular.

Alguns dos principais destaques do protocolo SPI estão listados abaixo:

  • SPI é um protocolo mais rápido que I2C e UART
  • Nenhuma partida e parada necessárias como no UART, o que significa que a transmissão contínua de dados é possível
  • O escravo pode ser facilmente abordado devido à simples configuração de escravos mestre
  • Para cada escravo, um alfinete extra é ocupado na placa Arduino. Praticamente 1 mestre pode controlar 4 dispositivos escravos
  • Falta o reconhecimento de dados como usado no UART
  • Configuração mestre múltipla não é possível

I2C Protocolo de comunicação

Circuito inter -integrado (I2C) é outro protocolo de comunicação usado pelas placas Arduino. I2C é o protocolo mais difícil e complicado de implementar com o Arduino e outros dispositivos. Apesar de sua complicação, oferece vários recursos que estão ausentes em outros protocolos, como múltiplas mestre e múltiplas configurações de escravos. I2C permite conectar até 128 dispositivos à placa Arduino principal. Isso só é possível porque o I2C compartilhe um único fio entre todos os dispositivos escravos. I2C em Arduino usa um sistema de endereço, ou seja, antes de enviar dados para o dispositivo escravo Arduino deve primeiro selecionar o dispositivo escravo enviando endereço exclusivo. I2C usa apenas dois fios reduzindo a contagem geral de pinos Arduino, mas o lado ruim é I2C é mais lento que o protocolo SPI.

Pino analógico de Arduino I2C PIN
A4 SDA
A5 SCL

No nível de hardware, I2C é limitado a apenas dois fios, um para uma linha de dados conhecida como SDA (dados seriais) e segundo para a linha do relógio SCL (relógio em série). No estado inativo, tanto o SDA quanto o SCL são retirados. Quando os dados precisam ser transmitidos, essas linhas são puxadas baixas usando circuitos MOSFET. Usando I2C em projetos, é obrigatório usar resistores de puxar normalmente um valor de 4.7kohm. Esses resistores de tração garantem que as linhas SDA e SCL permaneçam altas em seu início ocioso.

Alguns dos principais destaques dos protocolos I2C são:

  • O número de pinos necessários é muito baixo
  • Vários dispositivos de escravos mestre podem ser conectados
  • Usa apenas 2 fios
  • A velocidade é mais lenta em comparação com o SPI devido a resistores de retirada
  • Os resistores precisam de mais espaço no circuito
  • Complexidade do aumento do projeto com o aumento do número de dispositivos

Comparação entre UART vs I2C vs SPI

Protocolo Uart Spi I2c
Velocidade Mais lento O mais rápido Mais rápido que o UART
Número de dispositivos Até 2 4 dispositivos Até 128 dispositivos
Fios necessários 2 (TX, RX) 4 (SCK, Mosi, Miso, SS) 2 (SDA, SCL)
Modo duplex Modo duplex completo Modo duplex completo Meio duplex
Número de escravas mestres possíveis Escravo de mestre único Escravos Mestre-Multiple Mestre Múltiplos escravos do Masters-Multiple
Complexidade Simples Pode controlar facilmente vários dispositivos Complexo com aumento de dispositivos
Bit de reconhecimento Não Não Sim

Conclusão

Neste artigo, cobrimos uma comparação abrangente de todos os três protocolos UART, SPI e I2C usados ​​em Arduino. Saber todos os protocolos é importante, pois oferece inúmeras oportunidades para integrar vários dispositivos. Compreender todos os periféricos de comunicação economizará tempo e ajudará a otimizar projetos de acordo com o protocolo correto.