Entendimento sobre o Protocolo de Comunicação SPI em Embedded

Experimente Nosso Instrumento Para Eliminar Problemas





A comunicação desempenha um papel essencial no projeto do sistema embarcado. Sem ir para os protocolos, a expansão periférica é altamente complexa e consome muita energia. O sistema embarcado basicamente usa comunicação serial para se comunicar com os periféricos.
Existem muitos protocolos de comunicação serial, como comunicação UART, CAN, USB, I2C e SPI. A série protocolo de comunicação as características incluem alta velocidade e baixa perda de dados. Isso torna o projeto no nível do sistema mais fácil e garante uma transferência confiável de dados.

Comunicação de Dados Seriais

As informações eletricamente codificadas são chamadas de dados seriais, que são transmitidos bit a bit de um dispositivo a outro por meio de um conjunto de protocolos. No sistema embutido, os dados dos sensores e atuadores de controle são recebidos ou transmitidos para os dispositivos controladores, como microcontroladores, para que os dados sejam analisados ​​e processados ​​posteriormente. À medida que os microcontroladores trabalham com os dados digitais, as informações do sensores analógicos , atuadores e outros periféricos são convertidos em uma palavra binária de um byte (8 bits) antes de serem transmitidos para o microcontrolador.




Comunicação de Dados Seriais

Comunicação de Dados Seriais

Esses dados seriais são transmitidos em relação a determinado pulso de clock. A taxa de transmissão de dados é conhecida como taxa de baud. O número de bits de dados que podem ser transmitidos por segundo é chamado de taxa de transmissão. Suponha que os dados tenham 12 bytes, então cada byte é convertido em 8 bits de modo que o tamanho total da transmissão de dados seja de cerca de 96 bits / s dos dados (12 bytes * 8 bits por byte). Se os dados podem ser transmitidos uma vez a cada segundo, as taxas de baud são em torno de 96 bits / seg ou 96 baud. A tela de exibição atualiza o valor dos dados uma vez a cada segundo.



Noções básicas de interface periférica serial

A comunicação SPI significa interface periférica serial protocolo de comunicação , que foi desenvolvido pela Motorola em 1972. A interface SPI está disponível em controladores de comunicação populares, como PIC, AVR e Controlador ARM , etc. Possui link de dados de comunicação serial síncrono que opera em full duplex, o que significa que os sinais de dados são transmitidos em ambas as direções simultaneamente.

O protocolo SPI consiste em quatro fios, como MISO, MOSI, CLK, SS usado para comunicação mestre / escravo. O mestre é um microcontrolador e os escravos são outros periféricos, como sensores, Modem GSM e modem GPS, etc. Os vários escravos são conectados ao mestre por meio de um barramento serial SPI. O protocolo SPI não suporta a comunicação Multi-master e é usado para uma curta distância dentro de uma placa de circuito.

Noções básicas de interface periférica serial

Noções básicas de interface periférica serial

Linhas SPI

MISO (Master in Slave out) : A linha MISO é configurada como entrada em um dispositivo mestre e como saída em um dispositivo escravo.


MOSI (Master out Slave in) : O MOSI é uma linha configurada como saída em um dispositivo mestre e como entrada em um dispositivo escravo onde é utilizada para sincronizar a movimentação de dados.

SCK (relógio serial) : Este sinal é sempre conduzido pelo mestre para a transferência síncrona de dados entre o mestre e o escravo. Ele é usado para sincronizar a movimentação de dados de entrada e saída através das linhas MOSI e MISO.

SS (Slave Select) e CS (Chip Select) : Este sinal é conduzido pelo mestre para selecionar escravos / dispositivos periféricos individuais. É uma linha de entrada usada para selecionar os dispositivos escravos.

Comunicação Master Slave com SPI Serial Bus

Implementação de SPI Single Master e Single Slave

Aqui, a comunicação é sempre iniciada pelo mestre. O dispositivo mestre primeiro configura a frequência do clock que é menor ou igual à frequência máxima que o dispositivo escravo suporta. O mestre então seleciona o escravo desejado para comunicação arrastando a linha de seleção de chip (SS) daquele dispositivo escravo específico para ir para o estado baixo e ativo. O mestre gera as informações na linha MOSI que transporta os dados do mestre para o escravo.

Comunicação Master Slave

Comunicação Master Slave

Implementações Single Master e Multiple Slave

Esta é uma configuração de múltiplos escravos com um mestre e vários escravos através do barramento serial SPI. Os vários escravos são conectados em paralelo ao dispositivo mestre com o barramento serial SPI. Aqui, todas as linhas de clock e linhas de dados são conectadas juntas, mas o pino de seleção de chip de cada dispositivo escravo deve ser conectado a um pino de seleção de escravo separado no dispositivo maser.

Mestre único e escravos múltiplos

Mestre único e escravos múltiplos

Neste processo, o controle de cada dispositivo escravo é realizado por uma linha de seleção de chip (SS). O pino de seleção do chip fica baixo para ativar o dispositivo escravo e alto para desabilitar o dispositivo escravo.

A transferência de dados é organizada usando os registradores de deslocamento em ambos os dispositivos mestre e escravo com um determinado tamanho de palavra de cerca de 8 bits e 16 bits, respectivamente. Ambos os dispositivos são conectados em forma de anel para que o valor do registrador de deslocamento do maser seja transmitido através da linha MOSI, e então o escravo desloca os dados em seu registrador de deslocamento. Os dados são geralmente transferidos primeiro com o MSB e transferindo o novo LSB para o mesmo registro.

Transferência de dados entre mestre e escravo

Transferência de dados entre mestre e escravo

Significado da polaridade e fase do relógio

Geralmente, a transmissão e a recepção de dados são realizadas em relação aos pulsos de clock nas bordas crescentes e nas bordas descendentes. Os microcontroladores avançados têm duas frequências: frequência interna e frequência externa. Os periféricos SPI podem ser adicionados compartilhando as linhas MISO, MOSI e SCLK. Os periféricos são de diferentes tipos ou velocidades, como ADC, DAC, etc. Portanto, precisamos alterar as configurações de SPCR entre as transferências para diferentes periféricos.

Registro SPCR

Registro SPCR

O barramento SPI opera em um dos 4 modos de transferência diferentes com uma polaridade de relógio (CPOL) e fase de relógio (CPHA) que define um formato de relógio a ser usado. A polaridade do clock e as taxas de clock de fase dependem de qual dispositivo periférico você está tentando se comunicar com o mestre.
CPHA = 0, CPOL = 0: O primeiro bit começa como um sinal inferior - os dados são amostrados na borda ascendente e os dados mudam na borda descendente.

CPHA = 0, CPOL = 1: O primeiro bit começa com um clock inferior - os dados são amostrados na borda descendente e os dados mudam na borda ascendente.

CPHA = 1, CPOL = 0: O primeiro bit começa com um clock superior - os dados são amostrados na borda descendente e os dados mudam na borda ascendente.

CPHA = 1, CPOL = 1: O primeiro bit começa com um clock mais alto - os dados são amostrados na borda ascendente e os dados mudam na borda descendente.

Horários do ônibus SPI

Horários do ônibus SPI

Protocolo de Comunicação SPI

Muitos microcontroladores possuem protocolos SPI embutidos que tratam de todos os dados de envio e recebimento. Qualquer uma das operações do modo de dados (R / W) é controlada por um controle e registradores de status do protocolo SPI. Aqui, você pode observar a interface EEPROM para o microcontrolador PIC16f877a através do protocolo SPI.

Aqui, 25LC104 EEROM é uma memória de 131072 bytes em que o microcontrolador transfere dois bytes de dados para o Memória EEROM através de um barramento serial SPI. O programa para esta interface é fornecido abaixo.

Comunicação mestre para escravo através do barramento serial SPI

Comunicação mestre para escravo através do barramento serial SPI

#incluir
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Nulo inicializar EEROM ()
Void main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Vantagens do protocolo SPI

  • É uma comunicação full duplex.
  • É um barramento de dados de alta velocidade de 10 MHz.
  • Não está limitado a 8 bits durante a transferência
  • A interface de hardware é simples por meio do SPI.
  • Slave usa um relógio mestre e não precisa de osciladores preciosos.

Isso é tudo sobre as comunicações SPI e seus interface com um microcontrolador . Agradecemos seu grande interesse e atenção por este artigo e, portanto, antecipamos seu ponto de vista sobre este artigo. Além disso, para qualquer ajuda e codificação de interface, você pode nos perguntar comentando abaixo.

Créditos fotográficos: