Você está na página 1de 28

PROTOCOLOS DE

COMUNICAÇÃO
Disciplina: Sistemas Embarcados
Aula 3
Prof.: Luís Felipe Vieira Silva
felipemmha@gmail.com
Protocolos de Comunicação
• SPI, I2C e UART;
• São protocolos mais lentos que USB, Ethernet, Bluetooth e WiFi, porém utilizam
menos hardware;
• São usados para comunicação entre Microcontroladores com outros
Microcontroladores ou sensores.
TIPOS DE
COMUNICAÇÃO DE
DADOS
Comunicação Paralela
• Todos os bits são transmitidos simultaneamente em diferentes barramentos de
comunicação;
• Usada para comunicação de curta distância;
• Para transferir n bits, é usado n barramentos;
• Mais custoso;
• Mais rápido que a transmissão serial;
Comunicação serial
• Os bits são transmitidos um a um;
• Requer apenas uma linha de comunicação;
• Todos os bits são transmitidos na mesma linha de forma serial;
• Menos custoso;
• É usado para transmissão de longa distância.
Comunicação Serial: Métodos de
Comunicação

• Assíncrono: Transfere apenas um byte por vez, não necessita de sinal de clock.
• Exemplo: UART;

• Síncrono: Transfere um bloco de dados por vez, necessita do sinal de clock.


• Exemplo: SPI (Serial peripheral interface), I2C (inter integrated circuit).
Duplex, Simplex, Half Duplex e Full
Duplex
• Duplex: Se, em um protocolo de comunicação, os dados conseguem ser
transmitidos e recebidos, a transmissão é duplex;

Transmissor/Receptor Receptor/Transmissor

Transmissor/Receptor Receptor/Transmissor
Duplex, Simplex, Half Duplex e Full
Duplex
• Simplex: Se os dados são transmitidos em apenas uma direção, a transmissão é
simplex. Exemplo: Um TX -> um RX.

Transmissor Receptor
Duplex, Simplex, Half Duplex e Full
Duplex
• Half duplex: Se os dados são transmitidos em duas direções, mas apenas uma de
cada vez.

Transmissor/Receptor Receptor/Transmissor

2
Duplex, Simplex, Half Duplex e Full
Duplex
• Full duplex: Se os dados são transmitidos em duas direções ao mesmo tempo.

Transmissor/Receptor Receptor/Transmissor
Protocolo
• Protocolo é um conjunto de regras a serem seguidas pelo receptor e pelo
transmissor que informam:
• Como os dados devem ser empacotados;
• Quantos bits constituem uma palavra;
• Quando o dado começa e quando ele termina.
Protocolos
Protocolo Serial Síncrono/ Tipos Duplex Transferência de
Assíncrono dados (kbps)
UART Assíncrono Peer-to-peer Full-Duplex 20
I2C Síncrono Multi-master Half-Duplex 3400
SPI Síncrono Multi-master Full-Duplex > 1000
MICROWIRE Síncrono Master/slave Full-Duplex > 625
1-WIRE Assíncrono Master/slave Half-Duplex 16
Taxa de transmissão (Baud rate)
• Na comunicação serial a taxa de transmissão de dados é medida em bits por
segundo.
UART
Universal Asyncronous Receiver Transmitter
UART
• Dois dispositivos UART comunicam-se diretamente um com o outro;
• Apenas duas vias são necessárias para a transmissão de dados;
• O fluxo de dados vai do pino TX do transmissor para o pino RX do receptor;
UART
• Os dados são transmitidos de forma assíncrona, sem clock;
• É adicionado bits de início e fim na transmissão do pacote de dados;
• Quando receptor, o UART detecta o bit de início e começa a ler os próximos bits a
uma determinada taxa de transmissão.

Linhas usadas 2
Taxa máxima >115200, normalmente 9600 kbps
Tipo de transmissão Assíncrona
Tipo de comunicação Serial
Nº máximo de Masters 1
Nº máximo de Slaves 1
UART
UART
• O dado é transferido para o barramento UART de forma paralela;
• O pacote é criado com um bit de início, bit de paridade e bit de fim;
• O receptor lê bit a bit através do pino RX e transmite o dado para o barramento de
forma paraelela;
UART
Pacote
• Bit de início: Alto quando não está sendo transmitido, Baixo ao iniciar a
transmissão, o receptor irá identificar a mudança de Alto para Baixo.
• Dataframe: O dado que está sendo transferido;
• Bit de paridade: Checa se a sequência de bits está correta. Conta o número de bits
com valor 1 informa se o total é ímpar (1) ou par (0). Exemplo: Caso o receptor
detecte um número ímpar de bits 1 e o bit de paridade é 0, o erro é detectado.
Pacote
• Bit de parada: Marca o final do pacote.
Enviando 01001101 via UART
Enviando 01001101 via UART
Enviando 01001101 via UART
Vantagens UART
• Apenas dois conectores para transmissão (RX e TX);
• Não é necessário sinal de clock;
• Possui bit de paridade para checar erros;
• Bem documentado.
Desvantagens UART
• O tamanho do dado é limitado em 9 bits;
• Não suporta múltiplos Masters e Slaves;
• A baud rate de cada UART só pode diferir entre 10% para cada.
Projeto de Avaliação 1 - UART
• Requisitos
• Implementação da comunicação serial entre dois Arduinos*;
• O Arduino 1 deve enviar dados para o Arduino 2;
• A comunicação precisa ser visível.

* Pode ser utilizado outro microcontrolador no lugar do Arduino, ex: ESP32, RASP, FPGA,
etc.
OBRIGADO!
Dúvidas?

Você também pode gostar