Datenaustausch per Funk im SRD-Frequenzband 860 MHz

Transceiver

Mit dem SPI-Funkmodul RFM69 und einem geeigneten Treiber lassen sich Daten abseits von WLAN und Bluetooth zwischen RasPis austauschen. Das einfache und robuste Verfahren eignet sich besonders für die Heimautomation.

Zur drahtlosen Kommunikation zwischen Rechnern stehen typischerweise WLAN und Bluetooth als "Jedermannfunk" bei Datenraten im Mbit/s-Bereich zur Verfügung. Allerdings liegen beide im lizenzfreien ISM-Frequenzband bei 2,4 GHz, das mittlerweile aus allen Nähten platzt, oder – siehe 5-GHz-WLAN – weisen eine vergleichsweise geringe Reichweite in geschlossenen Gebäuden auf.

Damit verbieten sie sich für Anwendungen wie die Heimautomation, bei der es zudem auf einen zuverlässigen, batterieschonenden Betrieb und garantierte Reaktionszeiten ankommt. Das Datenaufkommen andererseits bleibt dabei üblicherweise relativ gering. Für solche Szenarien eignet sich das ebenfalls lizenzfreie europäische SRD-Frequenzband (Short Range Device) von 863 bis 870 MHz besonders gut.

Dieser Artikel stellt ein Kernel-Modul vor, das über den SPI-Bus des RasPi das Transceiver-Modul RFM69(H)CW [1] im Modulationsverfahren GMSK (es ähnelt dem GSM-Mobilfunkstandard) betreibt. Zusammen mit den User-Programmen bietet es per Gerätedatei eine Datenübertragung über einen von 35 wählbaren Kanälen an. Damit bildet es die unterste Ebene eines Funkmodems, das sich wiederum als Basis für eine künftige freie Heimautomatisierungslösung eignet.

Zu den banalsten Anwendungen der Heimautomation zählt der Lichtschalter. Er spielt erst dann seine Vorzüge voll aus, wenn er – von der eigentlichen Elektroinstallation losgelöst und batteriebetrieben – an beliebiger Stelle im Raum an die Wand geklebt als Sensor agiert und per Tastendruck den Willen des Benutzers weitergibt. Das funktioniert nicht ohne Funkanbindung, die bei der Nachrüstung in bestehenden Wohnungen sogar die Rolle des Backbones übernehmen muss.

Andererseits liefert auch der schnellste Finger am Schalter keine hohe Datenrate: Solange eine Reaktion auf die Betätigung innerhalb einer Fünftelsekunde erfolgt, ist der Benutzer zufrieden. Die Höhe der Datenrate schlägt sich jedoch nicht zwangsläufig in einer kurzen Reaktionszeit nieder – vor allem dann nicht, wenn in vielen Wohnungen eines Hauses Funkzellen arbeiten. Dann kommt es vermehrt zu Kollisionen, die Quality of Service (QoS) leidet enorm.

Daraus lassen sich bereits wesentliche Anforderungen an die Gestaltung einer funkbasierten Lösung zusammenfassen: Sie muss sich mit einem ressourcenschonenden Design für einfachste Hardware-Ausstattung und Batteriebetrieb eignen und auch bei starker Bandbelegung die QoS bezüglich Datenrate und Reaktionszeit aufrechterhalten. Zu guter Letzt sollte sie sollte der Norm ETSI EN 300 220-1 [2] genügen und sich damit legal innerhalb ganz Europas betreiben lassen.

Modulationsart und Datenrate

Unter den digitalen Modulationsverfahren für den Funk ist das nicht mehr ganz neue Minimum-Shift-Keying (MSK) nach wie vor sehr beliebt. Es lässt sich sowohl einfach als auch energieeffizient implementieren und zeigt sich gegen Störsender robust. Mit einem Gaußschen Sendefilter zur GMSK gewandelt (wie bei GSM-Mobilfunk und DECT-Telefonie) weist es auch eine hohe spektrale Effizienz auf, also eine relativ zur Funkkanalbandbreite hohe Bitrate. Für das angepeilte Verfahren errechnet sich bei einer Kanalbreite von 200 kHz eine Datenrate von rund 150 kbit/s (siehe Kasten "SRD: Technische Details").

SRD: Technische Details

Für die Aufteilung des Frequenzbereichs fordert die Norm ETSI EN 300 220-1 Modulationsbandbreiten bis 300 kHz bei einem Kanalraster bis zu 100 kHz. Dieser scheinbare Widerspruch löst sich auf, sobald man sich das Band in 70 Kanäle zu 100 kHz aufgeteilt vorstellt und dann für diesen Fall je ein Kanalpaar zu einem Funkkanal zusammenfasst. Daraus resultiert folglich eine Kanalbreite von 200 kHz.

Als maximale Sendeleistung definiert die Norm 25 mW (+14dBm). Geht man nun von einem Bandbreiten-Symboldauer-Produkt BT = 0,5 wie bei DECT aus und bringt das Ganze unter eine spektrale Maske, wie die Norm sie in Kapitel 7.7 zur Verminderung von Nachbarkanalstörungen fordert, resultiert daraus eine Datenrate von 151,7 kbit/s.

Abbildung 1 zeigt das Leistungsdichtespektrum (blau) des GMSK-Signals, also die Verteilung der Sendeleistung über die Frequenzachse. Der Referenzpunkt der Frequenz liegt bei 0 kHz und entspricht damit der Trägerfrequenz des Sendesignals sowie in weiterer Folge der Kanalmittenfrequenz. Die schraffierte Fläche stellt die spektrale Maske dar, die das Sendespektrum keinesfalls verletzen darf. Zur Verdeutlichung, wie benachbarte Kanäle – in der Kanalmittenfrequenz um jeweils 200 kHz nach unten oder oben verschoben – das gewünschte Signal beim Empfänger stören, erscheinen in Grau Teile der Leistungsdichtespektren weiterer Signale.

Zu guter Letzt legt ETSI EN 300 220-1 eine Nutzung zu entweder 0,1 Prozent relativer Dauer oder die Anwendung eines speziellen Zugangsverfahrens fest. Eine 0,1-prozentige Nutzung – sie gilt für jedes beliebige Zeitfenster von 1 Stunde – würde die effektive Datenrate auf unbrauchbare 157 Bit/s reduzieren. Die Antwort liegt im Zugangsverfahren LBT+AFA. LBT steht dabei für Listen-before-Talk, AFA für Adaptive-Frequency-Agility. Das bedeutet grob formuliert in etwa: Erst lauschen, dann nur in ein freies Band senden oder bedarfsweise auf eine andere Frequenz ausweichen. Dadurch lässt sich wieder ein nahezu hundertprozentiger Zugang erreichen. In einem späteren Artikel stellen wir ein dazu geeignetes Funkprotokoll vor.

Abbildung 1: Das Leistungsdichtespektrum eines 25 mW starken GMSK-Sendesignals.

Teilt man nun die 7 MHz Bandbreite des SRD-Bands in solche 200 kHz breiten Funkkanäle, so erhält man zwischen 863 MHz und 870 MHz genau 35 davon (Abbildung 2). Die Reihe der Kanalmittenfrequenzen Fc startet mit Kanal 00 bei 863,1 MHz und endet mit Kanal 34 bei 869,9 MHz, die Bandmitte liegt bei Kanal 17 mit 866,5 MHz. Für jeden Kanal gilt, dass die untere Kanalgrenzfrequenz der oberen des nächstniedrigeren Kanals entspricht und umgekehrt.

Abbildung 2: Eine schematische Darstellung der Unterteilung des SRD-Bands in 35 Funkkanäle.

Der Vollständigkeit halber sei erwähnt, dass unterhalb des SRD-Bands ein bisher für Funkmikrofone genutztes, aber jetzt neu angelegtes (Stand April 2016) ziviles Mobilfunkband liegt. Oberhalb von 870 MHz schließt sich ein weiteres, in Deutschland militärisch genutztes Band für Mobilfunkdienste an [3].

Die Schaltung

Die beiden Schaltungen in Abbildung 3 zeigen exemplarisch einmal das RFM69HCW-Modul an der 40-poligen Stiftleiste der neueren Raspberry-Pi-Modelle (1A+, 1B+, 2 und 3) und einmal das Modul RFM69CW an der 26-poligen Leiste der ursprünglichen Varianten A und B.

Abbildung 3: Das RFM69HCW-Modul am SPI0-Bus und zwei GPIO-Leitungen am Raspberry Pi.

Bei einem etwas höheren Preis bietet das RFM69HCW im Vergleich zum RFM69CW eine Ausgangsleistung von bis zu 100 mW (+20 dBm). Das günstigere RFM69CW bleibt mit nur 20 mW (+13 dBm) auf der höchsten Leistungsstufe 1 dB unter der eigentlich erlaubten Sendeleistung. Als ein weiterer Nachteil kommt das Fehlen des Hardware-Signals DIO4 zum Tragen. Wie wir später noch sehen werden, führt es wie das Signal DIO1 den Timeout-Interrupt, jedoch nicht den störenden Phase-Locked-Loop-Interrupt (dazu später mehr). Deswegen eignet es sich für unsere Zwecke besser.

In jedem Fall wählt der RasPi das Modul über die Leitung CE0 des synchronen seriellen SPI0-Busses aus und spricht mit einem Takt von knapp 8 Mbit/s die Leitungen MOSI (Schreiben) beziehungsweise MISO (Lesen) an. Das Kernel-Modul greift also über diese Schnittstelle sowohl auf die Register als auch auf den FIFO des Transceivers zu (siehe Kasten "SPI-Subsystem").

Bezüglich des am RasPi einstellbaren Bustakts herrscht in den Foren nicht unbedingt Klarheit. Fest steht jedoch, dass man den Peripheral-Takt im ARM-Core (125 MHz) durch Zweierpotenzen teilen kann. Da das Datenblatt des SX1231 [4] – er ist das Herzstück des RFM69 – einen maximalen SPI-Bus-Takt von 10 MHz vorschreibt, befindet man sich mit 125 MHz / 16 = 8000 kHz auf der sicheren Seite.

Das Funkmodul signalisiert das erfolgreiche Versenden beziehungsweise den korrekten Empfang eines Datagramms per Interrupt-Leitung (DIO0 an GPIO25). Über eine zusätzliche Interrupt-Verbindung (DIO1 an GPIO24) leitet das System im Empfangsbetrieb eine etwaige Zeitüberschreitung weiter. Dazu konfiguriert das Kernel-Modul in der Initialisierungsphase beide GPIOs in Eingangsrichtung und leitet Sie zum Interrupt-Controller des ARM-Cores um.

Entsprechend dem Datenblatt zum SX1231 liegt das Ansprechen der Interrupt-Service-Routinen (ISR) jeweils auf der positiven Flanke der beiden Interrupts an. Um die Reaktionszeit des Kernels nicht zu beeinträchtigen und jeden von der Hardware ausgelösten Interrupt auch tatsächlich zu behandeln, gilt es, die ISRs auf minimale Laufzeit zu trimmen.

SPI-Subsystem

Der Linux-Kernel bietet einen recht komfortablen Funktionsumfang zum Betrieb von Geräten am SPI-Bus an. Durch sogenannte SPI-Messages, die man dem SPI-Subsystem im Kernel als Auftrag übergibt, lässt sich beliebige Hardware am SPI-Bus ansprechen. Solche SPI-Messages weisen den SPI-Hardware-Treiber an, wie genau er mit der Hardware am Bus kommunizieren muss. Sobald es alle in der SPI-Message kodierten Buszugriffe ("SPI-Transfers") abgearbeitet hat, ruft das SPI-Subsystem das auftraggebende Modul über dessen Callback-Funktion zurück.

Im vorliegenden Fall kann so das RFM69-Kernel-Modul als SPI-Protokoll-Treiber transparent auf die Register (Konfiguration, Steuerung, Status) sowie den Daten-FIFO des RFM69-Funkmoduls zugreifen und damit dessen Funktion steuern [5]. Die entsprechenden Funktionen finden sich im Code des Moduls in den beiden Dateien rfm69gmsk_core.c und rfm69io.c.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Raspberry Pi via Funk aufwecken

    Möchten Sie Ihren RasPi nur mit Batteriestrom speisen, ist es sinnvoll, ihn nur dann zu aktivieren, wenn Sie ihn auch brauchen. Quasi auf Zuruf bootet der Mini-Rechner per Funknachricht, gesendet im europäischen 868-MHz-Band.

Aktuelle Ausgabe

12/2017
Schräge Hacks

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Digitaler Widerstand

  • 3, 2, 1 … los!

    Ein Countdown ist nicht nur in der Raumfahrt sinnvoll. Mit einem Raspberry Pi und etwas Elektronik zählen Sie die Zeit bis zu einem beliebigen Ereignis optisch eindrucksvoll herunter.

  • Blog out of the box

    Das bei Bloggern beliebte CMS Wordpress kommt besonders Einsteigern mit einer einfachen Oberfläche und aktiven Community entgegen. Mit Blog In A Box setzen Sie ein solches Komplettsystem im Handumdrehen auf einem RasPi auf.

  • Angetestet

    Barefootd 1.4.1 leitet Ports und Verbindungen weiter, schlanke OpenSSH-Alternative Dropbear 2017.75, Httpbench 0.2.2 erfasst Webserver-Reaktionszeiten, Mtr 0.92 kombiniert Traceroute und Ping.

  • Öfter mal was Neues?

    Mit dem neuen Raspbian-Release "Stretch" schlägt die Raspberry Pi Foundation überflüssige technische Kapriolen, die einer auf Bildung und Ausbildung fokussierten Organisation schlecht zu Gesicht stehen, findet Chefredakteur Jörg Luther.

  • Aufgeweckt

    Dank der Chat-Plattform Telegram und einem eigenen Chatbot kommunizieren Sie mit dem Mini-PC selbst durch eine Firewall hindurch.

  • Elektropuzzle

    Das Board PiXtend erweitert den RasPi zu einer leistungsfähigen Steuereinheit. Neben dem Komplett-Kit bietet der Hersteller die Platine als Bausatz an, die Lötprofis viel Spaß bereitet und Einsteigern bei den ersten Schritten in der Elektronik-Welt hilft.

  • Nerds only

    Der Nerd-Wecker weckt – und macht gleichzeitig jede Menge Spaß beim Bauen und Anpassen.

  • Hightech-Halloween

    Ein gestandener Bastler zelebriert Halloween mit allerlei technischem Hokuspokus. Der Raspberry Pi liefert dafür die ideale Ausgangsbasis.