FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor...

20
Concept – versie 0.9 White paper en testrapport Corné van Dijk, Eric Dortmans, Wim Hendriksen, Diederich Kroeske, Albert Lak, Jan Woolderink Redactie Jan Woolderink Avans Hogeschool Fontys Hogescholen ICT Breda, Eindhoven Januari 2014 FireBee Spraak over ZigBee

Transcript of FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor...

Page 1: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

Concept – versie 0.9

White paper en testrapport

Corné van Dijk, Eric Dortmans, Wim Hendriksen, Diederich Kroeske, Albert Lak, Jan Woolderink

Redactie Jan Woolderink

Avans Hogeschool Fontys Hogescholen ICT

Breda, Eindhoven Januari 2014

FireBee Spraak over ZigBee

Page 2: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 1

Inhoudsopgave Inhoudsopgave ........................................................................................................................................ 1 1. Inleiding ........................................................................................................................................... 2

1.1 Achtergrond............................................................................................................................. 2 1.2 Doelstelling van het document ............................................................................................... 2 1.3 Referenties .............................................................................................................................. 2

2. Audio over ZigBee ........................................................................................................................... 3 2.1 Inleiding ................................................................................................................................... 3 2.2 ZigBee Streaming ..................................................................................................................... 3 2.3 Bandbreedte ............................................................................................................................ 4 2.3 Distributie naar meerdere ontvangers .................................................................................... 6 2.4 Uitval van berichten bij streaming .......................................................................................... 7 2.5 Overzicht van eerdere studies ................................................................................................. 7

3. Resultaten metingen doorvoersnelheid .......................................................................................... 8 3.1 Point-to-point streaming tussen twee nodes in een WiFi-arme omgeving ............................ 8 3.2 Point-to-point streaming in een WiFi-rijke omgeving. ............................................................ 8 3.3 ‘Multihop’: Communicatie over meerdere nodes in een wifi-rijke omgeving ...................... 10 3.4 Testen met packetsniffer ...................................................................................................... 11

4. Gebruikte hardware en software .................................................................................................. 12 4.1 Compressie - Vocoder ........................................................................................................... 12 4.2 Jennic module JN5148 ........................................................................................................... 13

5. Meetresultaten .............................................................................................................................. 15 5.1 On site test: FireBee Workshop op VOC-Tilburg, 29 mei 2013 ................................................... 15 5.2 Testresultaten met een multi-hopverbinding en 1 zender en 2 ontvangers .............................. 16

6. Conclusies en aanbevelingen ........................................................................................................ 17 Bijlagen .................................................................................................................................................. 18

Bijlage 1: Zenden van spraak – activity diagram ............................................................................... 18 Bijlage 2: Ontvangen van spraak – activity diagram ......................................................................... 19

Page 3: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 2

1. Inleiding 1.1 Achtergrond Dit document is een product van het RAAK-MKB-project FireBee. In dit project is praktijkgericht onderzoek verricht “ten behoeve van technische onderbouwing van architectuurbeslissingen van systemen op draadloze sensornetwerken in moeilijke omstandigheden” [1]. Voor het sensornetwerk is ZigBee gebruikt. De specifieke doelgroep is de bemanning van een brandweerauto (een tankautospuit). Brandweerpersoneel moet ook kunnen communiceren binnen gebouwen waar de normale communicatiemiddelen het laten afweten. In dit document wordt het resultaat beschreven van het werkpakket ‘Back-up spraakverbinding voor als alle communicatiemiddelen falen’. 1.2 Doelstelling van het document De kernvraag met betrekking tot spraaksignaal.het versturen van spraakberichten over een ZigBee-netwerk is hoe streaming data over een dergelijk draadloos netwerk met een beperkte bandbreedte verstuurd kan worden. Belangrijke aspecten /onderzoeksvragen daarbij zijn hoe groot de effectieve bandbreedte in een ZigBee-netwerk is, in welke mate het netwerk zelfconfigurerend is, wat de invloed van het aantal tussenliggende knooppunten is, welke datacompressie nodig is en hoe de broadcast van 1 zender naar 5 ontvangers verloopt. Daarbij spelen ook de verstaanbaarheid van de spraak en de robuustheid van de communicatieverbinding een rol. Het resultaat van het onderzoek is dat het mogelijk is geluidsdata te versturen over een ZigBee-netwerk wanneer een goede compressie wordt toegepast.. Dit rapport beschrijft het ontwerp, de implementatie en de testresultaten van geluidscommunicatie over een ZigBee-netwerk, gebaseerd op commerciële off-the-shelf ( COTS ) hardware. De hardware bestaat uit Jennic ZigBeesystemen met een 2,4 GHz radio en een aparte chip voor compressie en decompressie van het spraaksignaal.

Een verkorte versie van dit document is gepubliceerd in het ‘Bits & Chips’ magazine van oktober 2013 [2].

1.3 Referenties [ 1] Hendriksen, FireBee: praktijkgericht onderzoek ter ondersteuning van de ontwikkeling van op ZigBee gebaseerde hulpmiddelen voor brandweerteams, RAAK-MKB-aanvraag, 21 oktober 2011, Fontys Hogeschool ICT. [ 2] Woolderink, Lak en Hendriksen, FireBee: spraak over ZigBee, oktober 2013, Bits & Chips nr. 8. [ 3] Nooijens, Project FireBee, Stageverslag, Fontys Hogeschool ICT, juni 2013 [ 4] Thonet e.a., ZigBee – WiFi Coexistence, White paper and Test Report, April 15, 2008. [11] Mangharam ea, Voice over Sensor Networks, RTSS 2006 [12] Brunelli, Improving audio streaming over multi-hop ZigBee networks, Computer and Communications, July 2—8. [13] Wang e.a., Voice Communication over ZigBee Networks, IEEE Communications Magazine, January 2008 [14] Meli e.a., Using IEEE 802.15.4 / ZigBee in audio applications, 2006, ZHW (InES), Switzerland [14] Verma, Pillai, Human Voice Streaming over ZigBee – Low Bandwith Communication, .. [15] ZigBee and Wireless Radio Frequency Coexistance, ZigBee White Paper, ZigBee Alliance, 2007 [21] NXP, ZigBee PRO Stack User Guide, JN-UG-3048 rev 2.4, NXP Laboratories UK, 2012 [22] NXP, JN5148 Software Developer’s Kit Installation and User Guide, JN-UG-3064, NXP Laboratories UK, November 2010 [23] NXP, ZigBee PRO Application Template, JN-AN-1123, NXP Laboratories UK, 2011 [24] NXP, ZigBee Cluster Library, User Guide, JN-UG-3077, NXP Laboratories UK [25] NXP, Data Sheet: JN5148-J01, NXP Laboratories UK, 2013 [26] NXP, JenOS User Guide, JN-UG-3075, NXP Laboratories UK, December 2012 [26] CML Microcircuits, CMX608/CMX618 Half-Duplex RALCWI Vocoder, CML Microsystems, 2007. [27] Texas Instruments, SmartRT Packet Sniffer User Manual, SWRU187F, 2010, Texas Instruments Incorporated.

Page 4: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 3

2. Audio over ZigBee 2.1 Inleiding Een tankautospuit van de brandweer heeft een bemanning van zes personen: de chauffeur / pompbediende, de bevelvoerder en twee teams van twee manschappen: de waterploeg zorgt voor water en de aanvalsploeg bestrijdt het vuur in het gebouw. De communicatie in zo’n team is volledig afhankelijk van spraak via radioverbindingen. Daarvoor wordt het C2000 systeem gebruikt. De zes bemanningsleden gebruiken hetzelfde radiokanaal, dus een zendende spreker wordt uitgeluisterd door vijf ontvangers. Radioverbindingen in betonnen en stalen gebouwen zijn zeer storingsgevoelig door de verzwakking van de radiosignalen in die materialen. Ook het C2000 communicatiesysteem van de brandweer heeft hier problemen mee. Vooral bij inzet in diepe kelders en parkeergarages van staal is er een risico dat de verbindingen tussen de manschappen falen. Buiten weet men dan niet meer wat er zich binnen afspeelt: een potentieel gevaarlijke situatie. Met behulp van een zelfconfigurerend en zelfherstellend draadloze sensornetwerk kunnen robuuste communicatiekanalen opgebouwd worden, mits onderweg voldoende radiostations beschikbaar zijn om het signaal door te sturen. Het voorgestelde systeem maakt gebruik van draadloze microcontrollers (Jennic JN5148) die fungeren als knooppunten (nodes) in een netwerk en het ZigBeeprotocol implementeren. Dit netwerk verstuurt de spraakberichten van de spreker naar vijf luisteraars. De routering van berichten via de nodes wordt door het zelfconfigurerende ZigBeeprotocol geregeld. Als een node uitvalt, zoekt dit zelfherstellende protocol een alternatieve route. Nadeel is wel dat het aanbrengen van de lifeline-nodes extra werk veroorzaakt voor de brandweer-mensen in het gebouw. Dit nadeel is te verminderen als dit netwerk in de toekomst ook gebruik kan maken van staande infrastructuur, zoals ZigBeenodes in brandmelders en deurschakelaars. Een dergelijk netwerk is ondanks de lage bandbreedte te gebruiken voor spraakcommunicatie door gebruik te maken van hardwarematige codering en decodering van het spraaksignaal. Er zijn alleen half-duplex spraakverbindingen (PTT = Push-To-Talk) geïmplementeerd. Dit verlaagt de vereiste bandbreedte en de gevoeligheid voor vertraging van het geluid vergeleken met full-duplex verbindingen. Een probleem is dat de spreker gehoord moet worden door meerdere luisteraars. ZigBee is een typisch point-to-point network en ondersteunt geen efficiënt werkende implementatie voor levering van streaming-berichten bij meerdere ontvangers. Vijf luisteraars is echter haalbaar.

2.2 ZigBee Streaming Figuur 1 toont een ZigBeenetwerk met de gebruikte mesh-topologie. De cirkels stellen de nodes voor. Deze hebben een adres, waar berichten naartoe gestuurd kunnen worden. Er is een coördinator die toegang tot het netwerk regelt en er zijn routers die berichten kunnen verwerken en doorsturen. In het gebruikte netwerk worden geen End Devices gebruikt en kunnen alle nodes als router fungeren.

Figuur 1 Een ZigBee netwerk ZigBee is ontworpen voor communicatie van beperkte hoeveelheden gegevens van sensoren, met een relatief geringe snelheid over een korte afstand met gebruik van weinig energie. Het is niet bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen.

Page 5: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 4

Een aantal kenmerken van ZigBee zijn van invloed op het gebruik voor effectieve streaming / spraakcommunicatie: - de bandbreedte is beperkt; - het zendvermogen en het bereik van een ZigBee-node is beperkt en de rekencapaciteit en de buffermogelijkheid ervan zijn gering; - de toegang tot het communicatiekanaal wordt geregeld door het CSMA/CA-protocol, waardoor wachttijden worden geïntroduceerd met als gevolg een lagere brandbreedte en toename van de vertragingstijd; - er is een grote kans op transmissiefouten door multi-path fading en elektromagnetische interferentie, waardoor de kwaliteit en het gedrag van de verbinding varieert; - audiostreaming is gevoelig voor vertragingen; - ZigBee ondersteunt geen data-fragmentatie aan de kant van de zender en reassembling aan de kant van de ontvanger, zodat dit in de applicatielaag dient te gebeuren.

2.3 Bandbreedte De maximale bandbreedte van ZigBee is 250 kbps (kilobits per seconde). De lengte van een datapakket (packet size) is door de fysieke laag beperkt tot 127 bytes. De diverse headers van de lagen van de ZigBee-stack (MAC, netwerklaag, applicatielaag, zie figuur 2) nemen ongeveer 40 bytes in beslag. Het werkelijk aantal databytes per pakket is daarmee maximaal zo’n 85 bytes. De maximale effectieve bandbreedte is daardoor (85/127) * 250 ≈ 170 kbps.

Figuur 2 ZigBee netwerklagen

Deze snelheid wordt echter niet gehaald. In de praktijk wordt de doorvoersnelheid bepaald door de tijd die nodig is om vanuit een applicatie een bericht af te leveren. Uit literatuur [1x] blijkt dat de tijd, nodig voor het versturen van een datapakket van MAC-laag naar MAC-laag van twee naastliggende nodes ongeveer 4½ ms is. Praktijkmetingen met een ‘packetsniffer’ bevestigen deze waarde voor de gebruikte hardware. Voor het overdragen van het datapakket van de applicatie naar de MAC-laag is ongeveer 1 ms nodig bij de zendende node. Een gelijk tijdsinterval is nodig voor het afleveren van het datapakket vanuit de MAC-laag naar de applicatie aan de ontvangende kant. Zie figuur 3. In een ideale situatie zou dus elke 6½ ms een bericht met 85 bytes (680 bits) effectieve data verzonden of ontvangen kunnen worden, wat neerkomt op een doorvoersnelheid van 105 kbps. Wanneer een router nodig is voor het transport van het bericht tussen twee nodes ('multihop'), moet deze tussenliggende node eerst ontvangen en dan zenden, wat de doorvoersnelheid grofweg (niet alle lagen hoeven doorlopen te worden) terugbrengt tot de helft, dus 55 kbps.

Page 6: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 5

Figuur 3 Vertraging in een node

Voor een mesh-netwerk wordt in de praktijk de non-beacon-mode gebruikt. In deze mode is geen synchronisatie tussen de ZigBee-devices. De nodes kunnen data versturen op elk moment dat het communicatiekanaal open en beschikbaar is. De toegang tot het communicatiekanaal wordt verkregen via het CSMA/CA mechanisme(Carrier Sense Multiple Access met ‘Collision Avoidance’). Elke zender moet eerst toegang tot het kanaal krijgen voordat het mag gaan zenden. Dit is een ‘free-for-all’ situatie waarbij botsingen ontstaan zodra twee of meer nodes op hetzelfde moment willen zenden. Als het kanaal te druk bezet is schakelt de zender af voor een korte periode en probeert het vervolgens na een random tijd nog eens. Hierdoor wordt de effectieve doorvoersnelheid bij druk verkeer al snel veel lager. Daar er voor de 2,4 GHz-band overlap is tussen de beschikbare ZigBeekanalen en de gebruikte frequenties voor wifi wordt dit effect bij intensief wifi-verkeer versterkt [4]. In figuur 4 is te zien dat bepaalde ZigBee-kanalen sterk overlappen met wifi-kanalen en andere ZigBee-kanalen heel weinig. In de meetresultaten van hoofdstuk 4 is de invloed van druk wifi-verkeer weergegeven.

Figuur 4: ZigBeekanalen (a) versus wifikanalen (b) In een multihopsituatie neemt de doorvoersnelheid snel nog verder af. Doordat alle nodes gebruik maken van hetzelfde communicatiekanaal zullen nodes die niet rechtstreeks communiceren, maar wel in elkaars bereik liggen, elkaar storen. In figuur 4 kunnen de nodes 1 en 3 niet tegelijk zenden. Het signaal van node 3 stoort de ontvangst bij 2. De nodes 1 en 4 kunnen wel tegelijk zenden [1]. Het zendbereik is in de realiteit vaak geen nette cirkel. Het kan zeer grillige vormen aannemen die ook nog in de loop van de tijd veranderen. De in hoofdstuk 4 beschreven metingen laten zien dat dan 20 kbps de maximaal haalbare snelheid is.

Page 7: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 6

Figuur 5: Zenders storen elkaar

2.3 Distributie naar meerdere ontvangers In de beoogde toepassing wordt het bericht van telkens een zender (spreker) verstuurd naar maximaal 5 ontvangen (luisteraars). Daarvoor zijn binnen ZigBee een aantal mogelijkheden: Broadcast mechanisme Een mogelijkheid voor de versturen van data van een node naar de andere nodes, is het gebruikmaken van het broadcast-mechanisme van ZigBee. Een datapakket wordt dan naar alle andere nodes verstuurd. Elke router stuurt het datapakket ook door naar zijn buren. Om te voorkomen dat in een mesh netwerk de datapakketten blijven rondgaan, wordt per router een tabel bijgehouden (Broadcast Transaction Table) waarin de bron en het volgnummer van een broadcastpakket wordt opgeslagen. Deze informatie staan in de header van het broadcastbericht. Wanneer de router een broadcastbericht ontvangt gaat het eerst na of het dit bericht al eerder heeft ontvangen, voordat het bericht eventueel wordt doorgestuurd. In aanvulling daarop gebruikt ZigBee een passief acknowledgement schema: Na het zenden van een broadcastbericht wacht een node en luistert naar de berichten van zijn buren. Wanneer een buurtnode het bericht niet doorstuurt naar zijn buren binnen een zeker tijdsinterval, wordt het broadcastbericht opnieuw gestuurd. Deze extra voorzieningen voor een betrouwbare verzending van een broadcastbericht maakt het versturen van een broadcastbericht in een mesh netwerk tot een relatief langdurig proces. In een situatie waarin tijdvertraging niet gewenst of waarin grote hoeveelheden data verstuurd moeten worden, zoals bij streaming audio, is broadcasting geen goed communicatiemechanisme. Bound transfer Bij het bound transfer mechanisme is een zendernode (‘source endpoint’) gekoppeld aan een of meerdere ontvangende nodes (via ‘binding’). Deze ontvangende nodes vormen een groep (‘cluster’). De data van de zendende node wordt automatisch verstuurd aan alle nodes in de groep. Het is een mechanisme op applicatieniveau. Ook bij dit mechanisme is veel overhead aanwezig. Het mechanisme is getest in een praktijksituatie. Bij het versturen van eenvoudige data, zoals het aan en uit zetten van een lamp op de ontvangende nodes, werkt het systeem goed. Het versturen van grote hoeveelheden data in een korte tijd, zoals bij audiosteaming, blijkt echter niet mogelijk. Bij een geteste lage transmissiesnelheid van 6 kbps komen de pakketten niet aan. Unicast Het versturen van een datapakket van de ene node naar een bekende andere node is de eenvoudigste vorm van datacommunicatie en kost veel minder tijd dan de voorafgaande, omdat alleen de zender- en ontvangernode en de tussenliggende ‘doorgeef’nodes (routers) zijn betrokken. Het pad is bij het aanmelden van de node aan het netwerk vastgelegd in de routing tabellen van elke node, of wordt bepaald wanneer een datapakket voor het eerst verstuurd wordt van de zender naar de ontvanger. Daar andere mechanismen falen bij audio streaming is in de onderhavige toepassing gebruik gemaakt van herhaalde unicast. Een zender stuurt een pakket naar een ontvanger volgens unicast en vervolgens naar een andere ontvanger, en een derde enzovoorts, en vervolgens het tweede pakket naar de eerste ontvanger, naar de tweede en de derde, enzovoort.

Page 8: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 7

Dit mechanisme werkt alleen wanneer de tijd nodig voor het achtereenvolgens versturen van een pakket naar alle ontvangende nodes kleiner is dan de benodigde tijd tussen twee datapakketen van 80 byte naar dezelfde mode. Door gebruik te maken van datacompressie aan de zenderkant en decompressie aan de ontvangerkant wordt dit inderdaad bereikt. Zie hoofdstuk 3 voor de berekening.

2.4 Uitval van berichten bij streaming Bij audiostreaming zal de kwaliteit van het geluid negatief beïnvloed worden als pakketten met onregelmatig intervallen of helemaal niet aankomen. ZigBee kan garanderen dat berichten onverminkt aankomen door berichten opnieuw te verzenden als er iets misgaat. Bij audio echter is een pakket dat te laat aankomt onbruikbaar. Wel is bij spraak een beperkt verlies van berichten acceptabel. Het menselijk brein kan de gaten goed invullen. Om die reden is gekozen voor het eenmalig versturen zonder bevestiging (acknowledge). Hierdoor gaat het verzenden sneller en is geen geheugen nodig om berichten een tijdje te bewaren voor het geval het bericht opnieuw verzonden moet worden.

2.5 Overzicht van eerdere studies Mangharam e.a., 2006 [11] Spraakcommunicatie in een mijn. Een werkende applicatie gebaseerd op IEEE802.15.5 en een eigen gemaakte stack, geen ZigBee-stack. Brunelli e.a. , 2008 [12] Een goede beschrijving van de performance van streaming data over een ZigBee-netwerk. Testen zijn uitgevoerd in een bestaand indoor ZigBee netwerk. Er zijn aanpassingen gemaakt in de stack van de ZigBee-router voor een betere streaming capaciteit. De bereikte maximale doorvoercapaciteit is 30 kbps. Wang e.a., 2008 [13] Deze studie betreft een simulatie van spraakcommunicatie over ZigBee. Besproken worden een full-duplex-communicatie over IP (VoIP) en een half-duplex push-to-talk communicatie. (PTT-communi-catie). De conclusie is dat in een directe point-to-point situatie 17 parallelle PTT-communicaties mogelijk zijn, maar dat in een multi-hop-situatie communicatie slechts mogelijk is bij maximaal twee tussenliggende nodes. Meli e.a. 2006 De mogelijkheden en beperkingen van ZigBee voor audio communicatie worden besproken en een versie met geringe datacompressie is geïmplementeerd voor een point-to-point situatie met twee ZigBee-nodes. De conclusie is dat “ZigBee could well be used for audio applications” en “It is however important to have enough computing power to ensure that the bottleneck is not the stack side, and that the communication channel is used efficiently”. Verma e.a. 2012 Een studie met een single-hop implementatie gebruikmakend van het G723.1 spraakcompressie algoritme.

Page 9: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 8

3. Resultaten metingen doorvoersnelheid Om de beschikbare bandbreedte in een ZigBee netwerk in de praktijk te bepalen zijn een aantal metingen verricht met streaming data tussen twee nodes [Ben Nooijens, 3]. De metingen zijn uitgevoerd onder verschillende omstandigheden: a) In een WiFi-arm buitengebied. b) In een WiFi-rijk bedrijfsgebouw, c) Communicatie over meerdere nodes (‘multihop’) in een wifi-rijke omgeving (bedrijfsgebouw). Gebruikt zijn Jennic JN5148-J01 Wireless Microcontroler module [25] en de JN5148 Software Developer’s Kit [22]. De modules zijn afkomstig van de NXP JN516x Evaluation Kit.

3.1 Point-to-point streaming tussen twee nodes in een WiFi-arme omgeving Bij deze test zijn twee ZigBee-nodes op 15 m afstand geplaatst, op een open terrein in een buitengebied. In de test zijn pakketten verstuurd van verschillende datalengte (40 tot 82 Bytes) met verschillende snelheden (aantal pakketten per seconde), steeds vijf seconden lang. De laagste effectieve datasnelheid is 25,6 kbps. De hoogste snelheid zou zonder uitval ongeveer 105 kbps zijn. In figuur 5 is het resultaat weergegeven. De uitval blijkt vooral bepaald te worden door het aantal pakketten per seconde. Het is dus gunstig de pakketten zo groot mogelijk te nemen (80 pakketten met 80 bytes bevatten evenveel data als 160 pakketten met 40 bytes).Bij een snelheid groter dan 100 pakketten per seconde (65 kbps) neemt het pakketverlies snel toe, zodat de maximale bandbreedte bij de gebruikte hardware en software gesteld kan worden op 65 kbps.

Figuur 6: Pakketverlies ten opzichte van snelheid en pakketgrootte zonder WiFi verkeer

3.2 Point-to-point streaming in een WiFi-rijke omgeving. Bij deze test zijn de twee nodes op 15 m afstand geplaatst bij op een onderwijsinstelling waar actief Wi-Fi-verkeer aanwezig is. Figuur 7 toont een scan van het tijdens de test aanwezige WiFi-verkeer Te zien is dat het WiFi-verkeer zich concentreert rond een aantal frequenties. Zoals in figuur 4 is aangegeven is er voor de 2,4 GHz-band veel overlap tussen de beschikbare ZigBee-kanalen en de gebruikte frequenties voor WiFi. Voor dit experiment is gekozen voor enerzijds een ZigBee-kanaal, kanaal 11, dat sterk overlapt met WiFi en anderzijds een ZigBee-kanaal met een frequentieband in een gebied dat nauwelijks wordt gebruikt door het aanwezige WiFi-verkeer, kanaal 15. Voor dit kanaal is er weinig overlap.

Page 10: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 9

Figuur 7: WiFi verkeer tijdens de uitgevoerde experimenten Voor dit experiment is gekozen voor enerzijds een ZigBee-kanaal, kanaal 11, dat sterk overlapt met WiFi en anderzijds een ZigBee-kanaal met een frequentieband in een gebied dat nauwelijks wordt gebruikt door het aanwezige WiFi-verkeer, kanaal 15. Voor dit kanaal is er weinig overlap.

Ook in deze test zijn pakketten verstuurd van verschillende datalengte (40 tot 82 bytes) en met verschillende pakketsnelheden, steeds vijf seconden lang. De resultaten zijn weergegeven in de figuren 8 en 9. In figuur 8 is gebruik gemaakt van ZigBeekanaal 11, een ZigBee-kanaal dat veel overlap heeft met de gebruikte WiFi-kanalen, en in figuur 9 van kanaal 15, een kanaal met nauwelijks enige overlap. De resultaten tonen dat de invloed van WiFi op de datastreaming groot is. Uit de metingen blijkt dat het ZigBee-kanaal 11 nauwelijks bruikbaar is. Al bij kleine datasnelheden is er veel dataverlies. Bij een snelheid van 65kbps is het pakketverlies al groter dan 40%.

Figuur 8: Zigbee streaming met veel WiFi storing Bij een ZigBee-kanaal dat geen overlap heeft met WiFi is de snelheid vergelijkbaar met een WiFi-arme omgeving in het buitengebied, zoals te verwachten is. De metingen voor dit kanaal staan in figuur 9. De maximale bruikbare transmissiesnelheid is hier ook van de orde van 65 kbps

Page 11: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 10

Figuur 9: Zigbee streaming in een omgeving met weinig WiFi storing

3.3 ‘Multihop’: Communicatie over meerdere nodes in een wifi-rijke omgeving Bij deze test zijn de onderlinge afstanden tussen vier nodes (A, B, C, D) zodanig gekozen dat elke node alleen de volgende (en de vorige) node ‘ziet’. De datapakketten van A naar D volgen de route A B C D. In de test zijn pakketten verstuurd van verschillende datalengte (40 tot 82 Bytes) met verschillende snelheden (aantal pakketten per seconde) ), steeds vijf seconden lang. De laagste snelheid is 3200 bps, de hoogste ongeveer 52 kbps. Gebruikt is ZigBee-kanaal 15 dat slechts een geringe invloed van WiFi-verkeer kent. In figuur 10 is het resultaat weergegeven. De maximale bruikbare doorvoersnelheid is nu 30 pakketten van 82 bytes, wat overeenkomt met ongeveer 2,5 kB/s = 20 kbps (zoals in hoofdstuk 2 al aangekondigd). Dit is veel lager dan een gewenste 60 kbps voor ongecomprimeerde streaming van spraak.

Figuur 10: Zigbee pakketverlies bij ‘multihop’-communicatie via 2 tussenliggende nodes

Page 12: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 11

3.4 Testen met packetsniffer Het versturen en ontvangen van ZigBee pakketten kan worden gevolg met een ZigBee device dat geprogrammeerd is als ‘packet sniffer’. Gebruikt is de CC2511 USB Dongle van Texas Instruments met de Packet Sniffer software [27]. Figuur 11: Texas Instruments CC2251 USB Dongle. Met deze Packet Sniffer kan real-time de inhoud van de pakketten en het tijdsverloop tussen twee pakketten worden bekeken. Een voorbeeld daarvan is in figuur 12 weergegeven. Te zien is dat het tijdverschil tussen twee data-pakketten ongeveer 180 ms is (zoals verwacht wordt, zie hoofdstuk 4).

Figuur 12: Resultaat van een real time opname van een spraak verbinding tussen twee ZigBee-nodes.

Page 13: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 12

4. Gebruikte hardware en software 4.1 Compressie - Vocoder Uitgangspunt is realisatie van een half-duplex push-to-talksysteem met één zender en maximaal vijf ontvangers. De eisen aan de gesprekskwaliteit zijn voor de toepassing niet hoog. Het aantal mogelijke boodschappen is gering, waardoor de voorspelbaarheid hoog is. Uit de beschreven resultaten in hoofdstuk 3 blijkt dat de maximale effectieve bandbreedte in een multihop-situatie 20 kbps is voor een unicast-verbinding. Wanneer meervoudige unicast wordt toegepast naar vijf ontvangers wordt beurtelings een spraakpakket naar elk van de ontvangers gestuurd. De maximale transmissiesnelheid van data per ontvanger is dan slechts 4 kbps. Bovendien dient dan telkens de periode waarin de spraak naar andere ontvangers wordt gestuurd overbrugd te worden. Het overbruggen van deze periode en de geringe bandbreedte maken het nodig dat het spraaksignaal wordt gecomprimeerd.

Gekozen is voor de CMX618 van CML Microcircuits, een half-duplex Vocoder. Deze Vocoder verzorgt het samplen van het geluid, het wegfilteren van frequenties boven 4 kHz, compressie en decompre-ssie van de samples en het reconstrueren van geluid uit ontvangen samples. Het heeft een schaal-bare compression rate, is een single chip oplossing en kan een foutcorrigerende code aan de gecomprimeerde samples toevoegen. Aan de analoge ingang en uitgang zijn programmeerbare versterkers toegevoegd zodat er geen extra signaalversterkers nodig zijn. Zie het blokschema in figuur 11.

Figuur 11: Blokschema De route van de spraak door het systeem is in figuur 12 weergegeven: het analoge signaal van de microfoon gaat direct naar de Vocoder. Na versterking wordt het signaal gesampled en gecomprimeerd tot kleine pakketten. Deze pakketten gaan via een SPI-bus-aansluiting naar de Jennic JN5148 module, waar bruikbare ZigBee-pakketten worden samengesteld en verstuurd. Aan de ontvangstkant gebeurt het ongekeerd proces.

Figuur 12: communicatiekanaal

Page 14: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 13

Gebruikmakend van de mogelijkheden van de Vocoder wordt in de besproken toepassing een spraakfragment van 60 ms gecodeerd in 27 bytes. Dit datapakket van 27 bytes wordt naar de JN5148-module gestuurd en daar worden drie van deze pakketten (180 ms spraak, 81 bytes) in één ZigBeepacket geplaatst en verstuurd. Voor het continue verzenden hiervan is een effectieve doorvoersnelheid van 81 byte per 180 ms oftewel 3,6 kbps nodig. Dit voldoet aan de hierboven vermelde eis van 4 kbps. De instelling van de CMX618 Vocoder is als volgt:

- Frame size: 20 ms: 160 samples linear 16 bit PCM at 8 kHz - Forward Error Correction, 1 bit/byte - Data rate …. Bps. - 3 frames collected together (tot een packet van 60 ms) - Half-duplex

Bij deze instelling bestaat een reeks van 3 frame packets na compressie uit 216 bits, d.i. 27 bytes. Dit is een optimale instelling daar drie keer een 3-frame-packet van 3 x 27 byte = 81 bytes goed past in de beschikbare ruimte van een ZigBee-packet. Een dergelijk datapakket 81 bytes betreft dan gecomprimeerde spraakdata van 3 x 3 x 20 ms = 180 ms. Omdat het geluid gedurende 180 ms wordt opgespaard en iedere tussenliggende node minimaal 6,5 ms nodig heeft voor het doorsturen is de vertraging van het geluid aanzienlijk.

4.2 Jennic module JN5148 De ZigBee-nodes bestaat uit de Jennic JN5148-J01 Wireless Microcontroler module [25]. Deze microcontroller bevat een 32-bit RISC CPU en een geïntegreerde radio voor 2,4 GHz volgens IEEE802.15.4. Zie figuur 13. <Ook een on-chip RTOS, Jennet stack, volledige ZigBee PRO stack). De gebruikte modules zijn afkomstig van de NXP JN516x Evaluation Kit.

Figuur 13: Blokschema Jennic module JN5148-J01

Voor deze microcontroller zijn beschikbaar: een basic RTOS (JenOS), een ZigBee PRO Stack en een Integrated Perepherals API. Zie figuur 14. . Figuur 14: Overview NXP ZigBee PRO Software

Page 15: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 14

4.3 Architectuur/ontwerp De Jennic-ontwikkelomgeving is Eclipse IDE met plug-in’s voor de gebruikte ZigBee-nodes van Jennic. De installatie ervan is beschreven in ‘Software Developer’s Kit, Installation and User Guide’ [22]. Voor de ontwikkeling van de software zijn de volgende documenten ook gewenst: ZigBee PRO Stack User Guide [23], ZigBee Cluster Library User Guide [24] en JenOS User Guide [25]. De architectuur van de software is gebaseerd op de Jennic ZigBee PRO Application Template [2x]. Deze template bevat code voor de Coördinator, een Router en een End Device in een ZigBee-netwerk. Het is een event-driven ontwerp met state machines. In de besproken toepassing worden alleen een coördinator en routers gebruikt.

De code van de Personal Hopper, ZBP_Router_Personal_Hopper, is het belangrijkste software-onderdeel. Het bestaat uit een aantal modules (app_router, app_endpoint_r, app_start, app_vocoder, app_network_plotter_client). De basis van de eerste drie software-modules komen uit de Application Template.

De module app_vocoder is de intermediar tussen de Vocoder en de ZigBee-module. Het bevat - de initialisatie van de Vocoder chip, - methoden voor het lezen van en schrijven naar de SPI-bus - methoden om: - de Vocoder te starten of te stoppen,

- de data naar de Vocoder te schrijven of te lezen, - generen van OS-events voor de ZigBee communicatie.

De ZigBee-communicatie wordt uitgevoerd door app_endpoin_r.

Ontvangen: Wanneer een ZigBee data frame ontvangen wordt, wordt de Vocoder gestart met de juiste parameters en het ZigBee data frame wordt geplaatst in een message queue. De Vocoder genereert periodiek een interrupt als een volgend frame nodig is. Het frame wordt dan uit de message queue gelezen en via de SPI-bus geleverd aan de Vocoder door de JN5138-module. Wanneer na een vraag van de Vocoder geen data frame beschikbaar is wordt de Vocoder- ontvangs-mode gestopt. Tijdens het ontvangen van spraakdata is het niet mogelijk te zenden. Zenden: Na indrukken van de seinsleutel wordt de Vocoder geïnitialiseerd in de zendmode. De Vocoder geeft een interrupt als het een frame beschikbaar heeft. Het frame (27 bytes) wordt dan via de SPI-bus naar een buffer in de Jennic JN5148 geschreven. Als er zoveel data ontvangen is dat een ZigBee-pakket gevuld is (81 bytes, in dit geval na drie keer) wordt een OS-event gegenereerd voor het versturen van een ZigBee-packet. Het zenden stopt wanneer de seinsleutel losgelaten wordt. In bijlagen 1 en 2 zijn de werking van het zenden en van het ontvangen van spraak schematisch weergegeven.

Page 16: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 15

5. Meetresultaten 5.1 On site test: FireBee Workshop op VOC-Tilburg, 29 mei 2013 Op 29 mei 2013 zijn de resultaten van FireBee gepresenteerd aan betrokkenen, zoals brandweer-personeel, onderwijsmedewerkers en –studenten en ondernemers. Tijdens deze presentatie is een spraakverbinding over ZigBee op het terrein van het Veiligheidsoefen-centrum te Tilburg gedemonstreerd en getest. Er is een ZigBee-netwerk opgezet vanuit een gebouw met een binnenbrand (het ‘stookgebouw’) naar een centrale communicatiepost, 100 m verderop. Getest is: a) een point-to-point spraakverbinding met een spreker die zich verplaatst in het buiten het gebouw met de brand, zie figuur 15. Het aantal tussennodes (hops) is maximaal vijf. De spreker is een brandweerman in uniform die met het spraaksysteem het stookgebouw is binnengegaan en verslag heeft gedaan van het blussen van de brand. b) een point-to-point spraakverbinding met een spreker bij de ingang van het brandende gebouw achter een watergordijn, zie figuur 16. Het watergordijn bevindt zich tussen de spreker en de communicatiepost, met de ontvanger. Figuur 15: ZigBee netwerk op het VOC Figuur 16: Waterscherm tussen zender en ontvanger De spraakverbinding is in beide gevallen goed: goed verstaanbaar naar het oordeel van de luisteraars en zonder onderbrekingen. De spraak vanuit de binnenkant van het gebouw is even goed als buiten. Het waterscherm heeft geen negatieve invloed op de spraakverbinding. Tijdens het experiment is een fout in de software gebleken. Het is in de half-dulex verbinding uiteraard niet mogelijk te spreken in de ontvangstmode, dus tijdens het luisteren naar een ander. Maar wordt dat tijdens het luisteren toch geprobeerd, dan crasht de software aan de kant van de ontvanger.

Page 17: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 16

5.2 Testresultaten met een multi-hopverbinding en 1 zender en 2 ontvangers <beschrijving van testresultaten met multi-hop en 1 zender en 2 ontvangers>

Page 18: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 17

6. Conclusies en aanbevelingen Ondanks het feit dat Zigbee niet ontworpen is voor communicatie van streaming data is aangetoond dat het mogelijk is een goede spraakverbinding op te zetten via Zigbee. Onder gecontroleerde omstandigheden is het systeem getest met één zender en twee ontvangers via drie tussenliggende nodes. Spraak is goed te verstaan. Verstoringen leiden niet tot groot verlies van spraakkwaliteit.

De vertraging (latency) van spreker naar luisteraar van honderden milliseconden kan problemen geven als de zender het geluid van de ontvanger ook rechtstreeks kan horen. Het resultaat is een galm waar moeilijk mee te werken is.

Het systeem is getest in een bestaand ZigBee-netwerk. Als een node uitvalt, moeten nieuwe routingtabellen geconstrueerd worden. Dit kan enkele seconden duren, waarin geen spraakcommunicatie mogelijk is. Nog niet duidelijk is welke invloed de positie en de verdeling van de netwerknodes heeft op de kwaliteit van de verbinding. Er is gebruikgemaakt van de standaardantenne van de Jennic-JN5148 module. Daardoor is de invloed van de positie van de spreekmodule groot. <aanvullen met de verbeterpunten uit de STW-aanvraag>

Page 19: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 18

Bijlagen

Bijlage 1: Zenden van spraak – activity diagram Zenden: < diagrammen nog maken> <activity schema ‘button-action’>: a) module Button

Indukken van de spreeksleutelknop genereert een event (interrupt); wanneer de node in de ontvangstmode (‘playback-mode’) staat wordt het indrukken genegeerd, anders: start zendmode - LED’s on; - bSPIRecording = TRUE; - start Vocoder in zendmode; Vocoder werkt nu autonoom: Vocoder produceert data en genereert interrupts - wacht op loslaten spreeksleutelknop Loslaten van de spreeksleutelknop genereert een event (interrupt); wanneer de node niet in de zendmode staat (bSPIRecording = FALSE) wordt het loslaten genegeerd, anders: stop zendmode - LED’s of; - bSPIRecording = FALSE; - stop Vocoder; - wacht op indrukken spreeksleutelknop

<activity-schema ‘Vocoder-sendmode’>: b) module Vocoder in zendmode Vocoder genereert een interrupt als het een datapacket beschikbaar heeft (per 60 ms spraak): Lees data van de vocoder (27 bytes, via SPI-bus); Schrijf data in de buffer Buffer vol (81 bytes)? Post buffer als een message in OS-message queue <activity schema ‘send data to ZB-nodes’>: c) module SendSPIData Indien beschikbaar: Haal een message (81 bytes) uit de OS-message queue; Zend de message via ZigBee naar alle overige ontvangers; (dit zet deze nodes on de ontvangstnode)

Page 20: FireBee Spraak over ZigBee - avans.nl · bedoeld voor communicatie van streaming data, zoals voor spraakverbindingen. FireBee - Spraak over ZigBee , versie 0.9 White Paper ... Spraak

FireBee - Spraak over ZigBee , versie 0.9 White Paper

Januari 2014 19

Bijlage 2: Ontvangen van spraak – activity diagram Ontvangen: : < diagrammen nog maken> <activity schema ‘receiver ZigBee packet’>: Event: ontvangst van een ZigBee datapacket met juiste ID post packet in een OS-message queue indien eerste keer start de ontvangstmode (‘playback’)

- LED’s on - bSPIPLayBack = TRUE - start timer: na 200 ms Vocoder in ontvangstmode:

Vocoder werkt nu autonoom: Vocoder genereert interrupts wanneer het data nodig heeft

<activity-schema ‘Vocoder-ontvangstmode’>: b) module Vocoder in ontvangstmode Vocoder genereert een interrupt als het een datapacket verwacht (per 60 ms spraak):

Indien er data (27 bytes) in de OS-Message queue staat: Haal data uit deze OS-Message queue Zet deze data via de SPI-bus van de Vocoder (streaming van 27 bytes);

Indien er geen 27 bytes in de OS-Message queue staat: Stop de ontvangst mode: - LED’s off - bSPIPlayBack = FALSE - Stop Vocoder