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
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
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
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
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
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
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
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
#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:
- Comunicação de dados serial por Glowscotland
- Serial Peripheral Interface Basics by ni
- Mestre único e vários escravos por comer
- Transferência de dados entre mestre e escravo por garagem de engenheiros
- Horários do ônibus SPI por maximizado integrado