Comprender el protocolo de comunicación SPI en Embedded

La comunicación juega un papel esencial en el diseño de sistemas embebidos. Sin pasar por los protocolos, la extensión periférica es muy compleja y consume mucha energía. El sistema integrado utiliza básicamente la comunicación en serie para comunicarse con los periféricos.
Hay muchos protocolos de comunicación en serie, como comunicación UART, CAN, USB, I2C y SPI. Las características del protocolo de comunicación en serie incluyen alta velocidad y baja pérdida de datos. Facilita el diseño a nivel de sistema y garantiza una transferencia de datos confiable.


Índice de Contenido
  1. Comunicación de datos en serie
    1. Conceptos básicos de la interfaz periférica en serie
    2. líneas SPI
    3. Comunicación maestro-esclavo con bus serie SPI
    4. Significado de la polaridad y la fase del reloj
    5. Protocolo de comunicación SPI
    6. Ventajas del protocolo SPI

Comunicación de datos en serie

La información codificada eléctricamente se denomina datos en serie, que se transmiten bit a bit de un dispositivo a otro a través de un conjunto de protocolos. En el sistema integrado, los datos de los sensores y los actuadores de control se reciben o transmiten a los dispositivos de control, como los microcontroladores, para que los datos se analicen y procesen. Cuando los microcontroladores funcionan con datos digitales, la información de los sensores, actuadores y otros dispositivos analógicos se convierte en una palabra binaria de un byte (8 bits) antes de pasar al microcontrolador.

Comunicación de datos en serie

Estos datos en serie se transmiten con respecto a ciertos pulsos de reloj. La tasa de transmisión de datos se llama tasa de baudios. La cantidad de bits de datos que se pueden transmitir por segundo se denomina tasa de baudios. Supongamos que los datos son 12 bytes, luego cada byte se convierte en 8 bits para que el tamaño total de la transmisión de datos sea de aproximadamente 96 bps de datos (12 bytes * 8 bits por byte). Si los datos se pueden transmitir una vez por segundo, la velocidad en baudios es de aproximadamente 96 bits/seg o 96 baudios. La pantalla de visualización actualiza el valor de los datos una vez por segundo.

Conceptos básicos de la interfaz periférica en serie

La comunicación SPI significa Protocolo de comunicación de interfaz periférica en serie, que fue desarrollado por Motorola en 1972. La interfaz SPI está disponible en controladores de comunicación populares como PIC, AVR y controlador ARM, etc. Tiene un enlace de datos de comunicación serial síncrona que opera en dúplex completo, lo que significa que las señales de datos transportan ambas direcciones simultáneamente.

El protocolo SPI consta de cuatro subprocesos, como MISO, MOSI, CLK, SS, que se utilizan para la comunicación maestro/esclavo. El maestro es un microcontrolador y los esclavos son otros dispositivos como sensores, módem GSM y módem GPS, etc. Los múltiples esclavos están interconectados con el maestro a través de un bus serie SPI. El protocolo SPI no es compatible con la comunicación multimaestro y se usa en una distancia corta dentro de una placa de circuito.

Conceptos básicos de la interfaz periférica en serie
Conceptos básicos de la interfaz periférica en serie

líneas SPI

MISO (salida de maestro a esclavo): La línea MISO se configura como entrada en un dispositivo maestro y como salida en un dispositivo esclavo.

MOSI (entrada de esclavo de salida maestra): El MOSI es una línea configurada como salida en un dispositivo maestro y entrada en un dispositivo esclavo donde se utiliza para sincronizar el movimiento de datos.

SCK (reloj serie): Esta señal siempre es impulsada por el maestro para la transferencia de datos síncrona entre el maestro y el esclavo. Se utiliza para sincronizar el movimiento de datos entrantes y salientes a través de líneas MOSI y MISO.

SS (selección de esclavo) y CS (selección de chip): Esta señal es impulsada por el maestro para seleccionar esclavos/dispositivos individuales. Esta es una línea de entrada utilizada para seleccionar dispositivos esclavos.

Comunicación maestro-esclavo con bus serie SPI

Implementación de SPI maestro y esclavo único

Aquí, la comunicación siempre la inicia el maestro. El dispositivo maestro primero configura la frecuencia de reloj que es menor o igual a la frecuencia máxima que admite el dispositivo esclavo. Luego, el maestro selecciona el esclavo deseado para la comunicación arrastrando la línea de selección de chip (SS) de ese dispositivo esclavo en particular para pasar a nivel bajo y activo. El maestro genera la información en la línea MOSI que lleva los datos del maestro al esclavo.

Comunicación maestro-esclavo
Comunicación maestro-esclavo

Implementaciones de maestro único y esclavo múltiple

Esta es una configuración de múltiples esclavos con un maestro y múltiples esclavos a través del bus serial SPI. Los múltiples esclavos están conectados en paralelo al dispositivo maestro con el bus serie SPI. Aquí todas las líneas de reloj y las líneas de datos están conectadas entre sí, pero el pin de selección de chip de cada dispositivo esclavo debe conectarse a un pin de selección de esclavo separado en el dispositivo máser.

Maestro único y múltiples esclavos
Maestro único y múltiples esclavos

En este proceso, el control de cada dispositivo esclavo se realiza mediante una línea de selección de chip (SS). El pin de selección de chip baja para habilitar el dispositivo esclavo y sube para deshabilitar el dispositivo esclavo.

La transferencia de datos se organiza utilizando los registros de desplazamiento del dispositivo maestro y esclavo con un tamaño de palabra dado de aproximadamente 8 bits y 16 bits, respectivamente. Los dos dispositivos están conectados como un anillo para que el valor del registro de desplazamiento maestro pase a través de la línea MOSI y luego el esclavo cambie los datos a su registro de desplazamiento. Los datos generalmente se desplazan con el MSB primero y desplazando el nuevo LSB en el mismo registro.

Transferencia de datos entre maestro y esclavo
Transferencia de datos entre maestro y esclavo

Significado de la polaridad y la fase del reloj

Generalmente, la transmisión y recepción de datos se realiza con respecto a pulsos de reloj en flancos ascendentes y descendentes. Los microcontroladores avanzados tienen dos frecuencias: frecuencia interna y frecuencia externa. Se podrían añadir periféricos SPI compartiendo las gamas MISO, MOSI y SCLK. Los periféricos son de diferentes tipos o velocidades como ADC, DAC, etc. Por lo tanto, debemos cambiar la configuración de SPCR entre las transferencias a diferentes dispositivos.

Registro SPCR
Registro SPCR

El bus SPI opera en uno de los 4 modos de transferencia diferentes con polaridad de reloj (CPOL) y fase de reloj (CPHA) que definen el formato de reloj que se utilizará. La polaridad del reloj y las frecuencias del reloj de fase dependen del dispositivo con el que intenta comunicarse con el maestro.
CPHA=0, CPOL=0: el primer bit comienza como una señal más baja: los datos se muestrean en el flanco ascendente y los datos cambian en el flanco descendente.

CPHA=0, CPOL=1: el primer bit comienza con un reloj más bajo: los datos se muestrean en el flanco descendente y los datos cambian en el flanco ascendente.

CPHA=1, CPOL=0: el primer bit comienza con un reloj más alto: los datos se muestrean en el flanco descendente y los datos cambian en el flanco ascendente.

CPHA=1, CPOL=1: el primer bit comienza con el reloj superior: los datos se muestrean en el flanco ascendente y los datos cambian en el flanco descendente.

Horario de autobuses SPI
Horario de autobuses SPI

Protocolo de comunicación SPI

Muchos microcontroladores tienen protocolos SPI incorporados que manejan todos los datos de envío y recepción. Todas las operaciones del modo de datos (R/W) están controladas por el control del protocolo SPI y los registros de estado. Aquí puede observar la interfaz EEPROM con el microcontrolador PIC16f877a a través del protocolo SPI.

Aquí, 25LC104 EEROM es una memoria de 131072 bytes en la que el microcontrolador transfiere dos bytes de datos a la memoria EEROM a través de un bus serie SPI. El programa de esta interfaz. se da a continuación.

Comunicación maestro a esclavo a través del bus serie SPI
Comunicación maestro a esclavo a través del bus serie SPI

#comprenderSbit SS=RC^2;
Sbit SCK=RC^3;
bit SDI=RC^4;
Sbit SDO=RC^5;
vacío inicializar EEROM();
vacío principal ()
{
SSPSPAT=0x00;
SSPCON=0x31;
SMP=0;
SCK=0;
SDO=0;
SS=1;
dirección_EE=0x00;
SPI_escribir (0x80);
SPI_escribir (1234);
SS=0;
}

Ventajas del protocolo SPI

  • Esta es una comunicación dúplex completa.
  • Es un bus de datos de alta velocidad de 10 MHz.
  • No está limitado a 8 bits al transferir
  • La interfaz de hardware es simple usando SPI.
  • El esclavo usa un reloj maestro y no necesita valiosos osciladores.

Se trata de la comunicación SPI y su interfaz con un microcontrolador. Agradecemos su gran interés y atención a este artículo y, por lo tanto, anticipamos sus opiniones sobre este artículo. Además, para cualquier codificación y asistencia de interfaz, puede consultarnos comentando a continuación.

Créditos fotográficos :

Si quieres conocer otros artículos parecidos a Comprender el protocolo de comunicación SPI en Embedded puedes visitar la categoría Generalidades.

¡Más Contenido!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir