Documentos de Académico
Documentos de Profesional
Documentos de Cultura
manejar varios dispositivos secundarios La conexión directa usa una línea de selección
usando comunicaciones dúplex que operan a de chips para cada dispositivo secundario. La
velocidades de reloj de hasta 50 MHz. No usa mayoría de los microprocesadores posee tres o
un protocolo estándar y transfiere solo cuatro líneas de selección de chip. Esto limita
paquetes de datos, lo que la hace ideal para la cantidad máxima de dispositivos
transferir flujos de datos largos. secundarios al número de líneas de selección
de chip. En la mayoría de los casos, esto no
SPI usa un máximo de cuatro líneas de señal. resulta ser un problema, pero si un diseño
El dispositivo maestro, por lo general un requiere más dispositivos en el bus, se pueden
procesador o controlador, suministra y configurar algunos usando el enfoque
controla el reloj (SCK) y líneas de selección de encadenado. Con un encadenamiento, se usa
chip (CS). La operación multiplexor completa una selección de chips comunes para varios
se maneja a través de las líneas de datos Máster dispositivos secundarios y los datos se
Out Slave In (MOSI) y Master In Slave Out transfieren hacia afuera en una línea de datos
(MISO). En un maestro individual simple, con común. Una vez más, si se usa el modelo de
configuración del dispositivo secundario los dispositivos secundarios SPI como un
individual, la línea de selección de chip puede registro de turnos, los datos de los dispositivos
eliminarse y se puede forzar la entrada de CS secundarios se propagan en un flujo
al dispositivo secundario al estado lógico multiplexado serial.
habilitado. Si el dispositivo secundario solo
puede enviar datos (comunicación B. Modos de cronómetro de la SPI
semidúplex), luego la línea MOSI también El maestro controla y genera el reloj. Los dos
puede eliminarse, y así reducir el conteo de atributos de reloj son la polaridad del reloj
señales adicionalmente. Los datos salen a (CPOL) y la fase de reloj (CPHA). Estos
través de la señal del reloj de tal forma que la controlan el borde del reloj activo, donde se
transferencia de datos se asemeja a un registro cronometra el dispositivo secundario en
de turnos con un bit cambiado para cada reloj. relación con los datos. CPOL = 0 establece el
reloj en inactivo a una lógica 0. CPOL = 1
presenta el reloj inactivo en la lógica 1. CPHA
= 0 establece los datos en el reloj en el borde
principal, y CPHA = 1 establece los datos en
el reloj en el borde de rastreo
Imagen 1. La conexión dúplex SPI básica usa dos
líneas de datos (MOSI, MISO), una línea de reloj (SCK)
y una línea de selección de chip (CS).
variedad de sensores que ofrecen datos 127 dispositivos esclavos con esas dos líneas,
digitales a través de SPI. Por ejemplo, el con hasta velocidades de 100, 400 y 1000
sensor de temperatura digital TC77- kbits/s. También es conocido como IIC ó TWI
3.3MCTTR de Microchip Technology es un – Two Wire Interface.
sensor de temperatura digital de acceso serial
previsto para aplicaciones de bajo costo y El protocolo I2C es uno de los más utilizados
factor de forma pequeño. El TC77 cubre un para comunicarse con sensores digitales, ya
rango de temperatura de -55 °C a +125 °C. que a diferencia del puerto Serial, su
Funciona con un suministro de 2,7 voltios a arquitectura permite tener una confirmación
5,5 voltios, emite 250 microamperios (µA) de los datos recibidos, dentro de la misma
durante su funcionamiento y tiene un modo de trama, entre otras ventajas.
apagado de baja energía disponible que emite
1 µA. La conexión de tantos dispositivos al mismo
bus es una de las principales ventajas. Además,
En una aplicación típica, el sensor de si comparamos a I2C con otro protocolo serial,
temperatura se conecta al procesador a través como Serial TTL, este incluye más bits en su
de una conexión SPI estándar. Sus datos de trama de comunicación que permite enviar
temperatura tienen el siguiente formato: una mensajes más completos y detallados.
palabra digital de 13 bits, tal como se muestra
en la siguiente figura. Los mensajes que se envían mediante un
puerto I2C, incluye además del byte de
información, una dirección tanto del registro
como del sensor. Para la información que se
envía siempre existe una confirmación de
recepción por parte del dispositivo. Por esta
Imagen 4. El TC77 de Microchip Technology es un razón es bueno diferenciar a los distintos
sensor de temperatura fácil de usar que es pequeño y de elementos involucrados en este tipo de
bajo costo.
comunicación.
La figura muestra un diagrama de
temporización de una operación de lectura del
E. I2C – Esquema de comunicación y
registro de temperatura de T77. La
elementos.
comunicación se inicia mediante la activación
de la línea CS al llevarla a una lógica 0. El
Siempre que hablamos de una comunicación
sensor transmite luego el primer bit de datos.
oral, se entiende que es entre dos o más
El microcontrolador lee los datos en el borde
personas. Como consecuencia podemos
creciente de SCK. El borde decreciente de
también indicar que en una comunicación
SCK se usa luego para expulsar el resto de los
digital existen distintos dispositivos o
datos del sensor. Esta es una transferencia del
elementos. En el caso de I2C se diferencian
Modo 1 como el ejemplo anterior, pero con
dos elementos básicos, un MAESTRO y un
una palabra de datos más larga.
ESCLAVO. La Figura-1, muestra una
conexión típica de tres dispositivos, el bus
D. ¿Qué es I2C?
consiste en dos líneas llamadas, Serial DAta –
SDA y Serial CLock – SCL. Es decir, Datos
I2C es un puerto y protocolo de comunicación
Seriales y Reloj Serial. En particular al bus se
serial, define la trama de datos y las
le conectan dos resistencias en arreglo pull-up,
conexiones físicas para transferir bits entre 2
de entre 2.2K y 10K.
dispositivos digitales. El puerto incluye dos
cables de comunicación, SDA y SCL.
Además, el protocolo permite conectar hasta
LABORATORIO DE REDES DE COMUNICACIÓN INDUSTRIAL
Comunicación SPI entre sensor y Arduino
Docente: William Salamanca Becerra
• Inicio ó Start – S
• Parada – P
Imagen 5. Conexión de tres dispositivos a un bus de • Confirmación – ACK
comunicación I2C. • NoConfirmación – NACK
El MAESTRO I2C se encarga de controlar al • Lectura-/Escritura – L/W
cable de reloj, por sus siglas en inglés llamada • 7 bits para la dirección del dispositivo
SCL – Serial CLock. Además, el MAESTRO esclavo/maestro
se encarga de iniciar y parar la comunicación. • 8 bits de dirección (para algunos
La información binaria serial se envía sólo por sensores pueden ser 16 bits)
la línea o cable de datos seriales, en inglés se
• 8 bits de datos
llama SDA – Serial DAta. Dos Maestros no
pueden hacer uso de un mismo puerto I2C. El conjunto de estos bits y su orden va
Puede funcionar de dos maneras, como
formando distintas tramas de comunicación.
maestro-transmisor o maestro-receptor. Sus
Existen distintos modos de comunicación
funciones principales son:
dependiendo del arreglo de estos bits. Tanto el
maestro como el esclavo pueden o no generar
• Iniciar la comunicación – S los bits anteriores, según los modos de
• Enviar 7 bits de dirección – ADDR comunicación.
• Generar 1 bit de Lectura ó Escritura – R/W
• Enviar 8 bits de dirección de memoria El puerto I2C está disponible si las dos líneas,
• Transmitir 8 bits de datos – SDA y SCL están en un nivel lógico alto.
• Confirmar la recepción de datos – ACK –
ACKnowledged G. I2C – modos de comunicación
• Generar confirmación de No-recepción,
NACK – No-ACKnowledged Los modos de comunicación en I2C se refieren
• Finalizar la comunicación a las distintas tramas que pueden formarse en
el bus. Estas tramas o modos dependen de, por
El ESCLAVO I2C, generalmente suele ser un ejemplo, si queremos leer al sensor esclavo, o
sensor. Este elemento suministra de la si lo queremos configurar. Existen
información de interés al MAESTRO. Puede principalmente dos modos de comunicación:
actuar de dos formas: esclavo-transmisor ó
esclavo-receptor. Un dispositivo I2C esclavo, • Maestro-Transmisor y Esclavo-
no puede generar a la señal SCL. Sus Receptor. Este modo se usa cuando se
funciones principales son: desea configurar un registro del
esclavo I2C.
• Enviar información en paquetes de 8 bits. • Maestro-Receptor Y Esclavo-
• Enviar confirmaciones de recepción, Transmisor. Se usa cuando queremos
llamadas ACK leer información del sensor I2C.
LABORATORIO DE REDES DE COMUNICACIÓN INDUSTRIAL
Comunicación SPI entre sensor y Arduino
Docente: William Salamanca Becerra
realizar con éxito, el sensor elegido debe poder bits más bajos. Combina estos dos en un solo
comunicarse por SPI, y además se debe entero largo desplazando bit los bits altos y
conocer sobre este. En nuestro caso, el sensor luego usando un OR bit a bit para combinarlos
utilizado es un SCP1000, el cual puede leer con los 16 bits inferiores. La humedad real en
tanto la presión del aire como la temperatura e pascales es el resultado de 19 bits dividido por
informarlas a través de la conexión SPI. En 4. A continuación se muestra el código de la
condiciones ideales, es capaz de medir lectura de la presión y temperatura usando el
presiones de una capa de aire de 9 centímetros sensor SCP1000 con Arduino mediante
y está pensado para mediciones tales como en comunicación SPI.
altímetros, por ejemplo, con un gran rango de
temperaturas de funcionamiento que van
desde -20 a 70 grados centígrados. La
calibración y compensación se realiza
internamente, por lo que siempre
dispondremos de una medición precisa. El
sensor se controla mediante un bus SPI y su
consumo puede ser de apenas 4
microamperios. El esquemático del sensor con
el Arduino se presenta a continuación:
E. Conexión física
V. CONCLUSIONES
• La SPI satisface la necesidad de
una interfaz de baja sobrecarga
simple y de bajo costo en
aplicaciones en las que la fuente
LABORATORIO DE REDES DE COMUNICACIÓN INDUSTRIAL
Comunicación SPI entre sensor y Arduino
Docente: William Salamanca Becerra
VI. BIBLIOGRAFIA