Padrão/ProtocoloI2C

Idealização
 
žO protocolo de comunicação entre circuitos integrados(Inter-Integrated Circuit, I2C) foi originalmente desenvolvido pela Philips em meados de 1996. žAtualmente este protocolo está amplamente difundido e interconecta uma ampla gama de dispositivos eletrônicos. žDentre estes encontramos vários dispositivos de controle inteligente, normalmente microcontroladores e microprocessadores assim como outros circuitos de uso geral, como drivers LCD, portas de I/O, memórias RAM e EEPROM ou conversores de dados.

 

Definições

žTransmitter (Transmissor): dispositivo que envia dados através do barramento;

žReceive (Receptor): dispositivo que recebe dados através do barramento;

Master: dispositivo que inicia a comunicação, gera o sinal de clock e encerra a comunicação;

žMulti-master: vários dispositivos podem controlar o barramento, mesmo sem comprometer a mensagem. Quando isto ocorre temos vários dispositivos operando em modo master;

žArbitrariness (Arbitrariedade) : procedimento para o controle do barramento em modo multi-master. Visa não corromper a transmissão dos dados e perder a sincronia do clock, figura 1;

Sincronização: procedimento para sincronizar o clock de um ou mais dispositivos.

Fig. 1

 Características Gerais do Barramento I2C

Suporta qualquer tecnologia de produção;

žDuas vias de comunicação: serial data (SDA) e serial clock (SCL), ambas bidirecionais, conectadas ao positivo da fonte de alimentação através de um resistor de pull-up. Enquanto o barramento está livre ambas as linhas ficam em nível lógico alto;

žA taxa de transferência máxima é de 100kbit/s no modo padrão (standart), ou 400kbit/s no modo rápido (fastmode);

žTodo dispositivo possui um endereço único no barramento, independente de sua natureza;

žQualquer dispositivo conectado pode operar com transmissor ou receptor;

žQualquer dispositivo endereçado é chamado de escravo (slave);

žO número de interfaces conectadas fica dependente da capacitância máxima do barramento, que é de 400pF.

Comunicação

žNíveis lógicos:
Como o protocolo de comunicação i2c aceita uma ampla gama de métodos de fabricação para os seus dispositivos (CMOS,NMOS,Bipolar,etc.), os níveis lógicos alto e baixo não possuem valores pré-estabelecidos, dependendo diretamente da tensão Vcc de alimentação.
žO dado na linha SDA precisa ser estável durante o período ALTO do clock. A mudança entre os níveis lógicos alto e baixo só podem ser feitas enquanto o sinal de clock estiver BAIXO, figura 2.
Fig. 2
Validação dos dados:
žDurante todo o processo apenas dois sinais são caracterizados como condições de START e STOP. O procedimento de comunicação do protocolo I2C é extremamente simples, figura 3. Basicamente temos 6 itens para análise:
1. O dispositivo master ajusta a condição inicial;
2. O dispositivo master envia 7 bits de endereçamento;
3. O dispositivo master envia o 8° bit, RW/;
4. O dispositivo slave envia o sinal de ACK (Acknowledge);

5. O dispositivo master (ou slave) envia pacotes de 8 bits de dados, sempre seguidos de um sinal ACK enviado pelo dispositivo slave (ou master) confirmando a recepção, figura 4;

6. O dispositivo master encerra a comunicação.

Fig. 3

Fig. 4

Vantagens

Organização funcional em blocos, providenciando um simples diagrama esquemático final;

žNão há necessidade dos projetistas desenvolverem interfaces;

žTodos os dispositivos integram as interfaces "on-chip", o que aumenta a agilidade no desenvolvimento;

žEndereçamento e protocolo de transferência de dados totalmente definido via software;

žPossibilidade de inclusão ou exclusão de dispositivos no barramento sem afeta-lo ou outros dispositivos conectados a este;

žDiagnóstico de falhas extremamente simples. O mal funcionamento é imediatamente detectado;

žDesenvolvimento simplificado do software através do uso de bibliotecas e módulos de software.