Ontwerp snel een mesh-netwerksysteem dat compatibel is met meerdere protocollen

Door Jim Turley

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Aangesloten apparaten zijn vaak verbonden via een netwerk van verschillende gemaasde topologieën waarbij de nadruk op de robuustheid van het netwerk, de dekking en een laag energieverbruik ligt. Ontwerpers moesten gewoonlijk een van deze concurrerende en niet-compatibele protocollen kiezen om vervolgens de software-stack op het gekozen hardwareplatform te implementeren. Beide taken stelden ontwerpers voor de nodige uitdagingen, en beiden zijn nu wellicht overbodig geworden.

Dankzij de vooruitgang in integratie hebben ontwikkelaars de mogelijkheid om een bestaande, goedkope mesh-netwerkcontroller met kleine voetafdruk te kiezen die meerdere concurrerende standaarden ondersteunt, waaronder Thread, Zigbee en Bluetooth Low Energy (BLE). Dit zorgt voor meer flexibiliteit, in meerdere opzichten:

  • Ontwikkelaars krijgen de mogelijkheid om door te gaan met het ontwerp en pas later in het ontwerpproces een protocol te kiezen.
  • Ontwikkelaars krijgen de mogelijkheid om het beste protocol voor de toepassing proefondervindelijk te testen en te kiezen, met gebruikmaking van een enkel apparaat en ontwikkelingsplatform.
  • Een enkel platform kan voor meerdere toepassingen en geografische zones worden gebruikt.
  • Apparaten kunnen met één protocol worden geïmplementeerd en later via een firmware-upgrade naar een ander protocol worden overgezet.

Dit artikel beschrijft eerst een aantal basisprincipes van draadloze mesh-netwerken en introduceert vervolgens de Mighty Gecko-familie van draadloze systems-on-chip (SoC's) en bijbehorende ontwikkelingstools van Silicon Labs. Vervolgens wordt uitgelegd hoe een ontwerper deze systemen kan gebruiken als platform om snel een werkend mesh-netwerk te creëren op basis van verschillende, concurrerende netwerkprotocollen.

Wat is een draadloos mesh-netwerk?

Draadloze mesh-netwerken verschillen van de vertrouwde netwerken met stertopologie als Wi-Fi of point-to-point protocollen vanwege de originele Bluetooth-specificatie. In een mesh-netwerk kunnen datapakketten van het ene aangesloten apparaat naar het andere “springen” (hoppen) totdat ze hun bestemming bereiken (Afbeelding 1). Bovendien is het voldoende dat een apparaat zich binnen het bereik van één ander apparaat op het netwerk bevindt om met alle andere apparaten in hetzelfde netwerk te kunnen communiceren. Een apparaat in de kelder kan bijvoorbeeld communiceren met een apparaat op zolder, ook als geen van beiden over voldoende RF-energie beschikt om het andere apparaat rechtstreeks te bereiken. Een goed mesh-protocol zal de route op basis van de toepassingsvereisten optimaliseren.

Schema van een sternetwerk vergeleken met een gemaasd netwerk

Afbeelding 1: in een sternetwerk (boven) moeten alle knooppunten communiceren via een centrale router of access-point, in een mesh-netwerk (onder) daarentegen werken alle knooppunten samen om de gegevens binnen het netwerk te distribueren. (Bron afbeelding: Silicon Labs)

Omdat alle apparaten in een mesh-netwerk samenwerken om berichten naar hun bestemming door te sturen, kan het netwerk ontbrekende, defecte of uitgeschakelde knooppunten tolereren. Ervan uitgaande dat elk knooppunt zich binnen het bereik van meer dan één ander knooppunt bevindt, maakt dit vermogen tot 'hoppen' en routeren mesh-netwerken zeer robuust en foutbestendig. Het concept is vergelijkbaar met dat van de TCP/IP-protocolsuite die aan het internet zelf ten grondslag ligt: datapakketten vinden uiteindelijk hun bestemming, ook al is dit niet altijd via een directe route.

Er zijn verschillende concurrerende mesh-netwerkprotocollen en deze zijn onderling allemaal incompatibel, hoewel ze op vergelijkbare onderliggende principes berusten. Drie voorbeelden van dergelijke protocollen zijn Zigbee, Thread en BLE. Ze werken alle drie in dezelfde band van 2,4 gigahertz (GHz) maar gebruiken verschillende mesh-protocollen zodat ze niet onderling kunnen samenwerken.

Elk draadloos mesh-protocol heeft zijn voors en tegens en het is aan de ontwikkelaars om te beslissen welke standaard voor hen het beste werkt. In sommige gevallen geven ontwikkelaars er wellicht de voorkeur aan om hun eigen draadloze mesh-netwerk te creëren in plaats van een standaard netwerk te gebruiken. Dit kan zijn om veiligheidsredenen zijn, of vanwege productdifferentiatie, of om een aantal unieke functies te kunnen implementeren.

Inleiding op Mighty Gecko

Om zoveel mogelijk flexibiliteit te verkrijgen en de ontwerp- en ontwikkeltijd te verkorten, is het een goed idee om een draadloze netwerkcontroller te kiezen die meerdere standaarden ondersteunt. Ontwikkelaars krijgen hierdoor op vier verschillende manieren meer flexibiliteit. Ten eerste kan de beslissing over de keuze van de netwerkstandaard worden uitgesteld tot veel later in het ontwerpproces, wanneer er mogelijk meer feedback van de klant of betere marktinformatie beschikbaar is. Ten tweede krijgen ontwikkelaars de mogelijkheid om in het lab verschillende netwerkstandaarden uit te testen en proefondervindelijk de beste uit te kiezen. Ten derde kan een enkel platform in meerdere producten worden geïmplementeerd met behulp van verschillende netwerkstandaarden. Dit kan met name nuttig zijn wanneer men voor verschillende markten op verschillende plaatsen in de wereld werkt. Ten vierde kan het apparaat of platform in het veld worden aangepast, verbeterd op bijgewerkt, wellicht zelfs door het ondersteunende netwerk te veranderen.

Om ontwerpers deze flexibiliteit te bieden ontwikkelde Silicon Labs de Mighty Gecko-familie van draadloze SoC-apparaten voor gemaasde netwerken (Afbeelding 2). De familie (die intern EFR32MG wordt genoemd) omvat diverse gerelateerde elementen, die allemaal op dezelfde 40 megahertz (MHz) Arm® Cortex®-M4 32-bits processorkern zijn gebaseerd.

Schema van de Silicon Labs Mighty Gecko SoC familie (klik om te vergroten)

Afbeelding 2: de Mighty Gecko SoC-familie, gebaseerd op de Arm Cortex-M4, heeft vrijwel alles wat je voor een een draadloze mesh-netwerkcontroller nodig hebt. (Bron afbeelding: Silicon Labs)

Er kan onder meer gekozen worden tussen verschillende groottes voor het flash-geheugen op chip (256, 512 of 1024 kilobytes (Kbytes)), verschillende groottes voor het SRAM (32, 64, 128 of 256 Kbytes), verschillende soorten pakketten en verschillende temperatuurbereiken. Alle Mighty Gecko SoC's zijn geschikt voor een industrieel temperatuurbereik (-40°C tot +85°C), en sommige modellen hebben een uitgebreide temperatuurspecificatie / zijn geschikt voor temperaturen in de automotive branche (-40°C tot +125°C).

Als SoC biedt de Mighty Gecko vrijwel alles wat je nodig hebt voor een draadloze netwerkcontroller. De radiosectie links boven in het blokdiagram toont twee separate RF-secties: één voor de 2,4 GHz-band met maximaal 19 dBm overdrachtsvermogen, gebruikt voor Thread, Zigbee en BLE, en een separate sub-GHz radio met een vermogen van maximaal 20 dBm voor het implementeren van propriëtaire netwerken.

De chip heeft ook uitgebreid energiebeheer op de chip, een werkingsspanningsbereik van 1,8 tot 3,8 volt, een geïntegreerde DC/DC-omzetter en de zogeheten “wake on radio”-functie, die ervoor zorgt dat de hele chip in een energiezuinige standbymodus kan slapen totdat hij een radiopakket ontvangt. Bovendien zorgen de ingebouwde signaalsterktemeting, aanlooppatroondetectie, framedetectie en time-out ervoor dat de chip alleen wordt gewekt bij radiotransmissies die relevant voor de chip zelf zijn, niet noodzakelijkerwijs bij al het radioverkeer.

In plaats van een Mighty Gecko-bord vanaf nul te ontwerpen, is het stukken gemakkelijker om met een kant-en-klare evaluatie- en ontwikkelingskit te beginnen. De SLWSTK6000B mesh-starterkit heeft alle hardware en software die nodig zijn om een klein mesh-netwerk te bouwen en te testen.

De kit bevat drie identieke sets van printplaten, elk bestaande uit een hoofdprintplaat en verschillende plug-in radioprintplaten (Afbeelding 3). Een enkele set kan nuttig zijn voor vroegtijdige evaluatie of softwareontwikkeling, maar er zijn er minstens twee nodig om het netwerk te testen en drie of meer om de mesh-functies te testen. Het is dus logisch dat de SLWSTK6000B-kit met drie sets van alles wordt geleverd.

Afbeelding van Silicon Labs SLWSTK6000B starterkit

Afbeelding 3: een SLWSTK6000B starterkit bevat drie identieke sets van hoofdprintplaten en plug-in radioprintplaten om een klein mesh-netwerk te creëren. (Bron afbeelding: Silicon Labs)

Wat een grote IC in het midden van de hoofdprintplaat lijkt te zijn, is eigenlijk een LCD-scherm (Afbeelding 4). Het monochrome display van 128 × 128 pixels heeft maar weinig stroom nodig en slaat pixelgegevens intern op, zodat refreshen niet nodig is. De Mighty Gecko-microcontrollerchip bevindt zich op de kleinste plug-in radioprintplaat.

Afbeelding van hoofdprintplaat/radioprintplaat-paar van de mesh-starterkit SLWSTK6000B van Silicon Labs

Afbeelding 4: een hoofdprintplaat/radioprintplaat-paar van de mesh-starterkit SLWSTK6000B. Het grote onderdeel in het midden center is een bitmapped LCD-display. (Bron afbeelding: Silicon Labs)

De plug-in radioprintplaten kunnen worden verwijderd en op elke hoofdprintplaat teruggezet en de kit bevat twee verschillende types voor elke hoofdprintplaat (in totaal zes radioprintplaten). Alle printplaten uit de kit ondersteunen Zigbee en Thread in de 2,4 GHz-band, maar er zijn ook andere printplaten met andere RF-karakteristieken en -frequenties beschikbaar, inclusief printplaten die sub-GHz frequenties voor propriëtaire netwerken ondersteunen.

Het is een goed idee om de hardware te assembleren en onder stroom te zetten alvorens de software IDE te installeren en uit te voeren, maar dit is niet verplicht. Kies eenvoudig een radioprintplaat en druk deze zachtjes op de bijpassende stiftlijsten op de hoofdprintplaat. De stroomvoorziening kan op verschillende manieren worden gerealiseerd (bijv. batterij, AC-adapter of USB), maar een USB-kabel is het eenvoudigste en biedt enkele bijkomende voordelen. De USB-aansluiting zit op de linker rand van de hoofdprintplaat, tegenover de radioprintplaat.

Nadat de voeding naar de printplaat is aangesloten, zal een blauwe LED bij de USB-connector oplichten en wordt het vierkante LCD in het midden verlicht. Na een korte pauze zal er ook een groene “hartslag”-LED gaan branden.

Voor de volgende stappen is het het beste om de hardware via de USB-kabel aangesloten te houden op het ontwikkelingssysteem. Het is ook een goed idee om de kleine power-schakelaar met drie standen (in de buurt van de linker onderhoek van de hoofdprintplaat) op de uiterst rechtse “AEM”-stand te zetten.

Software-installatie

Simplicity Studio is de geïntegreerde alles-in-een ontwikkelingsomgeving (integrated development environment - IDE) van Silicon Labs voor Mighty Gecko en voor vele van de andere microcontrollers van het bedrijf. Om de gratis software te downloaden ga je naar de Simplicity Studio downloadpagina van het bedrijf. Voordat je verder gaat moet je Simplicity Studio installeren en uitvoeren.

Start Simplicity Studio en volg de prompts om een aantal extra configuratiestappen uit te voeren, specifiek voor de hardware van ontwikkelingskit en de gewenste software. Het proces is eenvoudig, maar er moeten een paar beslissingen worden genomen en er is de mogelijkheid tot een extra stap voor hardware-registratie.

Als de hoofdprintplaat nog steeds is verbonden met de ontwikkelings-pc als hierboven aanbevolen, zal Simplicity Studio terwijl het wordt geïnstalleerd de USB-interface van de hardware detecteren en automatisch een aantal hardware-specifieke functies downloaden en configureren.

De volgende stap is de hardware-specifieke software voor deze ontwikkelingskit downloaden. Simplicity Studio biedt twee opties: “Install by Device” (Installeren per apparaat) of “Install by Product Group” (Installeren per productgroep) (Afbeelding 5). Uiteindelijk zullen beide opties hetzelfde resultaat opleveren, maar het is gemakkelijker om de eerste te selecteren, dus klik op de grote groene knop “Install by Device”.

Afbeelding van Simplicity Studio-software

Afbeelding 5: Simplicity Studio biedt twee routes voor het laden van project-specifieke software-ondersteuning; installeren per apparaat of installeren per productgroep. (Bron afbeelding: DigiKey)

Simplicity Studio zou het ontwikkelingsbord automatisch moeten detecteren, maar als dit niet gebeurt, kan het vereiste softwarepakket gemakkelijk handmatig worden gelokaliseerd. Typ eenvoudig “SLWSTK6000B” in het zoekvenster, als getoond op Afbeelding 6. Dubbelklik op het gesuggereerde software-ondersteuningspakket en klik vervolgens op Next (Volgende).

Afbeelding van zoekvenster Simplicity Studio

Afbeelding 6: door SLWSTK6000B in het zoekvenster te typen, wordt de gewenste software snel gelokaliseerd. (Bron afbeelding: DigiKey)

Vervolgens zal Simplicity Studio de aanvullende software-ondersteuning markeren die voor deze hardwareconfiguratie beschikbaar is. Sommige van deze software is beperkt tot gebruikers die zich hebben geregistreerd bij Silicon Labs en/of die de hardware hebben geregistreerd. Daarom kunnen sommige opties grijs worden weergegeven en tijdelijk niet beschikbaar zijn, zoals weergegeven in Afbeelding 7.

Afbeelding van toegang tot Simplicity Studio-software

Afbeelding 7: toegang tot bepaalde software is afhankelijk van het bewijs dat men de hardware heeft gekocht. (Bron afbeelding: DigiKey)

De beschikbaarheid van software-stacks voor Thread, Zigbee en bepaalde andere protocollen is gekoppeld aan overlegging van het bewijs van aankoop van de voor mesh-netwerken vrijgegeven hardware, zoals de SLWSTK6000B ontwikkelingskit, het is dus belangrijk om de volgende registratiestappen te voltooien voordat je verder gaat.

Begin met het lokaliseren van de 10-cijferige hexadecimale code op de buitenkant van de doos van de Mighty Gecko-starterkit. (Zie voor hulp bij het vinden van de 10-cijferige code “Access to Silicon Labs Wireless Mesh Stacks” in de Silicon Labs Zigbee & Thread kennisbasis.) Klik vervolgens bij de link “Register Kit” (Kit registreren) op de opties voor Thread of EmberZNet (Zigbee), als hierboven getoond. Hierdoor wordt de hardware-registratie voltooid en worden de protocol-stacks voor het mesh-netwerk gedeblokkeerd. Klik op Next om verder te gaan.

Tot slot presenteert Simplicity Studio een uitgebreid manifest van alle software-opties waarvan installatie wordt aanbevolen, waaronder een of meer C-compilers, optionele real-time besturingssystemen, profileringstools en vele andere opties (Afbeelding 8). Bepaalde opties kunnen handmatig worden geactiveerd of gedeactiveerd, indien gewenst, maar over het algemeen is het het beste om de gesuggereerde sofware-loadout te accepteren. Klik na afloop op Next.

Afbeelding van afsluitend software-manifest voor Simplicity Studio

Afbeelding 8: het software-manifest voor Simplicity Studio toont alle software-opties waarvan installatie wordt aanbevolen, waaronder een of meer C-compilers, optionele real-time besturingssystemen en profileringstools. (Bron afbeelding: DigiKey)

Als laatste stap toont Simplicity Studio de master-softwarelicentieovereenkomst die alle softwarecomponenten dekt die zullen worden geïnstalleerd. Lees en accepteer de licentie en klik dan nog een allerlaatste keer op Next.

De installatie van de software zal enkele minuten in beslag nemen. Na afloop moet je Simplicity Studio sluiten en opnieuw starten. Alles is klaar om te beginnen met het creëren van mesh-netwerktoepassingen met behulp van Thread, ZigBee, Bluetooth of een aangepast propriëtair protocol. Simplicity Studio bevat een aantal eenvoudige voorgeconfigureerde demoprogramma's alsmede een voorbeeldcode die kan worden gewijzigd, allemaal om ontwikkelaars te helpen om met de kit aan de slag te gaan.

Conclusie

Het creëren van draadloos verbonden apparaten die gebruikmaken van een mesh-netwerk is nu een fluitje van een cent, dankzij een voorgeconfigureerde set met compatibele hardware en vooraf geteste software. De flexibiliteit van de hardware maakt een snelle, proefondervindelijke evaluatie mogelijk van verschillende netwerkprotocollen, zoals Zigbee, Thread en BLE, terwijl ook een toekomstige overstap van het ene protocol naar het andere tot de mogelijkheden behoort. Deze overstap kan plaatsvinden tijdens de ontwerp- en ontwikkelingsfase of nadat het eindproduct is geïmplementeerd.

 
DigiKey logo

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.

Achtergrondinformatie over deze auteur

Image of Jim Turley

Jim Turley

Voordat Jim Turley een technologie-analist en schrijver werd, die zich vooral met microprocessors, halfgeleidertechnologie en embedded systemen bezighoudt, was hij een hardware-engineer. Van 2001 tot 2018 runde hij het analistenbureau Silicon Insider. Daarvoor was hij president en CEO van een klein, op de beurs genoteerd bedrijf dat zich bezighield met microprocessor IP (intellectual property - intellectueel eigendom), na als senior-vicepresident marketing voor nog een ander bedrijf voor microprocessor-licentieverlening te hebben gewerkt. Hij is de auteur van zeven boeken, werkte als hoofdredacteur van Microprocessor Report en Embedded Systems Design en was conferentievoorzitter voor de Embedded Systems Conference (ESC).

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey