
Router-Serie sollen die klassische Kombination aus: Einplatinencomputer + Modem + Router ersetzen. Jetzt kann die gesamte erforderliche Logik direkt auf dem Router ausgeführt werden. Dank des leistungsstarken ARM-Prozessors, 512 MB RAM und ~2 GB internem Flash-Speicher kann man sogar einen Node.js-Server auf dem Router starten!
Serielle Schnittstellen RS-232/485 sind ebenfalls im Router integriert und stehen sofort im Betriebssystem mit vollem Root-Zugriff zur Verfügung. Eine offene Umgebung zur Erstellung eigener Programme und C/C++-Bibliotheken für die Arbeit mit der niedrigstufigen Hardware-API ist ebenfalls vorhanden.
Die Tiefschlaf-Funktion ermöglicht eine Energieeinsparung beim Betrieb mit Batterie: Der Router kann nur aktiviert werden, wenn die Verbindung tatsächlich erforderlich ist.
In diesem Artikel werden wir interessante Funktionen des Geräts erörtern und in der Praxis mit der Ein-/Ausgabeschnittstelle aus Shell-Skripten arbeiten.
Technische Spezifikationen
Router-Serie wurden auf einer einheitlichen Hardware-Plattform realisiert und werden in fünf Modellen angeboten, die sich in den Frequenzbändern von LTE, der Verfügbarkeit von Wi-Fi und Geolokalisierung (GNSS) unterscheiden. Die Geräte werden als Ersatz für die Kombination aus Einplatinencomputer und Router positioniert. Der leistungsstarke Prozessor und der große RAM ermöglichen es, ressourcenintensive Benutzeranwendungen direkt auf dem Router auszuführen.
- Cortex-A8-Prozessor — Taktfrequenz 1 GHz, 32-Bit-Architektur
- 512 MB RAM
- Flash-Speicher von 1,5 bis 4 GB — zum Speichern von Benutzerdaten
- Ein-/Ausgangsanschlüsse — RS-232/485-Schnittstellen und digitale Ein-/Ausgangsports stehen für Benutzerprogramme zur Verfügung
Besonders hervorzuheben ist das Modell , das nach dem LTE Cat. M1-Standard arbeitet (). Das Protokoll LTE Cat. M1 wurde speziell für M2M-Lösungen entwickelt, bietet eine niedrige Datenübertragungsrate (375 kb/s) und hat eine größere Reichweite sowie erhöhte Stabilität unter schwierigen Verbindungsbedingungen in Innenräumen. Der Router verfügt über einen integrierten , der es dem Gerät ermöglicht, kurzzeitig nach einem vollständigen Stromausfall zu arbeiten.
Tiefschlafmodus
Der Tiefschlafmodus ermöglicht es, den Router in einen Zustand zu versetzen, in dem alle Prozesse eingefroren und die Hardware ausschaltet ist, um Energie zu sparen. Dabei werden alle Funktionen des Geräts deaktiviert, und von außen sieht es vollständig ausgeschaltet aus. Der Energieverbrauch in diesem Modus beträgt nicht mehr als 10 mW.

Im Schlafmodus verbraucht der Router fast keine Energie und wacht in 3 Sekunden auf.
Wenn der Router zum Übertragen von Daten geweckt werden muss, wird er in etwa 3 Sekunden aufwachen.. Selbstverständlich benötigt es zusätzliche Zeit, um das Modem im Mobilfunknetz zu registrieren, jedoch ist dies erheblich schneller als das Hochfahren des Routers von Grund auf. Diese Option ist nützlich für Systeme mit autonomer Stromversorgung, die den Großteil der Zeit im Leerlauf sind und gelegentlich aktiviert werden, um aktive Aufgaben zu erledigen, wie z.B. Alarmierung oder Reservestromblöcke.
Aufwachen und Einschlafen
Die Steuerung des Einschlafens und Aufwachens erfolgt über das Modul .
Es gibt 2 Möglichkeiten, den Schlafmodus zu steuern:
- Über den digitalen Eingang — In diesem Modus wird der Router von einem externen Gerät, z.B. einem Mikrocontroller, gesteuert. Bei einem LOW-Signal am digitalen Eingang schläft der Router ein, und bei einem HIGH-Signal wacht er auf, oder umgekehrt. Es kann auch eine Auslösezeit konfiguriert werden, um versehentlichen Umschaltungen vorzubeugen.
- Über den internen Timer — Der Router zählt die Zeit und wacht ein/ schläft ein zur richtigen Zeit. Dies ist nützlich für einmalige Operationen oder um Daten über einen bestimmten Zeitraum zu laden.

Benutzeroberfläche zur Konfiguration des Tiefschlafmodus
Funktion "letzter Atemzug"
Ein Stromausfall an einem entfernten Objekt kann besonders unangenehm sein, da unklar ist, warum die Verbindung zum Objekt nicht verfügbar ist. Die Funktion "Letzter Atemzug" ermöglicht es dem Router, eine Zeit lang nach einem vollständigen Stromausfall zu arbeiten und eine Nachricht zu senden, dass es zu einem Ausfall gekommen ist und die Notstromversorgung nicht aktiviert wurde. Dank des eingebauten Ultracapacitors, dessen Lebensdauer erheblich länger ist als die von Batterien, benötigt er keine Wartung oder Austausch. Dies ist nützlich für Systeme zur Notstromversorgung, in denen Ausfälle möglich sind und es wichtig ist, den Moment des vollständigen Spannungsverlusts zu verfolgen.

Der Router sendet ein Signal über den Stromausfall, selbst nach vollständigem Abschalten der Stromversorgung.
Um richtig auf das Ereignis eines Stromausfalls zu reagieren, muss man irgendwie davon erfahren.
Die aktuelle Betriebsspannung kann entweder über den Shell-Befehl status sys:
$ status sys
Firmware-Version : 6.1.10 (2019-07-02)
Seriennummer : ACZ1100000623519
Profil : Standard
RTC-Batterie : Ok
Versorgungsspannung : 12.3 V # ← Betriebsspannung
Temperatur : 37 C # ← Innengehäusetemperatur
Zeit : 2019-08-16 16:21:18
Uptime : 0 Tage, 11 Stunden, 43 Minuten
oder über die Hardware Unix I/O-Steuerung (ioctl) und ein C/C++-Programm oder eine andere Sprache erhalten werden.
In der Tabelle sind die Adressen der benötigten Hardwareregister aufgelistet. Die aktuelle Betriebsspannung wird als ganze Zahl in Millivolt zurückgegeben. Die Verwendung einer niedrigstufigen API ist in diesem Fall den Shell-Skripten für eine schnellere Reaktion vorzuziehen. Detaillierte Informationen zur Hardwareinteraktion sind im

Der ioctl-Befehl, der die aktuelle Betriebsspannung zurückgibt.
Serielle Schnittstellen
Im Router sind zwei serielle Schnittstellen integriert: RS-232 und RS-485. Sie ermöglichen es, Peripheriegeräte direkt an den Router anzuschließen, ohne zusätzliche Verkabelung. Dabei kann auf dem Router ein vollwertiger Node-RED- oder Nodejs-Server betrieben werden, was es ermöglicht, ein einziges Gerät für die Implementierung eines einfachen Automatisierungssystems zu verwenden, ohne zusätzliche Computer und Controller.

Standardmäßig sind beide Schnittstellen als Standard-Serial-Geräte in Linux verfügbar:
ls -la /dev/ttyS*
crw------- 1 root root 251, 0 Jan 1 1970 /dev/ttyS0 # ← RS-232-Port
crw------- 1 root root 251, 1 Jan 1 1970 /dev/ttyS1 # ← RS-485-Port
crw------- 1 root root 251, 5 Jan 1 1970 /dev/ttyS5 # ← nicht verbunden
Alle Standardbibliotheken unterstützen diese Geräte ohne zusätzliche Konfiguration, einschließlich des Moduls und andere.
Benutzerdefinierte Module
Die Funktionalität des Geräts kann mit benutzerdefinierten Modulen erweitert werden: dies ist eine vereinfachte Version von Paketen, jedoch ohne Paketmanager. Eine vollständige Liste der verfügbaren Module finden Sie auf der Website .
Module werden manuell installiert, indem die Paketdatei über die Weboberfläche hochgeladen wird:

Derzeit sind 73 Module verfügbar. Hier sind einige interessante davon:
- – ein beliebtes Tool zur Integration verschiedener industrieller Protokolle in ein umfassendes System
- — vollwertiger Node.js-Server. Ein großer Arbeitsspeicher und ein leistungsstarker Prozessor ermöglichen das Ausführen ressourcenintensiver Anwendungen direkt auf dem Router!
- — ermöglicht die Arbeit in der Konsole über den Browser.
- — ein Werkzeugset zur Entwicklung von Programmen für Microsoft Azure IoT Hub.
Da die Firmware der Router offen ist, können Entwickler ihre eigenen Module schreiben, einschließlich solcher mit einer Weboberfläche. Hilfsmaterialien sind im und auf der Website des Unternehmens verfügbar. Für die angenehme Paketierung steht eine fertige .
Hardware-Ressourcen über Shell-Skripte
Für einfache Automatisierungsaufgaben ist es praktisch, Shell-Skripte zu verwenden, mit denen man die Lichtanzeige steuern und den Status digitaler Pins abfragen/setzen kann.
Die Lichtanzeige ist nützlich, um den aktuellen Status der Ausführung von Befehlen anzuzeigen. Zum Beispiel deutet häufiges Blinken auf Datenübertragung hin, seltenes Blinken auf Verbindungsversuche und stetiges Licht bedeutet Ruhe. Betrachten wir den Befehl led. Er akzeptiert nur ein Argument — die Art des Blinkens der LED.
# led
led on|off|fast|slow
So sieht das im echten Leben aus:
Demonstration der Betriebsmodi des Benutzerindikators über Shell-Befehle
Für die Arbeit mit digitalen Pins wird der Befehl verwendet io.
$ io
Usage: io [get ] | [set ]
io set out0 1 # Setze digitalen Ausgang OUT0 auf Zustand 1 (LOW)
io get bin0 # Erhalte den Wert des digitalen Eingangs BIN0
Es ist wichtig zu beachten, dass die Logik in diesem Fall invertiert ist. Dementsprechend ist 1=LOW, 0=HIGH. Mit dem Befehl io können wir leicht mit digitalen Pins aus Bash-Skripten arbeiten und einfache Logik für Automatisierung und Kontrolle erstellen.
Als Demonstration der Einfachheit der Arbeit mit digitalen Eingängen und Anzeigen schreiben wir ein nutzloses Skript, das den Status des digitalen Eingangs mit einer LED anzeigt.
#!/bin/bash
while true
do
[ $(io get bin0) -eq 0 ] && led fast || led on
done
Das Prinzip des Skripts ist einfach: Wenn BIN0 im Zustand 0 ist, blinkt die Diode oft, andernfalls leuchtet sie ständig. So sieht das live aus:
Demonstration des Bash-Skripts zur Anzeige des Zustands des digitalen Eingangs mit Hilfe eines Indikators.
Trotz der Einfachheit dieses Skripts zeigt es anschaulich, wie man in einer Zeile, ohne zusätzliche Software, Bibliotheken und Konfigurationen, Eingabedaten von digitalen Eingängen erhalten und darauf reagieren kann.
Links
- In diesem Artikel werden die Netzwerkfunktionen von Routern, wie beispielsweise Lastverteilung, Failover, VPN und andere, nicht behandelt, da diese Themen bereits in einem anderen unserer Artikel behandelt wurden: .
- Beispiel für die Anwendung des Routers ist in unserem ersten Artikel zu finden: .
- Die Preise für Produkte können im allgemeinen . Eine eigene Website in Russisch ist noch nicht fertig.
Wir laden zum Partnerforum von Advantech ein

Das Forum von Advantech wird eine einzigartige Plattform für die Diskussion lokaler und globaler Trends im Bereich Internet der Dinge sein. Hier können Sie Erfahrungen mit neuen technologischen Lösungen und Produkten austauschen, neue Kunden und Partner finden. Sie haben die Möglichkeit, die Produkte zu sehen, die wir in unseren Artikeln beschrieben haben und noch mehr. Branchenführer und Vertreter wichtiger Partner – NVidia, Intel und andere Unternehmen, die aktiv an der Entwicklung des industriellen Internet der Dinge in den kommenden Jahren beteiligt sind, werden bei uns sprechen. Wir freuen uns auf die Teilnahme aller Fachleute aus dem Bereich industrielle Automatisierung und Internet der Dinge. Die Teilnahme an der Veranstaltung ist kostenlos! Die Anzahl der Plätze ist begrenzt. .
Quelle: habr.com
