Cómo conectarse eficazmente a los sensores en los puntos finales del IoT utilizando la comunicación de 1 hilo
Colaboración de Editores de DigiKey de América del Norte
2021-06-17
Aunque es habitual que los puntos finales del Internet de las cosas (IoT) y del IoT industrial (IIoT) tengan zonas de control localizadas, algunos necesitan conectarse a sensores simples que están a más de un metro de distancia de la ubicación del microcontrolador anfitrión. Tradicionalmente, se utilizan interfaces serie SPI o I²C para comunicarse fácilmente con estos sensores. Sin embargo, a medida que los algoritmos de control se vuelven más complicados y es necesario desplegar más sensores, el microcontrolador debe utilizar más líneas SPI e I²C para llegar a estos sensores. Esto aumenta la complejidad del cableado, lo que incrementa los costos de configuración y mantenimiento, sobre todo a medida que aumentan las distancias.
Este artículo mostrará a los desarrolladores cómo utilizar el protocolo 1-Wire de Maxim Integrated para conectarse de forma rentable a los sensores IoT utilizando sólo un cable más la tierra. Se discutirán las ventajas del protocolo 1-Wire, incluyendo la ampliación significativa del alcance del sensor y el suministro de energía y datos a través de los mismos cables. A continuación, presentará un dispositivo puente que convierte las señales 1-Wire en SPI o I²C y un kit de desarrollo con software para ayudar a los diseñadores a empezar.
Expansión del uso de sensores IoT e IIoT
La expansión de las redes de IoT e IIoT consiste en hacer que los sistemas y los procesos de fabricación sean más eficientes al tiempo que se amplía su funcionalidad. Se trata de recoger datos mediante sensores. Mientras que un hogar puede tener un termostato en una habitación que contiene un sensor de temperatura, un edificio automatizado o una red IIoT puede colocar muchos sensores de temperatura y humedad en una habitación y en todo el edificio o instalación. Por ejemplo, se pueden colocar sensores adicionales en los conductos de calefacción, ventilación y aire acondicionado (HVAC) junto a los sensores de presión. Los sistemas de seguridad también pueden utilizar diferentes tipos de sensores, y también pueden estar colocados en varios lugares.
En los sistemas de fabricación y de cintas transportadoras también está aumentando el uso de sensores para la supervisión de los procesos y el registro de datos para el análisis de cómo, por ejemplo, ahorrar energía haciendo que los sistemas sean más eficientes, al tiempo que se mejora la seguridad.
Los sensores más comunes para estas aplicaciones son los ambientales, que incluyen la temperatura, la humedad y la presión; los sensores visuales, que incluyen la luz visual y los sensores de proximidad de capacitancia; y los sensores de posición, que incluyen los acelerómetros de sistemas microelectromecánicos (MEMS), los giroscopios MEMS y los sensores de vibración. La miniaturización y los avances en las tecnologías MEMS han dado lugar a sensores en paquetes más pequeños que una uña del pulgar que sólo consumen unos cientos de miliamperios (mA). La mayoría de estos sensores son fácilmente accesibles mediante una interfaz de comunicación SPI o I²C, ambas presentes en casi cualquier microcontrolador. Cuando se interconecta con estos sensores simples, puede ser poco práctico construir todo un punto final de IoT o IIoT o un nodo hijo para solo tomar muetras de la temperatura, por lo que a menudo es más simple y más rápido sólo ejecutar las líneas de comunicación SPI o I²C directamente a ellos.
En algunos casos, se siguen utilizando sensores analógicos, como los termopares de alta temperatura y algunos sensores de presión. En estos casos, el microcontrolador interactúa con un convertidor analógico-digital (ADC) SPI o I²C en la ubicación del sensor que muestrea el sensor analógico localmente. Así se evitan las caídas de tensión en las líneas de los sensores analógicos y se mejora la precisión.
Interfaz con sensores remotos SPI e I²C
Un microcontrolador se comunica con estos sensores ampliando el alcance de las líneas de datos SPI e I²C. Sin embargo, I²C está limitado a un rango de un metro o menos, y SPI tiene limitaciones similares. Además, el SPI full-duplex requiere cuatro pines, incluyendo una selección de periférico individual para cada uno. Como resultado, para llegar a cuatro periféricos SPI en un bus se necesitan siete pines, más la alimentación y la tierra, para un total de nueve pines. El I²C semidúplex requiere dos pines, más la alimentación y la tierra, para el periférico, para un total de cuatro líneas. Al mismo tiempo, las numerosas señales de alta velocidad aumentan las interferencias electromagnéticas (EMI), que pueden generar interferencias cruzadas, lo que da lugar a una reducción de la integridad de la señal y a una menor fiabilidad del sistema.
Lo que se necesita es una solución que minimice el cableado de alimentación y datos y simplifique el funcionamiento manteniendo la compatibilidad con los sensores I²C y SPI existentes.
Para resolver el problema de la conexión a sensores remotos a grandes distancias y reducir el número de cables, Maxim Integrated ha desarrollado un protocolo 1-Wire que se conecta a la mayoría de los sensores SPI o I²C utilizando un solo cable, más una toma de tierra. El protocolo reduce el número de seis hilos de SPI y los cuatro utilizados por I²C, a sólo dos hilos que transportan tanto datos como energía hasta 100 metros (m).
Aplicación de 1 hilo
Cuando se utiliza 1-Wire, el sensor remoto tiene un puente de comunicaciones de 1-Wire que convierte el protocolo de 1-Wire en señales SPI o I²C compatibles que interactúan con el sensor. Tanto el puente de 1 hilo como el sensor se alimentan parasitariamente sólo con la señal de 1 hilo más una línea de tierra. Esto permite que las señales de 1-Wire se encaminen en áreas pequeñas, ahorrando costes al utilizar menos cable.
Mientras que tanto SPI como I²C utilizan una señal de reloj dedicada, 1-Wire incorpora el reloj con la señal de datos. SPI se dirige a un periférico en particular utilizando una señal de selección separada para cada periférico, mientras que I²C utiliza una dirección de bus de 7 bits transmitida a lo largo de la línea de datos; en comparación, 1-Wire utiliza una dirección de 56 bits que está cableada en cada puente de comunicación individual. Este rango de direccionamiento más amplio no solo aumenta el número de periféricos únicos en un bus, sino que también incrementa la seguridad al hacer más difícil para un atacante adivinar la dirección de un periférico en el bus 1-Wire.
El tamaño de la palabra en un bus periférico de 1 hilo es de 8 bits. Un microcontrolador anfitrión de bus 1-Wire puede bit-bang el protocolo 1-Wire, pero también es apoyado por un simple controlador UART. Esto permite que incluso un microcontrolador de 8 bits sea un host de bus de 1 bit. Un bus de 1 bit puede contener periféricos SPI o I²C, pero no ambos. Esta coherencia evita conflictos y colisiones en el bus y simplifica la programación con el protocolo.
Soluciones 1-Wire en el mundo real
Para los diseñadores que buscan una interfaz con un periférico SPI o I²C a través de un bus de 1 hilo, Maxim Integrated ofrece el puente DS28E18Q+T de 1 hilo a I²C/SPI con secuenciador de comandos (Figura 1).
Figura 1: El puente DS28E18Q+T 1-Wire-to-I²C/SPI con secuenciador de comandos se conecta a los pines IO y GND de un bus 1-Wire. (Fuente de la imagen: Maxim Integrated)
En referencia a la Figura 1, la energía parásita se extrae del bus cuando la ES es alta y se pone a disposición en el pin SENS_VDD para alimentar el periférico. El puente almacena en búfer y traduce los comandos 1-Wire en los comandos I²C o SPI apropiados.
El pin IO y GND se conectan al bus 1-Wire y se envían al front-end con su máquina de estado. Cada dispositivo se identifica mediante un ID de ROM de 56 bits, precedido de un código de familia de 8 bits y 1 hilo que designa la revisión del DS28E18Q+T. Esto permite una identificación única de un DS28E18Q+T específico por parte del firmware del microcontrolador, lo que le permite ser lo suficientemente flexible para abordar cualquier cambio en la familia de dispositivos. Hay un número de serie único de 48 bits para el dispositivo con un código de comprobación de redundancia cíclica (CRC) de 8 bits.
El front-end envía los datos traducidos al secuenciador de comandos utilizando un buffer de comandos de 144 bytes que incluye 128 bytes de datos del bus ES y 16 bytes para uso interno. El secuenciador de comandos procesa los comandos y puede almacenar hasta 512 bytes de comandos I²C o SPI en su buffer para ser enviados posteriormente al periférico, en lugar de que el bus 1-Wire procese los comandos de uno en uno.
Este búfer de 512 bytes también permite que el DS28E18Q+T coordine su propio comportamiento de energía interna para que la sincronización de la comunicación con el periférico permita mantener la energía parásita. El secuenciador de comandos mantiene esta sincronización cuando envía las instrucciones al maestro I²C/SPI y al controlador GPIO que procesa los datos para que se ajusten a los estándares I²C y SPI.
Un condensador externo de 470 nanofaradios (nF) está conectado al pin CEXT que actúa como reserva de energía para el DS28E18Q+T durante el funcionamiento del bus 1-Wire. La alimentación parásita está disponible para el periférico conectado en el pin SENS_VDD. Para el funcionamiento SPI, los cuatro pines SS#, MISO, MOSI y SCLK proporcionan una comunicación full-duplex con el periférico conectado. El funcionamiento de I²C solo utiliza dos pines con función alternativa, SDA y SCL. Los pines SS# y MISO para el funcionamiento de SPI no se utilizan para el funcionamiento de I²C, por lo que se pueden utilizar como E/S de propósito general (GPIO) con la función alternativa GPIOA y GPIOB. Esto proporciona una mayor flexibilidad que se puede utilizar para encender los LED de diagnóstico en la ubicación del sensor o para gestionar los pines de configuración en un sensor o ADC para cambiar el comportamiento del dispositivo.
Utilizando el DS28E18Q+T de Maxim Integrated, una sola UART en un microcontrolador puede comunicarse utilizando sólo dos hilos con muchos sensores en el mismo bus de 1 hilo más tierra; cada sensor se conecta a un DS28E18Q+T que puede estar a una distancia de hasta 100 m. Esto puede ser especialmente útil para los sistemas de calefacción, ventilación y aire acondicionado (HVAC), en los que solo se pueden colocar dos cables a través de un conducto de aire para controlar la temperatura y la humedad a lo largo de su longitud en cada ventilación. Esto mejora la eficiencia del sistema al controlar los puntos calientes o fríos que pueden ser causados por obstrucciones.
Desarrollo de 1 hilo
Para empezar a desarrollar con el protocolo 1-Wire, Maxim Integrated ofrece el sistema de evaluación DS28E18EVKIT#. Consiste en una placa de desarrollo de hardware (Figura 2) y un software.
Figura 2: La placa de evaluación Maxim DS28E18EVKIT# permite al desarrollador conectar fácilmente un periférico SPI o I²C al bus 1-Wire. El software incluido puede utilizarse para programar y supervisar el comportamiento del bus y los periféricos, así como para ayudar a generar los controladores de los dispositivos del microcontrolador. (Fuente de la imagen: Maxim Integrated).
La placa de evaluación permite al desarrollador programar y supervisar el DS28E18Q+T. Para fines de desarrollo, la placa viene con un adaptador USB que conecta la placa a un puerto USB de un ordenador con Windows. El desarrollador necesita descargar y ejecutar el software del kit de evaluación DS28E18EVKIT# para ayudar al desarrollo. Como se ve en la Figura 3, el software de evaluación permite programar y supervisar el DS28E18Q+T y sus periféricos conectados.
Figura 3: El software de evaluación DS28E18EVKIT# permite al desarrollador configurar el DS28E18Q+T integrado mediante el adaptador USB y supervisar su comportamiento. La memoria del secuenciador de comandos de 512 bytes puede llenarse con datos y luego enviarse al periférico para realizar la operación del sensor. (Fuente de la imagen: Maxim Integrated)
El software puede enviar comandos a la placa de evaluación DS28E18Q+T y configurarla para el periférico SPI o I²C de destino. Puede seleccionar el rango de direcciones del periférico y llenar la memoria del secuenciador de comandos de 512 bytes con los comandos del periférico a ejecutar. El software también puede ayudar a configurar los controladores UART para el microcontrolador de destino, ahorrando el esfuerzo de aprender todos los detalles del protocolo de comunicaciones 1-Wire. Un desarrollador también puede utilizar la placa de evaluación en su propia aplicación, ahorrando el tiempo y el esfuerzo de construir y configurar un nodo sensor.
Conclusión:
A medida que los sistemas IoT e IIoT añaden más sensores, el cableado hasta los sensores se vuelve más complejo y costoso, sobre todo a medida que aumentan las distancias. El envío de energía a los sensores es también otra preocupación que puede complicar la creación de una red de sensores. Como se muestra, el protocolo 1-Wire y el hardware asociado de Maxim Integrated pueden hacer que la interconexión con la red de sensores sea más fácil y eficiente al proporcionar datos y energía a través de un solo cable, más la tierra.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.