Sunteți pe pagina 1din 18

1

SPI
(Serial Peripheral Interface)
Luis Romano Tllez 1-6
Jos Eduardo Ramrez Alonso 7-9
Vicente Torres Mendoza 10-13
Toms Orozco Urbieta 14-17

Qu es el SPI?

Es

un estndar de comunicaciones creado por Motorola, usado principalmente para


la transferencia de informacin entre circuitos integrados en equipos electrnicos,
cada dispositivo puede actuar como transmisor y receptor al mismo tiempo.
El

bus SPI es un modulo para controlar casi cualquier dispositivo electrnico tal que
acepte un flujo de bits regulado por un reloj, dato entrante, dato saliente y un pin de
chip select, que conecta o desconecta la operacin del dispositivo con el que uno
desea comunicarse. De esta forma, este estndar permite multiplexar las lneas de
reloj.
Tiene mayor velocidad de transmisin que IC( Inter-Integrated Circuit ) o SMBus. Su
implementacin en hardware es simple, aunque no permite control de flujo y slo
funciona en las distancias cortas.

El

SPI es un bus de 3 lneas para transferencia de informacin de 8 bits,


los dispositivos conectados al bus pueden actuar como transmisor o
receptor al mismo tiempo (Full-Duplex).
Dos

Los

de las lneas transfieren datos y la tercera es la que maneja el reloj

dispositivos conectados se caracterizan por ser Maestro y Esclavo, el


Maestro es el que inicia la transferencia de datos y genera seales de reloj
y control

El

Esclavo es el dispositivo controlado por el Maestro; es controlado sobre


el bus por una de las lneas selectoras (usualmente solo poseen una lnea
selectora Select Slave) y slo se activa cuando esta lnea es seleccionada.
En

un tiempo determinado solo habr un Maestro sobre el bus, mientras


cualquier otro dispositivo se debe deshabilitar a travs de su lnea selectora.

Transmisin de Datos
Para comenzar la
comunicacin, el
maestro primero
configura el reloj, con
una frecuencia menor
o igual a la frecuencia
mxima que soporta
el dispositivo esclavo.
El maestro activa el
seleccionador de
esclavo del chip
deseado; si un
periodo de espera es
necesario, el maestro
debe esperar ese
periodo antes de
comenzar a emitir los
ciclos de reloj.

Todas las transmisiones del bus se hacen sobre


una direccin:
SCLK (Clock): generada por el maestro y sincroniza la
transferencia de datos.
MOSI (Master Output Slave Input): transporta los datos del
maestro hacia el esclavo
MISO (Master Input Slave Output): transporta los datos del
esclavo hacia el maestro
SS/Select: Para seleccionar un Esclavo, o para que el
Maestro le diga al Esclavo que se active.

Seales del sistema SPI


SCLK: reloj serial
Es una entrada al dispositivo esclavo, generada por el maestro y sincroniza el
movimiento de datos dentro y fuera de las lneas MISO y MOSI.Los dispositivos
maestro y esclavo pueden cambiar un byte de informacin durante una secuencia de
8 ciclos de reloj.

MISO: Entrada del maestro / salida del esclavo


MISO es una de dos seales unidireccionales seriales de datos es una entrada a un
dispositivo maestro y es una salida de un dispositivo esclavo la lnea MISO de un
dispositivo esclavo es puesta en un estado alto de impedancia si el dispositivo
esclavo no est seleccionado.

MOSI: Salida del maestro /entrada del esclavo


La lnea MOSI es una salida del maestro y es una entrada del esclavo. El dispositivo
maestro pone datos sobre la lnea MOSI medio ciclo antes del final del flanco de reloj que
usa el dispositivo esclavo para tomar el dato.

SS: Seleccin esclavo


La entrada de seleccin esclavo (SS-) de un esclavo debe ser externamente activada
antes de que un maestro pueda intercambiar datos con el esclavo. SS- debe ser baja
permitiendo transacciones de datos y debe permanecer baja por la duracin de la
transaccin. La lnea SS- de un maestro debe ser alta. Si sta fuera a bajo, una bandera
de error de modo de falla (MODF) es puesta a 1 en el registro de estado perifrico serial
(SPSR).

Cada

esclavo es elegido por un nivel lgico bajo por el Slave Select, y su velocidad de
transmision puede ser de 1 Mbit/seg; se transfieren en bloques de 8 bits, el ms
significativo se envia primero.
Las

interfaces SPI tienen 2 bits de configuracin CPOL (Clock Polarity) determina si el


estado del Idle esta en alto o en bajo y CPHA (Clock Phase) determina en que flanco de
reloj los datos son desplazados.
Cada

bit tiene 2 estados, con 4 combinaciones posibles y si desean comunicarse entre si


deben tener la misma CPOL y CHPA.

Eleccin Slave/Mster
Obviamente

la primera eleccin es decidir si el PIC ser el mster o un dispositivo Slave


en la comunicacin. Los contenidos de los 4 bits mas bajos de SSPCON1 determinan
esta eleccin. Sus posibles valores son:
Opciones modo mster:
0011 == clock = TMR2/2
0010 == clock = TMR2/64
0001 == clock = TMR2/16
0000 == clock = TMR2/4
Opciones modo Slave:
0101 == No se usa SS
0100 == Se usa SS

10

11
Como

se ve el primer bit (SSPCON1, SSPM3)es siempre 0 para ambos modos


(esto sucede porque al estar compartiendo el puerto SSP, estos cuatro bits
tambin son usados para la configuracin de modo i2C).
El

segundo bit (SSPCON1, SSPM2) determina si el dispositivo es mster (0) o


Slave (1).
El

modo mster los dos ltimos bits (SSPCON1, SSPM1 y SSPCON, SSPM0)
determinan las cuatro posibles frecuencias del reloj. La frecuencia del reloj ser
una fraccin (4, 16, 64) del oscilador principal o puede asociarse al ritmo del
Timer2.
Si

hemos escogido el modo Slave, los bits restantes determinan si usaremos o


no el pin dedicado para SS (Slave select).
Si

vamos a ser un dispositivo Slave ya no hay nada mas que configurar. Lo


nico recomendable es hacer SSPSTAT, SMP = 0 aunque no es estrictamente
necesario ya que ese es su valor por defecto.
En

cambio, si nuestro dispositivo va a actuar como Mster debemos configurar


el modo SPI en el que vamos a trabajar.

Modos del SPI

12

Modo Master:
Solamente un SPI master inicia la transmisin.
Los datos son desplazados hacia afuera a travs de la lnea Master Out
Stave In (MOSI).
Los datos son desplazados hacia adentro a travs de la lnea Master In
Stave Out (MISO).
La transmisin finaliza despus de 8 ciclos del serial clock (SPSCK), ya
que se trata de una transmisin serial sincronizada con el Clock generado
por el master y cada dato esta sincronizado con dicho clock.

13

Modo Slave:
Los datos son desplazados hacia afuera a travs de la lnea Master In
Slave Out (MISO).
Los datos son desplazados hacia adentro a travs de la lnea Master Out
Stave In (MOSI).
Transferencia sincronizada al serial clock (SPSCR) desde el Master.

14

En el SPI tambin se puede configurar la polaridad y la fase del reloj, permitiendo al


SPI comunicar con la mayora del perifricos serie. Se puede configurar el SPI para
generar dos eventos de interrupcin separados: transmisor vaco y receptor lleno.
Cada interrupcin tiene un vector separado que permite transferencias eficaces.
Existen cuatro modos de reloj definidos por el protocolo SPI, estos modos
son :

Modo A

Modo B

Modo C

Modo D

Estos determinan el valor de la polaridad del reloj (CPOL = Clock Polarity) y el bit
de fase del reloj (CPHA = Clock Phase). La mayora de los dispositivos SPI
pueden soportar al menos 2 modos de los 4 modos.

15
El BIT de Polaridad del reloj determina el nivel del estado de Idle del reloj y el BIT de Fase
de reloj determina que flanco recibe un nuevo dato sobre el bus. El modo requerido para una
determinada aplicacin, esta dado por el dispositivo esclavo. La capacidad de multi-modo
combinada con un simple registro de desplazamiento hace que el bus SPI sea muy verstil.
Polaridad del reloj (CPOL=Clock Polarity)
-Si CPOL esta en un 0 lgico y ningn dato esta siendo transferido(Estado Idle), el maestro
mantiene la lnea SCLK en bajo.
-Si CPOL esta en un 1 lgico, el maestro desocupa la lnea SCLK alta.
Fase Del Reloj (CPHA)
CPHA, conjuntamente con CPOL, controlan cuando los nuevos datos son colocados en el
bus. Si CPHA es 1 lgico, los datos son desplazados sobre la lnea MOSI segn lo
determinado
por
el
valor
de
CPOL.

Ventajas
Comunicacin
Mayor

velocidad de transmisin que con PC o SMBus

Protocolo
No

flexible en que se puede tener un control absoluto sobre los bits transmitidos.

esta limitado a la transferencia de bloques de 8 bits

Eleccin
Su

Full Dplex

del tamao de la trama de bits, de su significado y propsito

implementacin en hardware es extremadamente simple

Consume

menos energa que PC O que SMBus debido a que posee menos circuitos (incluyendo
las resistencias pull-up) y estos son mas simples
No

es necesario arbitraje o mecanismos de respuesta ante fallos.

Los
No

dispositivos clientes usan el reloj que enva el servidor, no necesitan por tanto su propio reloj

es obligatorio implementar un transceptor (emisor y receptor), un dispositivo conectado puede


configurarse para que solo envi, solo reciba o ambas cosas a la vez.

17

Desventajas
Consume

mas pines que cada chip que I2C, incluso en la variante de 3 hilos

El

direccionamiento se hace mediante lneas especificas (sealizacin fuera


de banda) a diferencia de lo que ocurre en I2C que selecciona cada chip
mediante una direccin de 7 bits que se enva por las mismas lneas del bus
No

hay control de flujo por hardware

No

hay seal de asentamiento. El servidor podra estar enviando informacin


sin que estuviese conectado ningn cliente y no se dara cuenta.
No

permite fcilmente tener varios servidores conectados al bus

Solo

funciona en las distancias cortas a diferencia por ejemplo, de RS-232,


RS-485

18

S-ar putea să vă placă și