O documento descreve e compara os protocolos de comunicação I2C e SPI. O I2C usa apenas duas linhas para comunicação bidirecional entre dispositivos como memória e conversores, enquanto o SPI usa três linhas para comunicação full-duplex entre microcontroladores e periféricos. Embora o SPI seja mais rápido, o I2C oferece mais recursos como operação multi-mestre. Ambos são adequados para comunicação entre circuitos integrados em baixas velocidades.
2. Protocolo de Memória
Estruturas de Interconexão
São caminhos que conectam vários módulos de um computador (processador, memória, E/S).
Um barramento é um conjunto de fios que transportam informações com um propósito comum.
A CPU pode acessar três barramentos: o de endereço, o de dados e o de controle. Como foi visto,
cada instrução possui duas fases distintas: o ciclo de busca, quando a CPU coloca o conteúdo do PC
no barramento de endereço e o conteúdo da posição de memória é colocado no Registro de instrução
da CPU, e o ciclo de execução, quando a CPU executa o conteúdo colocado no registro de instrução
e coloca-o na memória de dados pelo barramento de dados. Isso significa que quando a operação do
microcontrolador é iniciada ou resetada, o PC é carregado com o endereço 0000h da memória de
programa.
Protocolo I2C
O I2C é um protocolo de comunicação serial que foi criado por Philips Semiconductors em
meados de 1996 com o objetivo de compor uma interface simples e padronizada.
Trata-se de uma comunicação bidirecional, com taxas de transferência de até 400kbits/s.
Este protocolo permite a comunicação entre diversos componentes através de um barramento
de duas vias: uma de clock e outra de dados, tratando-se então de uma comunicação síncrona.
A princípio o protocolo I2C foi utilizado para interligar periféricos em uma mesma placa de
circuito impresso, mas com o passar do tempo passou a ser utilizada para interligar outros
periféricos, mesmo que eles não estivessem na mesma placa de circuito impresso.
Neste tipo de protocolo o dispositivo que irá começar a comunicação é o Mestre, podendo
existir vários Escravos.
Características do I2C
Protocolo de comunicação serial, Philips Semiconductors.
Dispositivos Onboard.
Serial Data line (SDA)
Serial Clock line (SCL)
Protocolo de comunicação serial, Philips Semiconductors.
Dispositivos Onboard.
Serial Data line (SDA)
Serial Clock line (SCL)
Mestre: microcontrolador.
Escravos: memória RAM, memória ROM, driver de LCD, conversores A/D e D/A.*
Transmissão:
3. Condição START
Condição STOP
Protocolo SPI
SPI (Serial Peripheral Interface) foi originalmente desenvolvido pela Motorola.
Simplicidade e Popularidade.
Microcontroladores e seus dispositivos periféricos imediatos.
Características do SPI
Consiste em três linhas de transmissão
Full-duplex
Master e Slaves.
SPI especifica três sinais lógicos:
Sinal SCLK(Serial Clock);
Sinal MOSI(Master Out Slave In);
Sinal MISO(Master In Slave Out);
Comparativo
O I²C necessita somente de 2 linhas enquanto o SPI necessita de quatro ou mais, dependendo
se há a adição de mais dispositivos escravos.
Se o dado necessita ser transferido em alta velocidade, o SPI é claramente o protocolo de
escolha, comparado ao I²C, por ser full-duplex, e o I²C ser half-duplex.
O I²C oferece recursos muito avançado, (como operação mult-master) enquanto o SPI é
muito fácil de entender e de implementar e oferece uma grande flexibilidade para extensões e
variações.
Tanto o I²C e o SPI são protocolo que demonstram um ótimo suporte para a comunicação
entre dispositivos de baixa velocidade.
O SPI requer mais pinos do que o I²C, pois não possui endereçamento, logo necessita de um
SS para cada escravo.
4. O SPI não tem confirmação de recebimento, o mestre pode estar se comunicando com nada e
não saber disso. Já o I²C utiliza um bit de reconhecimento.
O SPI possui somente um dispositivo mestre, sendo que o I²C pode operar com múltiplos
mestres
Conclusão
Quando falamos em protocolos de comunicação, o I²C e o SPI são considerados protocolos inferiores
em comparação com Ethernet, USB, SATA, PCI-Express e outros, que possuem um rendimento
superior. No entanto, não se deve esquecer que cada protocolo se adéqua a cada objetivo e aplicação.
Quando há a necessidade de implementar uma comunicação entre circuitos integrados, como um
microcontrolador e um conjunto de periféricos relativamente lentos, não há a necessidade de utilizar
os protocolos mais complexos utilizando assim o I²C e o SPI.