
Serieroutrar Àr utformade för att ersÀtta den klassiska kombinationen av en enkel PC + modem + router. Nu kan all nödvÀndig logik köras direkt pÄ routern. Tack vare den kraftfulla ARM-processorn, 512 MB RAM och ~2 GB intern flashminne kan man till och med köra en nodejs-server pÄ routern!
Sekventiella grÀnssnitt RS-232/485 Àr ocksÄ inbyggda i routern och Àr omedelbart tillgÀngliga i operativsystemet med full root-Ätkomst. En öppen miljö för att bygga egna program och C/C++-bibliotek för att arbeta med lÄgnivÄ hÄrdvaru-API finns ocksÄ.
Djupprocessorfunktionen gör att man kan spara energi vid anvÀndning av batteri: routern kan aktiveras endast nÀr kommunikationen verkligen behövs.
I artikeln kommer vi att diskutera intressanta funktioner i enheten och prova att arbeta med in- och utmatningsgrÀnssnitt frÄn shell-skript i praktiken.
Tekniska specifikationer
Serieroutrar Àr byggda pÄ en enhetlig hÄrdvaruplattform och presenteras i fem modeller som skiljer sig Ät i LTE-frekvensband, förekomsten av Wi-Fi och geolokalisering (GNSS). Enheterna positioneras som en ersÀttning för kombinationen av en enkel PC och router. Den kraftfulla processorn och det stora RAM-minnet gör att man kan köra resurskrÀvande anvÀndarapplikationer direkt pÄ routern.
- Cortex-A8-processor â klockfrekvens 1 GHz, 32-bitars arkitektur
- 512 MB RAM
- Flashminne frĂ„n 1,5 till 4 GB â för lagring av anvĂ€ndardata
- In- och utmatningsportar â RS-232/485-grĂ€nssnitt och digitala in- och utmatningsportar Ă€r tillgĂ€ngliga för anvĂ€ndarprogram
SÀrskilt intressant Àr modellen , som arbetar enligt LTE Cat. M1-standarden (). Protokollet LTE Cat. M1 Àr speciellt utvecklat för M2M-lösningar, har lÄg dataöverföringshastighet (375 kb/s) och dessutom en stor rÀckvidd och ökad stabilitet i svÄra inomhuskommunikationsförhÄllanden. Routern har en inbyggd , vilket gör att enheten kan fungera en kort tid efter att strömmen har stÀngts av.
DjupprocessorlÀge
DjupprocessorlÀget gör att man kan sÀtta routern i ett tillstÄnd dÀr alla processer fryses och hÄrdvaran stÀngs av, för att spara energi, medan alla enhetens funktioner stÀngs av och den ser helt avstÀngd ut. Energiförbrukningen i detta lÀge Àr högst 10 mW.

I vilolÀge förbrukar routern nÀstan ingen energi och vaknar pÄ 3 sekunder
NÀr det behövs att vÀcka routern för datatransfer, kommer den vakna pÄ ~3 sekunder. SjÀlvklart behövs ytterligare tid för att registrera modemet i det mobila nÀtet, men detta Àr avsevÀrt snabbare Àn att starta routern frÄn grunden. Denna funktion Àr anvÀndbar för system med fristÄende strömförsörjning, som tillbringar mest tid i vilolÀge och aktiveras ibland för att utföra aktiva ÄtgÀrder, till exempel larm eller reservblock.
VÀckning och sömn
Kontrollen av sömn och vÀckning sker via modulen .
Det finns 2 sÀtt att styra sömnlÀget:
- Genom digital ingĂ„ng â i detta lĂ€ge administreras routern av en extern enhet, till exempel en mikrokontroller. Vid en LOW-signal pĂ„ den digitala ingĂ„ngen gĂ„r routern i vilolĂ€ge, och vid mottagande av HIGH - vaknar den, eller omvĂ€nt. Det gĂ„r ocksĂ„ att stĂ€lla in en timeout för att skydda mot oavsiktliga omkopplingar.
- Genom inbyggd timer â routern mĂ€ter tiden och vaknar/gĂ„r i vilolĂ€ge vid rĂ€tt tidpunkt. Detta Ă€r praktiskt att anvĂ€nda för enstaka operationer eller dataladdningar under en viss period.

GrÀnssnitt för instÀllning av djup sömn
Funktionen 'sista andetag'
Strömavbrott vid en fjÀrranlÀggning kan vara sÀrskilt obehagligt, eftersom det inte Àr tydligt varför kommunikationen med anlÀggningen Àr otillgÀnglig. Funktionen 'Sista andetag' gör att routern kan arbeta en tid efter att strömtillförseln helt har avbrutits och skicka ett meddelande om att ett strömavbrott har intrÀffat och reservkraften inte har aktiverats. Tack vare den inbyggda superkondensatorn, vars livslÀngd Àr avsevÀrt lÀngre Àn traditionella batterier, krÀver den ingen underhÄll och byte. Detta Àr anvÀndbart för system med reservkraft dÀr driftstopp kan förekomma och det Àr viktigt att spÄra omedelbar strömförlust.

Routern kommer att skicka ett signal om strömavbrott Àven efter att strömmen helt har stÀngts av
För att korrekt reagera pÄ strömavbrottet behöver man pÄ nÄgot sÀtt fÄ veta om det.
Den aktuella matningsspÀnningen kan fÄs antingen genom en shell-kommando 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 # â strömkĂ€lla
Temperature : 37 C # â temperatur inuti chassit
Time : 2019-08-16 16:21:18
Uptime : 0 dagar, 11 timmar, 43 minuter
Antingen med hjÀlp av hÄrdvaru Unix I/O control (ioctl) och ett program i C/C++ eller ett annat sprÄk.
I tabellen visas adresserna för de nödvÀndiga hÄrdvaruregistren. Den aktuella strömkÀllan returneras som ett heltal, i millivolt. AnvÀndning av lÄg nivÄ API Àr att föredra framför shell-script i detta fall för snabbare respons. Mer information om hur man arbetar med hÄrdvaran finns i

Ioctl-anropet som returnerar den aktuella strömkÀllan.
Seriella grÀnssnitt
Routern har tvÄ inbyggda seriella grÀnssnitt: RS-232 och RS-485. Dessa gör det möjligt att ansluta perifera enheter direkt till routern utan att anvÀnda ytterligare utrustning. Dessutom kan en fullstÀndig server för Node-RED eller Nodejs köras pÄ routern, vilket gör att man kan klara sig med en enhet för att lansera ett enkelt automationssystem utan ytterligare datorer och kontroller.

Som standard Àr bÄda grÀnssnitt tillgÀngliga för arbete som standard serial-enheter i Linux:
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 # â inte ansluten
Alla standardbibliotek kommer att stödja dessa enheter utan extra konfiguration, inklusive modulen och andra.
Anpassade moduler
Enhetens funktionalitet kan utökas med hjÀlp av anpassade moduler: detta Àr en förenklad version av paket, bara utan pakethanterare. Hela listan över tillgÀngliga moduler finns pÄ webbplatsen .
Moduler installeras manuellt genom att ladda upp paketfilen via webbgrÀnssnittet:

För nÀrvarande finns 73 moduler tillgÀngliga. HÀr Àr nÄgra av de intressanta:
- â ett populĂ€rt verktyg för att koppla samman olika industriella protokoll till ett enhetligt system
- â en fullstĂ€ndig nodejs-server. Stort antal RAM och kraftfull processor möjliggör körning av resurskrĂ€vande applikationer direkt pĂ„ routern!
- â gör det möjligt att arbeta i konsolen via webblĂ€saren.
- â verktygssats för utveckling av program för Microsoft Azure IoT Hub.
Eftersom routrarens firmware Àr öppen kan utvecklare skriva egna moduler, inklusive med ett webbgrÀnssnitt. Referensmaterial finns tillgÀngligt i och pÄ företagets webbplats. För att underlÀtta paketsammansÀttning finns en fÀrdig .
HÄrdvaruresurser via shell-skript
För enkla automatiseringsuppgifter Àr det praktiskt att anvÀnda shell-skript, som kan styra belysning och hÀmta/stÀlla in tillstÄnd för digitala pinnar.
Belysningen Ă€r ett bekvĂ€mt sĂ€tt att visa den aktuella statusen för kommandon. Till exempel, datakommunikationsindikator â frekvent blinkande, anslutningsförsök â sĂ€llan blinkande, vila â lyser kontinuerligt. LĂ„t oss titta pĂ„ kommandot led. Den tar emot endast ett argument â typen av LED-blinkande.
# led
led on|off|fast|slow
SÄ hÀr ser det ut i verkliga livet:
Demonstration av arbetslÀgen för anvÀndarindikatorn via shell-kommandon
För att arbeta med digitala pinnar anvÀnds kommandot io.
$ io
Usage: io [get ] | [set ]
io set out0 1 # SÀtta digital utgÄng OUT0 i tillstÄnd 1 (LOW)
io get bin0 # HÀmta vÀrdet av digital ingÄng BIN0
Det Àr viktigt att komma ihÄg att logiken i detta fall Àr inverterad. DÀrför 1=LOW, 0=HIGH. Genom att anvÀnda kommandot io kan vi enkelt arbeta med digitala pinnar i bash-skript och bygga enkel logik för automatisering och styrning.
Som en demonstration av enkelheten i att arbeta med digitala ingÄngar och indikatorer, lÄt oss skriva ett meningslöst skript som visar statusen för en digital ingÄng med en LED.
#!/bin/bash
while true
do
[ $(io get bin0) -eq 0 ] && led fast || led on
done
Principen för skriptet Àr enkel: om BIN0 Àr i tillstÄnd 0, blinkar dioden ofta, annars lyser den kontinuerligt. SÄ hÀr ser det ut i praktiken:
Demonstration av bash-skript som visar statusen för digital ingÄng med indikatorn.
Trots enkelheten i detta skript, visar det tydligt hur man pÄ en rad, utan extra programvara, bibliotek och instÀllningar kan hÀmta ingÄngsdata frÄn digitala ingÄngar och reagera pÄ dem.
LĂ€nkar
- I denna artikel tas inte upp nÀtverksfunktioner för routrar, sÄsom lastbalansering, failover, VPN med mera, eftersom alla dessa Àmnen redan har behandlats i en annan av vÄra artiklar: .
- Exempel pÄ anvÀndning av en router finns i vÄr första artikel: .
- Priser pÄ vÄra produkter kan ses i den allmÀnna . En egen webbplats pÄ ryska Àr Ànnu inte klar.
Vi inbjuder till Advantech-partnerforumet

Advantech-forumet kommer att bli en unik plattform för att diskutera lokala och globala trender inom Internet of Things. HĂ€r kan du dela erfarenheter av att anvĂ€nda nya tekniska lösningar och produkter, hitta nya kunder och partners. Du fĂ„r ocksĂ„ chansen att se produkterna vi har beskrivit i artiklar och mer dĂ€rtill. Vi kommer att ha talare frĂ„n branschen och representanter för nyckelpartners â NVidia, Intel och andra företag som aktivt deltar i utvecklingen av industriellt Internet of Things under de kommande Ă„ren. Vi ser fram emot att se alla specialister inom industriell automation och Internet of Things vid evenemanget. Deltagande Ă€r gratis! Antalet platser Ă€r begrĂ€nsat. .
KĂ€lla: habr.com
