Sie sind auf Seite 1von 13

Sistemas Electrónicos Programables

Facultad de Ingeniería, Universidad de Deusto

Comunicación I2C y SPI


Introducción a I2C
 I2C (Inter-Integrated Circuit ) es un bus de comunicaciones
serie síncrona muy utilizado en la industria para la
comunicación entre µcontroladores y sus periféricos en
sistemas integrados.
 Utiliza únicamente dos líneas para trasmitir los datos (SDA) y la
señal de reloj (SCL).
 Necesitan resistencias pull-up, ya que los dispositivos sólo pueden forzar
al bus a ponerse a ‘0’.
 La línea de tierra debe ser común a todos los dispositivos (estar unida).
 Es bidireccional Half-Duplex y sigue el modelo maestro-esclavo.
Resistencias Pull-up
VDD Línea de datos
Coordinador Rp

de la red SDA
SDL

µC µC µC µC Línea de reloj
Master Slave Slave Slave

Sistemas Electrónicos Programables


Introducción a I2C (continuación…)
 Losdispositivos de un bus I2C tienen una dirección
única para cada uno, y pueden clasificarse como
maestros o como esclavos.
 El maestro es el que inicia la trasferencia de datos y
genera la señal de reloj.
 El esclavo espera a que un maestro se comunique con el
para generar la trasferencia.
 El
bus I2C es multimaestro, lo que quiere decir que
puede haber más de un maestro conectado y
controlando el bus.
 Existen mecanismos para evitar que dos maestros
comiencen una trasferencia de información al mismo
tiempo.

Sistemas Electrónicos Programables


Protocolo I2C
 Elprotocolo se puede estudiar por medio de bloques
funcionales:
S Condición de arranque (Start Condition).
P Condición de parada (Stop Condition).
R Condición de re-arranque (Restart Condition).
DATA Trasmisión de datos (Data Transfer).
A Condición de Acknoledge (Ack/Nack Condition).
 Escritura de un dato
Maestro S DIR (w) REG DATA P
Esclavo A A A
Indica que no se
 Lectura de un dato quieren leer más datos

Maestro S DIR (r) REG N P


Esclavo A A DATA

Sistemas Electrónicos Programables


Protocolo I2C (continuación…)
 Condición de arranque
 La genera un maestro y con ella ocupa el bus e indica
que va a comenzar una trasmisión de datos.
 Los esclavos la detectan y se ponen a la escucha.
 SDA se pone a nivel bajo cuando SCL está a nivel alto.

SDA

S
SCL

Comienza a generarse
Cuando nadie trasmite, las líneas SDA
la señal de reloj
y SCL están a nivel alto  bus libre

Sistemas Electrónicos Programables


Protocolo I2C (continuación…)
 Condición de parada
 La genera el maestro y con ella libera el bus e indica que
se ha finalizado la trasmisión de datos.
 SDA se pone a nivel alto cuando SCL está a nivel alto.

SDA

P
SCL

Finaliza la generación Las líneas SDA y SCL vuelven


de la señal de reloj a nivel alto  bus libre

Sistemas Electrónicos Programables


Protocolo I2C (continuación…)
 Condición de re-arranque
 La genera un maestro y con ello reinicia el bus.
 Se compone de una condición de parada seguida de una
condición de arranque.
Parada Arranque

SDA

R
SCL

Sistemas Electrónicos Programables


Protocolo I2C (continuación…)
 Transferencia de información
 Todos los datos están formados por 8 bits y la trasmisión
comienza con el bit de más peso.
 Todo byte debe ir acompañado de un bit de reconocimiento ACK.
 El dato es válido cuando la señal SCL está a nivel alto
 Entre un byte y el siguiente puede haber un tiempo ‘t’ de
espera para que uno de los dispositivo realice las operaciones
que corresponda.
Bit de más peso Bit de menos peso

SDA

DATA
SCL

Dato válido
Sistemas Electrónicos Programables
Protocolo I2C (continuación…)
 Validación:
 Es obligatorio, valida la trasferencia de un byte y se envía
en el siguiente pulso, como “9º bit”.
 El maestro genera un pulso se reloj, y el receptor pone a
nivel bajo la línea SDA durante dicho pulso.
 Si el receptor no pone la línea SDA a nivel bajo, el emisor
detecta un nivel alto y aborta la transferencia de información.

SDA 0  ACK
1  NACK
A
SCL

Sistemas Electrónicos Programables


Introducción a SPI
 SPI (Serial Peripheral Interface) es un bus de
comunicaciones serie síncrona usado para la
transferencia de información entre circuitos
integrados en equipos electrónicos.
 Utiliza 3 líneas para trasmitir (SDO), recibir (SDI) y para
generar la señal de reloj (SCK).
 La señal de reloj la genera uno de los dispositivos (el que actúa
de maestro).
 La línea de tierra debe ser común a todos los dispositivos (estar
unida).
 Permite comunicación Full-Duplex y utiliza el modelo
maestro-esclavo.

Sistemas Electrónicos Programables


Introducción a SPI (continuación…)
 Los dispositivos no tienen direcciones  se utiliza una
línea de control (CS  Chip Select) para cada circuito
integrado que tenga que ser controlado.
 La transferencia no se inicia con todos sino con un dispositivo
concreto activando (por nivel bajo) su correspondiente línea SS.
SCLK SCLK
Señal de reloj SDO SDI SPI
SPI Slave
común a todos Master
SDI
CS1#
SDO
CS#
CS2#
CS2# La SDO del
SCLK maestro se
SDI SPI
SDO Slave
conecta con la
CS# SDI del esclavo
CS1 selecciona el esclavo azul y viceversa
SCLK
CS2 selecciona el esclavo verde SDI SPI
SDO Slave
CS3 selecciona el esclavo marrón CS#

Sistemas Electrónicos Programables


I2C vs. SPI
 ¿Quéventajas y desventajas tienen estos dos buses
de comunicación?
 Ventajas

 Desventajas

Sistemas Electrónicos Programables


Esta presentación está sujeta a la licencia de Reconocimiento
de Creative Commons mediante la cual se permite la copia, la
distribución, la comunicación pública y la generación de obras
derivadas sin ninguna limitación siempre que se cite al autor y
se mantenga el aviso de la licencia.

© 2014, Jonathan Ruiz de Garibay


Algunos derechos reservados

Das könnte Ihnen auch gefallen