Mit NeoMesh hat das Unternehmen NeoCortec ein Protokoll speziell für batteriebetriebene Funksensoren entwickelt. Ein NeoMesh-Netzwerk initiiert sich automatisch – und kann sich auch an dynamische Änderungen im Netzwerk anpassen.
NeoMesh ist ein Protokoll für Funknetzwerke. Es wurde auf Vielseitigkeit konzipiert und ermöglicht daher das Realisieren von Funksystemen für viele verschiedene Einsatzgebiete. Die Technik ist für extrem niedrige Stromaufnahme optimiert, und damit sind Batterielaufzeiten von mehreren Jahren möglich. NeoMesh ist hervorragend geeignet für Funksensornetzwerke, in denen jeder Sensor (Endgerät) seine Messwerte nicht sofort überträgt, sondern beispielsweise in Minuten- oder Stundenintervallen, und wo die zu übertragende Nutzdatenmenge gering ist.Im Gegensatz zu anderen vermaschten Funknetzwerken erlaubt NeoMesh flexible und sich dynamisch ändernde Netzwerke mit nahezu uneingeschränkter Netzwerkgrösse oder -tiefe.
Grundlage für NeoMesh ist ein dezentraler Ansatz. Alle Knoten verwalten sich selbst und sind unabhängig von einem Koordinator. Ebenso kennt NeoMesh keine individuelle Typen von Knoten und alle Knoten arbeiten mit gleicher Energieeffizienz. Das ergibt wesentliche Vorteile gegenüber anderen Techniken in Bezug auf den Energiebedarf des gesamten Netzwerks. Dazu kommt, dass NeoMesh sich dynamisch ändernde Netzwerke ermöglicht ohne Einschränkungen in der Skalierbarkeit oder in der Struktur.
Um den Energieeinsatz zu optimieren treten die Knoten in einem NeoMesh-Netzwerk so oft wie möglich in einen Schlafzustand. Sie wachen in vorgegebenen Intervallen auf, um mit ihren Nachbarn zu kommunizieren. Jeder Knoten im Netzwerk weiß, wann andere Knoten in seiner Reichweite Daten übertragen, und kann daher planmässig aufwachen wenn dies geschieht. Dieser zeitsynchrone Betrieb der Knoten ermöglicht es, dass alle Knoten eine gleichermaßen niedrige Energieaufnahme erzielen können. Diese Merkmale weichen von der Mehrzahl anderer vermaschter Funknetzwerke ab. Sie sind auf asynchronen Betrieb ausgelegt und verursachen daher in den Netzwerkknoten, die als Router tätig sind, eine höhere Leistungsaufnahme.
Ein NeoMesh-Funknetzwerk etabliert sich automatisch beim Einschalten der Knoten. Nach dem Einschalten durchläuft jeder Knoten die gleiche Sequenz: Am Anfang sucht er nach einem existierenden Netzwerk an dem er teilnehmen darf. Registriert der Knoten ein operatives Netzwerk, verbindet er sich mit diesem Netzwerk. Wenn ein Knoten kein Netzwerk findet, initiiert er sein eigenes Netzwerk, und neue Knoten können sich dann mit diesem Netzwerk verbinden.
Ein Knoten, der mit einem Netzwerk verbunden ist oder versucht ein neues Netzwerk zu initiieren, sendet periodisch ein Beacon-Signal auf einer designierten Frequenz. Knoten, die nicht Teil eines Netzwerks sind, oder die Teil eines anderen Netzwerks sind, können durch dieses Beacon-Signal neue Nachbarknoten erkennen.
Außer den Beacon-Signalen überträgt jeder Knoten auch getaktete Daten. Die getaktete Datenübertragung ist das Rückgrat der NeoMesh-Netzwerkarchitektur. Sie dient mehreren Zwecken:
Wenn ein Knoten sein Beacon-Signal sendet, enthält das Signal eine Information über die Zeitspanne bis zur nächsten getakteten Datenübertragung. Dies erlaubt es den Nachbarknoten einen Wake-up-Timer zu programmieren, der den Knoten vom Low-Power-Modus aufweckt um die getaktete Datenübertragung zu erfassen und damit Nachbar zum sendenden Knoten zu werden.
Bild 1 verdeutlicht die Situation mit zwei Knoten (Knoten A und B) die sich in Funkreichweite von einander befinden. Ihr Beacon-Timing ist schon synchronisiert und sie sind dabei Nachbarn zu werden.
In diesem Beispiel ist das Beacon-Intervall doppelt so lang wie der Zeitraum der getakteten Datenübertragung (PSCD). Wie schon erwähnt, enthält das Beacon-Signal eine Information über die Zeitspanne bis zur nächsten getakteten Datenübertragung. Wenn die Nachbarknoten das Beacon-Signal empfangen, können sie einen Wake-Up-Event programmieren um die getaktete Datenübertragung von Knoten A zu erfassen.
Im Beispiel von Bild 1 erfasst Knoten B nicht das Beacon-Signal vom Knoten A im Zeitpunkt t0, sondern im Zeitpunkt t0 + PB. Danach erwacht Knoten B, um die von Knoten A gesendeten Daten entgegenzunehmen – zum ersten Mal zum Zeitpunkt t1 + 2 × PSCD. Damit ist Knoten B Nachbar von Knoten A.
Gleichermassen wird Knoten A das Beacon-Signal von Knoten B empfangen und aufwachen, um die von Knoten B gesendeten Daten zu empfangen. Knoten A ist dann Nachbar von Knoten B. Wenn neue Knoten teilnehmen wollen geschieht das auf die gleiche Art und das Netzwerk wird sich autonom initialisieren.
NeoMesh enthält verschiedene Möglichkeiten Daten durch das Netzwerk zu senden. Im Allgemeinen werden bestätigte Übertragung, nicht-bestätigte Übertragung und Broadcast-Übertragung unterstützt. Bestätigte sowie nicht-bestätigte Übertragungen benutzen den einzigartigen Speed-Routing-Algorithmus, wohingegen Broadcast-Übertragungen in das Netzwerk geflutet werden. Abhängig von der angewandten Übertragungsmethode können Nutzdaten zu jedem Endgerät im Netzwerk geschickt werden.