
Routerserie is ontworpen om de klassieke combinatie van: single-board computer + modem + router te vervangen. Nu kunnen alle benodigde logica en functies direct op de router worden uitgevoerd. Dankzij de krachtige ARM-processor, 512 MB RAM en ~2 GB ingebouwde flash-geheugen kan zelfs een nodejs-server op de router draaien!
Seriële expressinterfaces RS-232/485 zijn ook in de router geïntegreerd en zijn direct beschikbaar in het besturingssysteem met volledige root-toegang. Een open omgeving voor het bouwen van uw eigen programma's en C/C++-libraries voor interactie met de low-level hardware API zijn ook beschikbaar.
De diepe slaapfunctie helpt energie te besparen wanneer op batterij wordt gewerkt: de router kan alleen worden geactiveerd wanneer de connectiviteit echt nodig is.
In dit artikel zullen we de interessante functies van het apparaat behandelen en praktisch werken met de in- en uitgangsinterface vanuit shell-scripts.
Technische specificaties
Routerserie zijn uitgevoerd op een eenheid hardwareplatform en worden aangeboden in vijf modellen, die verschillen in de frequentiebanden van LTE, aanwezigheid van Wi-Fi en geografische locatie (GNSS). De apparaten worden gepositioneerd als vervanging voor de combinatie van single-board computer en router. De krachtige processor en de grote hoeveelheid RAM maken het mogelijk om veeleisende gebruikersapplicaties direct op de router uit te voeren.
- Cortex-A8-processor — kloksnelheid van 1 GHz, 32-bit architectuur
- 512 MB RAM
- Flash-geheugen van 1,5 tot 4 GB — voor opslag van gebruikersdata
- In- en uitgangspoorten — RS-232/485 interfaces en digitale in- en uitgangspoorten zijn beschikbaar voor gebruik door gebruikersprogramma's
Een aparte vermelding waard is het model , dat werkt volgens de LTE Cat. M1-standaard (). Het LTE Cat. M1-protocol is speciaal ontwikkeld voor M2M-oplossingen, heeft een lage datasnelheid (375 kb/s) en biedt ook een groter bereik en verhoogde stabiliteit in uitdagende communicatieomstandigheden binnen gebouwen. De router heeft een ingebouwde , waarmee het apparaat korte tijd kan werken na volledige uitschakeling van de voeding.
Diepe slaapstand
De diepe slaapmodus stelt de router in staat om in een staat te komen waarin alle processen zijn bevroren en de hardware is uitgeschakeld om energie te besparen, terwijl alle functies van het apparaat worden uitgeschakeld en het aan de buitenzijde volledig uitgeschakeld lijkt. Het energieverbruik in deze modus bedraagt niet meer dan 10 mW.

In de slaapmodus verbruikt de router vrijwel geen energie en wordt hij binnen 3 seconden weer wakker
Wanneer het nodig is om de router wakker te maken voor gegevensoverdracht, wordt hij wakker binnen ~3 seconden. Uiteraard is er extra tijd nodig voor de registratie van de modem in het mobiele netwerk, maar dit is aanzienlijk sneller dan het opstarten van de router vanuit een volledige uitschakeling. Deze optie is nuttig voor autonome systemen die het grootste deel van de tijd inactief zijn en sporadisch worden geactiveerd voor actieve taken, zoals alarmen of back-upblokken.
Wakker worden en in slaap vallen
Beheer van in slaap vallen en wakker worden gebeurt via de module .
Er zijn 2 manieren om de slaapmodus te beheren:
- Via de digitale ingang — in deze modus wordt de router bestuurd door een extern apparaat, zoals een microcontroller. Bij een LOW-signaal op de digitale ingang gaat de router in slaap, en bij een HIGH-signaal wordt hij weer wakker, of omgekeerd. Er kan ook een tijdslimiet worden ingesteld om ongewenste schakelingen te voorkomen.
- Via de interne timer — de router telt de tijd af en wordt op het juiste moment weer wakker of gaat in slaap. Dit is handig voor het uitvoeren van eenmalige operaties of voor het laden van gegevens over een bepaalde periode.

De interface voor het instellen van de diepe slaapmodus
De functie ‘laatste zucht’
Een stroomuitval op een externe locatie kan bijzonder vervelend zijn, omdat het onduidelijk is waarom de communicatie met het object niet beschikbaar is. De functie ‘Laatste zucht’ stelt de router in staat om enige tijd door te werken na een volledige stroomonderbreking en een bericht te sturen dat er een storing is opgetreden en dat de noodstroom niet is ingeschakeld. Dankzij de ingebouwde supercapacitor, die veel langer meegaat dan accu's, vereist deze geen onderhoud of vervanging. Dit is nuttig voor noodstroomsystemen waar storingen kunnen optreden en het belangrijk is om te registreren wanneer het voltage volledig verloren is.

De router zal een signaal van stroomuitval sturen, zelfs na een volledige stroomonderbreking.
Om correct te reageren op een stroomonderbreking, moet je er op de een of andere manier achter komen.
De huidige voedingsspanning kan worden verkregen met de shell-opdracht status sys:
$ status sys
Firmwareversie : 6.1.10 (2019-07-02)
Serienummer : ACZ1100000623519
Profiel : Standaard
RTC-batterij : Ok
Voedingsspanning : 12.3 V # ← voedingsspanning
Temperatuur : 37 C # ← temperatuur binnen de behuizing
Tijd : 2019-08-16 16:21:18
Uptime : 0 dagen, 11 uur, 43 minuten
Of via hardware Unix I/O control (ioctl) en een programma in C/C++ of een andere taal.
In de tabel worden de adressen van de benodigde hardwareregisters weergegeven. De huidige voedingsspanning wordt teruggegeven als een geheel getal, in millivolts. Het gebruik van een low-level API heeft de voorkeur boven shell-scripts in dit geval voor een snellere reactie. Gedetailleerde informatie over het werken met hardware is beschikbaar in

Een ioctl-aanroep die de huidige voedingsspanning teruggeeft.
Seriële interfaces
In de router zijn twee seriële interfaces ingebouwd: RS-232 en RS-485. Deze maken het mogelijk om randapparatuur rechtstreeks op de router aan te sluiten, zonder dat extra bekabeling nodig is. Op de router kan een volledig Node-RED of Nodejs-server draaien, zodat je met één apparaat een eenvoudig automatiseringssysteem kunt implementeren, zonder extra computers en controllers.

Standaard zijn beide interfaces beschikbaar als standaard seriële apparaten in Linux:
ls -la /dev/ttyS*
crw------- 1 root root 251, 0 Jan 1 1970 /dev/ttyS0 # ← poort rs-232
crw------- 1 root root 251, 1 Jan 1 1970 /dev/ttyS1 # ← poort rs-485
crw------- 1 root root 251, 5 Jan 1 1970 /dev/ttyS5 # ← niet verbonden
Alle standaardbibliotheken zullen deze apparaten ondersteunen zonder extra configuratie, inclusief de module en anderen.
Aangepaste modules
De functionaliteit van het apparaat kan worden uitgebreid met aangepaste modules: dit is een vereenvoudigde versie van pakketten, maar zonder pakketbeheerder. De complete lijst van beschikbare modules is te vinden op de website .
Modules worden handmatig geïnstalleerd door het uploaden van het pakketbestand via de webinterface:

Momenteel zijn er 73 modules beschikbaar. Hier zijn enkele interessante:
- — een populaire tool voor het integreren van verschillende industriële protocollen in een samenhangend systeem
- — een volwaardige nodejs-server. Een grote hoeveelheid RAM en een krachtige processor maakt het mogelijk om veeleisende applicaties rechtstreeks op de router te draaien!
- — maakt werken in de console via de browser mogelijk.
- — een set hulpmiddelen voor het ontwikkelen van programma's voor Microsoft Azure IoT Hub.
Aangezien de firmware van routers open is, kunnen ontwikkelaars hun eigen modules schrijven, inclusief die met een webinterface. Referentiematerialen zijn beschikbaar in en op de website van het bedrijf. Voor het gemak van het samenstellen van pakketten is er een kant-en-klare .
Hardwarebronnen via shell-scripts
Voor eenvoudige automatiseringstaken is het handig om shell-scripts te gebruiken, waarmee je de LED-indicatie kunt beheren en de status van digitale pinnen kunt lezen/instellen.
LED-indicatie maakt het eenvoudig om de huidige status van de uitvoering van opdrachten weer te geven. Bijvoorbeeld, datatransmissie - frequent knipperen, verbindingspoging - zeldzaam knipperen, standby - continu aan. Laten we de opdracht bekijken led. Het neemt slechts één argument aan - het type knipperen van de LED.
# led
led on|off|fast|slow
Zo ziet het eruit in de praktijk:
Demonstratie van de werkmodi van de gebruikersindicator via shell-opdrachten
Voor het werken met digitale pinnen wordt de opdracht gebruikt io.
$ io
Gebruik: io [get ] | [set ]
io set out0 1 # Stel digitale uitgang OUT0 in op staat 1 (LOW)
io get bin0 # Verkrijg waarde van digitale ingang BIN0
Het is belangrijk om te onthouden dat de logica in dit geval geïnverteerd is. Dus 1=LOW, 0=HIGH. Met de opdracht io kunnen we gemakkelijk werken met digitale pinnen vanuit bash-scripts en eenvoudige logica opbouwen voor automatisering en controle.
Als demonstratie van het gemak van werken met digitale ingangen en indicatie, schrijven we een nutteloos script dat de status van de digitale ingang weergeeft met behulp van een LED.
#!/bin/bash
while true
do
[ $(io get bin0) -eq 0 ] && led fast || led on
done
Het principe van het script is eenvoudig: als BIN0 in staat 0 is, knippert de diode vaak, anders brandt hij continu. Zo ziet het eruit in het echt:
Demonstratie van een bash-script dat de status van een digitale ingang toont met behulp van een indicator.
Ondanks de eenvoud van dit script laat het duidelijk zien hoe je in één regel, zonder extra software, bibliotheken of instellingen, invoer van digitale ingangen kunt verkrijgen en daarop kunt reageren.
Links
- In dit artikel worden de netwerkmogelijkheden van routers niet behandeld, zoals load balancing, failover, VPN en dergelijke, omdat al deze onderwerpen al in een ander artikel van ons zijn besproken: .
- Voorbeeld van het gebruik van de router is te vinden in ons eerste artikel: .
- Je kunt de prijzen van onze producten vinden in de algemene . De eigen website in het Russisch is nog niet klaar.
Wij nodigen je uit voor het partnerforum van Advantech

Het Advantech-forum wordt een unieke gelegenheid om lokale en globale trends op het gebied van Internet of Things te bespreken. Hier kun je ervaringen uitwisselen over het gebruik van nieuwe technologische oplossingen en producten, nieuwe klanten en partners vinden. Je krijgt de kans om de producten te zien die we in onze artikelen hebben beschreven en meer. Wij hebben sprekers uit de industrie en vertegenwoordigers van belangrijke partners – NVidia, Intel en andere bedrijven die actief bijdragen aan de ontwikkeling van de industriële Internet of Things in de komende jaren. We kijken ernaar uit om alle specialisten op het gebied van industriële automatisering en Internet of Things op het evenement te verwelkomen. Deelname aan het evenement is gratis! Het aantal plaatsen is beperkt. .
Bron: habr.com
