Funksensornetzwerke

Protokoll für sich dynamisch ändernde Netzwerke

30. Oktober 2020, 11:55 Uhr | Thomas Steen Halkier
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Speed Routing

Speed Routing ist eine patentierte Technik, die ausschliesslich in NeoMesh verwendet wird. Der Speed-Routing-Algorithmus identifiziert den schnellsten Weg von der Quelle zum Ziel. Dabei werden auch Wege mit Funkstörungen berücksichtigt, die potenziell die Übertragung der Nutzdaten verzögern könnten.

Da die Routenführung ständig im Hintergrund erstellt wird, haben Änderungen in der Netzwerk-Topologie – z.B. wenn Knoten ihre Position ändern, egal ob sie Daten weiterleiten oder ob sie das Endziel der Daten sind – keinen Einfluss auf die Übertragung der Nutzdaten. Da die Routen ständig gepflegt werden, gibt es keine „schlechten Routen“, die repariert werden müssen, wie es in anderen vermaschten Funknetzwerken der Fall ist.

Speed Routing basiert auf dem Prinzip des „nächsten besten Hop“: Jeder Knoten enthält eine Routing-Tabelle mit Informationen darüber, welcher seiner Nachbarn momentan der beste Kandidat ist, um eine Nachricht zu einem bestimmten Zielknoten weiterzuleiten.

Weitergabe der Nutzdaten

Einfaches Netzwerk mit drei Knoten
Bild 2. Einfaches Netzwerk mit drei Knoten. Knoten  A ist Nachbar zu Knoten  B und Knoten  B ist Nachbar zu Knoten  A sowie auch Nachbar zu Knoten  C.
© NeoCortec

Nutzdaten werden von Knoten zu Knoten durch das Netzwerk transportiert, als Teil der normalen getakteten Datenübertragung.

Wie Nutzdaten sich durch das Netzwerk bewegen verdeutlicht das folgende Beispiel mit einem sehr einfachen Netzwerk von nur drei Knoten (Bild  2). In diesem Beispiel ist Knoten A Nachbar zu Knoten B und Knoten B ist sowohl Nachbar zu Knoten A als auch zu Knoten C.

Die Anwendungsebene des Knoten A will ein Paket mit Nutzdaten zur Anwendungsebene des Knoten C versenden, unter Anwendung von bestätigter Übertragung.

Vermittler-Funktion
Bild 3. Knoten  B (siehe Bild  2) ist Vermittler für den Datentransport von Knoten  A zu Knoten  C und umgekehrt.
© NeoCortec

In Bild 3 ist die getaktete Datenübertragung zwischen den Knoten, sowie der Weg der Nutzdaten von Knoten zu Knoten dargestellt – mit dem Transport der Empfangsbestätigung zurück zum Sender.

Zu Anfang reiht die Anwendungsebene das Nutzdatenpaket im Knoten A ein. Wenn dann Knoten A das nächste Mal eine getaktete Datenübertragung ausführt, wird er auch das Paket mit den Nutzdaten senden. Knoten B wird dieses Datenpaket empfangen und es aufbewahren bis er an der Zeit für eine getaktete Datentragung ist. Sendet Knoten B das Datenpaket während seiner getakteten Datenübertragung empfängt sie Knoten C. Zwar empfängt auch Knoten  A die getaktete Datenübertragungen von Knoten B, jedoch sichert das Routing-Protokoll, dass nur Knoten C die Nutzdaten empfängt.

Wenn das Paket mit den Nutzdaten Knoten C erreicht hat und der Empfang bestätigt worden ist, sendet Knoten B die Bestätigung zurück an den Urheber der Nutzdaten, genau so wie Nutzdaten geroutet worden sind. Die Übertragung der Empfangsbestätigung ist in Bild 3 grün eingezeichnet.

Wenn ein Paket mit Nutzdaten von Knoten zu Knoten durch das Netzwerk übertragen wird, erfolgt ein lokaler Handshake zwischen den sendenden und den empfangenden Knoten; bei fehlerfreiem Empfang der Nutzdaten wird eine lokale Bestätigung zurück zum sendenden Knoten geschickt. Dies sichert, dass ein Datenpaket nicht von dem Ausgangsqueue des Senders entfernt wird, bevor bestätigt worden ist, dass der Empfänger das Paket mit den Nutzdaten entgegengenommen hat und die Redundanzprüfung (CRC – Cyclic Redundancy Check) geglückt ist.

Wird die lokale Bestätigung nicht innerhalb der Timeout-Zeit registriert, versucht der Sender das Paket mit den Nutzdaten bei der nächsten getakteten Übertragung noch einmal zu versenden.

Knoten-zu-Knoten-Kommunikation

Wenn Nachbarknoten kommunizieren, antwortet der Empfänger der Nutzdaten mit einer lokalen Empfangsbestätigung, sobald er die Redundanzprüfung der empfangenen Daten erfolgreich abgeschlossen hat. Der sendende Knoten wird versuchen das Paket so oft zu übertragen, bis er entweder eine lokale Empfangsbestätigung bekommt oder bis das Paket zu alt geworden ist, definiert über den TTL-Parameter (Time To Live). Der sendende Knoten wird regelmässig versuchen das Paket an den Nachbarn zu schicken, der aktuell in der Routing-Tabelle für eine bestimmte Destination priorisiert ist.

Falls dieser Nachbar nicht mehr in Reichweite ist, und daher eine lokale Bestätigung ausbleibt, wird der Knoten – nach einer konfigurierbaren Anzahl von missglückten getakteten Übertragungen – automatisch von der Liste über Nachbarn entfernt. Wenn das geschieht, beginnt der sendende Knoten neue Übertragungsversuche des Datenpakets zu dem nächsten Nachbarn auf der Routing-Tabelle.

Frequenzsprungverfahren

Das NeoMesh-Protokoll nutzt Frequenzsprünge um Funkstörungen zu vermeiden, die typischer Wiese auftreten, wenn auf einer festen Frequenz gesendet wird, z.B. Fading und Übersteuerung der Empfangsstufe durch starke Signale anderer Funkquellen, die auf derselben Frequenz senden.

Jedes Mal, wenn ein Knoten seine getaktete Datenübertragung – mit oder ohne Nutzdaten – macht, wird automatisch die nächste Frequenz auf der Hopping-Liste gewählt. Die Liste besteht aus 15 logischen Frequenzen, von denen jede einzelne einer physischen Funkfrequenz zugeordnet werden kann.

Dies bedeutet, dass das Funknetzwerk so konfiguriert werden kann, eine beliebige Reihe von Funkfrequenzen anzuwenden, jeweils gleichmässig über dem Frequenzband verteilt oder in Abschnitte unterteilt, um bestimmte Teiles des Frequenzbands zu umgehen. Der Bereich der physischen Kanäle unterscheidet sich von Frequenzbereich zu Frequenzbereich und daher auch von einem NeoMesh-Funkmodul zum Anderen. Die Funkmodule sind vorzertifiziert, gemäss europäischen und amerikanischen Bestimmungen, und die verfügbaren physischen Kanäle sind begrenzt, um die Bestimmungen in den verschiedenen Regionen zu erfüllen.

Stromaufnahme

Wie schon zuvor erwähnt arbeitet das NeoMesh-Funknetzwerk zeitsynchronisiert. Alle Knoten sind zumeist im Ruhezustand und wachen nur periodisch auf, um mit ihrem Nachbarknoten zu kommunizieren. Je nach den Einstellungen ermöglicht dies für alle Knoten im Netzwerk eine sehr niedrige durchschnittliche Stromaufnahme zu realisieren.
Zusätzlich zum zeitsynchronen Betrieb wird eine hohe Baudrate auf der Funkebene verwendet, um extrem kurze Übertragungszeiten zu ermöglichen. Dadurch wird die Aktivitätsphase des Funktransceivers gekürzt – beim Senden und beim Empfangen.

Jeder Knoten in einem NeoMesh-Funknetzwerk überträgt Daten einmal pro Intervall für die getaktete Datenübertragung. Dieser Zeitraum ist konfigurierbar. Er bestimmt den Takt im gesamten Netzwerk und auch die durchschnittliche Stromaufnahme der Knoten.

Knoten, die miteinander in Verbindung stehen, werden die getakteten Datenübertragungen der anderen Knoten abhorchen. Dadurch können die Knoten synchron zueinander bleiben und sie behalten den Überblick über ihre Nachbarn. Ein Knoten mit vier Nachbarn, zum Beispiel, wird Daten einmal pro Intervall für die getaktete Datenübertragung übertragen und vier Mal horchen – einmal pro Nachbar. Da die Baudrate hoch ist und der Umfang der übertragenen Daten gering ist, ist die Zeitdauer sehr kurz.

Nutzdaten-Sendedauer
Bild 4. Nutzdaten – bis zu 21  Byte pro Intervall – werden innerhalb der getakteten Datenübertragung gesendet. Dadurch verlängert sich die Sendedauer um maximal 0,4  ms.
© NeoCortec

Nutzdaten werden huckepack mit den getakteten Datenübertragungen gesendet. Das bedeutet: Wenn ein Knoten Daten zu übertragen hat, geschieht dies, wenn es an der Zeit ist getaktete Daten zu übertragen. Die Stromaufnahme erhöht sich bei der Übertragung von Nutzdaten zusammen mit getakteten Daten nur gering.

Die Grösse der Nutzdaten kann maximal 21 Byte betragen – bei einer Datenrate von 500 kBd beträgt die zusätzliche Sendezeit 0,4 ms – inklusive der zusätzlichen Header-Daten (Bild 4). Kleinere Nutzdatenpakete erzeugen weniger Überhang, aber im Allgemeinen, da die Frequenz der getakteten Datenübertragung gewöhnlich sehr niedrig ist, wird die durchschnittliche Stromaufnahme nur sehr gering steigen.

 

Der Autor

Thomas Steen Halkier, CEO NeoCortec
Thomas Steen Halkier, CEO NeoCortec
© NeoCortec

Thomas Steen Halkier

ist Elektroingenieur und leitet seit 2012 als CEO NeoCortec. Zuvor war er als Engineering Manager bei Broadcom Semiconductors tätig. Weitere Stationen seines Berufslebens sind GN ReSound, als Manager angestellt, und Nokia, wo er als Testingenieur arbeitete.

tsh@neocortec.com


  1. Protokoll für sich dynamisch ändernde Netzwerke
  2. Speed Routing

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Componeers GmbH

Weitere Artikel zu Wireless