Protocol Stack Basics
Gut zu wissen
Protocol Stacks sind nicht nur ein "Stück" Software, sondern anspruchsvolle und sehr spezielle Produkte, die in ihrer Funktionsweise relativ komplex sind. Um den Einstieg in das Thema Stacks zu erleichtern, behandeln wir mit dieser Wissensseite einige Fragen rund um Funktionsweise, Einsatzgebiete, Vorteile von standardisierten Stacks und weitere Themen.
WO BEFINDET SICH STACKFORCE MIT SEINEM HAUPTPRODUKT IM IOT-ÖKOSYSTEM?
STACKFORCE ist ein Unternehmen, das sich auf die Entwicklung von Embedded Software für das IoT spezialisiert hat. Hauptprodukte sind Protocol Stacks, die von verschiedenen Akteuren im IoT-Ökosystem genutzt werden, insbesondere von Herstellern von IoT-Geräten. Protocol Stacks von STACKFORCE helfen Geräteherstellern mit wenig Aufwand eine standardisierte Kommunikation zwischen verschiedenen IoT-Endgeräten und -Komponenten umzusetzen.
Protocol Stacks werden als Software-Komponente für das Erfüllen von Anforderungen an die Kommunikation zwischen vernetzten Geräten in Sensoren oder Zählern integriert, sodass eine Kommunikation von Geräten und Sensoren/Aktoren innerhalb des Netzwerks stattfinden kann. Damit ist das Hauptprodukt und zugehörigen Dienstleistungen von STACKFORCE im IoT-Ökosystem meistens für Hersteller von Endknoten besonders von Interesse, aber auch Hersteller von Gateways können effektiv unterstützt werden.
WAS IST EIN PROTOCOL STACK?
Um Geräte, wie beispielsweise Sensoren oder Zähler in einem IoT-Netzwerk zu befähigen, Daten per Funk zu übermitteln, wird Software benötigt, die diese Aufgabe übernimmt. Diese Software ist der Protocol Stack – zu Deutsch Protokollstapel. Die Software wird Protocol Stack genannt, da diese aus mehreren Protokollen auf unterschiedlichen Ebenen bzw. Schichten der Kommunikation besteht, die aufeinander aufbauen. Bildlich gesprochen ergibt die Summe der Protokolle dann einen Stapel, bzw. engl. ein Stack.
Jede Schicht innerhalb eines Protocol Stacks führt, abhängig vom jeweiligen, technologiespezifischen Protokoll, eine bestimmte Funktion aus und interagiert mit der jeweils darüber- und darunterliegenden Schicht, um die Datenübertragung zwischen vernetzten Geräten zu erledigen.
Ein Protocol Stack wird meist für eine bestimmte Technologie programmiert. Im IoT-Bereich sind dies oft LPWAN-Technologien wie mioty®, LoRaWAN®, Sigfox oder NB-IoT. Bei anderen Protocol Stacks liegt der Fokus auf der Anwendung, wie z. B. beim M-Bus Protokoll Stack, welcher zwar durchaus auch andere Sensoren im Netzwerk einbinden kann, aber ursprünglich speziell für die Bedürfnisse der Zählerfernauslesung spezifiziert wurde. Jede Technologie hat individuelle Vor- und Nachteile, wodurch jeder Protocol Stack für bestimmte Use Cases sehr gut oder weniger gut geeignet ist. Innerhalb unserer News stellen wir die Technologien ausführlich zum Nachlesen vor.
Grundsätzlich haben Protocol Stacks ein Ziel: Das Erfüllen von Anforderungen an die Kommunikation (z. B. hinsichtlich Verlässlichkeit, Übertragungshäufigkeit, Übertragungsmenge, etc.) zwischen vernetzten Geräten, damit eine reibungslose Kommunikation zwischen Geräten und Sensoren/Aktoren stattfinden kann, um die Automatisierung von bisher manuell gesteuerten betrieblichen Prozessen zu ermöglichen.
WAS IST DIE AUFGABE EINES PROTOCOL STACKS?
Die grundlegenden Aufgaben eines Protocol Stacks sind das Ermöglichen der Kommunikation zwischen Geräten in einem Netzwerk und die Gewährleistung einer zuverlässigen und effizienten Datenübertragung. Der Protocol Stack ist damit ein wichtiger Baustein, um Gerätedaten wie z. B. bestimmte Messwerte eines Sensors oder eines Zählers, unter Nutzung verschiedener Technologien wie LPWAN oder M-Bus an andere Geräte oder Komponenten innerhalb des Netzwerks zu übermitteln, sodass die Daten im Anschluss weiterverarbeitet werden können.
Innerhalb dieser Gesamtaufgabe haben die verschiedenen Schichten des Protocol Stacks ihre einzelnen Aufgaben. Grundsätzlich gibt es sieben Schichten, die nach dem OSI-Model standardisiert sind, allerdings integriert nicht jeder Protocol Stack jede Schicht.
WAS SIND DIE ANWENDUNGSBEREICHE FÜR PROTOCOL STACKS?
Protocol Stacks zielen auf die Automatisierung von zuvor manuell gesteuerten, meist operativen Prozessen ab. Da die Automatisierung in jedem Bereich stattfindet, haben Protocol Stacks ein breites Anwendungsspektrum und können für eine Vielzahl von Anwendungsfällen angepasst werden. Durch die großflächige Vernetzung von Geräten, die selbstständig miteinander kommunizieren, lassen sich zahlreiche Prozesse vereinfachen, besser steuern und beschleunigen.
Software-basierte Kommunikation ist daher in jedem Bereich einsetzbar. Das Anwendungsszenario bestimmt die passende Software. Mit unseren Standard-Produkten ermöglichen wir einen einfachen und komfortablen Einstieg, um Ihr IoT-Netzwerk mit Konnektivität auszustatten.
Mögliche Anwendungsszenarien
- Zählerfernauslesung (Wasser, Gas, Strom, Wärme,…)
- Leckage-Erkennung und Alarmierung
- Zustandsüberwachung
- Vorausschauende Instandhaltung
- Exploration und Überwachung von Öl-/Gasfeldern
- Maschinenüberwachung
- Überwachung der Infrastruktur
WIE INTEGRIERE ICH EINEN PROTOCOL STACK IN EIN GERÄT?
Der Protocol Stack ist die Software-Komponente, die sich für das Auge unsichtbar auf einem Mikrokontroller innerhalb eines Gerätes befindet. Typischerweise ist der Protocol Stack in einem IoT-Gerät (Sensor, Zähler) Teil der Firmware, die auf dem Mikrocontroller ausgeführt wird. Die Firmware ist für die Steuerung der Hardware-Komponenten des Sensors verantwortlich.
Über einen Funkchip oder eine im Mikrocontroller integrierte Funkschnittstelle ermöglicht der Stack die drahtlose Übermittlung (z. B. unter Nutzung von LPWAN-Technologien) der ausgelesenen Sensordaten an ein IoT-Netzwerk.
Um ein Gerät mit einer Funktechnologie auszustatten, ist es wichtig, je nach Anwendung auf die Details zu achten. Soll z. B. die Sensoranwendung auf demselben Mikrocontroller wie die Kommunikationssoftware eingesetzt werden, ist zu beachten, dass auch die Hardware-Ressourcen des Mikrocontrollers und dessen Peripherie untereinander geteilt werden müssen. Im Allgemeinen gibt es drei Möglichkeiten, die Anwendung auszuführen:
- mit einem Kommunikationsmodul
- mit dem Single-Chip-Design
- mit dem Zwei-Chip-Design
KOMMUNIKATIONSMODUL
Das Kommunikationsmodul übernimmt die Kommunikation mit dem Netzwerk der gewählten Technologie. So ist es möglich, eine bereits bestehende Sensor-Hardware mit genügend Platz im Gehäuse ohne große Änderungen mit einer Funkschnittstelle auszurüsten. Über unterschiedliche Schnittstellen, wie zum Beispiel UART oder SPI, wird dann das Kommunikationsmodul an die Sensor-Hardware angebunden. Fällt die Wahl auf das Kommunikationsmodul, gibt es drei Möglichkeiten:
- Verwendung eines vorprogrammierten Funkmoduls,
- Nutzung des Protocol Stack als Firmware in der Modem-Version und
- Nutzung des Protocol Stack als Software-Bibliothek und Entwicklung von kundenspezifischer Firmware für das Funkmodul.
Der Vorteil dieses Ansatzes liegt vor allem im geringen Integrationsaufwand und dem geringen Risiko für Überraschungen bei der Zertifizierung des Gerätes.
two-CHIP-DESIGN
Eine Alternative zum Kommunikationsmodul ist die Integration eines dedizierten Mikrocontrollers nebst Funk Chip bzw. einer System-On-Chip Lösung, die speziell für die Kommunikation eingesetzt wird. In der Architektur unterscheidet sich das Zwei-Chip-Design nicht von der des Kommunikationsmoduls, jedoch ist diese Variante platz- und kostensparender.
Softwareseitig ist das Two-Chip-Design im Vergleich zur Integration eines Kommunikationsmoduls gleichermaßen einfach. Jedoch ist der Integrationsaufwand hinsichtlich der Hardware etwas höher, da eine entsprechende Platine entwickelt werden muss und damit auch die Aufwände für die Produktzertifizierung steigen.
ONE-CHIP-DESIGN
Der am stärksten integrierende Lösungsansatz ist der Einsatz einer Technologie-konformen Hardware, auf der die Sensoranwendung ausgeführt werden kann. Bei dieser Variante wird lediglich ein Baustein für die Anwendung und die Kommunikationssoftware benötigt und eine Software-Bibliothek wird in die eigene Sensor-Firmware integriert. Diese Bibliothek implementiert das Übertragungsprotokoll und übernimmt auch die Ansteuerung des Funkchips bzw. des Funkteils bei einer System-On-Chip Lösung.
Der Vorteil dieses Lösungsansatzes liegt offensichtlich in den Einsparungen bezüglich der Hardware-Kosten sowie im geringsten Platzbedarf der verschiedenen Möglichkeiten. Jedoch sind die Einmalkosten für die Entwicklung bei dieser Variante deutlich höher, denn es muss ein eigenes und nicht selten ein produktspezifisches Hardware-Design entwickelt werden.
In Summe ist diese Architektur insbesondere für hochvolumige Produkte interessant, die vor allem möglichst geringe Kosten pro Gerät erfordern.
KANN EIN PROTOCOL STACK AUF JEDER HARDWARE EINGESETZT WERDEN?
Grundsätzlich ist ein Protocol Stack hardwareunabhängig, solange die Hardware die Mindestanforderungen des Protocol Stacks bzw. der eingesetzten Funktechnologie erfüllt. Das bedeutet: Erfordert der Stack beispielsweise bestimmte Funktionen oder Leistungsmerkmale, die von der Hardware nicht unterstützt werden, müssen möglicherweise zusätzliche Hardware-Komponenten hinzugefügt oder Hardware-Design-Änderungen vorgenommen werden, um sicherzustellen, dass der Stack ordnungsgemäß funktioniert.
Ein weiterer wichtiger Faktor ist die Leistungsfähigkeit der Hardware. Ein Protocol Stack erfordert in der Regel eine bestimmte Menge an Verarbeitungsleistung und Speicherplatz. Wenn die Hardware des IoT-Geräts nicht über ausreichende Verarbeitungsleistung oder Speicherplatz verfügt, kann dies dazu führen, dass beispielweise nicht alle Funktionen des Stacks unterstützt werden.
Unsere Standard Protocol Stacks sind für mehrere Hardware-Plattformen erhältlich, die entweder aus einem Mikrocontroller (MCU) in Verbindung mit einem Single-Chip-Radio bzw. -Transceiver (TRX) oder einem System-on-Chip (SoC) bestehen. Für die jeweilige Referenzhardware werden die Protocol Stacks getestet und optimiert. Grundsätzlich kann jede andere Hardware verwendet werden, jedoch entsteht ein zusätzlicher Aufwand, um die Kompatibilität der Protocol Stacks mit der gewählten Hardware zu gewährleisten. Je nach Funktechnologie ist sowohl eine bidirektionale als auch eine unidirektionale Kommunikation möglich, allerdings unterstützen nicht alle derzeit am Markt erhältlichen Funkmodule beide Kommunikationsvarianten. Bitte beachten Sie, dass ebenso nicht jeder Mikrocontroller oder Funk-Transceiver mit jedem von uns angebotenen Protocol Stack kompatibel ist. Kontaktieren Sie uns um alle möglichen Hardware-Optionen zu erfahren!
WER KANN EINEN PROTOCOL STACK NUTZEN?
Ein Protocol Stack kann von jedem genutzt werden, der in einem Netzwerk Kommunikation ermöglichen möchte. Im IoT-Bereich können verschiedene Akteure einen Protocol Stack nutzen. Dazu gehören:
- Hersteller von IoT-Geräten können einen Protocol Stack in ihre Geräte integrieren, um eine standardisierte Kommunikation zwischen den Geräten und anderen Systemkomponenten zu ermöglichen. Der Protocol Stack wird in der Regel als Teil der Firmware des IoT-Geräts implementiert.
- Systemintegratoren können einen Protocol Stack nutzen, um verschiedene IoT-Systeme und -Geräte miteinander zu vernetzen und zu integrieren. Der Protocol Stack hilft dabei, eine einheitliche Kommunikation zwischen den verschiedenen Komponenten zu gewährleisten.
- Entwickler von IoT-Anwendungen können auf vorhandene Protocol Stacks zurückgreifen, um eine standardisierte Kommunikation zwischen ihren Anwendungen und IoT-Geräten zu ermöglichen. Der Protocol Stack kann dabei vom Entwickler auf die eigenen Erfordernisse angepasst und werden.
WELCHE TECHNOLOGIEN WERDEN UNTERSTÜTZEND FÜR PROTOCOL STACKS ZUR KOMMUNIKATION VON GERÄTEN EINGESETZT?
Grundsätzlich kann eine Vielzahl an Technologien eingesetzt werden, um Geräte zur Kommunikation im IoT-Bereich zu befähigen. Bei STACKFORCE konzentrieren wir uns im Wesentlichen auf das M-Bus Protokoll sowie auf LPWAN-Technologien, die sich durch die Kommunikation über größere Entfernungen bei einem sehr geringen Energieverbrauch auszeichnen, um eine möglichst lange Einsatzdauer zu erzielen:
- mioty® ist eine LPWAN-Technologie, die speziell für den Einsatz in „massive“ IoT- Netzwerken ausgelegt ist. Die Technologie ist durch die neuartige Telegram-Splitting-Technologie überaus störungsresistent, wodurch eine hohe Zuverlässigkeit in der Datenübertragung erreicht wird. mioty® wird häufig in Anwendungen eingesetzt, die eine hohe Zuverlässigkeit und lange Batterielaufzeiten erfordern, wie z. B. in der Industrieautomation, Smart Cities und Gebäudeautomatisierung.
- LoRaWAN® (Long Range Wide Area Network) ist eine LPWAN-Technologie, die eine drahtlose Kommunikation über große Entfernungen mit geringer Leistung ermöglicht. Aufgrund der Einfachheit des Protokolls und der guten Verbreitung, kann LoRaWAN® von jedem für sein eigenes Netzwerk genutzt werden. LoRaWAN® wird häufig in Anwendungen wie Smart Cities, Industrieautomation und Umweltüberwachung eingesetzt.
- Sigfox ist eine LPWAN-Technologie, die eine drahtlose Kommunikation über große Entfernungen mit sehr geringer Leistung ermöglicht. Sigfox entwickelt und betreibt das komplette fast weltweit verfügbare Netzwerk, sodass jeder gegen eine Gebühr seine Endgeräte mit dem Netzwerk verknüpfen kann. Sigfox wird häufig in Anwendungen wie Asset Tracking und Umweltüberwachung eingesetzt.
- Narrowband-IoT (NB-IoT) ist eine LPWAN-Technologie, die auf vorhandenen Mobilfunknetzen aufbaut und eine Erweiterung des LTE-Standards darstellt. Es bietet eine breite Netzabdeckung und Datenübertragung mit größerer Bandbreite als andere LPWAN-Technologien. NB-IoT wird häufig in Anwendungen wie Smart Metering, Smart Farming und Sicherheitsüberwachung eingesetzt.
- M-Bus (Meter-Bus) ist ein Kommunikationsprotokoll, das speziell für die Messdatenerfassung und -übertragung von Zählern entwickelt wurde. Es wurde in Europa als Standard für die Kommunikation zwischen Zählern und Datenerfassungsgeräten eingeführt und wird heute weltweit in verschiedenen Anwendungen eingesetzt. M-Bus unterstützt neben der seriellen Übertragung von Daten über die Versorgungsleitungen ebenfalls die drahtlose Variante per Wireless M-Bus und ist in der Lage, mehrere Zähler oder Sensoren in einem Netzwerk zu unterstützen.
WAS SIND DIE VORTEILE VON STANDARDISIERTEN PROTOCOL STACKS?
Standardisierte Protocol Stacks im IoT-Bereich bieten zahlreiche Vorteile, die bei der Entwicklung und Implementierung von IoT-Anwendungen von großer Bedeutung sind. Nachfolgend gehen wir auf die drei aus unserer Sicht wichtigsten Vorteile ein:
Als ersten Punkt, möchten wir hier die Interoperabilität nennen. Standardisierte Protokolle gewährleisten, dass verschiedene IoT-Geräte und -Systeme miteinander kommunizieren können, unabhängig vom Hersteller oder der Implementierung. Dies ist besonders wichtig in komplexen Umgebungen, in denen eine Vielzahl von Geräten und Sensoren miteinander interagieren müssen wie z. B. in Industrie-4.0-Szenarien. Daher ist dieser Punkt insbesondere für die Anwender von Interesse.
Für Gerätehersteller scheint die Interoperabilität zunächst eher ein Risiko zu sein, da sie sich mit Konnektivität nicht mehr von Wettbewerbern abheben können. Gleichzeitig ist es jedoch auch eine Chance, denn auf dieser Basis können auch Kunden erreicht werden, die sich in einer ersten Runde bereits für einen Wettbewerber entschieden haben. Es wäre weitaus schwieriger einen Kunden zu erobern, der ein vorhandenes, komplettes Netzwerk auf einen Schlag ersetzen müsste, wenn Geräte und Systeme nicht übergreifend kommunizieren könnten.
Auch die Skalierbarkeit spielt eine wichtige Rolle in zahlreichen IoT-Use-Cases. Durch die Verwendung standardisierter Protokolle können Anwendungen leicht auf eine größere Anzahl von Geräten und Sensoren ausgedehnt werden, ohne dass es zu Kompatibilitätsproblemen kommt. Somit können Netzwerke problemlos an sich ändernde Anforderungen angepasst werden. Insbesondere in Bereichen wie Smart City, wo die Infrastruktur stetig im Wandel ist, ist dies von Vorteil.
Wenn es um sensible Daten mit personenbezogenen Informationen oder Finanzdaten geht, ist auch die Sicherheit ein wichtiger Faktor. Standardisierte Protokolle bieten durch Verwendung von state-of-the-art Verschlüsselungstechnologien und Authentifizierungsverfahren ein hohes Maß an Sicherheit.
KÖNNEN MEHRERE TECHNOLOGIEN IN EINEM STACK EINGESETZT WERDEN, WENN DER USE CASE DIES ERFORDERT?
Ja, es ist möglich, mehrere Technologien in einem Protocol Stack zu kombinieren, um die Vorteile verschiedener Technologien zu nutzen und die Anforderungen bestimmter Anwendungen besser erfüllen zu können. Mit unseren Multi-Stacks ist dies sogar empfehlenswert, denn bis auf etwas mehr Speicherplatz, die der Stack auf der Hardware benötigt, bietet die Nutzung eines Multi-Stacks nur Vorteile:
- Flexibilität: Ein Multi-Stack ermöglicht es, verschiedene drahtlose Technologien in einem Gerät zu nutzen, um unterschiedliche Anforderungen wie Reichweite, Bandbreite und Energieeffizienz zu erfüllen. Je nach Anwendung können also verschiedene Technologien und Kombinationen von Technologien genutzt werden.
- Interoperabilität: Durch die Nutzung von mehreren Technologien kann ein Multi-Stack mit verschiedenen Netzwerken und Geräten kommunizieren, was die die Integration von Geräten erleichtert und die Marktchancen erhöht.
- Redundanz: Ein Multi-Stack kann die Verfügbarkeit und Zuverlässigkeit von drahtlosen Verbindungen erhöhen, indem er redundante Technologien nutzt. Falls eine drahtlose Technologie ausfällt, kann eine andere Technologie im Stack eingesetzt werden, um die Konnektivität aufrechtzuerhalten.
- Zukunftssicherheit: Durch die Nutzung von mehreren Technologien ist ein Multi-Stack besser in der Lage, sich an zukünftige Entwicklungen und Änderungen in der drahtlosen Kommunikation anzupassen und kann so längerfristig eingesetzt werden.
WORAUS BESTEHT EIN PROTOCOL STACK PAKET?
Das Protocol Stack Paket wird grundsätzlich mit einer vorkompilierten Stack-Bibliothek, hardware-spezifischen Treibern, einer seriellen Schnittstelle, einem Power Management und den beiden Apps:
- Example
"exampleMain.c" - Modem
“exampleMainSerial.c"
ausgeliefert. Während Example ein Beispiel zur Erstellung einer eigenen Firmware beinhaltet, das zeigt, wie die Stack-Bibliothek in die eigene Anwendungssoftware integriert werden kann, kann mit der App Modem unter Nutzung der mitgelieferten, seriellen Schnittstelle (z. B. UART, SPI, I2C, ...) und dem Power-Management eine eigene Modem-Firmware erstellt werden. So ist es möglich, mit dem ausgelieferten Protocol Stack Paket beide Chip-Architekturen umzusetzen:
- Zur Nutzung des Protocol Stacks innerhalb eines Ein-Chip-Designs (der Protocol Stack wird auf demselben Mikrokontroller wie die Anwendung ausgeführt) wird die App Example und damit lediglich die Stack-Bibliothek benötigt.
- Wird ein Zwei-Chip-Design verfolgt (der Protocol Stack soll auf einem Kommunikations-Controller und die Anwendung auf einem Host-Controller ausgeführt werden), kann auf die App Modem zugegriffen werden. Damit ist es unter Nutzung der mitgelieferten, seriellen Schnittstelle und dem Power Management möglich, sich eine eigene Firmware für den Kommunikations-Controller zu erstellen. Über den Host-Controller, wird dann auf den Protocol Stack zugegriffen.