Protocolos de Comunicação
IoT

Por que aprender ?

ESP8266

SCP1000

I²C Display

Um pouco sobre Serial e Paralelo

Paralelo

Serial

Serial (UART)
 

  • UART - Universal Asynchronous Receiver Transmitter 
  • Protocolo de comunicação muito utilizado (principalmente em microcontroladores)
  • Vamos da o foco no Asynchronous Serial Transmission
  • Utiliza dois fios, RX - Receptor e TX - Transmissor

Asynchronous Serial Transmission
 

  • Forma de comunicação utilizada pelo hardware UART
  • Não utiliza clock, porém, há um custo, overhead (start bit, parity bit, stop bit). 
  • Ambos os lados precisam concordar com a velocidade (Baud Rate, bits per second), i.e: 9600, 115200 etc

Frame Data

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/reference/serial

SPI (Serial Peripheral Interface)

  • Diferente do UART, sua solução é "synchronous", isto é, depende de um sinal (i.e: "clock") para realizar a sicronização.
  • Multiplos escravos, único mestre
  • Fácil implementação (utiliza um registrador de deslocamento).

SPI (Serial Peripheral Interface)

  • MISO : Master In Slave Output
    MOSI : Master Ouput Slave In
    SS : Slave Select
    SCK(CLK) : Serial Clock
  • Full-duplex
  • Transmissão circular 
  • 8 a 16 bits de data (suporte varia por plataforma)

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/reference/SPI

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/reference/SPI

I²C
 

  • Desenvolvida em 1982 pela Philips
  • Apenas dois fios, clock (SCL) e Data (SDA)
  • Multiplos Mestres e Multiplos Escravos
  • Velocidade varia entre UART e SPI

I²C
 

  • Velocidade:
    ​100 kHZ
    400 kHZ
    1 MHZ
    3.4 MHZ
    5 MHZ
  • A comunicação é feita em duas partes, "Address Frame" que indica o "dispositivo" na rede.
  • Um bit indicando se é pra leitura ou escrita.

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/Reference/Wire

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/Reference/Wire

Exemplo

  • Exemplo utilizando IDE do Arduino
  • Abstração para o usuário (facilitando o uso)
  • Plataforma Utilizada : ATmega328p (Arduino UNO)

https://www.arduino.cc/en/Reference/Wire

Fontes

Apresentação IoT

By St4rk

Apresentação IoT

  • 137