2. www.iesa.com.br
2
Sist. Embarcados
Comunicação inter μC
I2C, IIC ou I²C É um padrão criado pela Philips para comunicação
entre sistemas microcontrolados
- Utiliza 2 fios
SCL - Clock
SDA - Dados
-Baixo consumo de energia
-Inicialmente utilizado em sistemas da Philips, mas adotado por
vários fabricantes atualmente
-Protocolo aberto, embora possa existir royalties para obtenção
de endereços
-Chamado de TWI (Two wire interface) nos documentos AVR
3. www.iesa.com.br
3
Sist. Embarcados
I2C – Características elétricas
Características elétricas
-Comunicação bidirecional open-drain
Canal é mantido em alto e a transmissão é feita puxando
o fio para zero(e lógico entre todos os dispositivos)
-Pull up de 4.7k Ohm
4. www.iesa.com.br
4
Sist. Embarcados
I2C – Características elétricas
Características elétricas
-No caso dos equipamentos operarem em tensões diferentes, é
importante utilizar um “Level Shifter”.
O sistema pode funcionar sem esse esquema de ligação,
porém é possível que se diminua a vida útil dos equipamentos
5. www.iesa.com.br
5
Sist. Embarcados
I2C
-Rede é formada por nós que podem ser mestres ou escravos
-Protocolo orientado a conexão
O mestre estabelece conexão com o escravo que então
pode responder um pedido
-Os nós possuem 4 estados possíveis
Mestre transmissor/receptor e escravo
transmissor/receptor
6. www.iesa.com.br
6
Sist. Embarcados
I2C - Pacotes
-Fomato do Bit
-Mudança no SDA somente quando SCL está em nível baixo
-Leitura do SDA somente quando SCL está estável em nível alto
7. www.iesa.com.br
7
Sist. Embarcados
I2C - Pacotes
-Fomato do Bit
-Mudança no SDA somente quando SCL está em nível baixo
-Leitura do SDA somente quando SCL está estável em nível alto
8. www.iesa.com.br
8
Sist. Embarcados
I2C - Pacotes
-Comando Start/Stop
Seguem regras especiais
-Mudança em SDA(1→0) quando SCL está em alto = Start
-Mudança em SDA(0→1) quando SCL está em alto = Stop
9. www.iesa.com.br
9
Sist. Embarcados
I2C - Pacotes
-Comando Start/Stop
Seguem regras especiais
-Mudança em SDA(1→0) quando SCL está em alto = Start
-Mudança em SDA(0→1) quando SCL está em alto = Stop
10. www.iesa.com.br
10
Sist. Embarcados
I2C - Pacotes
-Barramento é considerado ocupado entre pares de comando
Start/Stop
Um mestre não tenta acessar a rede se ouve um comando
start mas não ouve um comando stop
Abre possibilidade para “fome”. Literatura não diz como
tratar caso um equipamento caia da rede após um start.
-Caso o mestre queira garantir posse da rede entre pedidos, ele
pode repetir o comando start antes de enviar um stop