¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Arduino
  3. Las interfaces de comunicación
Extrait - Arduino Aprender a desarrollar para crear objetos inteligentes
Extractos del libro
Arduino Aprender a desarrollar para crear objetos inteligentes Volver a la página de compra del libro

Las interfaces de comunicación

Presentación de las interfaces

La comunicación es una parte importante de la informática. Permite a dos componentes poder compartir información y funcionar de manera conjunta. Normalmente, estos intercambios de información se realizan en forma de bits y se transportan mediante cables o cables dedicados, llamados « bus ». Esto presenta un problema principalmente a nivel de la sincronización. El emisor envía una serie de bits sin interrupción, que tiene sentido para él, pero el receptor no es capaz necesariamente de entender o descifrar la información que recibe. Esto es porque existen dos grandes métodos de comunicación en informática. Las tarjetas Arduino disponen de algunas interfaces de comunicación, que se basan en estos dos métodos. Este capítulo presenta estas interfaces y la manera de implementarlas.

1. Unión asíncrona

La comunicación asíncrona se basa en un principio sencillo. Solo el emisor dispone del tiempo de reloj. Debe indicar al destinatario el inicio y el fin de la información que desea enviar, generalmente envía los bits llamados bit START y bit STOP. Estos bits de control permiten sincronizar el receptor con el emisor.

Este método es muy sencillo de implementar porque generalmente requiere pocos componentes. Un único cable permite gestionar la información y el tiempo...

Comunicación Serial

1. Principio de comunicación

La comunicación Serial es el método más utilizado en el entorno Arduino. También llamada UART por Universal Asynchronous Receiver/Transmitter, se trata, como su nombre indica, de una unión asíncrona. Se puede utilizar para realizar el enlace entre un Arduino y un ordenador u otros aparatos. Además, por este puerto se realiza la visualización de los datos en un ordenador cuando los dos se conectan entre sí.

Todas las tarjetas Arduino tienen, al menos, un puerto de tipo Serial, situado en el conector 0 para la recepción de datos (RX) y el conector 1 para la emisión (TX). Estos dos conectores también se utilizan por el convertidor USB-Serie para comunicar por el puerto USB cuando se transfiere un nuevo programa a la tarjeta, por ejemplo. Esto significa que estos conectores no se podrán utilizar mientras que la tarjeta Arduino está conectada a un ordenador. De la misma manera, mientras que estos conectores se utilizan para una comunicación, no funcionan como conectores digitales. Para interfasar en serie dos dispositivos es necesario conectar estos puertos de manera inversa, es decir, conectar el TX de un aparato al RX del otro e inversamente.

images/01Ar07.png

Figura 1: Conexión de dos Arduino por la unión en serie

Algunas tarjetas Arduino tienen otros puertos de comunicación Serial. Es principalmente el caso de Arduino Mega 2560, que tiene tres: Serial 1 en los conectores 19 (RX) y 18 (TX), Serial 2 en los conectores 17 (RX) y 16 (TX), Serial 3 en los conectores 15 (RX) y 14 (TX). Estos conectores no tienen convertidor USB-serie y no se pueden utilizar como tales. Por tanto, no se asignan durante la comunicación con un ordenador. Como con el puerto en serie estándar, no se pueden utilizar como conectores digitales cuando sirven de puertos de comunicación.

Pero tener que cambiar de tarjeta por falta de puertos de comunicación puede no ser la mejor opción. Es posible utilizar una librería propia del entorno de programación Arduino. La librería SoftwareSerial permite simular el comportamiento hardware, que permite realizar una comunicación en serie. Estos puertos de comunicación simulados están, sin embargo, sometidos a algunas restricciones que se verán en la siguiente sección.

2. Librería Serial...

Comunicación I2C

1. Principio de comunicación

La comunicación I2C (o Inter-Intergrated Circuit), es un protocolo de comunicación inventado en el año 1982. Se trata de un modo de comunicación síncrona, en el que uno o varios aparatos llamados "maestros" hablan con uno o varios aparatos llamados "esclavos". Los aparatos maestros generalmente son los microcontroladores, mientras que los aparatos esclavos son los circuitos que contienen captadores. Es posible tener varios maestros en esta comunicación, pero es más sencillo y lógico utilizar solo uno. Solo se tratará este caso en las siguientes líneas.

Esta comunicación se realiza mediante dos cables, un cable que gestiona la señal de reloj y un segundo cable con la información. En las comunicaciones I2C, siempre hablan un maestro y un esclavo. Las conversaciones de maestro a maestro o de esclavo a esclavo no están permitidas.

Este protocolo de comunicación funciona con dos cables. El primer cable, SCL o Serial Clock Line (línea de reloj), gestiona la señal de reloj. Se administra por un maestro y los intercambios se sincronizan con esta señal. El segundo cable, SDA o Serial Data Line (línea de datos en serie), gestiona la señal de datos. Este cable funciona de manera bidireccional; todos los participantes en la comunicación envían datos por medio de este cable. Cada uno de los esclavos dispone de una dirección que permite identificarlo. Esta identificación es la que permite a múltiples participantes comunicarse con un único cable.

images/07rit1.PNG

Figura 3: Comunicación I2C

Estas direcciones de identificación están codificadas en 7 bits. Esto significa que puede haber hasta 128 participantes conectados de manera simultánea a este mismo puerto de comunicación.

Solo un aparato maestro puede inicializar una comunicación. Los aparatos esclavos solo pueden transmitir datos cuando un maestro emite una consulta. Cada byte transmitido por un participante está seguido de un bit de acuse de recibo enviado por el destinatario, que significa la correcta recepción del dato e indica su disponibilidad para recibir más datos.

La velocidad estándar de transferencia de datos en este puerto de comunicación es de 100 kbits por segundo, pero esta velocidad...

Comunicación SPI

1. Principio de comunicación

La comunicación SPI (Serial Peripheral Interfaz, o interfaz en serie para periféricos), se parece a la comunicación I2C. También se trata de una comunicación síncrona, en la que la señal de reloj se comparte por todos los usuarios. Esta señal se emite por un maestro. Se trata, una vez de más, de un método de comunicación maestro-esclavo. Es diferente de la comunicación I2C, porque no funciona con un sistema de direccionamiento. Cada esclavo dispone de una entrada SS que le permite ser seleccionado por el maestro. Una vez que se selecciona el esclavo, la conversación puede empezar entre los dos participantes. Puede haber esclavos en una comunicación SPI siempre que el microcontrolador maestro disponga de conectores de salida digital.

images/05Ar07.png

Figura 5: Puertos de una comunicación SPI

El bus SPI está formado por cuatro cables y el cable SCLK, que gestiona la señal de reloj. Esta señal la emite el aparato maestro. El resto  de aparatos están cableados a esta señal para sincronizarse. El cable MOSI o Master Out, Slave In (salida maestro, entrada esclavo) sirve para la comunicación del maestro al esclavo. Este sentido de comunicación es único, es decir que funciona en modo salida para el maestro y en modo entrada para el esclavo. El cable MISO o Master In, Slave Out (entrada...