I2C - O Circuito Integrado Inter-Integrado de Autocarros

Tudo sobre I2C Título Imagem

O autocarro I2C é muito comummente utilizado no reino incorporado. Explicamos como funciona e como instalá-lo no Raspberry Pi com um exemplo.

Características de I2C

O Inter-Integrated Circuit Bus é um barramento de comunicação em série síncrono. A Philips Semiconductors foi responsável pela invenção em 1982, mas a interface rapidamente ganhou popularidade.

Características de I2C
Características de I2C

Sinónimos comummente utilizados são I2C, I2C ou IIC. A interface utiliza uma arquitectura Controller-Target e permite que o controlador comunique com até 112 dispositivos com apenas dois fios.

O controlador pode adaptar a taxa de bits para se adaptar às necessidades específicas do alvo. Assim, o I2C é comtapível com muitos dispositivos como Sensores, dispositivos EEPROM, Relógios, Condutores de Motores e mais.

Cablagem

Ligar o autocarro I2C não poderia realmente ser mais fácil, uma vez que só são necessários dois fios. Ligar o pino do relógio de série (SCL) do controlador aos pinos do relógio de série dos alvos e ligar também os seus pinos de dados de série (SDA). O software I2C fará o resto.

Cablagem I2C
Cablagem

Se precisar de fornecer energia ao seu dispositivo I2C pode utilizar os pinos 3V3, 5V e GROUND Pi do seu Raspberry Pi.

Alguns dispositivos como o nosso BME688 Quadro de Discussão ter um cabeçalho I2C para que não necessite de fios para os ligar.

I2C Comunicação

O Inter-Intergrated Circuit Bus pode ligar 128 dispositivos com apenas dois fios. Isto é possível devido ao engenhoso princípio de comunicação.

Os fios (SDA e SCL) nunca são activamente conduzidos em altura. Se um dispositivo quiser enviar uma lógica 1, deixa o fio a flutuar. Para enviar um zero lógico, puxa o fio para a terra.

O controlador inicia a comunicação. Qualquer dispositivo na rede pode actuar como controlador e alvo.

O gráfico abaixo mostra os bits individuais.

I2C Comunicação
I2C Comunicação

Para iniciar a comunicação o controlador envia um Start-bit seguido pelo endereço I2C do alvo e o modo de operação desejado (R - Ler ou W - Escrever).

Na comunicação I2C, o alvo tem de devolver um ACK-bit a cada 8 bits (após cada byte). Uma vez que o espaço de endereços é normalmente de 7 bits, existem 128 (0 a 127) endereços. 16 deles são reservados. Isso deixa 112 possíveis endereços para os dispositivos.

O endereço do alvo e o modo de operação são um byte, pelo que o alvo tem de devolver um ACK-bit. O controlador envia então o endereço de registo (8 bits), que o alvo reconhece novamente. A partir daí, a comunicação de leitura e escrita difere.

Para escrever, o controlador apenas envia os dados em blocos de 8 bits. O alvo reconhece cada bloco. Quando o controlador termina a escrita, envia o Stop-bit.

Para a leitura, o controlador envia novamente o Start-bit, seguido do endereço de destino. O alvo reconhece e começa a enviar os dados em blocos de 8 bits. Desta vez, o controlador tem de reconhecer cada byte. Para parar a leitura, o controlador envia o NACK-bit e finalmente o Stop-bit.

Vantagens, Desvantagens e Aplicações

Vantagens

As vantagens do I2C Bus são bastante claras. Pode ligar 128 dispositivos com apenas dois fios e dois pinos cada um. Isto é realmente poderoso. Além disso, tem velocidades flexíveis. A configuração do hardware dificilmente poderia ser mais fácil. Ao contrário da SPI, o controlador sabe se o alvo recebeu os dados correctamente.

Vantagens
Vantagens

Desvantagens

O Inter-Integrate Circuit Bus requer mais espaço e potência porque utiliza resistências de tracção. É mais lento em comparação com o SPI. Pode ter problemas se dois dispositivos usarem o mesmo endereço I2C. O endereço armazenado directamente no dispositivo. Alguns dispositivos permitem-lhe escolher entre dois endereços possíveis, soldando um jumper a um local específico no dispositivo.

Desvantagens
Desvantagens

Aplicações

Se procurar por Sensor na nossa Loja notará que quase todos os sensores que não são analógicos utilizam a Interface I2C. É muito comum no espaço embutido. Há coisas como a memória I2C. Muitas vezes, os micro-controladores utilizam o autocarro para a comunicação. Além disso, muitos DACs (Digital Analog Converter) e ADCs (Analog Digital Converter) são compatíveis com a interface.

I2C sobre o Raspberry Pi

O nosso vídeo mostra como instalar o Inter-Integrated Circuit bus no seu Raspberry Pi.

6 comentários

  1. [...] Além disso, se estiver interessado em saber mais sobre I2C, consulte este artigo. [...]

  2. [...] Quer saber mais sobre I2C? Veja o nosso artigo sobre o assunto aqui. [...]

  3. [...] I2C - o barramento de circuitos integrados [...]

  4. [...] I2C - O barramento de circuitos integrados [...]

  5. [...] Como explica Naveen, a ligação entre o Nano e o ecrã TFT baseia-se na Interface Periférica Série (SPI). Entretanto, o joystick e os botões são ligados através do barramento de circuitos integrados (I2C). [...]

Deixe um comentário