|
|
Introducción al Protocolo de comunicación I2c Última modificación: 17 de septiembre de 2017El Protocolo I2c El protocolo de Circuito Inter-Intégrate (I2C) es un protocolo diseñado para permitir conectar y gestionar con un mismo cable de 2 hilos, múltiples componentes "esclavos” para comunicarse con uno o más “maestros”. Sólo requiere dos cables de señal (SCL y SDA) para el intercambio bidireccional de información. Esta norma o protocolo se llama Inter Integrated Circuits bus, o IIC o I2c. Sus principales características son: Para montar un sistema electrónico funcionando con un microprocesador (o Tarjeta con microprocesador como lo es una Tarjeta Arduino), existen muchos componentes comerciales disponibles (sensores, pantallas, teclados, …), los cuales pueden asociarse al sistema bajo 3 principales tipos de conexiones y protocolo de comunicación: UART, SPI, I2c
Conocer la dirección I2c de un componente: Cada componente que conectamos al un sistema I2C tiene una dirección única, y cada mensaje y orden que transmitimos, lleva anexa esta dirección, indicando cuál de los muchos posibles, es el receptor del mensaje. Esto implica que debemos saber la dirección del componente. Lo normal es comprobar la información técnica del fabricante del componente, que proporciona la dirección por defecto. En caso de duda sobre una dirección I2c de un componente, podemos interrogarla median un programa de interrogación de dirección de un componente I2c, damos este programa de interrogación de dirección I2c para interrogar la dirección de un Módulo Interfase I2c PCF8574 utilizado para la Tarjeta MeccaNano Ejemplo de mensaje que da este programa:
Los diferentes protocolos de comunicación en Arduino: UART Universal Asinchronous Receiver-Transmitter (recepción-transmisión asíncrona universal). En este protocolo, se utilizan dos líneas (pines / cables): una línea para transmitir los datos y otra para recibir los datos. 8 bits de datos son transmitidos de la siguiente forma: un bit de inicio, a nivel bajo, 8 bits de datos y un bit de parada a nivel alto. UART se diferencia de SPI y I2C en que es asíncrono a contrario de los otros que son sincronizados con señal de reloj. La velocidad de datos UART está limitado a 2Mbps
SPI Serial Peripheral Interface (interfaz de serial Periférico). Es otro protocolo serie muy simple. Un maestro envia la señal de reloj, y tras cada pulso de reloj envía un bit al esclavo y recibe un bit de éste. Los nombres de las señales son:
I2C es un protocolo síncrono. I2C usa solo 2 cables, uno para el reloj (SCL) y otro para el dato (SDA). Esto significa que el maestro y el esclavo envían datos por el mismo cable, el cuál es controlado por el maestro, que crea la señal de reloj. I2C no utiliza selección de esclavo, sino que cada esclavo tiene una dirección única que permite diferenciarlo de los demás esclavos. La velocidad es de 100 kbit/s en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s
Buenas referencias: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-4/
|
|