• Artigos
  • Games
  • Hardware
  • Internet
  • Segurança
  • Tecnologia
TopGadget
TopGadget
Home Dicas e Artigos Eletrônica Visão geral e benefícios do protocolo e barramento I2C
Eletrônica

Visão geral e benefícios do protocolo e barramento I2C

Por Kayobrussy Guedes24 de abril de 2020Atualizado:12 de julho de 2021Nenhum comentário12 minutos de leitura
Facebook Twitter Pinterest Email Telegram WhatsApp
I2C
Facebook Twitter LinkedIn Pinterest Telegram WhatsApp
Publicidade

Tendo sido desenvolvido pela Philips nos anos 80, o I2C se tornou um dos protocolos de comunicação serial mais comuns em eletrônicos. 

O I2C permite a comunicação entre componentes eletrônicos ou IC para IC, estejam os componentes na mesma placa de circuito impresso ou conectados via cabo. 

O principal recurso do I2C é a capacidade de ter um grande número de componentes em um único barramento de comunicação com apenas dois fios, o que torna o I2C perfeito para aplicativos que exigem simplicidade e baixo custo com velocidade.

Publicidade

Vários concorrentes, como a Siemens AG, NEC Corporation, Texas Instruments, STMicroelectronics, Motorola e Intersil apresentaram produtos compatíveis desde a metade dos anos 90.

O System Management Bus foi definido pela Intel Corporation, é um subsistema da I²C que define os protocolos mais estritamente. Um propósito do SMBus é promover um melhor comportamento a erros.

Sistemas modernos I²C incorporaram politicas e regras do SMBus, algumas vezes suportando ambos I²C e SMBus, o que requer uma pequena reconfiguração.

O protocolo I2C descreve o funcionamento de um barramento de comunicação serial que utiliza apenas dois fios, inventado pela Philips no início da década de 90, este protocolo é muito utilizado para conectar periféricos de baixa velocidade a placas-mãe, microcontroladores e afins.

Tanto a unidade de controle quanto os periféricos devem possuir implementação e suporte I2C, seja via hardware no próprio SoC ou utilizando CI’s externos como o SC16IS750, ou até
mesmo via software, através de um método chamado bit-bang, onde o funcionamento do
protocolo é emulado bit a bit.

O protocolo I2C

I2C é um protocolo de comunicação serial que requer apenas duas linhas de sinal. Foi projetado para comunicação entre chips em uma PCB. 

O I2C foi originalmente projetado para comunicação de 100kbps, mas modos de transmissão de dados mais rápidos foram desenvolvidos ao longo dos anos para atingir velocidades de até 3,4Mbit. 

O protocolo I2C foi estabelecido como um padrão oficial, que fornece boa compatibilidade entre implementações I2C e boa compatibilidade com versões anteriores.

Esse protocolo de comunicação serial é um dos mais práticos, simples e de baixo custo
disponíveis no mercado, empresas competidoras da Philips vêm desenvolvendo outros
barramentos TWI (two-wired interface, interface de dois fios, em inglês), para competir com o I2C, que continua sendo o mais utilizado do ramo.

Para projetos microcontrolados de pequeno porte e baixo custo, I2C se torna uma mão na roda, visto que possibilita uma modularidade de dispositivos, o que não só reflete em menor custo, pois sistemas uma vez complexos, podem ser contruídos através de sistemas mais simples, mas também ajuda na manutenabilidade, uma vez que cada dispositivo pode ser protegido separadamente

Sinais I2C

O protocolo I2C usa apenas duas linhas de sinal bidirecionais para se comunicar com todos os dispositivos no barramento I2C. Os dois sinais usados ​​são:

  • Linha de dados serial (SDL)
  • Relógio de dados serial (SDC)

O motivo pelo qual ele pode usar apenas dois sinais para se comunicar com vários periféricos é como a comunicação ao longo do barramento é tratada. 

Cada comunicação I2C começa com um endereço de 7 bits (ou 10 bits) que chama o endereço do periférico que o restante da comunicação deve receber. Isso permite que vários dispositivos no barramento I2C desempenhem o papel do dispositivo mestre conforme as necessidades do sistema. 

Para evitar colisões de comunicação, o protocolo I2C inclui recursos de arbitragem e detecção de colisão que permitem uma comunicação suave ao longo do barramento.

Benefícios do barramento

Como protocolo de comunicação, ele tem muitas vantagens, o que é uma boa escolha para muitos aplicativos de design incorporado. O I2C traz as seguintes vantagens:

  • I2C requer apenas duas linhas de sinal
  • Taxas flexíveis de transmissão de dados
  • Cada dispositivo no barramento é endereçável independentemente
  • Os dispositivos têm um relacionamento simples Mestre / Escravo
  • O I2C é capaz de lidar com várias comunicações principais, fornecendo detecção de arbitragem e colisão de comunicação
  • Comunicação a distância maior que a SPI

Limitações do i2C

A atribuição de endereços escravos é uma fraqueza de I 2 C. Sete bits é muito pouco para evitar colisões de endereços entre os muitos milhares de dispositivos disponíveis.

O que alivia a questão das colisões de endereços entre diferentes fornecedores e também permite a conexão com vários dispositivos idênticos é que os fabricantes dedicam pinos que podem ser usados ​​para definir o endereço escravo para uma das poucas opções de endereço por dispositivo.

Dois ou três pinos são típicos e, com muitos dispositivos, há três ou mais opções de fiação por pino de endereço.

Os endereços I2C de 10 bits ainda não são amplamente usados ​​e muitos sistemas operacionais host não os suportam. Nem o complexo esquema SMBus “ARP” para atribuir endereços dinamicamente (exceto para placas PCI com presença de SMBus, para as quais é necessário).

A configuração automática do barramento é um problema relacionado. Um determinado endereço pode ser usado por vários dispositivos incompatíveis com protocolos diferentes em vários sistemas, e quase nenhum tipo de dispositivo pode ser detectado em tempo de execução.

Por exemplo, 0x51pode ser usado por uma EEPROM 24LC02 ou 24C32, com endereçamento incompatível; ou por um PCF8563 RTC, que não pode ser distinguido de maneira confiável (sem alterar o estado do dispositivo, o que pode não ser permitido).

Os únicos mecanismos de configuração confiáveis ​​disponíveis para hosts envolvem mecanismos fora de banda, como tabelas fornecidas pelo firmware do sistema, que listam os dispositivos disponíveis. Novamente, esse problema pode ser parcialmente resolvido pelo ARP em sistemas SMBus, especialmente quando identificadores de fornecedor e produto são usados; mas isso realmente não pegou. O rev. A versão 03 da especificação I 2 C adiciona um mecanismo de ID de dispositivo.

I2C suporta uma faixa limitada de velocidades. Os hosts que suportam as velocidades de vários megabits são raros. O suporte para a velocidade Fm + 1 Mbit / s é mais difundido, já que seus eletrônicos são variantes simples do que é usado em velocidades mais baixas. Muitos dispositivos não suportam a velocidade de 400 kbit / s (em parte porque o SMBus ainda não a suporta).

Os nós I2C implementados em software (em vez de hardware dedicado) podem nem mesmo suportar a velocidade de 100 kbit / s; portanto, todo o intervalo definido na especificação raramente é utilizável.

Todos os dispositivos devem, pelo menos parcialmente, oferecer suporte à velocidade mais alta usada ou eles podem detectar de forma espúria o endereço do dispositivo.

Os dispositivos podem esticar os ciclos do clock para atender às suas necessidades específicas, o que pode reduzir a largura de banda necessária para dispositivos mais rápidos e aumentar as latências ao falar com outros endereços de dispositivo.

A capacitância do barramento também limita a velocidade de transferência, especialmente quando as fontes de corrente não são usadas para diminuir os tempos de subida do sinal.

Como I2C é um barramento compartilhado, existe a possibilidade de qualquer dispositivo ter uma falha e travar todo o barramento. Por exemplo, se algum dispositivo mantém a linha SDA ou SCL baixa, impede o mestre de enviar comandos START ou STOP para reiniciar o barramento.

Assim, é comum que os projetos incluam um sinal de reinicialização que fornece um método externo de reinicialização dos dispositivos de barramento.

No entanto, muitos dispositivos não têm um pino de reinicialização dedicado, forçando o projetista a colocar um circuito para permitir que os dispositivos sejam desligados e desligados se precisarem ser reinicializados.

Por causa desses limites (gerenciamento de endereço, configuração de barramento, falhas potenciais, velocidade), poucos segmentos de barramento I2C têm até uma dúzia de dispositivos.

É comum que os sistemas tenham vários desses segmentos. Um pode ser dedicado para uso com dispositivos de alta velocidade, para gerenciamento de energia de baixa latência.

Outro pode ser usado para controlar alguns dispositivos onde a latência e a taxa de transferência não são problemas importantes; ainda outro segmento pode ser usado apenas para ler chips EEPROM que descrevem placas de expansão (como o padrão SPD usado com dispositivos DRAM).

 As limitações mais importantes do I2C incluem:

  • Como apenas 7 bits (ou 10 bits) estão disponíveis para endereçamento de dispositivos, os dispositivos no mesmo barramento podem compartilhar o mesmo endereço. Alguns dispositivos são capazes de configurar os últimos bits do endereço, mas isso ainda impõe uma limitação de dispositivos no mesmo barramento.
  • Apenas algumas velocidades de comunicação limitadas estão disponíveis e muitos dispositivos não suportam a transmissão em velocidades mais altas. É necessário suporte parcial para cada velocidade no barramento para impedir que dispositivos mais lentos captem transmissões parciais que resultarão em falhas operacionais.
  • A natureza compartilhada do barramento I2C pode resultar na suspensão de todo o barramento quando um único dispositivo no barramento parar de operar. O ciclo de energia para o barramento pode ser usado para reiniciar o barramento e restaurar a operação adequada.
  • Como os dispositivos podem definir sua velocidade de comunicação, dispositivos operacionais mais lentos podem atrasar a operação de dispositivos de velocidade mais rápida.
  • O I2C consome mais energia do que outros barramentos de comunicação serial devido à topologia de dreno aberto das linhas de comunicação.
  • As limitações do barramento normalmente limitam o número de dispositivos em um barramento para cerca de uma dúzia de dispositivos.

Formulários

O barramento é uma ótima opção para aplicativos que exigem baixo custo e implementação simples, em vez de alta velocidade. 

Por exemplo, ler certos ICs de memória, acessar DACs e ADCs, ler sensores, transmitir e controlar ações direcionadas pelo usuário, ler sensores de hardware e comunicar-se com vários micro controladores são usos comuns do protocolo de comunicação I2C.

Aplicações i2C

I2C é apropriado para periféricos onde a simplicidade e o baixo custo de fabricação são mais importantes do que a velocidade. As aplicações comuns do barramento I 2 C são:

  • Descrever dispositivos conectáveis ​​por meio de pequenas tabelas de configuração de ROM para permitir a operação plug and play , como em Serial Presence Detect (SPD) EEPROMs em módulos de memória em linha dupla (DIMMs) e Extended Display Identification Data (EDID) para monitores via VGA, DVI e conectores HDMI .
  • Gerenciamento de sistema para sistemas de PC via SMBus; Os pinos SMBus são alocados em conectores PCI convencionais e PCI Express .
  • Acessando relógios em tempo real e chips NVRAM que mantêm as configurações do usuário.
  • Acessando DACs e ADCs de baixa velocidade.
  • Alterar as configurações de contraste, matiz e equilíbrio de cores em monitores (via Display Data Channel ).
  • Alterar o volume do som em alto-falantes inteligentes.
  • Controle de displays pequenos (por exemplo, telefones convencionais ) OLED ou LCD .
  • Leitura de monitores de hardware e sensores de diagnóstico, por exemplo, a velocidade de um ventilador.
  • Ligar e desligar a fonte de alimentação dos componentes do sistema. [3]
  • Um ponto forte particular do I2C é a capacidade de um micro controlador de controlar uma rede de chips de dispositivo com apenas dois pinos de E / S de uso geral e software. Muitas outras tecnologias de barramento usadas em aplicativos semelhantes, como o barramento de interface periférica serial (SPI), exigem mais pinos e sinais para conectar vários dispositivos.

Revisões do I2C

AnoVersãoNotas
1981PatentePatente US 4.689.740 depositada em 2 de novembro de 1981 pela US Philips Corporation.
1982OriginalO sistema I 2 C de 100 kbit / s foi criado como um sistema de barramento interno simples para a construção de componentes eletrônicos de controle com vários chips Philips.
19921Adicionado modo rápido de 400 kbit / s (Fm) e um modo de endereçamento de 10 bits para aumentar a capacidade para 1008 nós. Esta foi a primeira versão padronizada.
19982Adicionado o modo de alta velocidade (Hs) de 3,4 Mbit / s com requisitos de economia de energia para tensão e corrente elétrica.
20002,1Esclarecida a versão 2, sem alterações funcionais significativas.
20073Adicionado 1 Mbit / s Fast-mode plus (Fm +) (usando drivers de 20 mA) e um mecanismo de ID de dispositivo.
20124Adicionado 5 Mbit / s Fast-modo Ultra (UPM) para novo USDA (dados) e linhas USCL (relógio) usando push-pull lógica sem resistores pull-up ,
e acrescentou uma tabela fabricante ID atribuído. É apenas um barramento unidirecional .
20125Erros corrigidos.
20146Dois gráficos corrigidos. Este é o padrão atual.

Tecnologias derivados [ editar ]

I2C é a base para o ACCESS.bus, a interface VESA Display Data Channel (DDC), o System Management Bus (SMBus), o Power Management Bus (PMBus) e o Intelligent Platform Management Bus (IPMB, um dos protocolos da IPMI ). Essas variantes têm diferenças nas faixas de tensão e frequência de clock e podem ter linhas de interrupção .

Os sistemas de alta disponibilidade (AdvancedTCA, MicroTCA) usam I2C redundante de vias para gerenciamento de prateleira. A capacidade I2C multimestre é um requisito nesses sistemas.

TWI (Two-Wire Interface) ou TWSI (Two-Wire Serial Interface) é essencialmente o mesmo barramento implementado em vários processadores system-on-chip da Atmel e de outros fornecedores. Os fornecedores usam o nome TWI, embora I2C não seja uma marca registrada em 07-11-2014. 

A proteção da marca registrada existe apenas para o respectivo logotipo (veja o canto superior direito), e as patentes sobre i2C expiraram. De acordo com a Microchip Technology, TWI e I2C têm algumas diferenças. Um deles é que o TWI não suporta o byte START. 

Em alguns casos, o uso do termo “interface de dois fios” indica implementação incompleta da especificação I2C. Não suportar arbitragem ou alongamento do relógio é uma limitação comum, que ainda é útil para um único mestre se comunicar com escravos simples que nunca aumentam o tempo.

O padrão de interface do sensor MIPI I3C (I3C) é um desenvolvimento do I2C, em desenvolvimento desde 2017. 

Saiba mais sobre isso em nosso setor de dicas especializada.

Perguntas Frequentes

O que é I2C?

O I2C é um barramento bem antigo, criado em 1982 pela Philips Semicondutor, com mais de 35 anos de vida! É um barramento simples, com apenas duas linhas de comunicação: clock (SCL) e dado (SDA)

Pra quê serve o barramento I2C?

Com o objetivo de facilitar a comunicação entre os circuitos em controles industriais, equipamentos de consumo e muitos outros tipos de aplicativos, a Philips lançou em 1992 um novo tipo de barramento que permitiu o uso de dois fios para a troca de informações de forma eficiente.

barramento i2c comunicação i2c i2c i2c o que é i2c protocolo protocolo 12c protocolo de comunicação i2c protocolo i2c protocolos i2c
Compartilhe. Facebook Twitter Pinterest LinkedIn Tumblr Email

Artigos Relacionados

Atualizado:13 de janeiro de 2022

Como exibir uma barra de ferramentas do Excel 2003

13 de janeiro de 2022
Atualizado:3 de abril de 2021

Você sabe o que significa LED e quais os seus usos?

3 de abril de 2021
Atualizado:15 de fevereiro de 2021

Lista de equipamentos essenciais a um lab de eletrônica

15 de fevereiro de 2021
Adicionar um comentário

Deixar uma resposta Cancelar Resposta

  • Home
  • Privacidade
  • Termos de Uso
  • Cookies
©2019 - 2022 A menos que aja alguma outra indicação, todos os direitos são reservados.

Type above and press Enter to search. Press Esc to cancel.