14 de March de 2010
Main Menu
Home
Cadastre-se
Como colaborar
Contato
Sugerir Conteúdo
Reportar Problema
Conteúdo
Fórum
Notícias
Artigos
Projetos
Inovação Tecnológica
Downloads
Eventos
Links
Blogs
Conteúdo Parceiro
Wiki da CBE
Wiki iMXdev
Blogesfera
Login
Usuários online
Nenhum usuário online
Nós temos 13 visitantes online
Usuários Registrados
3804 registrados
0 hoje
0 esta semana
53 no mês
Último: renilson offline
Próximos Eventos
Nenhum evento
« < Março 2010 > »
D S Q Q Q S D
28 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
Tradutor
Escolha o idioma:
RSS
PageRank
Add Site to Favorites
Add Page to Favorites
Make Homepage
Print Page
Android TR
Barramento I2C PDF Imprimir E-mail
 

Por Sergio Prado, em 04-10-2007 23:25

views : 3386

Publicado em : Artigos, Hardware Embarcado


Este é o primeiro artigo escrito exclusivamente para o Portal Embarcados.com.br e trata da comunicação entre dispositivos utilizando o barramento I2C.

Histórico 

O barramento I2C foi desenvolvido em meados da década de 80 pela Philips Semiconductors. (Hoje a parte de semicondutores chama-se NXP). O propósito original era interconectar a CPU a chips controladores de televisores. 

Periféricos em sistemas embarcados são freqüentemente conectados à CPU através de memória mapeada em I/O. Isso significa conectar os periféricos diretamente ao barramento de dados e endereços da CPU, utilizar decodificadores de endereço e uma lógica de controle para gerenciar tudo isso. 

Conforme a quantidade de periféricos aumenta, as conexões se tornam mais complexas, os custos de projeto e desenvolvimento aumentam, além de tornar a placa suscetível a interferências eletromagnéticas (EMI). 

Uma pesquisa realizada pela Philips para resolver este problema resultou na criação de um barramento de 2 fios chamado barramento I2C, acrônimo para Inter IC Bus (numa tradução livre para o português, barramento para interconexão de circuitos integrados). 

Hoje o barramento I2C é utilizado em inúmeros e diferentes tipos de chips no mercado: memórias, displays, conversores A/D e D/A, sensores de temperatura, etc. É aceito no mercado como um padrão de-fato, e adotado não só pela Philips (NXP), mas também por outras empresas de semicondutores, como Texas Instruments, Atmel, Maxim, Intel, ST Microeletronics, etc. 

 

Barramento I2C 

O barramento I2C consiste fisicamente de 2 fios e uma conexão com o terra. Os dois fios são bi-direcionais, SDA (Serial Data Line) e SCL (Serial Clock Line). 

Os dispositivos são interconectados através destes dois sinais, formando um barramento I2C. No barramento I2C, um dispositivo pode atuar como MASTER ou SLAVE, sendo que o MASTER é o responsável pela comunicação. 

Segue abaixo uma figura que demonstra os dispositivos em uma rede I2C:

g01proto.gif

Todos os dispositivos conectados em uma rede I2C possuem um endereço, e podem atuar como transmissores ou receptores, independente se este dispositivo for uma CPU, uma memória ou um display LCD. 

Todos os dispositivos na rede podem atuar como MASTER ou SLAVE. O dispositivo que iniciar a transmissão é considerado o dispositivo MASTER. 

 

Protocolo I2C 


De forma geral, o protocolo de comunicação I2C tem o seguinte fluxo: 

1.      O dispositivo MASTER envia para o barramento I2C um sinal de START. Com isso o dispositivo MASTER tem a atenção de todos os dispositivos conectados ao barramento.

2.      O dispositivo MASTER envia um registro com o endereço que deseja acessar, e se deseja realizar leitura ou escrita. Todos os dispositivos irão receber este registro. Aqueles que não possuírem o endereço requisitado irão ignorar o registro e aguardar o sinal de STOP. Aquele que tiver o endereço enviado irá responder com um sinal de ACKNOWLEDGE.

3.      Assim que o MASTER receber o sinal de ACKNOWLEDGE, poderá iniciar a transmissão ou requisição dos dados. Assim que a transferência terminar, o MASTER irá enviar um sinal de STOP, que liberará o barramento para que outros dispositivos possam então atuar como MASTER.


O sinal de START consiste em levar a linha SDA para o nível baixo, e depois a linha SCL para o nível baixo, conforme a figura abaixo:

g01stast.gif

 

 

 

 Após o envio do sinal de START, o primeiro byte transmitido representa o registro de endereçamento do dispositivo que se deseja acessar no barramento I2C. Os sete primeiros bits representam o endereço, e o último bit indica se deseja realizar leitura ou escrita, conforme figura abaixo:

g01sendb.gif

Os sinais de clock são gerados pelos dispositivos MASTER através da linha SCL. Os dados são válidos apenas quando o sinal SCL estiver em nível alto. 

O sinal de STOP consiste em levar a linha SCL para o nível alto, e depois a linha SDA para o nível alto, conforme a figura abaixo: 

g02stast.gif

 

 
Para acessar outros documentos ou artigos sobre I2C, acesse a seção de links e downloads do Portal Embarcados.com.br.

Um abraço!


Sergio Prado.
Administrador do Portal Embarcados.com.br


Última atualização : 04-10-2007 23:45

   
Citar este artigo no seu website
Favoritos
Artigos associados
Tag para del.icio.us

Comentários dos Usuários  RSS feed dos comentários
 

Classificação dos usuários

   (0 voto)

 


Adicionar comentário
Apenas utilizadores registados podem comentar um artigo.

Nenhum comentário



mXcomment 1.0.6 © 2007-2010 - visualclinic.fr
License Creative Commons - Some rights reserved
< Anterior   Próximo >
Pesquisar no Portal
Newsletter
Assinar a newsletter do Portal Embarcados
Name:
Email:


Enquete
Qual área você atua?
 
Oportunidades
Últimas do Fórum

Mais...
Blogs
Procuramos consultoria - GSOAP Autor: Claudio Boechat Data: 12 de March de 2010
IDE Free para SDCC Autor: Alexandre Andrade Souza Data: 27 de January de 2010
O desafio em (tentar) organizar e realizar um evento Autor: Diego Sueiro Data: 12 de August de 2009
PIC mikroC Autor: Oliveira Data: 15 de April de 2009
eletro10 Autor: VALDEMIR CAPOANI Data: 18 de December de 2008
Parceiros
Comunidade C&C++ Brasil
Comunidade Brasileira de Eletronica
Eletromaniacos
Tempo Real
Psoc-Chile