Você está na página 1de 11

I2C

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

Concepo e terminologia

Barramento formado por dois sinais srie bidireccionais: Dados (SDA); Relgio (SCL) Cada dispositivo tem um endereo. Terminologia: Transmitter o dispositivo que envia dados para o barramento. Receiver o dispositivo que recebe dados do barramento. Master o dispositivo que inicia a comunicao, gera o sinal de relgio e termina a comunicao. Slave o dispositivo endereado por um mestre. Multi master vrios mestres podem tentar aceder ao barramento simultaneamente. Arbitration procedimento para assegurar que: se mais do que um mestre tentar aceder ao barramento em simultneo apenas um o consegue sem corromper a sua mensagem. Synchronization procedimento para sincronizar os relgios de dois ou mais dispositivos.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

Caractersticas elctricas

Os andares de sada dos sinais do barramento so em colector aberto. Os sinais so ligados entre si e realizam um n wired-AND. Os sinais so ligados por uma resistncia de pull-up de forma que em repouso os sinais apresentam o valor um. Os ritmos de transferncia so: Standard mode 100 Kbit/s Fast mode 400 Kbit/s High speed 3.4 Mbit/s O nmero de dispositivos ligado ao barramento limitado pela capacitncia que no deve exceder 400pF. Os nveis elctricos par o zero e o um no so definidos pela norma, dependem da tecnologia utilizada.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

Transferncia de dados (1)

Os dados, sinal SDA, devem permanecer estveis enquanto o sinal SCL estiver a um. A condio START sinaliza o incio da ocupao do barramento. A condio STOP sinaliza o fim da ocupao do barramento. O barramento permanece ocupado se em vez de STOP o master repetir START. Condio START uma transio de um para zero em SDA enquanto SCL permanece a um. Condio STOP uma transio de zero para um em SDA enquanto SCL permanece a um.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

Transferncia de dados (2)


Uma transferncia pode ter um nmero ilimitado de bytes. Cada byte deve ser confirmado (acknowledged). O bit de maior peso transferido em primeiro lugar. Se um dispositivo no poder continuar a receber dados pode segurar o sinal SCL a zero durante algum tempo. A confirmao produzida pelo receiver depois de receber cada byte - o master pulsa SCL e liberta o sinal SDA; o slave coloca SDA a zero. Se no houver confirmao por parte do slave (SDA a zero) o master gera STOP abortando a transmisso ou gera novo START produzindo nova tentativa. Se o sentido da transferncia for do slave para o master este sinaliza o fim da transferncia no produzindo confirmao no ltimo byte. Ao que se segue a condio de STOP.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

Formato dos dados


Aps a condio de START enviado o endereo - 7 bits. Depois um bit que indica o sentido da transferncia leitura ou escrita. A zero indica uma escrita a um indica uma leitura.

Master transmite para um slave

Master l de slave imediatamente aps ter transmitido o primeiro byte (endereo) Transferncia com mudana de direco. O master repete a sequncia START address e inverte o bit R/#W

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

2-wire Serial EEPROM


Memria organizada em 64K * 8 byte dispostos em 512 pginas de 128 bytes cada. Os sinais A0 e A1 servem para definir, por hardware, o endereo do dispositivo. O que permite a existncia de quatro dispositivos destes no mesmo barramento. A EEPROM possui um contador de endereos interno, no qual permanece o endereo da ltima operao.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

2-wire Serial EEPROM - Operaes


Qualquer operao comea com a sequncia <START><address><R/#W>

Os valores dos bits A1 e A0 so definidos em hardware. Estes dois bits permitem a ligao at quatro dispositivos iguais no mesmo barramento. A memria possui um registo interno onde guarda o endereo acedido anteriormente. Por cada acesso o valor deste registo incrementado. Quando atinge o topo da pgina volta ao incio. (D a volta nos 7 bits de menor peso). Uma operao de escrita comea com a especificao do endereo seguido dos bytes a escrever o master decide a terminao com STOP. Uma operao de leitura pode usar o endereo registado internamente ou usar um novo endereo.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

2-wire Serial EEPROM Escrita


Do ponto de vista do protocolo I2C trata-se da escrita de uma sequncia de bytes os dois primeiros so o endereo e os restantes so os dados. Depois do STOP a EEPROM entra no estado de escrita durante tWP. Enquanto a EEPROM estiver ocupada a processar a escrita anterior no activa o bit ACK em confirmao do device address.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

2-wire Serial EEPROM Leitura


Uma leitura pode comear logo aps o envio de device address. Nesse caso usa o registo de endereo interno e a EEPROM envia os dados armazenados a partir desse endereo. A leitura termina quando o master responder com NO ACK. Se for necessrio especificar o endereo comea por se enviar dois bytes ao que se segue nova operao (iniciada com START) nos moldes anteriores.

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

10

Bibliografia

The I2C-Bus Specification; Philips AT24C512 2-wire Serial EEPROM

Ezequiel Conde, ezeq@cc.isel.ipl.pt

Dezembro de 2004

I2C

11

Você também pode gostar