Hvordan Linux Talks til Internet of Things:. En titt på IEEE 802.15.4

Hvis du betaler mye oppmerksomhet til futuristene på nettet i disse dager, ingen tvil om du er kjent med begrepet " Internet Of Ting " Det kan være enda-en-moteord, men det sentrale konseptet er ganske reell: spredningen av lavt strømforbruk, Internett-tilkoblede enheter som bruker trådløse nettverk for å kommunisere med våre PC-er og servere. Tross alt, trenger du ikke en datamaskin i varmtvannsberederen eller elektrisk meter: du trenger bare en sensor, og måten å lese den eksternt. Linux vil være en betydelig aktør i dette rommet, men de fleste utviklerne fortsatt ikke er kjent med nettverksstandarder som gjør det arbeidet, som IEEE 802.15.4.

80-Hva?

802,15 0,4 er en spesifikasjon fra IEEE 802.15 Arbeidsgruppen, som takler trådløs " personlige området " nettverk, eller WPANs. Standarden definerer et fysisk lag Hotell og Media Access Control
spesifikasjon, noe som betyr at den dekker frekvensene og forhandlings valg av sammenhengen, men ikke de protokoller som kjører over den. Dette er egentlig " link laget " av Internett-protokollen stabelen; beslektet med rå Ethernet-rammer eller til de mer velkjente 802,11 * WiFi spesifikasjoner.

Standarden er laget for å kjøre på svært lav spenning hardware, som du kan finne i en innebygd enhet som trenger å kjøre på batteri makt i måneder eller år av gangen. En slik WPAN er designet for å fungere med en omtrent 10 meter rekkevidden, og ulike overføringshastigheter er definert, fra 20 kbps opp gjennom 250 kbps. I tillegg til å arbeide med lav- makt
hardware, ble standarden skrevet for å få plass til veldig enkle å produsere (og dermed svært billig enheter).

En måte at dette gjøres ved å definere to klasser av noder: fullt funksjonsenheter
som PC-er, og redusert funksjonsenheter
(RFDs) som er innebygd sensor enheter. RFDs kan bare kommunisere direkte med full funksjonsenheter, slik at beefier maskinvare kan bære byrden av å administrere nettverk, ruting meldinger og annen overhead. Et slikt nettverk-koordinator node kan også definere en synkroniseringsplan, noe som bidrar til å holde de RFDs fra å kollidere med hverandre ved å definere faste og forutsigbare luker for å sende datapakker. Koordinatoren node sender ut jevn sjømerke meldinger for å hjelpe de RFDs holde tiden bare ved å lytte til varden når de trenger å overføre.

Det er flere frekvensbånd som er tilgjengelige for 802.15.4 enheter, inkludert den globale 2,4 GHz-båndet , 868 MHz-båndet i Europa, og 902 MHz-båndet i Nord-Amerika. Det er nye standarder for Kina og Japan også, på konsert med disse regionene eksisterende spektrum bevilgninger. Gitt den korte avstander og integrert bruk av de fleste lav-effekt sensorer, er det ikke forventet at RFDs må migrere mellom band, men dette kan potensielt være en bekymring for full funksjonsenheter.

For å gjøre noen av dette lavnivå kommunikasjon menings selvfølgelig andre lag må stables på toppen, for å håndtere IP-pakker, TCP-tilkoblinger, viktige funksjoner som sikkerhet og autentisering, og til slutt selve programprotokollene.

Protokoller og programvare

Dette er imidlertid hvor ting blir vanskelig, fordi 802.15.4 er mest anerkjente på konsert med ZigBee protokollen. ZigBee maskinvare er relativt billig (faktisk, har du kanskje sett den for salg for Arduino prosjekter og andre DIY elektronikk), men programvaren er en proprietær protokoll stack som er uforenlig med Linux GPLv2-lisens. Det er andre proprietære tilbud også, men enda viktigere er det bruksområder for 802.15.4 som bygger på åpne standarder.

Ikke alle protokollstakker gjelder for hobby, selvfølgelig. Wireless og ISA100.11a, for eksempel, er begge beregnet for industriell automasjon. Det enkleste alternativet er imidlertid 6LoWPAN (som er en forkortelse for IPv6 i løpet Lavt strømforbruk Wireless Personal Area Networks); en offisiell IETF prosjekt for å tilpasse seg IPv6-nettverk til lavt strømforbruk maskinvare. Når du tenker på det, de to er en naturlig tilpasning – lave kostnader og uregelmessig feltet utplassering av selvstyrte smarte sensorer nesten krever økt adressering og forenklet ruting av IPv6.

6LoWPAN er definert i RFC 4944. De detaljerte spesifikasjoner, hvordan å splitte standard IPv6-pakker opp i kortere rammene som brukes av 802.15.4, hvor en full-funksjon node koordinere et WPAN kan tildele IP-adresser til RFDs, og hvordan å rute pakker gjennom et mesh-nettverk med lavt strømforbruk noder. Noen av disse problemene kjøre opp mot særegne utfordringer ikke oppdages av IPv6 på andre typer &ndash nettverk; for eksempel kan lavt strømforbruk maskinvare ikke lytte hele tiden for nettverkstrafikk, noe som kan gjøre det vanskelig å oppdage topologien i nettverket.

Derfor nye rute algoritmer som 6LoWPAN AD-hoc ruting protokoll (LOAD ) har resultert. Det er også jobbe med å bringe tjenesten funn til 6LoWPAN, og på å optimalisere høyere nivå IETF protokoller som TCP og UDP for rammestørrelser og overføringshastigheter 802.15.4. Enkle elektroniske sensorer kanskje ikke trenger full bruk av TCP /IP, selvfølgelig, men støtter standard Internett-infrastruktur på innebygde enheter baner vei for andre interessante 802.15.4-baserte muligheter, for eksempel fjernkontroller som opprinnelig snakker TCP /IP.

802.15.4 støtte ble fusjonert inn i mainline Linux-kjernen i versjon 2.6.31, men 6LoWPAN støtte ikke lande før i januar 2012 med versjon 3.2. For den nysgjerrige, bor koden i net /ieee802154 /
i standarden treet.

Linux ZigBee-prosjektet (som er riktignok en forvirrende navn, med tanke på at den ikke implementere ZigBee seg for de nevnte lisensgrunner) er episenteret for både 802.15.4 og 6LoWPAN støtte. Per i kernel 3.2, rapporterer prosjekt som grunn 6LoWPAN støtte fungerer nå, men at kernel 3.3 vil bringe viktige forbedringer som fragmentering. Det finnes en rekke work-in-progress peker på det underliggende 802.15.4 lag også, inkludert Message Queuing og statusmeldinger.

Men er levende og godt prosjektet. Det er enda userspace verktøy for å finne og koble til enheter i nærheten, for å utføre grunnleggende nettverk koordinering, og for å overvåke en 802.15.4 nettverk med lappet versjoner av eksisterende verktøy som tcpdump og Wireshark.

Hva kan du gjøre i dag, og med hvilken maskinvare

Når det er sagt, er det lite sannsynlig at din standard desktop distribusjon kompilerer i 802.15.4 støtte i det standard pakker; dermed hvis du er interessert i å eksperimentere med lavt strømforbruk enheter eller 6LoWPAN, vil du sannsynligvis trenger å bygge dine egne moduler og enhetsdrivere.

Listen over enheter som støttes av prosjektet er kort, men det inkluderer både serie dongler og SPI boards.

En av de 802.15.4 chips på Linux ZigBee prosjektets støttet listen er Atmel AT86RF231, som sender og mottar på globalt tilgjengelige 2,4 GHz-båndet. Denne brikken er også brukt i en ny USB-dongle kalt Ben WPAN, en åpen kildekode hardware design produsert av Qi Hardware – de samme folkene som gjør det ultra-small Ben Nanonote at vi dekket i 2010. En versjon av dongle som plugges direkte inn i Nanonote er også tilgjengelig.

Qi Hardware har Ben WPAN arbeider med en modifisert versjon av oppstrøms 802.15.4 stack (som antagelig vil bli fusjonert tilbake et sted nede linje). De har vist at to Ben WPAN utstyrte Nanonotes kan etablere en nettverkstilkobling og snakke med hverandre. Fremover, en fungerende USB-alternativet vil sikkert åpne døren for flere programmerere bare på grunn av bussens ikonografisk.

Situasjonen på den innebygde enheten siden av gjerdet er ikke fullt så enkelt. Som du kanskje forventer, de fleste kommersielle sensor produsenter er mer interessert i å produsere ZigBee-sertifiserte produkter enn de er med å opprettholde en helt åpen kildekode miljøet. Det er imidlertid mindre produsenter som er interessert i å produsere brukbare hardware uten begrensninger av konsesjonssertifiseringsprosessen brukes av ZigBee, og vi begynner å se bevegelse mot åpne protokoller der også. Et godt sted å se er Freaklabs, som produserer Arduino-kompatibel maskinvare

802.15.4 sikkert har ennå ikke truffet ". Tipping point " nødvendig for masse adopsjon å ta av – hvis det hadde, ville vi uten tvil se Linux selskaper investerer mer tungt i enhetsdrivere og nettverk koden for kjernen gjennomføring. Men det er uten tvil den beste nyheten på denne fronten at ryktene mill antyder at ZigBee Alliance er skiftende sin oppmerksomhet fra sin nåværende proprietære design til en åpen standard basert på IETF TCP /IP stack – og etter all sannsynlighet på 6LoWPAN selv.

At ZigBee Alliance ville fokusere på en åpen standard er fornuftig fra et forretningsmessig ståsted. Du kan sikkert finne eksempler i det siste av en lukket modell åpne opp for å imøtekomme Linux og åpen kildekode (for eksempel Bluetooth). Hva det vil bety for oss er mye mer ny maskinvare for å eksperimentere med, basert på innebygde, smarte enheter hvor det er rikelig med ny spenning å bli avdekket.

(Bilde fra Qi wiki, under CC-by -SA 3,0) Anmeldelser