
Routere i serien er designet til at erstatte den klassiske sammenbinding: eneboardcomputer + modem + router. Nu kan al nødvendig logik køre direkte på routeren. Takket være den kraftige ARM-processor, 512 MB RAM og ca. 2 GB intern flashhukommelse, kan man endda køre en nodejs-server på routeren!
Sekventielle RS-232/485 interfaces er også indbygget i routeren og er tilgængelige direkte i operativsystemet med fuld root-adgang. Et åbent miljø til at bygge egne programmer og C/C++ biblioteker til arbejde med det lavniveau hardware API er også tilgængeligt.
Funktionen til dyb søvn sparer energi, når den kører på batteri: routeren kan aktiveres kun, når forbindelsen er nødvendig.
I artiklen vil vi gennemgå interessante funktioner ved enheden og praktisk arbejde med input-output interface fra shell-scripts.
Tekniske specifikationer
Routere i serien er udført på en fælles hardwareplatform og præsenteres i fem modeller, der adskiller sig i LTE-frekvensområder, tilstedeværelse af Wi-Fi og geolocation (GNSS). Enhederne positioneres som en erstatning for den sammenbinding mellem eneboardcomputer og router. Den kraftige processor og det store RAM giver mulighed for at køre ressourceintensive brugerapplikationer direkte på routeren.
- Cortex-A8 processor — med en klokkehastighed på 1 GHz, 32 bit arkitektur
- 512 MB RAM
- Flashhukommelse fra 1,5 til 4 GB — til opbevaring af brugerdata
- Input-output porte — RS-232/485 interfaces og digitale input-output porte er tilgængelige for brug med brugerprogrammer
Det er værd at nævne modellen , der arbejder efter standarden LTE Cat. M1 (). Protokollen LTE Cat. M1 er specielt designet til M2M-løsninger, har lav dataoverførselshastighed (375 kb/s), samt større rækkevidde og øget stabilitet under vanskelige forbindelsesforhold indendørs. Routeren har indbygget , som muliggør, at enheden kan fungere i kort tid efter total strømafbrydelse.
Dyb søvn tilstand
Dyb-søvn-tilstand giver routeren mulighed for at gå ind i en tilstand, hvor alle processer fryses, og den hardwaremæssige del slukkes for at spare energi, mens alle funktioner i enheden deaktiveres, og den vil fremstå helt slukket. Energiforbruget i denne tilstand udgør højst 10 mW.

I søvntilstand forbruger routeren næsten ingen energi og vågner op på 3 sekunder
Når det er nødvendigt at vække routeren til dataoverførsel, vågner den op på ~3 sekunder. Selvfølgelig vil det tage ekstra tid at registrere modemmet i mobilnetværket, men det er betydeligt hurtigere end at starte routeren fra bunden. Denne funktion er nyttig for systemer med selvforsynende strøm, der i det meste af tiden er inaktive og kun aktiveres sporadisk for at udføre aktive handlinger, som for eksempel alarm eller backup-blok.
Vækning og søvn
Håndtering af søvn og vækning sker via modulen .
Der er 2 måder at styre søvntilstand på:
- Via digital indgang — i denne tilstand styres routeren af en ekstern enhed, som for eksempel en mikrokontroller. Ved LOW-signal på den digitale indgang går routeren i søvn, og ved HIGH-signal vågner den, eller omvendt. Det er også muligt at indstille en timeout for at beskytte mod utilsigtede skift.
- Via intern timer — routeren tæller tid og vågner går i søvn på det ønskede tidspunkt. Dette er praktisk til engangsoperationer eller dataoverførsel over en bestemt periode.

Brugergrænseflade til indstilling af dyb-søvn-tilstand
Funktionen "sidste åndedrag"
Strømfejl på fjerntliggende enheder kan være særligt ubehagelige, da det er uklart, hvorfor forbindelsen til enheden er utilgængelig. Funktionen "Sidste åndedrag" gør det muligt for routeren at fungere et stykke tid efter fuldstændig strømsvigt og sende en besked om, at der har været en fejl, og det reserve-strøm ikke tændte. Takket være den indbyggede superkondensator, hvis kapacitet er betydeligt større end batteriernes, kræver den ikke vedligeholdelse eller udskiftning. Dette er nyttigt til systemer med backup-strøm, hvor der kan opstå afbrydelser, og det er vigtigt at spore tidspunktet for det fuldstændige spændingstab.

Routeren sender et signal om strømfejl, selv efter fuldstændig strømafbrydelse
For proper response to a power loss event, you need to be informed about it somehow.
The current power voltage can be obtained either via a shell command status sys:
$ status sys
Firmware Version : 6.1.10 (2019-07-02)
Serial Number : ACZ1100000623519
Profile : Standard
RTC Battery : Ok
Supply Voltage : 12.3 V # ← power voltage
Temperature : 37 C # ← temperature inside the case
Time : 2019-08-16 16:21:18
Uptime : 0 days, 11 hours, 43 minutes
Or via hardware Unix I/O control (ioctl) and a program in C/C++ or another language.
The table shows the addresses of the necessary hardware registers. The current power voltage is returned as an integer, in millivolts. Using a low-level API is preferable to shell scripts in this case for a quicker response. Detailed information on working with the hardware is available in

The ioctl request that returns the current power voltage.
Serial Interfaces
The router has two built-in serial interfaces: RS-232 and RS-485. They allow peripheral devices to be connected directly to the router without additional wiring. A full Node-RED or Nodejs server can run on the router, enabling a single device to deploy a simple automation system without additional computers and controllers.

By default, both interfaces are available as standard serial devices in Linux:
ls -la /dev/ttyS*
crw------- 1 root root 251, 0 Jan 1 1970 /dev/ttyS0 # ← port rs-232
crw------- 1 root root 251, 1 Jan 1 1970 /dev/ttyS1 # ← port rs-485
crw------- 1 root root 251, 5 Jan 1 1970 /dev/ttyS5 # ← not assigned
All standard libraries will support these devices without additional configuration, including the module and others.
Custom Modules
Device functionality can be extended with custom modules: these are a simplified version of packages, but without a package manager. The entire list of available modules is available on the website .
Modules are installed manually by uploading a package file through the web interface:

Currently, 73 modules are available. Here are some interesting ones:
- — a popular tool for integrating various industrial protocols into a cohesive system
- — komplet server nodejs. En stor mængde RAM og en kraftfuld processor gør det muligt at køre ressourcekrævende applikationer direkte på routeren!
- — giver mulighed for at arbejde i konsollen via browseren.
- — et værktøjssæt til udvikling af programmer til Microsoft Azure IoT Hub.
Da routerens firmware er åben, kan udviklere skrive deres egne moduler, herunder med webgrænseflader. Reference materialer er tilgængelige i og på virksomhedens hjemmeside. For nem pakkehåndtering er et klarlagt .
Hardware ressourcer via shell-scripts
Til enkle automatiseringsopgaver er det let at bruge shell-scripts, som kan styre lysindikatorer og få/set tilstande på digitale pins.
Lysindikatorer er gode til at vise den aktuelle status for kommandoernes udførelse. For eksempel, dataoverførsel — hyppig blinkning, forsøger at oprette forbindelse — sjælden blinkning, idle — lyser konstant. Lad os se på kommandoen led. Den tager kun et argument som input — typen af blinkning for LED'en.
# led
led on|off|fast|slow
Sådan ser det ud i det virkelige liv:
Demonstration af driftsmåder for brugerindikatoren via shell-kommandoer
Til arbejde med digitale pins bruges kommandoen io.
$ io
Usage: io [get ] | [set ]
io set out0 1 # Sæt den digitale udgang OUT0 til tilstand 1 (LOW)
io get bin0 # Få værdien af den digitale indgang BIN0
Det er vigtigt at huske, at logikken i dette tilfælde er inverteret. Derfor 1=LOW, 0=HIGH. Ved at bruge kommandoen io kan vi nemt arbejde med digitale pins fra bash-scripts og opbygge enkel logik til automatisering og kontrol.
Som en demonstration af nemheden ved at arbejde med digitale indgange og indikatorer, lad os skrive et ligegyldigt script, der viser status for den digitale indgang med en LED.
#!/bin/bash
while true
do
[ $(io get bin0) -eq 0 ] && led fast || led on
done
Scriptets driftsprincip er enkelt: hvis BIN0 er i tilstand 0, så blinker dioden ofte, ellers lyser den konstant. Sådan ser det ud i praksis:
Demonstration af et bash-script, der viser status for den digitale indgang ved hjælp af en indikator.
På trods af skriptets enkelhed viser det klart, hvordan man på en linje, uden yderligere software, biblioteker og indstillinger, kan indhente data fra digitale indgange og reagere på dem.
Links
- Denne artikel omhandler ikke routeres netværksfunktioner såsom load balancing, failover, VPN mv., da alle disse emner allerede er dækket i en anden af vores artikler: .
- Eksempel på anvendelse af routeren kan findes i vores første artikel: .
- Du kan finde priser på produkterne i den generelle . Den egen hjemmeside på dansk er endnu ikke klar.
Vi inviterer til Advantech partnerforum

Advantech forum vil blive en unik platform til diskussion af lokale og globale tendenser inden for Internet of Things. Her kan du dele erfaringer med brugen af nye teknologiske løsninger og produkter, finde nye kunder og partnere. Du vil få chancen for at se de produkter, vi har beskrevet i artiklerne og mere til. Branchenledere og repræsentanter fra centrale partnere – NVidia, Intel og andre virksomheder, der aktivt deltager i udviklingen af industriel Internet of Things i de kommende år, vil tale. Vi glæder os til at se alle specialister inden for industriel automatisering og Internet of Things ved arrangementet. Deltagelsen er gratis! Antallet af pladser er begrænset. .
Kilde: habr.com
