protocolo de comunicación SPI
SPI es un acrónimo para referirse al protocolo de
comunicación serial Serial Peripherical Interface. Este protocolo nace
casi a principios de 1980 cuando Motorola lo comienza a introducir y
desarrollar en el primer microcontrolador derivado de la misma arquitectura del
microcontrolador 680000. SPI se ha convertido es uno de los más populares
protocolos para trabajar con comunicación serial debido a su velocidad de
transmisión, simplicidad, funcionamiento y también gracias a que
muchos dispositivos en el mercado como pantallas LCD, sensores, microcontroladores
pueden trabajar con el.
El SPI es un protocolo síncrono que trabaja en modo full dúplex para recibir y
transmitir información, permitiendo que dos dispositivos pueden
comunicarse entre sí al mismo tiempo utilizando canales diferentes o líneas
diferentes en el mismo cable. Al ser un protocolo síncrono el sistema
cuenta con una línea adicional a la de datos encarga de llevar el proceso de
sincronismo.
Dentro de este protocolo se define un maestro que será aquel
dispositivo encargado de transmitir información a sus esclavos. Los
esclavos serán aquellos dispositivos que se encarguen de recibir y enviar
información al maestro. El maestro también puede recibir información de
sus esclavos, cabe destacar. Para que este proceso se haga realidad
es necesario la existencia de dos registros de desplazamiento, uno para el
maestro y uno para el esclavo respectivamente. Los registros de
desplazamiento se encargan de almacenar los bits de manera paralela para
realizar una conversión paralela a serial para la transmisión de información.
Existen cuatro líneas lógicas encargadas de realizar todo el
proceso:
- MOSI
(Master Out Slave In):. Línea utilizada para llevar los bits que
provienen del maestro hacia el esclavo.
- MISO
(Master In Slave Out):. Línea utilizada para llevar los bits que
provienen del esclavo hacia el maestro.
- CLK
(Clock):. Línea proviniente del maestro encarga de enviar la señal de
reloj para sincronizar los dispositivos.
- SS
(Slave Select):. Línea encargada de seleccionar y a su vez, habilitar
un esclavo.
Se presenta una imagen donde se tienen todas estas líneas
con sus respectivos registros de desplazamiento y su dirección de flujo:
Existen cuatro modos en el cual se puede enviar información dependiendo de dos párametros basados en la señal de reloj. El primer de ellos es la polaridad y el segundo es la fase. Al tener dos parámetros donde cada uno puede tomar dos estados se tendrá entonces cuatro modos distintos de poder llevar a cabo el proceso de transmisión y envío de información.
- Modo
0: CPOL = 0 y CPHA = 0. Modo en el cual el estado del reloj permanece en
estado lógico bajo y la información se envía en cada transición de bajo a
alto, es decir alto activo.
- Modo
1: CPOL = 0 y CPHA = 1. Modo en el cual el estado del reloj permanece en
estado lógico bajo y la información se envía en cada transición de alto a
bajo, es decir bajo activo.
- Modo
2: CPOL = 1 y CPHA = 0. Modo en el cual el estado del reloj permanece en
estado lógico alto y la información se envía en cada transición de bajo a
alto, es decir alto activo.
- Modo
3: CPOL = 1 y CPHA = 1. Modo en el cual el estado del reloj permanece en
estado lógico alto y la información se envía en cada transición de alto a
bajo, es decir bajo activo.
Microcontroladores Motorola-Freescale: programación,
familias y sus distintas aplicaciones en la industria·Vesga Ferreira, Juan
Carlos Sinsel, Martin Muriel, Eduardo.
http://www.maximintegrated.com/app-notes/index.mvp/id/3947
Comentarios
Publicar un comentario