Noções básicas do protocolo de comunicação I2C

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Até agora, falamos sobre o básico da comunicação SPI e UART, agora vamos ao protocolo final desta série, o Circuito Inter-Integrado, ou I2C.

Noções básicas do protocolo de comunicação I2C 1

Você provavelmente estará usando o I2C se criar projetos que usem displays OLED, sensores de pressão barométricos ou módulos de giroscópio / acelerômetro.

Introdução à Comunicação I2C

O I2C combina os melhores recursos de SPI e UARTs. Com o I2C, você pode conectar vários escravos a um único mestre (como SPI) e ter vários mestres controlando escravos únicos ou múltiplos. Isso é realmente útil quando você deseja ter mais de um microcontrolador registrando dados em um único cartão de memória ou exibindo texto em um único LCD.

Como a comunicação UART, o I2C usa apenas dois fios para transmitir dados entre dispositivos:

Introdução ao I2C - Single Master Single Slave

SDA (Dados Seriais) – A linha para o mestre e o escravo enviar e receber dados.

SCL (Relógio Serial) – A linha que transmite o sinal do relógio.

O I2C é um protocolo de comunicação serial; portanto, os dados são transferidos pouco a pouco ao longo de um único fio (a linha SDA).

Como o SPI, o I2C é síncrono, portanto a saída de bits é sincronizada com a amostragem de bits por um sinal de relógio compartilhado entre o mestre e o escravo. O sinal do relógio é sempre controlado pelo mestre.

Noções básicas do protocolo de comunicação I2C - tabela de especificações

Como o I2C funciona

Com o I2C, os dados são transferidos em mensagens. As mensagens são divididas em quadros De dados. Cada mensagem possui um quadro de endereços que contém o endereço binário do escravo e um ou mais quadros de dados que contêm os dados que estão sendo transmitidos. A mensagem também inclui condições de início e parada, bits de leitura / gravação e bits ACK / NACK entre cada quadro de dados:

Introdução ao I2C - Mensagem, Quadro e Bit

Condição inicial: A linha SDA muda de um nível de alta tensão para um nível de baixa tensão antes a linha SCL muda de alto para baixo.

Leia Também  Especialização - O segredo do sucesso para sites e blogs

Parar Condição: A linha SDA muda de um nível de baixa tensão para um nível de alta tensão depois de a linha SCL muda de baixa para alta.

Quadro de Endereço: Uma sequência de 7 ou 10 bits exclusiva para cada escravo que identifica o escravo quando o mestre deseja conversar com ele.

Bit de leitura / gravação: Um único bit especificando se o mestre está enviando dados para o escravo (nível de baixa tensão) ou solicitando dados dele (nível de alta tensão).

Bit ACK / NACK: Cada quadro em uma mensagem é seguido por um bit de reconhecimento / não reconhecimento. Se um quadro de endereço ou quadro de dados foi recebido com êxito, um bit ACK é retornado ao remetente pelo dispositivo receptor.

Endereçamento

O I2C não possui linhas de seleção de escravos como SPI, portanto, ele precisa de outra maneira de informar ao escravo que os dados estão sendo enviados a ele, e não outro escravo. Faz isso endereçamento. O quadro de endereço é sempre o primeiro quadro após o bit inicial em uma nova mensagem.

O mestre envia o endereço do escravo com o qual deseja se comunicar para cada escravo conectado a ele. Cada escravo compara o endereço enviado do mestre ao seu próprio endereço. Se o endereço corresponder, ele envia um bit ACK de baixa tensão de volta ao mestre. Se o endereço não corresponder, o escravo não fará nada e a linha SDA permanecerá alta.

Bit de leitura / gravação

O quadro de endereço inclui um único bit no final que informa ao escravo se o mestre deseja gravar dados ou receber dados dele. Se o mestre quiser enviar dados para o escravo, o bit de leitura / gravação é um nível de baixa tensão. Se o mestre está solicitando dados ao escravo, o bit é um nível de alta tensão.

O quadro de dados

Depois que o mestre detecta o bit ACK do escravo, o primeiro quadro de dados está pronto para ser enviado.

O quadro de dados tem sempre 8 bits e é enviado primeiro com o bit mais significativo. Cada quadro de dados é imediatamente seguido por um bit ACK / NACK para verificar se o quadro foi recebido com sucesso. O bit ACK deve ser recebido pelo mestre ou pelo escravo (dependendo de quem está enviando os dados) antes que o próximo quadro de dados possa ser enviado.

Leia Também  Primeiros passos para um trabalho freelance em casa

Após o envio de todos os quadros de dados, o mestre pode enviar uma condição de parada ao escravo para interromper a transmissão. A condição de parada é uma transição de tensão de baixa para alta na linha SDA após uma transição baixa para alta na linha SCL, com a linha SCL permanecendo alta.

Etapas da transmissão de dados I2C

1. O mestre envia a condição de partida para todo escravo conectado, alternando a linha SDA de um nível de alta tensão para um nível de baixa tensão antes alternando a linha SCL de alta para baixa:

Introdução ao I2C - Diagrama de transmissão de dados CONDIÇÃO DE INÍCIO

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

2. O mestre envia a cada escravo o endereço de 7 ou 10 bits do escravo com o qual deseja se comunicar, juntamente com o bit de leitura / gravação:

Introdução ao I2C - Diagrama de transmissão de dados QUADRO DE ENDEREÇOS

3. Cada escravo compara o endereço enviado do mestre ao seu próprio endereço. Se o endereço corresponder, o escravo retornará um bit ACK puxando a linha SDA para baixo por um bit. Se o endereço do mestre não corresponder ao endereço do escravo, o escravo deixa a linha SDA alta.

Introdução ao I2C - Diagrama de transmissão de dados ACK Bit Slave to Master

4. O mestre envia ou recebe o quadro de dados:

Introdução ao I2C - Quadro de dados do diagrama de transmissão de dados

5. Após a transferência de cada quadro de dados, o dispositivo receptor retorna outro bit ACK ao remetente para confirmar o recebimento bem-sucedido do quadro:

Introdução ao I2C - Diagrama de transmissão de dados ACK Bit Slave to Master

6. Para interromper a transmissão de dados, o mestre envia uma condição de parada ao escravo, alternando SCL alto antes de alternar SDA alto:

Introdução ao I2C - Condição de parada do diagrama de transmissão de dados

Mestre Único com Vários Escravos

Como o I2C usa endereçamento, vários escravos podem ser controlados a partir de um único mestre. Com um endereço de 7 bits, 128 (27) endereço exclusivo estão disponíveis. O uso de endereços de 10 bits é incomum, mas fornece 1.024 (210) endereços exclusivos. Para conectar vários escravos a um único mestre, conecte-os assim, com resistores pull-up de 4,7K Ohm que conectam as linhas SDA e SCL ao Vcc:

Leia Também  Fatores a serem avaliados ao procurar terceirização de software

Introdução ao I2C - Single Master Multiple Slaves

Múltiplos Mestres com Múltiplos Escravos

Vários mestres podem ser conectados a um único escravo ou vários escravos. O problema com vários mestres no mesmo sistema ocorre quando dois mestres tentam enviar ou receber dados ao mesmo tempo pela linha SDA. Para resolver esse problema, cada mestre precisa detectar se a linha SDA está baixa ou alta antes de transmitir uma mensagem. Se a linha SDA estiver baixa, isso significa que outro mestre tem controle do barramento, e o mestre deve esperar para enviar a mensagem. Se a linha SDA estiver alta, é seguro transmitir a mensagem. Para conectar vários mestres a vários escravos, use o diagrama a seguir, com resistores pull-up de 4.7K Ohm que conectam as linhas SDA e SCL ao Vcc:

Introdução ao I2C - Multiple Masters Multiple Slaves 2

Vantagens e desvantagens do I2C

Há muito no I2C que pode parecer complicado em comparação com outros protocolos, mas há alguns bons motivos pelos quais você pode ou não querer usar o I2C para se conectar a um dispositivo específico:

Vantagens

  • Usa apenas dois fios
  • Suporta múltiplos mestres e múltiplos escravos
  • O bit ACK / NACK confirma que cada quadro foi transferido com sucesso
  • O hardware é menos complicado do que com os UARTs
  • Protocolo bem conhecido e amplamente utilizado

Desvantagens

  • Taxa de transferência de dados mais lenta que a SPI
  • O tamanho do quadro de dados é limitado a 8 bits
  • É necessário implementar hardware mais complicado que o SPI

Obrigado pela leitura! Espero que você tenha aprendido algo com esta série de artigos sobre protocolos de comunicação eletrônica. Caso você ainda não os tenha lido, a parte um cobre o protocolo de comunicação SPI e a parte dois abrange a comunicação orientada a UART.

Se você tiver alguma dúvida ou algo a acrescentar, fique à vontade para deixar um comentário abaixo. E não se esqueça de se inscrever para receber mais artigos como esse em sua caixa de entrada!

Posts que podem interessar:
https://responsibleradio.com/iti-um-guia-completo-de-admissao-exame-resultados-emprego-e-mais/

https://draincleaningdenverco.com/como-atingir-minhas-metas-dicas-para-realiza-las/

https://weeventos.com.br/1-e-0-para-true-e-false-convertem-para-js-2/

https://clipstudio.com.br/dentro-da-mente-de-tuan-vy/

https://multieletropecas.com.br/como-tomar-a-propolis/

https://holidayservice-tn.com/saiba-como-melhorar-o-seu-escritorio-em-casa/

https://teleingressos.com.br/10-passos-para-uma-otimizacao-de-motor-de-busca-bem-sucedida/

https://proverasfestas.com.br/como-encontrar-oportunidades-de-blog-blog-e-peritos-para-o-seu-roundup/

https://coniferinc.com/como-a-internet-mudou-a-industria-de-varejo/

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br