

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Barramento e Protocolo de comunicação I²C
Tipologia: Manuais, Projetos, Pesquisas
Compartilhado em 23/09/2019
1 / 3
Esta página não é visível na pré-visualização
Não perca as partes importantes!


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 barramento I2C é composto de dois fios, SDA e SCL , e alimentação (VDD), típicamente de 3.3V ou 5V. Os fios de comunicação possuem pull-ups, como pode ser visto na figura abaixo:
O número de “nós” em um único barramento é limitado tanto pelo tamanho do endereço, que pode ser de 7 bits, 10 bits e até 16 bits; como por restrição de espaço, já que não se pode ultrapassar poucos metros de fios, pois a capacitância total máxima, algo em torno de 400pf, impede o funcionamento correto do barramento.
O protocolo I2C tem dois tipos de dispositivos: Master e Slave. Onde o Master (mestre em inglês), é a unidade de controle responsável por coordenar todos os periféricos (Slaves, escravos em inglês). A linha SCL é responsável pelo clock do barramento, e a linha SDA pela transmissão de dados.
Como se pode perceber, no estado neutro do barramento I2C são mantidos o valor digital alto em ambas as linhas de comunicação, para se iniciar a comunicação, SDA é trazido para o valor digital baixo pelo mestre. Para escrever dados no barramento, SCL pulsa, e a cada pulso, o valor em SDA é lido como um bit, começando do MSB.
Logo após SDA ser trazida pra baixo, o mestre escreve o endereço do dispositivo que ele deseja se comunicar, por exemplo 0xC0, caso o dispositivo exista, ele responderá como um ACK, um pulso na linha SCL. Então começa a transferência de dados, o mestre escreve o endereço do registrador no escravo que ele deseja ler ou escrever (R/W) e opera então, em sequencia, podendo ler/escrever um ou mais registrador.