Skapa snabbt en meshnätverksenhet kompatibel med flera protokoll
Bidraget med av DigiKeys nordamerikanska redaktörer
2019-04-09
Anslutna enheter används ofta i nätverk med hjälp av någon av flera meshtopologier som betonar nätverksstabilitet, områdestäckning och låg effekt. Designers har normalt behövt välja ett av dessa konkurrerande och inkompatibla protokoll och sedan implementera programvarustacken på den valda maskinvaruplattformen. Båda uppgifterna är utmanande och nu kanske båda är onödiga.
Tack vare framstegen i integrering har utvecklare alternativet att välja en befintlig meshnätverksstyrenhet med låg kostnad och litet avtryck som stöder flera konkurrerande standarder som Thread, Zigbee och BLE (Bluetooth Low Energy). Det ger flexibilitet på flera nivåer:
- Utvecklarna kan fortsätta med designen och välja ett protokoll senare i designcykeln.
- Utvecklarna kan testa och välja det bästa protokollet för tillämpningen, empiriskt, med hjälp av en enda enhet och utvecklingsplattform.
- En enda plattform kan användas för flera tillämpningar och geografiska regioner.
- Enheter kan distribueras med ett protokoll och sedan senare ändras till ett annat med en uppgradering av den fasta programvaran.
I den här artikeln beskrivs några av grunderna för trådlösa meshnätverk och därefter introduceras den trådlösa System on Chip-serien (SoC) Mighty Gecko och relaterade utvecklarverktyg från Silicon Labs. Sedan visas hur en designer kan använda detta som en plattform för att snabbt skapa ett fungerande meshnätverk baserat på olika konkurrerande nätverksprotokoll.
Vad är ett trådlöst meshnätverk?
Trådlösa meshnätverk skiljer sig från välbekanta stjärntopologinätverk som Wi-Fi eller Point-to-Point-protokoll, efter den ursprungliga Bluetooth-specifikationen. I ett meshnätverk kan datapaket ”hoppa” från en ansluten enhet till en annan tills de når sitt mål (figur 1). Och varje enskild enhet behöver bara vara inom räckvidd för en annan enhet i nätverket för att kunna kommunicera med alla andra enheter i samma nätverk. Till exempel kan en enhet i källaren kommunicera med en enhet på vinden, även om ingen av enheterna har tillräckligt med RF-energi för att nå varandra direkt. Ett bra meshprotokoll optimerar vägen enligt tillämpningens krav.

Figur 1: Ett stjärnnätverk (överst) har en central router eller åtkomstpunkt som alla noder måste kommunicera genom, medan i ett meshnätverk (nederst) samarbetar alla noder för att fördela data i ett nätverk. (Bildkälla: Silicon Labs)
Eftersom alla enheter i ett meshnätverk samarbetar genom att vidarebefordra meddelanden till sina mål kan nätverket tolerera saknade, felaktiga eller inaktiva noder. Förutsatt att varje nod är inom räckvidd för fler än en annan nod gör den här hopp- och dirigeringsfunktionen meshnätverken mycket robusta och feltoleranta. Principen liknar TCP/IP-protokollsviten som ligger till grund för själva Internet: datapaketen hittar till slut målet, även om det inte alltid sker via en direkt väg.
Det finns flera konkurrerande meshnätverksprotokoll och de är alla ömsesidigt inkompatibla, trots att de använder liknande underliggande principer. Zigbee, Thread och BLE är tre exempel. De fungerar alla inom samma 2,4 GHz-band men använder olika meshprotokoll, så de fungerar inte tillsammans.
Varje trådlöst nätverksprotokoll har sina för- och nackdelar, och utvecklarna måste bestämma vilken standard som fungerar bäst för dem. I vissa fall kan utvecklare föredra att skapa ett eget trådlöst meshnätverk i stället för att använda ett standardnätverk. Det kan vara av säkerhetsskäl eller för produktdifferentiering, eller för att implementera en unik funktionsuppsättning.
Introduktion till Mighty Gecko
För att maximera flexibiliteten och minska design- och utvecklingstiden är det en bra idé att välja en trådlös nätverksstyrenhet som stöder flera standarder. Det ger utvecklare flexibilitet på fyra sätt. Ett: Det skjuter upp beslutet om vilken nätverksstandard som ska väljas till mycket senare i designcykeln när det kan finnas bättre kundfeedback eller marknadsinformation. Två: Utvecklare kan testa olika nätverksstandarder i labbet och välja den bästa utifrån empiriska bevis. Tre: En enda plattform kan distribueras i flera produkter som använder olika nätverksstandarder. Det kan vara särskilt användbart vid betjäning av olika geografiska marknader runt om i världen. Fyra: Enheten eller plattformen kan ändras, förbättras eller uppgraderas på fältet, kanske till och med genom att ändra nätverket som den stöder.
För att ge designers denna flexibilitet har Silicon Labs utvecklat Mighty Gecko-produktfamiljen med trådlösa SoC-enheter för meshnätverk (figur 2). Produktfamiljen (internt kallad EFR32MG) har flera relaterade medlemmar, alla baserade på samma 40 MHz Arm® Cortex®-M4 32-bitars processorkärna.
Figur 2: SoC-produktfamiljen från Mighty Gecko är baserad på Arm Cortex-M4 och har allt som behövs för en trådlös mehsnätverksstyrenhet. (Bildkälla: Silicon Labs)
Alternativen omfattar storleken på on-chip Flash-minne (256, 512 eller 1024 kB, storleken på internt SRAM (32, 64, 128 eller 256 kB, pakettyp och temperaturintervall. Alla SoC:er från Mighty Gecko är specificerade för industriellt temperaturintervall (-40 °C till +85 °C), där några är kvalificerade för utökade temperaturer/fordonstemperaturer (-40 °C till +125 °C).
Som SoC har Mighty Gecko nästan allt som en trådlös nätverksstyrenhet behöver. Radiosektionen i det övre vänstra blockdiagrammet visar två separata RF-sektioner: en för 2,4 GHz-bandet med upp till 19 dBm sändningseffekt som används för Thread, Zigbee och BLE och en separat sub-GHz-radio med upp till 20 dBm effekt för implementering av egna nätverk.
Chippet har också omfattande on-chip-krafthantering, ett spänningsintervall i drift på 1,8 till 3,8 volt, en integrerad DC/DC-omvandlare och Wake on Radio-funktion (radioväckning), där hela chippet kan vara i standbyläge med låg effekt tills det får ett radiopaket. Dessutom kan chippet med inbyggd detektering av signalstyrka, inledningsmönster och ram samt timeout väcka bara de radiosändningar som är relevanta, inte nödvändigtvis för all radiotrafik.
I stället för att designa ett Mighty Gecko-baserat kort från början är det mycket lättare att börja med en färdig utvärderings- och utvecklingssats. Meshstartsatsen SLWSTK6000B har all maskinvara och programvara som krävs för att konfigurera och testa ett litet meshnätverk.
Satsen innehåller tre identiska uppsättningar kort, där varje uppsättning består av ett huvudkort och ett val av plugin-radiokort (figur 3). En enstaka uppsättning kan vara användbar för tidig utvärdering eller programutveckling men det krävs minst två för att testa nätverket och minst tre för att testa meshfunktionerna. Därför är det bra att SLWSTK6000B-satsen levereras med tre uppsättningar av allt.

Figur 3: En SLWSTK6000B-startsats innehåller tre identiska uppsättningar huvudkort och plugin-radiokort för att skapa ett litet meshnätverk. (Bildkälla: Silicon Labs)
Det som kan verka vara en stor IC-krets i mitten av huvudkortet är faktiskt en LCD-display (figur 4). Den monokroma 128 × 128-pixeldisplayen kräver mycket lite ström och lagrar pixeldata internt, så den behöver inte uppdateras. Mighty Gecko-mikrostyrenhetschippet finns på det mindre plugin-radiokortet.

Figur 4: Bild av huvudkort/radiokort-par från SLWSTK6000B-meshstartsatsen Den stora enheten i mitten är en bitmappad LCD-display (Bildkälla: Silicon Labs)
Plugin-radiokorten är borttagbara och ersättningsbara på varje huvudkort, och satsen levereras med två olika typer för varje huvudkort (totalt sex radiokort). Korten i satsen stöder alla Zigbee och Thread i 2,4 GHz-bandet men andra kort med andra RF-egenskaper och frekvenser är också tillgängliga, inklusive sådana som stöder sub-GHz-frekvenser för egna nätverk.
Det är en bra idé att montera maskinvaran och strömsätta den innan du installerar och kör programvarans IDE, men det är inte obligatoriskt. Välj helt enkelt ett radiokort och tryck försiktigt fast det på de matchande stiftlisterna på huvudkortet. Ström kan försörjas på några olika sätt (t.ex. batteri AC-adapter eller USB) men en USB-kabel är det lättaste och ger några ytterligare fördelar. USB-anslutningen finns på den vänstra kanten av huvudkortet, mitt emot radiokortet.
När kortet slås på tänds en blå LED-lampa nära USB-kontakten och den kvadratiska LCD-displayen i mitten tänds. Efter en kort paus tänds även en grön ”pulsslags-LED”.
För nästa steg är det bäst att hålla maskinvaran ansluten till utvecklingssystemet via USB-kabeln. Det är även en bra idé att skjuta den lilla strömbrytaren med tre lägen (nära det nedre vänstra hörnet på huvudkortet) till AEM-läget längst till höger.
Programvaruinstallation
Simplicity Studio är Silicon Labs allt-i-ett-lösning på IDE (Integrated Development Environment – integrerad utvecklingsmiljö) för Mighty Gecko samt för många av företagets andra mikrostyrenheter. Du kan ladda ned den kostnadsfria programvaran på företagets Simplicity Studio-nedladdningssida. Installera och kör Simplicity Studio innan du fortsätter.
Starta Simplicity Studio och följ instruktionerna för att utföra några ytterligare konfigurationssteg specifika för utvecklingssatsens maskinvara och den programvara du vill använda. Processen är enkel men kräver några beslut och möjligen ett extra steg för maskinvaruregistrering.
Om huvudkortet fortfarande är anslutet till utvecklingsdatorn enligt rekommendationen ovan identifierar Simplicity Studio maskinvarans USB-gränssnitt under dess installation och laddar ned och konfigurerar automatiskt vissa maskinvaruspecifika funktioner.
Nästa steg är att ladda ned den maskinvaruspecifika programvaran för den här utvecklingssatsen. Simplicity Studio har två alternativ: ”Install by Device” (Installera per enhet) och ”Install by Product Group” (Installera per produktgrupp) (figur 5). Båda ger i slutänden samma resultat men det är enklare att välja det tidigare alternativet, så klicka på den stora gröna ”Install by Device”-knappen.

Figur 5: Simplicity Studio har två vägar för att ladda projektspecifik programvarusupport – installera per enhet eller installera per produktgrupp. (Bildkälla: DigiKey)
Simplicity Studio bör automatiskt identifiera utvecklingskortet, men om det inte sker manuellt letar du reda på det programvarupaket som krävs. Skriv ”SLWSTK6000B” i sökrutan, enligt figur 6. Dubbelklicka på det programvarusupportpaket som föreslås och klicka på Next (Nästa).

Figur 6: Programvaran som krävs hittas snabbt om du anger SLWSTK6000B i sökrutan. (Bildkälla: DigiKey)
Simplicity Studio markerar sedan ytterligare programvarusupport som är tillgänglig för den här maskinvarukonfigurationen. En viss del av denna programvara är begränsad till användare som har registrerat sig hos Silicon Labs och/eller registrerat maskinvaran. Vissa alternativ kan därför vara nedtonade och tillfälligt otillgängliga, enligt figur 7.

Figur 7: Åtkomst till viss programvara är villkorlig enligt bevis på köp av maskinvara. (Bildkälla: DigiKey)
Programvarustackarna för Thread, Zigbee och några andra protokoll är beroende av bevis på köp av den meshaktiverade maskinvaran, till exempel SLWSTK6000B-utvecklingssatsen, så det är viktigt att slutföra följande registreringssteg innan du fortsätter.
Börja med att leta upp den 10-siffriga hexadecimala koden på utsidan av Mighty Gecko-startsatsens kartong. (Om du vill ha hjälp med att hitta den 10-siffriga koden går du till ”Access to Silicon Labs Wireless Mesh Stacks” (Åtkomst till Silicon Labs trådlösa meshstackar) i Silicon Labs kunskapsbas om Zigbee och Thread.) Klicka sedan på länken ”Register Kit” (Registrera sats) på alternativen Thread eller EmberZNet (Zigbee), enligt ovan. Det slutför maskinvaruregistreringen och låser upp meshnätverkets protokollstackar. Klicka på Next (Nästa) för att fortsätta.
Till sist: Simplicity Studio visar ett långt manifest för alla programvarualternativ som du rekommenderas att installera, inklusive en eller flera C-kompilatorer, realtidsoperativsystem som tillval, profilverktyg och många andra alternativ (figur 8). Vissa alternativ kan manuellt aktiveras eller inaktiveras men det är allmänt sett bäst att acceptera de föreslagna programvarualternativen. Klicka på Next (Nästa) när du är klar.

Figur 8: Det slutliga programvarumanifestet för Simplicity Studio visar alla programvarualternativ som du rekommenderas att installera, inklusive en eller flera C-kompilatorer, realtidsoperativsystem som tillval och profilverktyg. (Bildkälla: DigiKey)
Som ett sista steg visar Simplicity Studio sitt huvudlicensavtal för programvara som omfattar alla programvarukomponenter som ska installeras. Läs och acceptera licensen och klicka sedan på Next (Nästa) en sista gång.
Programvaruinstallationen tar flera minuter. När den är klar stänger du och startar om Simplicity Studio. Allt är klart och du kan börja skapa meshnätverkstillämpningar med Thread, Zigbee, Bluetooth eller ett anpassat eget protokoll. Simplicity Studio innehåller några enkla förkonfigurerade demoprogram samt exempelkod som kan ändras, allt för att utvecklarna ska komma igång på rätt sätt.
Slutsats
Att skapa trådlöst anslutna enheter som använder ett meshnätverk är numera enkelt tack vare en förkonfigurerad sats med kompatibel maskinvara och förtestad programvara. Med maskinvarans flexibilitet får du snabb empirisk utvärdering av olika nätverksprotokoll, till exempel Zigbee, Thread och BLE, och även möjlighet till framtida byte från ett protokoll till ett annat. Bytet kan ske i design- och utvecklingsstadiet eller när slutprodukten har distribuerats.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.



