Sistemas MicrocontroladosProtocolo de Comunicação I2C
Protocolo I2C
• Características Básicas:– Trata-se de um barramento a dois fios
– Projetado pela Philips para permitir a comunicação com um pequeno número de dispositivos (Por exemplo, memória EEPROM)
– Velocidades:
• 100 kbps
• 400 kbps
• 3.4Mbps
– Modo de transferência: serial, 8 bits, bidirecional
– Mestre/Escravo com possibilidade de muitos mestres
– Mestre: Transmissor ou Receptor
– Endereçamento: 7 ou 10 bits
– Número de dispositivos: Limite de 400pF
Sinais
• Duas linhas– SCL: Linha de clock– SDA: Linha de dados
• Dados válidos quando SCL = 1– Dados podem mudar quando SCL = 0
Objetivos
• Barramento livre: SDA = SCL =1
FRAME (Enquadramento)
• Para iniciar a transmissão de dados, os mesmos são enquadrados. Existe uma condição que sinaliza o início do enquadramento e uma condição que sinaliza o fim dos dados.
FRAME• Estado do barramento
– Busy (Ocupado): Após um START, antes do próximo STOP.
– Free (Livre): Após um STOP e antes do próximo START
– Após um START pode ocorrer outro START. Ou seja, para cada START não precisa necessariamente de um STOP.
Mestres e Escravos
• Dispositivo Mestre– Controla o SCL– Inicia e finaliza as transferências– Controla o endereçamento de outros dispositivos
• Dispositivo Escravo– Dispositivo endereçado pelo Mestre– Responde às requisições do Mestre
Mestres e Escravos (Cont)
• Transmissor/Receptor– Mestre ou Escravo: Ambos podem transmitir e
receber.– TX do mestre envia dados para RX do escravo– RX do mestre solicita dados do TX do escravo
• Transmissão do primeiro Byte– O mestre é o transmisssor. O escravo é o receptor.
• Outros Bytes– Podem ser transmitidos pelo mestre ou pelo escravo
(depende da operação: leitura ou escrita)
Transferência de Dados
• Dados são transferidos após a condição de START.
• A transmissão é orientada por Bytes.
• 1 Byte = 8 bits + bit de reconhecimento (ACK)
• Na transmissão o bit MSB é enviado primeiro
• O endereço do escravo é um dado. Portanto, este endereço é enviado pelo barramento através da linha SDA.
Transferência de Dados
• Mestre faz SCL = 0 e gera pulsos para cada bit de dado.
• 8 pulsos de dados são seguidos por um pulso de ACK
Transferência de Dados - SDA
• Observe bem: Quando o mestre transmite o endereço do escravo pelo barramento, todos os dispositivos I2C vão “escutar”, mas apenas o dispositivo endereçado vai responder com o pulso de ACK e vai proceder de acordo com o que o mestre solicita. Se o mestre disse que iria gravar (escrever) um dado, o escravo espera por este dado. Caso o mestre esteja querendo ler o escravo. O escravo vai assumir o controle do sinal SCL e vai transmitir o dado bit a bit.
Transferência de Dados - SDA
• Após a transmissão dos bits de dados, o TX libera a linha SDA, o receptor segura a linha SDA em nível baixo para indicar que reconheceu os dados que foram transmitidos. Depois do reconhecimento, o escravo libera a linha SDA para que o mestre possa finalizar a transmissão.
Endereçamento usando 7 bits
• Primeiro Byte transmitido pelo mestre:– 7 bits de endereço– 1 bit de direção (leitura ou escrita).
• 0… mestre escreve os dados: TX
• 1… mestre recebe dados: RX
• A transferência finaliza com condição STOP
Mestre Transmite
• Veja abaixo como os dados são postos no barramento na condição em que o mestre escreve dados no escravo.
Mestre Recebe Dados
• Veja abaixo como os dados são postos no barramento na condição em que o mestre recebe dados do escravo.
EEPROM AT24C1024B
AT24C1024B• Características desta EEPROM:
– Operação em 1,8V-3,6V ou 2,5V-5,5V– Arquitetura 131.072 x 8– Interface serial a 2 fios– Entradas filtradas e com Schimitt Trigger– Protocolo de transferência de dados bidirecional– Clock de 400 kHz (1,8V) ou 1MHz (2,5V)– Proteção contra gravação por soft/hard– Modo de escrita por página de 256 Bytes– Modos de leitura sequencial e aleatória– Ciclo de escrita de 5ms
AT24C1024B
• Características (continuação)– 1.000.000 de ciclos de escrita por página– Retenção de 40 anos
• Possibilidade de ter até 4 dispositivos pendurados em um mesmo barramento.
AT24C1024B• Encapsulamentos disponíveis:
AT24C1024B
• Sinais– SCL: Em borda de subida os dados são gravados na
memória. Em borda de descida, os dados são colocados no barramento SDA.
– SDA: Pino bidirecional para transferência de dados. É um pino Dreno aberto. É possível conectar a vários outros pinos (ligação wired-OR).
– A1/A2: Pinos de endereço do dispositivo.Se não for usar, recomenda-se conectar ao GND.
– WP: Se conectado a Vcc impede a gravação de dados.
AT24C1024B
• Endereçamento– Este dispositivo requer 8 bits de endereço mais uma
condição de START para poder ler ou escrever no dispositivo. O endereço consiste de uma sequência de 1010 seguido pelo endereço A1A2 (00, 01, 10 ou 11). O sétimo bit é o bit de paginação e o oitavo bit corresponde à direção (leitura ou escrita).
AT24C1024B
AT24C1024B
AT24C1024B