
Enrutadores de la serie están diseñados para reemplazar la clásica combinación: computadora de placa única + módem + enrutador. Ahora, se puede ejecutar toda la lógica necesaria directamente en el enrutador. Gracias al potente procesador ARM, 512 MB de RAM y aproximadamente 2 GB de memoria flash integrada, ¡incluso se puede ejecutar un servidor nodejs en el enrutador!
Las interfaces de serie RS-232/485 también están integradas en el enrutador y son accesibles de inmediato en el sistema operativo con acceso completo de root. También hay un entorno abierto para construir programas propios y bibliotecas en C/C++ para trabajar con la API de hardware de bajo nivel.
La función de sueño profundo permitirá ahorrar energía cuando se trabaja con batería: el enrutador se puede activar solo cuando realmente se necesita la conexión.
En este artículo, analizaremos características interesantes del dispositivo y intentaremos trabajar en la práctica con la interfaz de entrada/salida desde scripts de shell.
Especificaciones técnicas
Enrutadores de la serie realizados en una única plataforma de hardware y se presentan en cinco modelos, que difieren en los rangos de frecuencia LTE, la presencia de Wi-Fi y geolocalización (GNSS). Los dispositivos se posicionan como un reemplazo de la combinación de computadora de placa única y enrutador. Un potente procesador y una gran cantidad de RAM permite ejecutar aplicaciones de usuario que consumen muchos recursos directamente en el enrutador.
- Procesador Cortex-A8 — frecuencia de reloj de 1 GHz, arquitectura de 32 bits
- 512 MB de RAM
- Memoria flash de 1.5 a 4 GB — para el almacenamiento de datos del usuario
- Puertos de entrada/salida — las interfaces RS-232/485 y los puertos digitales de entrada/salida están disponibles para ser utilizados por programas de usuario
Merece la pena mencionar el modelo , que opera bajo el estándar LTE Cat. M1 (). El protocolo LTE Cat. M1 fue diseñado específicamente para soluciones M2M, tiene una velocidad de transmisión de datos baja (375 kb/s), así como un mayor alcance y estabilidad en condiciones de conexión complejas en interiores. El enrutador cuenta con un , que permite al dispositivo funcionar durante un corto período después de un corte total de energía.
Modo de sueño profundo
El modo de sueño profundo permite poner el enrutador en un estado en el que todos los procesos están congelados y la parte de hardware está apagada, para ahorrar energía, mientras que todas las funciones del dispositivo se desconectan y desde el exterior parecerá completamente apagado. El consumo de energía en este modo es no más de 10 mW.

En modo de sueño, el router consume casi nada de energía y se despierta en 3 segundos.
Cuando sea necesario despertar el router para transmitir datos, él se despertará en ~3 segundos.. Por supuesto, se requerirá tiempo adicional para registrar el módem en la red celular, pero esto es considerablemente más rápido que encender el router desde cero. Esta opción es útil para sistemas con energía autónoma, que pasan la mayor parte del tiempo en reposo y se activan ocasionalmente para realizar acciones activas, como una señalización o un bloque de reserva.
Despertar y dormir.
La gestión del sueño y el despertar se lleva a cabo a través del módulo .
Existen 2 formas de gestionar el modo de sueño:
- A través de la entrada digital. — en este modo, un dispositivo externo, como un microcontrolador, controla el router. Al recibir una señal LOW en la entrada digital, el router se duerme, y al recibir HIGH, se despierta, o viceversa. También se puede configurar un tiempo de espera para protegerse contra conmutaciones accidentales.
- A través de un temporizador interno. — el router cuenta el tiempo y se despierta/se duerme en el momento adecuado. Esto es conveniente para realizar operaciones únicas o cargar datos en un período determinado.

Interfaz de configuración del modo de sueño profundo.
Función 'último suspiro'.
Una falla de energía en un objeto remoto puede ser especialmente desagradable, ya que no se sabe cuál es el motivo de la falta de conexión. La función 'Último suspiro' permite que el router funcione un tiempo después de una desconexión total de energía y envíe un mensaje informando que ha ocurrido una falla y que la alimentación de respaldo no se activó. Gracias a un supercapacitor incorporado, cuya vida útil es considerablemente mayor que la de las baterías, no requiere mantenimiento ni reemplazo. Esto es útil para sistemas de respaldo de energía, en los que pueden ocurrir fallas y es importante rastrear el momento de la pérdida total de voltaje.

El router enviará una señal de falla de energía incluso después de una desconexión total.
Para reaccionar correctamente a la pérdida de energía, se necesita de alguna manera enterarse de ello.
El voltaje de alimentación actual se puede obtener mediante un comando de shell. status sys:
$ status sys
Versión del firmware : 6.1.10 (2019-07-02)
Número de serie : ACZ1100000623519
Perfil : Estándar
Batería RTC : Ok
Voltaje de suministro : 12.3 V # ← tensión de alimentación
Temperatura : 37 C # ← temperatura interna
Hora : 2019-08-16 16:21:18
Tiempo de actividad: 0 días, 11 horas, 43 minutos
O a través del control de I/O de Unix por hardware (ioctl) y un programa en C/C++ u otro lenguaje.
La tabla muestra las direcciones de los registros de hardware necesarios. La tensión de alimentación actual se devuelve como un número entero, en milivoltios. El uso de una API de bajo nivel es preferible a los scripts de shell en este caso para una respuesta más rápida. La información detallada sobre el trabajo con el hardware está disponible en

Solicitud ioctl que devuelve la tensión de alimentación actual.
Interfaces seriales
El router integra dos interfaces seriales: RS-232 y RS-485. Permiten conectar dispositivos periféricos directamente al router, sin necesidad de un cableado adicional. Además, se puede ejecutar un servidor completo de Node-RED o Nodejs en el router, lo que permite disponer de un solo dispositivo para implementar un sencillo sistema de automatización, sin computadoras o controladores adicionales.

Por defecto, ambas interfaces están disponibles como dispositivos seriales estándar en Linux:
ls -la /dev/ttyS*
crw------- 1 root root 251, 0 1 de enero de 1970 /dev/ttyS0 # ← puerto rs-232
crw------- 1 root root 251, 1 1 de enero de 1970 /dev/ttyS1 # ← puerto rs-485
crw------- 1 root root 251, 5 1 de enero de 1970 /dev/ttyS5 # ← no cableado
Todas las bibliotecas estándar admitirán estos dispositivos sin configuraciones adicionales, incluido el módulo y otros.
Módulos personalizados
La funcionalidad del dispositivo se puede ampliar mediante módulos personalizados: es una versión simplificada de paquetes, solo que sin el gestor de paquetes. Toda la lista de módulos disponibles se encuentra en el sitio .
Los módulos se instalan manualmente, mediante la carga de un archivo de paquete a través de la interfaz web:

Actualmente hay 73 módulos disponibles. Aquí hay algunos interesantes:
- — una herramienta popular para integrar varios protocolos industriales en un sistema cohesivo
- — un servidor nodejs completo. Gran cantidad de memoria RAM y potente procesador permiten ejecutar aplicaciones que consumen muchos recursos directamente en el router.
- — permite trabajar en la consola a través del navegador.
- — conjunto de herramientas para el desarrollo de aplicaciones en Microsoft Azure IoT Hub.
Dado que el firmware de los enrutadores es abierto, los desarrolladores pueden escribir sus propios módulos, incluyendo aquellos con interfaz web. La documentación está disponible en y en el sitio web de la empresa. Para mayor comodidad, hay un .
Recursos de hardware mediante scripts shell.
Para tareas simples de automatización, es conveniente usar scripts shell, desde los cuales se puede controlar la indicación LED y obtener/establecer el estado de los pines digitales.
La indicación LED permite mostrar el estado actual de la ejecución de los comandos. Por ejemplo, la indicación de transmisión de datos - parpadeo frecuente, intento de conexión - parpadeo raro, inactivo - luz continua. Consideremos el comando led. Solo acepta un argumento - el tipo de parpadeo del LED.
# led
led on|off|fast|slow
Así es como se ve en la vida real:
Demostración de los modos de funcionamiento del indicador de usuario a través de comandos shell.
Para trabajar con pines digitales se utiliza el comando io.
$ io
Uso: io [get ] | [set ]
io set out0 1 # Establecer la salida digital OUT0 en el estado 1 (LOW)
io get bin0 # Obtener el valor de la entrada digital BIN0
Es importante recordar que la lógica en este caso está invertida. Por lo tanto, 1=LOW, 0=HIGH. Usando el comando io podemos trabajar fácilmente con pines digitales desde scripts bash y construir una lógica simple para automatización y control.
Como demostración de la simplicidad de trabajar con entradas digitales y la indicación, escribiremos un script inútil que muestre el estado de la entrada digital con un LED.
#!/bin/bash
while true
do
[ $(io get bin0) -eq 0 ] && led fast || led on
done
El principio de funcionamiento del script es simple: si BIN0 está en estado 0, el LED parpadea frecuentemente; de lo contrario, está encendido continuamente. Así es como se ve en vivo:
Demostración del script bash que muestra el estado de la entrada digital a través del indicador.
A pesar de la simplicidad de este script, ilustra claramente cómo, en una línea, sin software adicional, bibliotecas o configuraciones, se pueden obtener datos de entrada de entradas digitales y reaccionar a ellos.
Enlaces
- Este artículo no aborda las funciones de red de los enrutadores, como balanceo de carga, failover, VPN, etc., ya que todos estos temas ya se han tratado en otro de nuestros artículos: .
- Ejemplo de aplicación del enrutador se encuentra en nuestro primer artículo: .
- Puedes consultar los precios de los productos en la . Nuestro sitio web en ruso aún no está listo.
Te invitamos al foro de socios de Advantech

El foro de Advantech será un espacio único para discutir tendencias locales y globales en el área de Internet de las cosas. Aquí podrás intercambiar experiencias sobre el uso de nuevas soluciones y productos tecnológicos, encontrar nuevos clientes y socios. Tendrás la oportunidad de ver los productos que hemos descrito en los artículos y más. Contaremos con la participación de líderes de la industria y representantes de socios clave – NVidia, Intel y otras empresas que están involucradas activamente en el desarrollo del Internet industrial en los próximos años. Estaremos encantados de ver a todos los profesionales en el campo de la automatización industrial y el Internet de las cosas en el evento. ¡La participación en el evento es gratuita! El número de lugares es limitado. .
Fuente: habr.com
