I2C - O Circuito Integrado Inter-Integrado de Autocarros

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.

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.

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.

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.

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.

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.
[...] Além disso, se estiver interessado em saber mais sobre I2C, consulte este artigo. [...]
[...] Quer saber mais sobre I2C? Veja o nosso artigo sobre o assunto aqui. [...]
[...] I2C - O barramento de circuitos integrados [...]
[...] I2C - o barramento de circuitos integrados [...]
[...] I2C - O barramento de circuitos integrados [...]
[...] 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). [...]