Comprensión del protocolo de comunicación SPI en Embedded

Comprensión del protocolo de comunicación SPI en Embedded

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

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 actuadores de control se reciben o transmiten a los dispositivos controladores, como los microcontroladores, para que los datos se analicen y procesen más a fondo. Como los microcontroladores trabajan con los datos digitales, la información del sensores analógicos , actuadores y otros periféricos se convierte en una palabra binaria de un byte (8 bits) antes de transmitirse al microcontrolador.


Comunicación de datos en serie

Comunicación de datos en serie



Estos datos en serie se transmiten con respecto a cierto pulso de reloj. La velocidad de transmisión de datos se denomina velocidad en baudios. El número de bits de datos que se pueden transmitir por segundo se denomina velocidad en baudios. Suponga que los datos son de 12 bytes, luego cada byte se convierte en 8 bits de modo que el tamaño total de la transmisión de datos sea de aproximadamente 96 bits / seg de los datos (12 bytes * 8 bits por byte). Si los datos se pueden transmitir una vez por segundo, las velocidades en baudios son de alrededor de 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 de periféricos en serie

La comunicación SPI significa interfaz periférica en serie Protocolo de comunicación , 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 full duplex, lo que significa que las señales de datos se transmiten en ambas direcciones simultáneamente.

El protocolo SPI consta de cuatro cables como MISO, MOSI, CLK, SS utilizados para la comunicación maestro / esclavo. El maestro es un microcontrolador y los esclavos son otros periféricos 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 serial SPI. El protocolo SPI no admite la comunicación multimaestro y se utiliza para una distancia corta dentro de una placa de circuito.

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

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

Líneas SPI

MISO (Master in Slave out) : La línea MISO se configura como entrada en un dispositivo maestro y como salida en un dispositivo esclavo.


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

SCK (reloj en serie) : Esta señal siempre es impulsada por el maestro para la transferencia de datos sincrónica entre el maestro y el esclavo. Se utiliza para sincronizar el movimiento de datos tanto dentro como fuera a través de las 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 individuales / dispositivos periféricos. Es una línea de entrada utilizada para seleccionar los dispositivos esclavos.

Comunicación maestro esclavo con bus serial SPI

Implementación de SPI de maestro único 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 que la frecuencia máxima que admite el dispositivo esclavo. El maestro luego 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 al estado 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 líneas de datos están conectadas juntas, pero el pin de selección de chip de cada dispositivo esclavo debe estar conectado a un pin de selección 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 activar el dispositivo esclavo y sube para deshabilitar el dispositivo esclavo.

La transferencia de datos se organiza mediante el uso de los registros de desplazamiento en los dispositivos maestro y esclavo con un tamaño de palabra dado de aproximadamente 8 bits y 16 bits, respectivamente. Ambos dispositivos están conectados en forma de anillo para que el valor del registro de desplazamiento del máser se transmita a través de la línea MOSI, y luego el esclavo cambia los datos en su registro de desplazamiento. Por lo general, los datos se desplazan con el MSB primero y el nuevo LSB en el mismo registro.

Transferencia de datos entre maestro y esclavo

Transferencia de datos entre maestro y esclavo

Importancia de la polaridad y la fase del reloj

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

Registro SPCR

Registro SPCR

El bus SPI opera en uno de los 4 modos de transferencia diferentes con una polaridad de reloj (CPOL) y una fase de reloj (CPHA) que define un formato de reloj que se utilizará. La polaridad del reloj y las velocidades del reloj de fase dependen del dispositivo periférico con el que intente comunicarse con el maestro.
CPHA = 0, CPOL = 0: El primer bit comienza como una señal inferior: 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 un reloj más alto: los datos se muestrean en el flanco ascendente y los datos cambian en el flanco descendente.

Tiempos de bus SPI

Tiempos de bus SPI

Protocolo de comunicación SPI

Muchos microcontroladores tienen protocolos SPI incorporados que manejan todos los datos de envío y recepción. Cualquiera de las operaciones del modo de datos (R / W) está controlada por un control y registros de estado del Protocolo SPI. Aquí, puede observar la interfaz EEPROM al 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 al Memoria EEROM a través de un bus serie SPI. El programa para 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

#incluir
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Inicializar vacío EEROM ()
Vacío principal()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
Dirección_EE = 0x00
SPI_write (0x80)
SPI_escritura (1234)
SS = 0
}

Ventajas del protocolo SPI

  • Es una comunicación full duplex.
  • Es un bus de datos de alta velocidad de 10 MHz.
  • No se limita a 8 bits durante la transferencia.
  • La interfaz de hardware es simple a través de SPI.
  • Slave utiliza un reloj maestro y no necesita preciosos osciladores.

Todo esto se trata de las comunicaciones SPI y su interactuando con un microcontrolador . Agradecemos su gran interés y atención por este artículo y, por lo tanto, anticipamos su punto de vista sobre este artículo. Además, para cualquier codificación y asistencia de interfaz, puede preguntarnos comentando a continuación.

Créditos fotográficos:

  • Comunicación de datos en serie por glowscotland
  • Conceptos básicos de la interfaz de periféricos en serie por ni
  • Maestro único y múltiples esclavos por comer
  • Transferencia de datos entre maestro y esclavo por ingenieros de garaje
  • Tiempos de bus SPI por maximintegrated