Funkprotokoll – Ordnungssystem und Überwachung des Dateninhalts bei einer Funkübertragung

Werden Daten über eine Funkstrecke übertragen, erhält der Empfänger einen Datenstrom aus einzelnen Bits, also eine lange Abfolge von 0 und 1. Um aus dieser wirren Folge Informationen zu erhalten, muss für die Übertragung ein entsprechendes Funkprotokoll festgelegt werden. In unserem Beitrag erfahren Sie mehr über das Funkprotokoll.



Das Funkprotokoll muss sowohl dem Sender als auch dem Empfänger bekannt sein. Die Daten werden vom Sender gemäss dem Protokoll ins Funktelegramm „verpackt“. So kommt in jedes „Fach“ des Funktelegramms eine Zahl für den entsprechenden Datenwert, welche aus einer gewissen Anzahl 0 und 1 besteht. Für die Übertragung werden die „Fächer“ aneinandergereiht und es ist keine Abgrenzung zu erkennen. Nur dank dem Funkprotokoll weiss der Empfänger z.B. dass die ersten 16 Bit die Temperatur enthalten, anschliessend folgen 12 Bit mit dem Helligkeitswert usw. 

Datenstrom-ohne-zugehöriges-Funkprotokoll.jpg#asset:1390

Abbildung 1: Datenstrom ohne zugehöriges Funkprotokoll

Das Funkprotokoll teilt den Datenstrom in Bereiche ein, welche unterschiedliche Informationen zur Übertragung (z.B. Starkennung, Adressierung, Fehlerprüfung und Fehlerkorrektur), zur Datensicherheit (Verschlüsselung und Rolling Code) oder die Nutzdaten (z.B. Sensordaten wie Temperatur oder Feuchtigkeit) beinhaltet. Im Folgenden werden diese Aspekte des Funkprotokolls aufgezeigt.

Datenstrom-mit-Funkprotokoll.jpg#asset:1391

Abbildung 2: Datenstrom mit angewendetem Funkprotokoll

Proprietär vs. genormte Funkprotokolle

Funkprotokolle lassen sich in zwei Hauptgruppen unterteilen. Zum einen gibt es die proprietären Funkprotokolle. Dies sind herstellerspezifische Protokolle, welche vom Hersteller des Produkts frei definiert werden können. Somit gibt es keine Einschränkungen und das Funkprotokoll kann für die entsprechende Anwendung massgeschneidert werden. Dies hat den Vorteil, dass nichts Unnötiges enthalten ist. Dadurch wird die Datenmenge und somit die Übertragungsdauer minimiert, was sich positiv auf die Reaktionszeit und den Energieverbrauch auswirkt. Ausserdem ist es für unberechtigte aufwändiger Daten aus einem proprietären Funkprotokoll abzugreifen oder zu manipulieren, da das Funkprotokoll für unberechtigte nicht zugänglich ist.

Auf der anderen Seite gibt es die genormten Funkprotokolle wie: ZigBee, WiFi, Bluetooth, Z-Wave, Endiio, EnOcean, MiWi, Wireless-M-Bus usw. Bei diesen Protokollen ist bereits ein Raster vorgegeben, welche Informationen wo im Datenstrom platziert werden. Wie weit diese Vorgaben gehen, ist je nach Funkprotokoll unterschiedlich. Genormte Funkprotokolle vereinfachen es, dass Geräte auch herstellerübergreifend miteinander kommunizieren können, da sich die jeweiligen Hersteller an die entsprechende Norm des Funkprotokolls halten.

Startkennung

Damit die Daten entsprechend dem Funkprotokoll korrekt interpretiert werden können, ist es bei einer Funkübertragung notwendig, dass der Start eines Datenpakets eindeutig erkennt werden kann. Dazu sendet der Sender vor dem Datenstrom eine fix definierte, möglichst eindeutige Startkennung aus. Zu Beginn eines Datenempfangs hört der Empfänger ausschliesslich auf diese Startkennung. Sobald er die Startkennung im Datenstrom erkennt, weiss der Empfänger, dass das darauffolgende Bit dem ersten Datenbit entspricht und kann mit der Decodierung des Datenstroms beginnen. 

Adressierung

Da bei einer Funkübertragung jedes Gerät des Systems innerhalb der Funkreichweite den Datenstrom empfängt, ist eine Adressierung wichtig. Somit kann das Gerät erkennen, ob der Datenstrom an ihn gerichtet ist. Dies ist mit der Adressierung einer Postsendung vergleichbar. Die Anzahl Stellen der Adressierung muss je nach Anwendung festgelegt werden. Kann es sehr viele Geräte desselben Systems geben, muss ein entsprechend grosser Adressbereich gewählt werden, dadurch werden mehr Bits für die Adressierung benötigt. Dies ist damit vergleichbar, dass in Deutschland mehr Ziffern für die Postleitzahl verwendet werden als in der Schweiz.

Protokollversion

Mit einer Protokollversion können Änderungen im Funkprotokoll angezeigt werden. Somit kann der Empfänger erkennen, ob er das empfangene Datenpaket auswerten kann. Falls er ältere Funkprotokolle kennt, kann er diese nach wie vor auswerten. Handelt es sich um ein neueres Funkprotokoll, welches der Empfänger nicht kennt, erkennt er dies ebenfalls an der Protokollversion.

Datenlänge

Die Angabe einer Datenlänge ermöglicht es, in einem Datenpaket unterschiedlich lange Nutzdaten zu übertragen. Somit weiss der Empfänger, wo das Ende der Nutzdaten ist.

Fehlerprüfung

Bei einer Funkübertragung kann es jeder Zeit zu Fehlübertragung einzelner Bits kommen. Dies kann z.B. bei Funkfernsteuerungen zu sehr gefährlichen Situationen führen, wenn z.B. plötzlich eine Taste als betätigt empfangen wird, welche gar nicht betätigt ist.

Um sicherzustellen, dass falschübertragene Daten gar nicht ausgewertet werden, verfügen Funkprotokolle häufig über eine Fehlerprüfung. Dabei werden alle gesendeten Daten miteinander mit speziellen Verfahren verrechnet und das Resultat am Ende des Funktelegramms mitgesendet. Der Empfänger führt mit den empfangenen Daten dieselbe Berechnung durch und nur falls er auf dasselbe Resultat kommt, werden die Daten zur Auswertung freigegeben.

Es gibt die unterschiedlichsten Verfahren zur Fehlerprüfung von einer einfachen Summenbildung oder einer XOR-Verknüpfung bis zur zyklischen Redundanzprüfung (CRC), welche auf einer Polynomdivision basiert. Die Wahrscheinlichkeit Bitfehler zu erkennen ist davon abhängig, welches mathematische Verfahren für die Fehlerprüfung verwendet wird und wie gross die Anzahl Bits für das entsprechende Resultat gewählt wird.

Welches Fehlerprüfverfahren verwendet wird, über welche Datenbits die Fehlerprüfung durchgeführt und an welcher Stelle das Resultat übertragen wird, muss entsprechend im Funkprotokoll definiert werden.

Fehlerkorrektur

Es gibt auch Codierungsverfahren, mit welchen einzelne falschübertragene Bits erkannt und korrigiert werden können. Dazu wird ein Teil der Dateninformation redundant, also mehrfach übertragen. Die Qualität des Codierungsverfahrens wird damit angegeben, wie viele Bitfehler erkannt und wie viele korrigiert werden können. Werden fehlerkorrigierende Codes angewendet, muss dies wie bei der Fehlerprüfung entsprechend im Funkprotokoll definiert werden, damit dies vom Sender und Empfänger identisch angewendet wird.

Verschlüsselung

Damit übertragene Daten nicht von unberechtigten „abgehört“ und analysiert werden können, gibt es verschiedene Verschlüsselungsverfahren (z.B. AES128 oder RSA). Durch das Verschlüsselungsverfahren und einem entsprechend definierten Schlüssel wird die Nachricht unleserlich gemacht. Nur wer den entsprechenden Schlüssel für die Entschlüsselung der Nachricht besitzt, kann die Nachricht dechiffrieren und deren Inhalt weiterverwenden. Die Wissenschaft der Kryptographie ist ein grosses Gebiet, mit vielen Aspekten, auf welche hier nicht weiter eingegangen wird. Bei einer verschlüsselten Nachricht muss das Verschlüsselungsverfahren und der Datenbereich auf welchen es angewendet wird, für beide Seiten bekannt sein. Deshalb ist auch die Verschlüsselung Teil der Protokolldefinition.

verschlüsselter-Datenstrom-Funkprotokoll.jpg#asset:1388

Abbildung 3: verschlüsselter Datenstrom

Rolling Code

Eine Verschlüsselung verhindert zwar, dass einzelne Datenwerte gezielt manipuliert werden können. Replay-Angriffe, welche durch kopieren und wiederholtem Aussenden von Funktelegrammen durchgeführt werden, sind jedoch weiterhin möglich. So kann z.B. ein Funktelegramm eines Autoschlüssels aufgezeichnet und später zum Öffnen des Autos erneut ausgesendet werden. Um dies zu verhindern werden sogenannte Rolling Codes eingesetzt. Dabei wird ein spezieller Teil der Nachricht von Übertragung zu Übertragung mit einem dem Empfänger bekannten Algorithmus verändert. Somit kann der Empfänger prüfen, ob sich diese Kennung seit der letzten Nachricht korrekt geändert hat. Bereits empfangene Kennungen können eine gewisse Zeit gesperrt werden, wodurch Replay-Angriffe verhindert werden.

Durch die Kombination von Rolling Code und Verschlüsselung wird die Sicherheit erhöht, da der Rolling Code in der Nachricht nicht mehr zu erkennen ist.

Durch Abwägen der unterschiedlichen Aspekte von Funkprotokollen können wir das für die Anwendung optimale Funkprotokoll auswählen oder erstellen. Somit kann die geforderte Sicherheit und Energieeffizienz der Übertragung erreicht werden. Ausserdem kann eine möglichst hohe Kompatibilität über die Produktlebensdauer sichergestellt werden.


 


Ihr Autor

U. Stöckli
Entwicklung
Elektroingenieur FH (BSc in Elektrotechnik)

T +41 41 494 07 05

U. Stöckli