Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

I2C vs SPI:diferenças que você deve saber


Você está projetando um projeto e é crucial escolher entre I2C ou SPI? Mas você não sabe qual escolher? Se sim, ajudaremos você a decidir qual é o melhor para o seu projeto.

Primeiro, o I2C e o SPI são protocolos “low-end”. Mas eles são fáceis de usar e funcionam perfeitamente para comunicação entre os chips da sua PCB.

No entanto, selecionar o protocolo errado para o seu projeto pode resultar em resultados indesejáveis. No entanto, estamos aqui para ajudá-lo a entender a diferença entre esses dois protocolos semelhantes.

Você está pronto? Vamos começar!

O que é um protocolo SPI?


Na década de 1980, a Motorola desenvolveu o protocolo SPI para estabelecer comunicação entre os microcontroladores da época com outros periféricos como EEPROM.

EEPROM

Assim, o protocolo SPI utiliza quatro linhas de sinal para comunicação entre as partes. No entanto, é crucial notar que estes não incluem as linhas de terra e energia. Aqui estão as quatro linhas de sinal ativas:

Nesta nota, as quatro linhas permitem que um SPI mestre (dispositivo de controle) se comunique com um SPI escravo (dispositivo periférico).

Interface de protocolo SPI

Além disso, você só pode ter um dispositivo controlador em um barramento SPI. Mas não há limite para o número de periféricos que você pode adicionar. Além disso, adicionar mais periféricos significa aumentar as linhas SS. Portanto, aqui está uma ilustração de como você pode usar três linhas SS separadas para controlar diferentes periféricos.

Interface de protocolo SPI com várias pessoas escravizadas

Além disso, quando o SPI mestre deseja se comunicar com os periféricos enviando ou recebendo dados, ele puxa a linha SS correspondente. Consequentemente, a linha estará abaixo. Assim, a linha SCLK é ativada e é alta e baixa em uma frequência definida.

Além disso, o SPI mestre usa a linha MISO para enviar dados e amostras simultaneamente. Além disso, lembre-se de que só pode haver comunicação entre um periférico e o SPI mestre por vez.

O que é um I2C


Alternativamente, em 1982, a Philips Semiconductors (agora NXP Semiconductors) desenvolveu o primeiro protocolo I2C para sistematizar as comunicações entre chips em um PCB.

Ao contrário de sua contraparte SCI, o protocolo I2C possui duas linhas de comunicação – excluindo as linhas de terra e de energia. Essas linhas incluem:

Assim, você pode conectar qualquer número de dispositivos escravizadores e agentes a um barramento. Além disso, você deve manter as linhas SCL e SDA como linhas de drenagem aberta. Como resultado, seus dispositivos terão apenas uma linha baixa por vez. Além disso, você precisará de um resistor pull-up em seus tubos. Dessa forma, você pode puxar sua linha de volta para o alto.

Interface de protocolo I2C

Devido ao design de drenagem aberta do protocolo I2C, você pode usar vários mestres no mesmo barramento. Mas se dois dispositivos controladores começarem a se comunicar simultaneamente, haverá uma arbitragem que fará com que um dos dispositivos pare de transmitir.

Enquanto isso, os dispositivos controladores monitoram a linha SDA enquanto a comunicação ocorre. Portanto, se um dispositivo detectar que a linha SDA está baixa durante a transmissão, ele interromperá o envio. E isso permite que outro dispositivo controlador se comunique.

Além disso, o dispositivo I2C do controlador transmitirá uma condição START para iniciar a comunicação. Consequentemente, a linha SDA estará baixa enquanto a linha SCL permanecerá alta.

Em seguida, o dispositivo controlador transmitirá um endereço de 7 bits do destinatário para o qual deseja enviar e um bit de leitura (1) ou bit de gravação (0). Neste ponto, um dispositivo no barramento só responderá se tiver um endereço de taxa de 7 bits correspondente, tornando a linha SDA baixa.

Diferenças entre o I2C e o SPI


Tanto o SPI quanto o I2C são semelhantes porque são protocolos “low-end”. Além disso, ambos os protocolos não têm a velocidade e outros recursos oferecidos por seus primos de peso pesado (SATA, Ethernet, USB e outros).

Mas quando se trata dos princípios e recursos de trabalho. Vamos dar uma olhada nas diferenças entre os dois protocolos.

Conector USB

Primeiro, você pode definir quatro modos diferentes no protocolo SPI para determinar como o relógio funciona. E para que a comunicação funcione, os dispositivos escravizador e agente devem usar o mesmo modelo.
  1. Modo 0:dados amostrados em uma borda de clock ascendente, clock ocioso baixo
  2. Modo 1:dados amostrados na borda de clock decrescente, clock ocioso baixo
  3. TMode 2:dados amostrados na borda de clock decrescente, clock ocioso alto
  4. Modo 3:dados amostrados em uma borda de clock ascendente, clock ocioso alto

Além disso, as velocidades de transferência de dados SPI podem ultrapassar 10 Mbps, tornando-o perfeito para transferir grandes quantidades de dados. Além disso, você pode encontrar protocolos SPI em sensores com taxas de atualização rápidas, como LCDs e acelerômetros.

LCD

Alternativamente, o I2C só pode enviar dados no pacote de um byte de cada vez. Além disso, o periférico receptor deve reconhecer cada byte com um bit ACK. Além disso, o protocolo I2C possui três modos com diferentes velocidades de transferência de dados.



Bit de ACK

O modelo padrão atinge um máximo de 100 kbps, o modo rápido atinge 400 kbps e o modo de alta velocidade atinge o máximo de 3,4 Mbps. Portanto, o protocolo I2C é significativamente mais lento que o protocolo SPI. Como resultado, os protocolos I2C funcionam melhor em sensores de temperatura e conversores analógico-digitais.

Sensores de temperatura

Comparando I2C e SPI


A tabela abaixo mostra ainda as diferenças significativas entre o I2C e o SPI:
Recurso SPI I2C
Pin drive Modo push-pull Modo de drenagem aberta
Máx. Velocidade Nenhum (mas você pode encontrar de 10 a 100 Mbps) 100 kbps (método padrão)400 kbps (modo rápido)3,4 Mbps (modo de alta velocidade)
Multi-mestre Não Sim
Linhas de sinal 4 (dispositivos extras adicionam linhas extras) 2
Não. de Periféricos O número de pinos disponíveis para linhas SS no SPI mestre é o único limite para o número de periféricos que você pode ter Máx. de 112 com endereçamento de 7 bits
Controle de fluxo Não Sim

Protocolos SPI x I2C – Prós e contras



SPI 

Prós

Contras

I2C 

Prós

Contras

Fatores que você deve considerar ao escolher entre SPI e I2C


A seleção do melhor protocolo para o seu projeto vai além do preço. Então, aqui estão algumas coisas a considerar antes de fazer sua escolha:

Pins limitados


Aqui estão as vantagens e desvantagens dos protocolos SPI e I2C:se você não gosta de usar microcontroladores com mais de 100 pinos, esse é um fator crucial a ser considerado. Neste caso, deverá optar por um protocolo que exija menos linhas para comunicações.

Poder


Dependendo do seu projeto, você pode querer minimizar ou maximizar o consumo de energia. Portanto, você deve garantir que escolhe um protocolo que melhor se adapte às suas necessidades de consumo.

Velocidade


Quando se trata de transferir dados em grandes quantidades, cada microssegundo é crucial. Portanto, se a velocidade é o que você precisa, escolha um protocolo que atenda aos seus padrões de velocidade.

Tamanho do PCB


É vital considerar o tamanho do seu PCB antes de escolher qualquer protocolo. Consequentemente, você aumentará suas chances de obter resultados desejáveis.

Escolha entre SPI e I2C


Aqui estão os recursos de cada protocolo para ajudá-lo a tomar a melhor decisão para seu projeto:
Recursos SPI I2C
Velocidade Se seu projeto requer transmissões de alta velocidade, o protocolo SPI é a melhor escolha. Você pode escolher I2C para designs para dispositivos de baixa velocidade
Tamanho do PCB Se você não se importa com o tamanho do seu PCB, não há como errar com SPI ou I2C. Se o seu PCB tiver um tamanho menor e menos faixas, considere escolher o I2C
Pins limitados Vá para o protocolo SPI se não se importar em adicionar linhas extras para comunicação. Se você não se sente confortável com muitas faixas, o I2C é a escolha ideal.
Poder Para dispositivos de baixo consumo de energia, use o protocolo SPI Para dispositivos de maior consumo de energia, use o protocolo I2C

Compreendendo a UART


UARTs são circuitos físicos em um integrado ou microcontrolador que estabelecem comunicação serial entre dispositivos em sistemas embarcados.

Além disso, quando você está lidando com comunicação UART, sempre há comunicação direta entre o transmissor UART e o receptor UART.

UART x I2C x SPI


Em contraste com outros protocolos de comunicação como SPI e I2C, a UART é puramente física. Além disso, ele não usa um paradigma mestre/escravo para se comunicar. Em vez disso, o microcontrolador usa dois dispositivos UART para enviar e receber dados. Além disso, você só precisa de dois fios para comunicação UART. E os cabos ajudarão a transmitir dados do pino Tx do transmissor para o pino Rx do receptor.

Interface de protocolo UART

Arredondando


Na realidade, os protocolos SPI e I2C são utilizados em diversas aplicações. Às vezes, você pode se deparar com dispositivos que apresentam interfaces SPI e I2C em um chip. Assim, você não precisa escolher entre os dois.

No entanto, se você precisar escolher entre os dois protocolos, o SPI é melhor para projetos que precisam de velocidades de transferência mais rápidas. Por outro lado, se o seu microcontrolador tiver pinos limitados, o protocolo I2C funcionaria melhor.

Tem alguma pergunta? Sinta-se livre para nos contatar. Teremos o maior prazer em ajudar.

Tecnologia industrial

  1. 7 Bibliotecas React que você deve conhecer
  2. O que você deve saber sobre o teste de óleo de transformador
  3. Por que você deve usar um reator de linha
  4. O que você deve saber sobre protetores de rebolo
  5. 5 coisas que você deve saber sobre microferramentas
  6. O que é conformidade com TAA? 5 coisas que você deve saber
  7. Os 9 aplicativos de aprendizado de máquina que você deve conhecer
  8. Revestimento da embreagem:tudo o que você deve saber
  9. Termos básicos de jato de água que você deve conhecer
  10. O que é Knurling? Aqui está o que você deve saber