Implementierung eines Netzwerk-Gateways für kabellose Heim

Transcription

Implementierung eines Netzwerk-Gateways für kabellose Heim
Fakultät für Elektrotechnik und Informationstechnik
Fachgebiet Verteilte Multimodale Informationsverarbeitung
Prof. Dr. Matthias Kranz
Implementierung eines Netzwerk-Gateways für
kabellose Heim-Automatisierung
Implementation of an ethernet gateway for wireless home
automation
Philip Parsch
Studienarbeit
Verfasser:
Philip Parsch
Professor:
Prof. Dr. Matthias Kranz
Betreuer:
Dipl.-Ing. Luis Roalter
Beginn:
01.08.2011
Abgabe:
01.02.2012
Fakultät für Elektrotechnik und Informationstechnik
Fachgebiet Verteilte Multimodale Informationsverarbeitung
Prof. Dr. Matthias Kranz
Erklärung
Hiermit erkläre ich an Eides statt, dass ich diese Studienarbeit zum Thema
Implementierung eines Netzwerk-Gateways für kabellose Heim-Automatisierung
Implementation of an ethernet gateway for wireless home automation
selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet
habe.
München, den 01.02.2012
Philip Parsch
Philip Parsch
Arcisstraße 21
80333 Munich
Kurzfassung
Durch steigende Technisierung nimmt der Automatisierungsgrad im privaten Wohnungsbau und
Zweckbau stetig zu. Angetrieben durch ein immer größer werdendes Bedürfnis nach Komfort und
Sicherheit sowie strengere Energierichtlinien und Gesetze, ist es zu erwarten, dass Haus- und Gebäudeautomatisierung weiter ein Gegenstand von Forschung und Entwicklung bleiben wird. Aus
diesem Grund beschäftigt sich die vorliegende Arbeit mit der Implementierung eines kabellosen
Netzwerk-Gateways für eine möglichst einfache Integration in bestehende Hausautomatisierungsund Middlewaresysteme. Es bietet Erweiterungsmöglichkeiten für einen Zugriff und eine Manipulation von außen durch mobile Geräte, um so mit möglichst wenig Aufwand eine große Automatisierung zu ermöglichen.
Basierend auf einer selbstentworfenen Hardwareplattform, ist das Gateway in der Lage, Datenpakete der 3 Protokolle Intertechno, HomeEasy UK „simple“ und HomeEasy EU zu senden und
zu empfangen. Gesteuert wird es über USB, WLAN, SPI oder USART mit einem eigenen ASCII
basierten Befehlssatz. Dazu werden anfangs die Grundlagen der verschiedenen Automatisierungssysteme behandelt, die neben der Struktur und dem Aufbau auch technische Aspekte, wie die
verwendeten Übertragungsmedien enthalten. Beispielhaft werden 6 solcher Systeme aus dem Bereich der Gebäude- und Hausautomatisierung aufgeführt und miteinander verglichen. Anschließend
werden bereits bestehende Middleware Systeme recherchiert und anhand von einigen Beispielen
kurz vorgestellt. Der letzte Teil der Arbeit befasst sich mit der Entwicklung des bereits angesprochenen Gateways. Es werden der Hardwareaufbau und die Softwareimplementierung beschrieben
und ein Ausblick auf zukünftige Erweiterungsmöglichkeiten des Moduls gegeben.
iii
Abstract
Due to advancing technization the degree of automation in residential and functional buildings
increases steadily. Powered by a growing need for comfort and safety paired with stricter guidelines
and laws, home and building automation is expected to continue beeing an active field of research
and development. That’s why this work deals with an implementation of an wireless ethernet
gateway for an easy integration into existing automation and middleware systems. It provides extensions for extrinsic access and manipulation by mobile devices, to facilitate maximal automation
with minimal effort. Based on a self-created hardware the gateway is capable to transmit and
receive data from HomeEasy UK "’simple"’, EU and Intertechno systems. It can be controlled by
an ASCII-based instruction set through USB, WLAN, SPI and USART. Therefore the basics of
various automation systems are discussed including their structure, some technical facts and commonly used transmission media. Six generic automation Systems are introduced and compared to
each other, followed by a research of already existing middleware systems. The last part of the
work deals with the implementation of the already mentioned ethernet gateway. It describes its
hardware design and software implementation and gives an outlook on future possibilities.
iv
Inhaltsverzeichnis
Inhaltsverzeichnis
v
1 Einleitung
1
1.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Hausautomatisierung
2
3
2.1
Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
Übertragungsmedien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.1
Funk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.2
Kabelgebundene Übertragung . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.3
Power-Line-Communication (PLC) . . . . . . . . . . . . . . . . . . . . .
8
2.3.4
Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3 Automatisierungssysteme
3.1
3.2
3.3
3.4
3.5
3.6
11
HomeEasy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.1
Kompatibilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.1.2
Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.1.3
Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Intertechno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.1
Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.2
Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
X10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.1
Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.2
Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
EnOcean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.1
Technologien
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.2
Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Z-Wave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.5.1
Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
KNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.6.1
27
Netztopologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
vi
INHALTSVERZEICHNIS
4 Middleware
31
4.1
Middleware Plattformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.2
Middleware Software
34
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Implementierung eines Netzwerk-Gateways
35
5.1
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.2
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.2.1
Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.2.2
WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.2.3
ISM-Funkmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.2.4
Antennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2.5
USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.2.6
Platine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.2.7
Sonstiges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.3.1
Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.3.2
Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.3.3
Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.3.4
Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
5.3
6 Zusammenfassung
54
A Befehlsliste
55
B Schaltpläne und Layout
58
Abbildungsverzeichnis
62
Tabellenverzeichnis
64
Literaturverzeichnis
65
Kapitel 1
Einleitung
Haus- und Gebäudeautomatisierung waren bisher kein Massenmarkt, die Tendenz geht jedoch
deutlich in Richtung Wachstum[1]. Was früher als unbezahlbares Nischenangebot für Privilegierte
galt, ist heute mehr als nur ein spezielles Produkt für technikversierte Bewohner. Durch das Erkennen des Marktpotenzials und das Mitdenken vieler Firmen dürfen wir uns heute einer großen
Auswahl von verschiedenen Systemen erfreuen, angefangen von der einfachen Funksteckdose bis
hin zur kompletten Heimvernetzung über das Internet. Sinkende Preise sowie die Möglichkeit die
eigene Hausvernetzung stückchenweise und nacheinander aus einzelnen Komponenten aufzubauen, sollten diese positive Marktentwicklung weiter fördern. Auch schärfere Energierichtlinien für
Gebäude und neue Gesetze, wie der § 21b Abs. 3 EnWG, welcher ab Januar 2010 den Einbau von
intelligenten Strom-, Gas- und Wasserzählern (engl. Smart Meter ) in Neubauten festlegt, werden dazu führen, dass Haus- und Gebäudeautomatisierung unweigerlich ihren Siegeszug antreten.
Dem Marktforscher Pike Research zu Folge, sollen 2015 bereits 13 Mio Haushalte weltweit „Home
Energy Management“ nutzen und bis 2020 soll sich ihre Zahl auf 63 Mio erhöhen[1]. Es ist also zu
erwarten, dass die Hausautomatisierung zukünftig eine wichtige Rolle spielen wird und weiterhin
Gegenstand von Forschung und Entwicklung bleibt.
Aus diesen Gründen beschäftigt sich auch die vorliegende Arbeit mit diesem Thema: Ziel ist das
Entwickeln einer offenen Plattform, welche es ermöglicht, sich in bestehende Automatisierungssysteme einzuklinken und deren Protokolle zu senden und empfangen. Diese soll später als kleines
eigenständiges Modul auf der Basis von selbst entworfener Hardware existieren und eine Steuerung
über WLAN, USB und anderen Schnittstellen ermöglichen.
Dazu werden anfangs die Grundlagen von Haus- und Gebäudeautomatisierung behandelt, die neben
der Struktur und dem Aufbau auch technische Aspekte, wie die verwendeten Übertragungsmedien
enthalten. Um den Einblick noch zu vertiefen, werden in Kapitel 3 beispielhaft 6 solcher Systeme
aufgeführt und anschließend gegenüber gestellt.
Kapitel 4 befasst sich näher mit dem Thema Middleware, da auch die in dieser Arbeit entworfene Plattform einer Middleware entspricht. Hier werden bestehende Systeme recherchiert und
miteinander verglichen.
1
Kapitel 1 Einleitung
2
Das letzte Kapitel beschäftigt sich dann mit der Implementierung des bereits vorgestellten
Netzwerk-Gateways. Nachdem die Anforderungsliste und das Konzept vorgestellt wurde, werden
der Hardwareaufbau und die Softwareimplementierung beschrieben und ein Ausblick auf zukünftige
Erweiterungsmöglichkeiten des Moduls gegeben.
1.1 Motivation
Wie bereits gezeigt, ist die Hausautomatisierung ein wichtiger aufstrebender Bereich in Technik
und Wirtschaft. Die Vorstellung, welche Möglichkeiten sie bietet und in Zukunft bieten kann,
welchen Komfort und Sicherheit sie in den Alltag bringt, wie man mit ihrer Hilfe den Alltag von
gehandicapten Menschen vereinfachen kann, waren einige Gründe, sich mit diesem Thema zu beschäftigten.
Nun stellt sich die Frage, warum eigentlich eine Plattform selbst entwerfen, wenn es bereits solche
Systeme auf dem Markt gibt. Warum nicht ein fertiges System kaufen und dieses umprogrammieren? Die Antwort lautet: Mein Ziel ist die Entwicklung einer individuellen, maßgeschneiderten
Lösung, etwas das man so nicht kaufen kann. Die Plattform soll offen sein und dabei maximalen
Nutzen bei möglichst wenig Ressourcenverbrauch bringen, um so für jeden frei zugänglich und
erschwinglich zu sein. Ein wichtiger Punkt ist auch der universelle Charakter des Moduls: Es soll
möglich sein, nachträglich noch Protokolle zusätzlicher Systeme oder andere Funktionen zu ergänzen, um eine Weiterverwendung außerhalb dieser Arbeit denkbar zu machen.
Bei der Veränderung eines gekauften Systems, wäre man in vielerlei Hinsicht eingeschränkt, seien
es rechtliche Beschränkungen oder durch die Hard- und Software selbst. Das Besondere an einem
Selbstbau ist das Durchlaufen der verschiedenen Entwicklungsstadien und dem daraus resultierenden Anschneiden vieler verschiedenen Themengebiete. Man erfährt so zusätzliches, praktisches
Hintergrundwissen und bekommt einen facettenreichen Einblick in und um das Thema Hausautomatisierung vermittelt.
Kapitel 2
Hausautomatisierung
Als Hausautomatisierung bezeichnet man Einrichtungen zur Steuerung, Überwachung, Regelung
und Optimierung von Prozessen in privaten Wohnhäusern. Sie ist Teilbereich der Gebäudeautomatisierung mit einem an die Wohnung und den Bedürfnissen ihrer Bewohner angepassten
Anforderungsbereich.
Ziel der Hausautomatisierung ist der gesteigerte Wohnkomfort, Energieeinsparung durch die intelligente Regelung von Energieverbrauchern und die Erhöhung der Sicherheit durch vernetzte
Überwachungssysteme. Die Anforderungen, die dabei gestellt werden, unterscheiden sich von der
Gebäudeautomatisierung: Während bei der Gebäudeautomatisierung vor allem die Wartungsfreiheit und die Kompatibilität der Systeme untereinander im Vordergrund stehen, spielen bei der
Hausautomatisierung die Nutzerfreundlichkeit und die Flexibilität der Systeme eine große Rolle.
Hier konnten sich vor allem Systeme durchsetzen, die kostengünstig, einfach zu installieren und
leicht erweiterbar sind. Neben den klassischen Funktionen der Gebäudeautomatisierung wurden
im Hinblick auf das private Leben noch einige Funktionen ergänzt. Das sind zum einen Multimediafunktionen und das Miteinbeziehen von Haushaltsgeräten, wie Kühlschrank, Waschmaschine
und Herd, zum anderen aber auch ganz spezielle Funktionen, wie z.B. Stimmungslicht, dass die
Beleuchtungsstärke an die aktuelle Situation oder die Stimmung der Bewohner anpasst.
2.1 Möglichkeiten
Die Möglichkeiten sind vielfältig, hängen aber stark von dem Funktionsumfang des eingesetzten
Systems ab (Tabelle 3.1 auf Seite 30). Generell lassen sich die angebotenen Funktionen in folgende
Hauptbereiche einteilen:
Beleuchtung: Lichter und Lampen können gedimmt oder geschaltet werden und so jeden Raum
in eigene Lichtverhältnisse tauchen.
3
4
Kapitel 2 Hausautomatisierung
Fensterüberwachung
Alarmfunktion
JalousienSteuerung
Hausgerätemanagement
Bewegungsmelder
Raum Be- und
Entlüftung
Beleuchtungssteuerung
Anwesenheitssimulation
Einzelraumregelung
Heizungssteuerung
Torüberwachung
Störungsmeldung
Abbildung 2.1: Anwendungsmöglichkeiten in einem Haus. Bildursprung: http://www.
lingg-janke.de/uploads/pics/eib-system-viele-funktionen.jpg
Klimageräte/Heizung: Neben einer normalen Temperaturregelung sind auch erweiterte Funktionen wie eine Nachtabsenkung oder das Herunterregeln der Heizung bei geöffneten Fenstern
möglich. Sollte z.B. die Temperatur durch starke Sonneneinstrahlung schnell steigen, können
Jalousien heruntergefahren oder die Belüftung aktiviert werden.
Multimedia: Vorprogrammierte Abläufe können dazu führen, dass beim Einschalten des Fernsehers gleich auf das Lieblingsprogramm geschaltet wird, oder sich die Musik leiser stellt,
sollte jemand vor der Haustür stehen oder das Telefon klingeln.
Sicherheit: Anwesenheitssimulationen schalten Lichter ein und aus, um so Verbrecher abzuschrecken oder im Brandfall wird automatisch die Feuerwehr gerufen. Auch ist es möglich Alarm
bei defekten Geräten zu geben, das System kann also bemerken, wenn es nicht mehr ordnungsgemäß funktioniert.
Die genannten Beispiele verdeutlichen, wie vielfältig die Möglichkeiten der Hausautomatisierung
sind, dabei ist das nur ein kleiner Teil der verfügbaren Bereiche. Durch technische Neuerungen und
ein wachsendes Produktangebot steigen diese Möglichkeiten stetig an. Somit fallen die Beschränkungen der Technik zunehmend weg und der Hausautomatisierung sind als Grenzen nur noch die
eigene Phantasie und die Größe des Geldbeutels gesetzt.
Kapitel 2 Hausautomatisierung
5
2.2 Aufbau
Grundsätzlich lassen sich die Komponenten eines Hausautomatisierungssystems in folgende Kategorien aufteilen:
Sensoren: Sensoren nehmen Einflüsse der Umgebung und Umwelt war und können diese Informationen verarbeiten oder weiterleiten. Typische Sensoren sind: Temperatursensor, Schalter,
Überwachungskamera. Bewegungsmelder, Feuchtesensoren und viele mehr.
Aktoren: Aktoren sind das Gegenstück zu Sensoren: Sie sind Stellglieder und nehmen direkten
Einfluss auf ihre Umgebung. Beispiele hierfür sind: Motoren, Rollladensteuerungen, Dimmer,
Schaltmodule uvm.
Logikbausteine: Logikbausteine können aus den Sensordaten und Zuständen der Aktoren bestimmte Aktionen ableiten und diese über Funktionen verknüpfen. Typische Vertreter sind
Schaltzentralen und Computer. Wegen der zunehmenden Auslagerung der „Intelligenz“ auf
Sensoren und Aktoren zählen aber auch einfache Geräte wie Rauchmelder oder Thermostate
zumindest teilweise zu den Logikelementen.
Die Komponenten werden über Bussysteme miteinander zu einem Netz verknüpft, das typischerweise dezentral ist und nur in bestimmten Subsystemen zentral arbeitet. Der Grad und die Art
der Vernetzung ist abhängig vom jeweiligen System und deren Ausbaustufe. So zeigen einfache
Funksysteme wie z.B. Systeme von Intertechno (Abschnitt 3.2 auf Seite 15) kaum Vernetzung
auf, oft ist hier ein Sensor nur einem einzigen Aktuator zugeordnet und dieser nicht mit anderen Aktuatoren verknüpft. Andere Systeme wie Z-Wave (Abschnitt 3.5 auf Seite 25) hingegen,
bilden ein stark vermaschtes Netz, in dem Informationen auch über Hardware weitergereicht werden können, die nicht mit den Signalen in direkter Verbindung steht. Spezielle Geräte wie z.B.
eine Universal-Fernbedienung können ebenfalls die Vernetzung beeinflussen, daher lässt sich kein
einheitliches Modell für alle Systeme aufstellen.
Die verwendeten Bussysteme variieren stark von Hersteller zu Hersteller. Eine Kompatibilität zwischen den verschiedenen Bussystemen ist in der Regel nicht gegeben, dadurch lassen sich verschiedene Automationssysteme nicht problemlos zusammenschalten. Über spezielle Gateways und
Buskoppler ist es teilweise dennoch möglich. Das in dieser Arbeit entwickelte Middleware System
Wifi Control 433 (Kapitel 5 auf Seite 35) ist in der Lage, Systeme von Intertechno und HomeEasy
zu verbinden. Beispiele für weitere Bussysteme sind TCP/IP, KNX, Power-Line-Communication
(PLC), CAN-Bus, RS485, uvm. Aus Kostengründen beschränkt man sich in der Hausautomatisierung meist auf ein Bussystem. In der Gebäudeautomatisierung spielen die Kosten hingegen eine
geringere Rolle,weshalb für bestimmte Aufgaben der geeignetste Bustyp ausgewählt wird und die
verschiedenen Systeme dann über Gateways zusammengeschaltet werden.
Kapitel 2 Hausautomatisierung
6
2.3 Übertragungsmedien
Zur Übertragung von Informationen innerhalb eines Netzes werden zahllose Bussysteme verwendet, die prinzipiell aber nur auf einigen wenigen physikalischen Effekten beruhen. Teilt man die
Systeme, nach dem Übertragungsmedium getrennt, in einzelne Gruppen auf, so bilden sich drei
große Vertreter: drahtgebundene, optische und funkbasierte Systeme. Da in der Hausautomatisierung vor allem funk- und drahtgebundene Systeme im Vordergrund stehen, werden diese Gebiete
gesondert in den nachfolgenden Kapiteln behandelt.
2.3.1 Funk
Funkbasierte Systeme sind stark verbreitet und stellen das bevorzugte Übertragungssystem in der
Hausautomatisierung dar. Nahezu alle käuflichen Geräte sind in der Lage über Funk zu kommunizieren und selbst ursprünglich rein kabelgebundene Produkte, wie KNX (Abschnitt 3.6 auf
Seite 27) oder X10 (Abschnitt 3.3 auf Seite 19) bieten inzwischen Erweiterungsmöglichkeiten an.
Die große Beliebheit und das schnelle Wachstum solcher Systeme verdankt es vor allem folgenden
Vorteilen:
Hohe Flexibilität: Einmal installierte Geräte sind nicht an ihre Position gebunden, sondern können in gewissen Grenzen räumlich versetzt werden.
Leichte Installation: Geräte können leicht montiert werden, da ein aufwendiges Kabelverlegen
entfällt. Somit können funkbasierte Systeme schnell in Betrieb genommen werden. Auch
fallen die Installationskosten gering aus, da das Kabelverlegen den Aufpreis der Funktechnik
in aller Regel überwiegt.
Leicht erweiterbar: Vor allem wegen der einfachen Installation können neue Produkte leichter
integriert werden. Das heißt für den Benutzer: Kaufen, einstecken, installieren und fertig.
Diesen Vorteilen stehen allerdings auch einige Nachteile gegenüber:
Sicherheit: Funkbasierte Systeme sind generell unsicherer als vergleichbare kabelgebundene Lösungen, da die Daten frei in den Raum gestrahlt werden und es unerwünschte Zuhörer geben
kann. Viele Systeme senden ihre Daten verschlüsselt, aber vor allem die kostengünstigeren
Systeme haben diese Funktion meist nicht eingebaut, was die Möglichkeit der Manipulation
eröffnet.
Störungen: Funk lässt sich nicht an allen Standorten nutzen, sei es durch störende Nachbarsysteme, die einen zuverlässigen Datenverkehr verhindern, oder wegen ungünstiger Nebenbedingungen durch Einrichtung und Architektur. Metallgegenstände oder Stahlbeton können
sogenannte Funkschatten/Funklöcher werfen und den Empfang beeinträchtigen.
Kapitel 2 Hausautomatisierung
7
Zur Übertragung werden die ISM Bänder (engl. Industrial, Scientific and Medical Band) mit den
Frequenzen 433 MHz (weltweit), 868 MHz (Europa), 915 MHz (Nordamerika) und 2.4 GHz (weltweit) genutzt, die für Wissenschaft, Medizin, Industrie und den häuslichen Bereich zugänglich
sind. Andere Systeme wie Bluetooth und WLAN nutzen ebenfalls 2.4 GHz, unterliegen allerdings
nicht den ISM Bestimmungen. Durch die gemeinsame Nutzung kann es vor allem in den häufig genutzten Frequenzbändern, wie dem 433 MHz-Band oder 2.4 GHz-Band leicht zu Störungen
kommen.
Bevor Informationen über Funk übertragen werden können, müssen sie kodiert und moduliert
(Abschnitt 2.3.4 auf Seite 9) werden. Die Kodierung und Art der Modulation unterscheidet sich
je nach verwendetem System. In Tabelle 3.1 auf Seite 30 können diese nachgelesen werden.
2.3.2 Kabelgebundene Übertragung
Kabel und Leitungen stellen das klassische Übertragungsmedium dar. Als 1980 die ersten Systeme
der Gebäudeautomatisierung auf den Markt kamen, waren sie allesamt kabelgebunden. So ist auch
heute noch die leitungsgebundene Übertragung in der Gebäudeautomatisierung marktführend.
Ähnlich wie bei der Hausautomatisierung findet aber auch hier ein schleichender Wechsel hin zu
Funklösungen statt, erkennbar an der steigenden Anzahl von Funksystemen auf dem Markt.
Allgemein lassen sich folgende Vorteile aufzählen:
Störsicherheit: Geschirmte Leitungen sind robust gegen Einstreuungen aus der Außenwelt, was
hohe Geschwindigkeiten bei der Datenübertragung zulässt und eine zuverlässige Übertragung
garantiert.
Energieversorgung: Endgeräte können über die Leitungen mit elektrischer Energie versorgt werden, wodurch die Notwendigkeit einer eigenen Spannungsversorgung entfällt. Es entstehen
Vorteile bei Baugröße und Kosten. Die Versorgungsleitungen können getrennt ausgeführt
oder gemeinsam als Signalleitung benutzt werden, z.B. 1-Wire Bus.
Wie bereits erwähnt, sind die Hauptnachteile der drahtgebundenen Systeme die Unflexibilität
sowie das aufwendige Nachrüsten von Systemkomponenten. Diese Gründe führen vor allen bei
bestehenden Gebäuden oft zu einer Entscheidung für funkbasierte Lösungen. Wird das System
hingegen direkt beim Neubau integriert, lassen sich im Hinblick auf Zuverlässigkeit und Sicherheit
ohne großen Mehraufwand bessere Ergebnisse als mit vergleichbaren Funksystemen erzielen.
Beispiele für kabelgebundene Bussysteme sind: LAN, CAN, KNX, USB, Power-LineCommunication (PLC), uvm.
Kapitel 2 Hausautomatisierung
8
2.3.3 Power-Line-Communication (PLC)
Bei dem Spezialfall Power-Line-Communication werden die Daten über das bestehende Stromnetz
des Hauses versendet. Die Anwendungsgebiete sind vielfältig und reichen über einfache Geräte, wie
das Babyfon, über PowerLan, bis hin zum Internet aus der Steckdose. Auch für Hausautomatisierung ist dieses Thema interessant, da ein Kostenvorteil durch die Benutzung bereits vorhandener
Infrastruktur entsteht[3]. Bestehende Automatisierungssysteme wie X10 (Abschnitt 3.3 auf Seite 19) und Insteon zeigen den Erfolg dieser Übertragungsart. Ein weiterer Vorteil ist die Flexibilität
des Systems: Die meisten elektrischen Geräte sind an das Stromnetz angeschlossen, was bedeutet,
dass sie gesteuert werden können. Dabei spielt es keine Rolle, an welcher Steckdose sie gerade
angesteckt sind. Es ergibt sich somit in gewissen Grenzen eine freie Platzierbarkeit der Geräte, die
auch im Nachhinein noch verändert werden kann.
Anders als bei anderen kabelgebundenen Übertragungssystemen kann die Qualität der Übertragung
stark durch bestimmte Netzteilnehmer gestört werden: Das sind z.B. Netzfilter, die das gesendete
Signal stark dämpfen können, und Schaltnetzteile, die Störsignale emittieren. Dazu kommt noch
das Problem, dass europäische Haushalte über Dreiphasenwechselstrom verfügen, die Signale aber
nur auf einer Phase gesendet werden. Mit Hilfe von speziellen Phasenkopplern ist eine Übertragung
auf die anderen zwei Phasen möglich.
9
Kapitel 2 Hausautomatisierung
2.3.4 Modulation
Die Modulation beschreibt den Vorgang, ein höher frequentes Trägersignal in einer oder mehreren
Eigenschaften durch ein Signal zu verändern, welches typischerweise die zu übertragenden Informationen enthält. Dabei ist das Trägersignal in der Regel sinusförmig (Oberwellenfreiheit) und kann
in der Phase, Amplitude und Frequenz variiert werden. Die Rückgewinnung des Quellensignals
nennt man Demodulation.
Sender
Modulator
Übertragungkanal
Demodulator
Empfänger
Abbildung 2.2: Blockschaltbild der Datenübertragung.
Durch die Modulation entsteht eine Anpassung an den Übertragungskanal[4], wodurch eine Übertragung in vielen Fällen erst möglich gemacht wird, z.B. die hochfrequente Funkübertragung
von Sprachsignalen. Auch andere Vorteile, wie die Möglichkeit, viele verschiedene Informationen
gleichzeitig zu senden und empfangen, zeigen den großen Nutzen der Modulation.
Im Folgenden werden drei häufig angewandte Modulationsarten gezeigt: ASK, FSK und GFSK.
ASK
Bei der Amplidutenumtastung (engl. Amplitude-Shift-Keying, ASK) ändert sich die zeitabhängige, diskrete Amplitude des Trägersignals, abhängig vom Nutzsignal. Phase und Frequenz bleiben
dabei konstant.
Der einfachste Fall mit zwei Amplitudenstufen wird On-Off-Keying (OOK) genannt. Bei diesem
Spezialfall kann die Amplitude entweder 0 oder einen konstanten Wert annehmen. Ist die Amplitude 0, wird folglich auch keine Energie übertragen, was die ASK besonders für stromsparende,
batteriebetriebene Geräte interessant macht. Auch lässt sich der Sender/Empfänger besonders
einfach durch eine Multiplikation/Division des Quellensignals mit der Trägerfrequenz realisieren,
was OOK Sende- und Empfangsmodule vergleichweise günstig macht.
FSK
Bei der Frequenzumtastung (engl. Frequency-Shift-Keying) variiert die Frequenz entsprechend
dem Quellensignal. Eine vorangestellte Zahl gibt dabei die Anzahl der Stufen an (mFSK besitzt
m Frequenzabstufungen), es werden jedoch mindestens zwei verschiedene Trägerfrequenzen benötigt. Durch den höheren Konstruktionsaufwand von Sender und Empfänger sind diese Module
Kapitel 2 Hausautomatisierung
10
vergleichsweise teuer, haben aber ein besseres Signal-Rausch-Verhältnis (SNR) und somit eine
höhere Reichweite, bzw. eine höhere Übertragungsrate bei gleicher Sendeleistung.
GFSK
Eine spezielle Form der FSK ist die Gauß’sche Frequenzumtastung (engl. Gaussian-FrequencyShift-Keying), bei der das Signal vor der FSK Modulation durch einen Gauß-Tiefpassfilter geschickt
wird, welcher die steilen Flanken des Signals abflacht und es „weicher“ macht. Da nun vor allem bei
Rechtecksignalen die hochfrequenten Oberwellen gefiltert werden, wird die benötigte Bandbreite
verringert und die Störungen auf eng benachbarte Frequenzbänder reduziert.
Abbildung 2.3: Beispiel für die Modulation ASK (b) und FSK (c) des Quellensignals q(t)(a) [5]
Kapitel 3
Automatisierungssysteme
In diesem Kapitel werden einige ausgesuchte Systeme aus Haus- und Gebäudeautomatisierung
vorgestellt, um einen groben Überblick über die Funktionen und angebotenen Leistungen zu geben.
Die aufgeführten Systeme sind nicht vollständig, was bei der großen Anzahl und verschiedenen
Ausführungen, im Rahmen dieser Arbeit auch nicht möglich gewesen wäre. Vielmehr wurden
bewusst Systeme gewählt, die sich bereits auf dem Markt durchsetzen konnten und solche, die
sich durch Besonderheiten von anderen Systemen unterscheiden.
Die beiden vom Leistungsspektrum her ähnlichen Systeme Intertechno und HomeEasy werden
ausführlicher behandelt, da sich Kapitel 5 auf Seite 35 mit dem Senden und Empfangen ihrer
Protokolle beschäftigt.
3.1 HomeEasy
HomeEasy ist ein funkbasiertes Hausautomatisierungssystem des englischen Unternehmens CH
Byron1 . Es ist für einfache Steuerprozesse in Haushalten ausgelegt, wie direktes Ein- und Ausschalten oder Schalten nach Uhrzeit und Kalender. Komplexere Regelungen lassen sich damit nicht
realisieren.
Die Produktpalette umfasst folgende Gebiete
• Licht (an/aus/dimmen)
• Steuern von Geräten (an/aus)
• TV/DVD/Receiver (über Infrarot)
• Heizungssteuerung
• Zutrittskontrolle (Türschloss, Bewegungsmelder)
1
www.chbyron.eu
11
Kapitel 3 Automatisierungssysteme
12
Vertrieben werden HomeEasy Geräte außerhalb der EU von Byron selbst, innerhalb der EU von
ELRO2 , sowie landesabhängig von einigen weiteren Firmen. Diese Firmen besitzen teilweise ihre eigenen Hausautomatisierungssysteme, welche deutliche Parallelen zu den HomeEasy Geräten
aufzeigen oder vermarkten das HomeEasy System unter anderen Namen, z.B. Klik on Klik off,
Bye Bye Standby oder Nexa. Diese „fremden“ Systeme können stellenweise mit HomeEasy Geräten kommunizieren, jedoch meist nur mit ganz bestimmten Versionen. Da man hier von keiner
Kompatibilität sprechen kann, werden sie nicht weiter aufgeführt.
3.1.1 Kompatibilität
Unter den HomeEasy Geräten selbst gibt es einige Inkompatibilitäten, bedingt durch die fehlende Standardisierung der Kommunikation und größeren Hardwareveränderungen während der
Entwicklung. Das anfängliche Protokoll (Abb. 3.1) erinnert an den HX2262 Chip, wie er bei Intertechno eingesetzt wird, spätere Versionen setzen auf Lösungen mit dediziertem Mikrocontroller.
Der größte Unterschied besteht zwischen Geräten der UK-Serie (käuflich im EU-Ausland) und der
EU-Serie. Beide Serien besitzen ein völlig unterschiedliches Protokoll und sind trotz des identischen
Produktangebotes nicht kompatibel. EU Geräte lassen sich durch das Kürzel EU in der Produktnummer (z.B. HE301EU) oder einer 800er Seriennummer erkennen, z.B. HE807 oder HE844A.
Innerhalb der UK-Serie existieren weitere Inkompatibilitäten durch verschiedene Protokolle, sowie
der Verschlüsselung der Daten bei einigen Produkten [6]. Alles in allem entsteht eine relativ unübersichtliche Liste, welche Geräte von welchen Versionen miteinander kommunizieren können,
und welche nicht. Das widerspricht der Angabe des Herstellers, dass alle Geräte untereinander
kompatibel seien, was wohl nur für die aktuelle Serie gilt und nicht für die vielen verschiedenen
Versionen, die im Laufe der Entwicklung entstanden sind und immer noch auf dem Markt zu
finden sind.
3.1.2 Spezifikation
In einem System aus HomeEasy Geräten sind einfache Sender, wie Lichtschalter und Dimmer, in
der Regel genau einem Empfänger zugeordnet, können theoretisch aber beliebig vielen Empfängern zugewiesen werden. Eine Begrenzung entsteht durch die Tatsache, dass jeder Empfänger nur
maximal sechs Adressen speichern und somit nur sechs Sendern zugeordnet werden kann. Einige
Universal-Fernbedienungen beherrschen den Gruppen-Modus, mit dem bis zu vier Geräte gleichzeitig geschaltet werden können. Damit lassen sich trotz der Gruppierung, die Geräte immer noch
einzeln schalten.
Eine Verknüpfung von Sender und Empfänger erfolgt durch Lernen. Dabei wird der Empfänger
zuerst durch Tastendruck in den Lernmodus versetzt und dieser legt dann bei Empfang des nächs2
www.elro.eu
Kapitel 3 Automatisierungssysteme
13
ten gültigen Signals, die Adresse in seinem Speicher ab. Ist der Speicher bereits voll, schlägt die
Verknüpfung fehl.
Die Datenübertragung erfolgt auf dem 433.92 Mhz-Band, ist OOK moduliert und unidirektional.
Die Teilnehmer können entweder senden oder empfangen, jedoch nie beides. Das bedeutet, dass
die Sender sich nicht gegenseitig sehen können und die Empfänger keine Empfangsbestätigung
zurücksenden. Um der daraus resultierenden Unzuverlässigkeit etwas entgegenzuwirken, werden
die Daten mehrfach gesendet, bei der EU-Serie sieben mal. Die Übertragung ist unverschlüsselt
und nur bei einigen wenigen Geräten der UK-Serie durch Rolling-Code3 verschlüsselt.
3.1.3 Protokoll
Wie bereits erwähnt, existieren verschiedene Versionen des Protokolls. Da die Protokolle nicht offen
sind, mussten die Datenströme manuell mit einem Logikanalyser aufgenommen und analysiert
werden. Folgende in Abb. 3.1 gezeigten drei Signale konnten mit der verfügbaren Hardware4
aufgenommen werden.
Abbildung 3.1: Drei HomeEasy Protokolle.
a) ist ein verschlüsseltes UK Protokoll mit 29 Bit
b) ist das UK „simple“ Protokoll mit 25 Bit.
c) ist ein Ausschnitt aus dem 58 Bit langen EU Protokoll.
3
Sender und Empfänger besitzen eine gemeinsame Codetabelle zur Entschlüsselung. Bei jedem Sendevorgang
wird dem Empfänger mitgeteilt, welcher Code gerade verwendet wird, somit unterscheidet sich jede gesendete
Nachricht.
4
Scanalogic 2 + HomeEasy HE853 USB Stick
14
Kapitel 3 Automatisierungssysteme
Die einzelnen Bits bestehen aus jeweils 2 Pegeln (Manchestercodierung) mit folgenden Zeiten
(engl. bit timings):
"0"
980
"1"
320
320
980
275
1320
UK
275
275
EU
Abbildung 3.2: Die Bitzeiten der Protokolle UK und EU in µs.
Ein wichtiges weiteres Protokoll ist das 32 Bit lange „automatic“ UK Protokoll. Die Bitzeiten
entsprechen denen des EU Protokolls, jedoch unterscheiden sie sich in der Anzahl der gesendeten
Bits. Alle neueren UK Geräte beherrschen es, es ersetzt somit nach und nach das ältere „simple“
Protokoll. Da dieses Protokoll mit der verfügbaren Ausrüstung nicht aufgenommen werden konnte,
wurde es nicht weiter betrachtet.
In Abschnitt 5.3.3 auf Seite 51 wird auf die Dekodierung des Bitstroms eingegangen.
Kapitel 3 Automatisierungssysteme
15
3.2 Intertechno
Intertechno ist ein kostengünstiges, funkbasiertes Hausautomatisierungssystem des gleichnamigen
österreichischen Herstellers. Es ist für einfache Steueraufgaben gedacht, wie Ein- und Ausschalten
oder Schalten nach festen Zeiten. Komplexe Regelungen lassen sich damit nicht direkt realisieren,
sondern erfordern weitere Hardware von Drittanbietern (Abschnitt 4.1 auf Seite 32). Häufig werden
Geräte von Intertechno in Baumärkten und Elektronikläden angeboten.
Der verfügbare Produkt- und Funktionsumfang lässt sich mit HomeEasy (Abschnitt 3.1 auf Seite 11) vergleichen und umfasst folgende Bereiche:
• Licht (an/aus/dimmen)
• Steuern von Geräten (an/aus)
• Steuern von Rollladen-, Markisen- und Torantrieben
• Zutrittskontrolle (Magnetschalter, Bewegungsmelder, Türgong)
3.2.1 Spezifikation
Die Datenübertragung erfolgt unverschlüsselt und OOK moduliert auf dem 433.92 MHz-Band.
Geräte können entweder senden oder empfangen, die Übertragung ist somit unidirektional. Um
die Empfangswahrscheinlichkeit zu erhöhen, werden Befehle vier mal gesendet. Die Reichweite ist
mit 30 m(Sichtfeld) vergleichsweise gering, lässt sich aber durch Sendewiederholer erhöhen.
Es gibt zwei Arten von Sendern und Empfängern: die klassische Version mit manueller und die
neuere, „selbstlernende“ Version mit automatischer Adresswahl. Der Adressbereich umfasst bei
der klassischen Version 4 Bit für den Familiencode und 4 Bit für die Gerätenummer, insgesamt
lassen sich also maximal 256 verschiedene Geräte ansprechen. Der Familiencode kann zwischen A
bis P (entspricht 0 bis 15) eingestellt werden und hat den Zweck Geräte gruppieren zu können,
um so die Nummerierung und Einteilung übersichtlicher zu machen. Diese Gruppen können bei
einigen Handsendern auch als Ganzes geschaltet werden. Eingestellt werden die Adressen über
Drehencoder oder Dipschalter direkt an den Geräten. Sender und Empfänger werden verknüpft,
indem an beiden Geräten die selbe Adresse (Familien- und Gerätecode) eingestellt wird.
Geräte mit automatischer Adresswahl haben eine feste, 26 Bit lange ID, die eine eindeutige Zuweisung erlaubt. Statt den Dipschaltern zur Adressauswahl gibt es einen Lernknopf. Durch Drücken
dieses Knopfes wird das Gerät in den Lernmodus versetzt und speichert die erste Adresse die
innerhalb der nächsten 10 s empfangen wird. Wird eine Adresse empfangen, ist der Empfänger
mit dieser Adresse (entspricht einem Sender) verknüpft. Insgesamt können maximal sechs Adres-
16
Kapitel 3 Automatisierungssysteme
Abbildung 3.3: Links ein klassisches Gerät mit manueller Adresswahl und rechts ein Neueres mit
Lernfunktion[7].
sen gespeichert werden. Alle Geräte von Intertechno sind zueinander kompatibel, einzig bei der
Kombination von selbstlernenden Sendern und klassischen Empfängern kommt es zu Problemen.
Familiencode
Familiencode
A0..A3
A0..A3
HX2262
A.. P
HX2272
Gerätenummer
A4..A7
A.. P
Gerätenummer
Dout
RF
RF
Din
A4..A7
0..15
0..15
Tastenmatrix
D0..D3
enable
Ausgänge
D0..D3
Abbildung 3.4: Strukturbild der Datenübertragung von 2 Geräten mit HX2262/2272 Pärchen.
Geräte mit manueller Adresswahl haben als Kernstück den IC HX2262 (Sender) oder HX2272
(Empfänger) eingebaut. Diese Chips sind speziell für Fernbedienungen entwickelt worden und
man findet sie häufig in den verschiedensten Produkten, wie z.B in Garagentoröffnern oder Infrarotfernbedienungen. Sie besitzen 12 Tri-State Eingänge, die als Adress- oder Datenleitungen
genutzt werden können. (Abb. 3.4) Bei selbstlernenden Geräten, wird statt der HX2262/2272 ein
Mikrocontroller eingesetzt.
Durch die Benutzung des weit verbreiteten HX2262 Chips, ergeben sich oft Kompatibilitäten zu
ähnlichen Produkten anderer Hersteller, vor allem aber zu Geräten aus asiatischer Produktion,
in denen dieser Chip häufig wegen den sehr geringen Kosten eingesetzt wird. Es ist also möglich das Automatisierungssystem mit nicht-Intertechno Geräten zu erweitern. Garantiert wird eine
zuverlässige Zusammenarbeit aber nicht.
Kapitel 3 Automatisierungssysteme
17
3.2.2 Protokoll
Es existieren zwei verschiedene Protokolle: Das offene Protokoll des HX2262 und das neuere,
proprietäre Protokoll der selbstlernenden Geräte. Letzteres wurde in dieser Arbeit nicht weiter
untersucht.
Erzeugt wird das Protokoll durch den HX2262 Chip. Wird der enable-Pin auf Vss gezogen, sendet
der IC nacheinander die Zustände der 12 Eingänge und einen Synchronisationsimpuls, der als
Abstandshalter für die nachfolgenden Wiederholungen dient. Jeder Zustand setzt sich aus zwei
Datenelementen zusammen, die jeweils 4 Takte dauern (Abb. 3.5). Ein Synchronisationsimpuls
entspricht dem Datenelement 0, das auf 32 Takte verlängert wurde. Die Taktdauer ist 400µs.
Datenelement „0”
Datenelement „1”
Abbildung 3.5: Die Datenelemente „0“ und „1“.
Ein Adresspin kann 3 verschiedene Zustände einnehmen, ein Datenpin nur Zustand Vss und Vcc
(Abb. 3.6). Der Zustand Float entspricht einem nicht verbundenen Eingang, der Kontakt liegt
weder auf Vss noch auf Vcc, sondern „hängt in der Luft“.
Eingangsleitung Vss: „00”
Eingangsleitung Vcc: „11”
Eingangsleitung Float: „01”
Sync: „0”
Abbildung 3.6: Die möglichen Bitkombinationen.
Insgesamt ist ein Befehl 25 Bit lang, die Übertragung dauert folglich 51.2 ms bzw. 204.8 ms bei 4
Wiederholungen. Damit der Decoder HX2272 schaltet, müssen 2 korrekte, aufeinander folgende
Befehle empfangen werden5 .
In Abschnitt 5.3.3 auf Seite 51 wird weiter auf die Dekodierung des Signal eingegangen.
5
Mehr dazu im Datenblatt des HX2262: http://www.e-ele.net/DataSheet/PT2262.pdf
Kapitel 3 Automatisierungssysteme
18
Abbildung 3.7: Der oszillografierte Code lautet: 1FFFFF0F0000. („0“ steht für Vss, Vcc und "F"für
Float)[8]
Kapitel 3 Automatisierungssysteme
19
3.3 X10
X10 ist ein offener Kommunikationsstandard für stromleitungsbasierte Hausautomatisierungssysteme. Er wurde 1975 von der schottischen Firma Pico Electronics entwickelt[9], mit dem Ziel, die
Steuerung von Haushalsgeräten über das bestehende Stromnetz, also ohne zusätzliches Kabelverlegen, zu ermöglichen. X10 basierte Geräte werden von vielen verschiedenen Firmen weltweit
hergestellt und erfreuen sich wegen geringen Kosten und den Vorteilen durch PLC (Abschnitt 2.3.3
auf Seite 8) vor allem in Nordamerika großer Beliebtheit. Durch anfängliche Restriktionen in der
Sendeleistung und der Problematik der Drehstromversorgungen europäischer Haushalte, traf eine
Einführung in Deutschland und der restlichen EU auf Schwierigkeiten und verhinderte das erfolgreiche Durchsetzen am Markt. Inzwischen sind X10 Geräte wieder im Kommen, was das zunehmende
hiesige Produktangebot beweist.
Die Produktpalette ist sehr umfangreich und reicht über einfache An- und Ausschalter bis hin zur
Automationssoftware auf dem PC, mit der komplexere Steuerungen realisiert werden können. Die
angebotenen Produkte lassen sich grob in 2 Kategorien aufteilen:
• X10 Sicherheitstechnik (Bewegungsmelder, Kameras, Alarmanlagen)
• X10 Hausautomatisierung (Dimmer, Ein-/Ausschalter, Zeitschaltuhren)
X10 Produkte sind längst nicht mehr auf PLC beschränkt, sie können über spezielle Gateways
mit anderen Netzen gekoppelt werden. Das wären z.B. Funk (USA 310 MHz, EU 433 MHz) oder
KNX. X10 besitzt seinen eigenen Funkstandard, auch X10 RF genannt. Durch das Mitbenutzen
von Funk lassen sich die Vorteile beider Übertragungsmedien kombinieren, so ist unter anderem
auch eine Funkfernbedienung mit Handsendern möglich.
3.3.1 Spezifikation
Die Adressierung der Geräte erfolgt ähnlich wie bei Intertechno (Abschnitt 3.2.1 auf Seite 15) durch
einem 4 Bit Hauscode und einer 4 Bit Gerätenummer, die durch Drehrädchen am Gerät eingestellt
werden6 . Damit lassen sich maximal 28 = 256 Geräte ansprechen. Eine Verknüpfung erfolgt
durch Einstellen der gleichen Adresse an zwei oder mehreren Geräten. Die Kommunikation ist
typischerweise unidirektional, kann bei manchen Geräte aber auch bidirektional sein, z.B Sensoren
oder Geräte mit Empfangsbestätigung. Es gibt keine Kollisionsvermeidung, was bei gleichzeitigem
Senden von mehreren Befehlen, zu unkontrolliertem Verhalten der Geräte führen kann, da die
empfangenen Pakete dann zufällig sind. Ähnliche Störungen können auch auftreten, wenn zwei
eng benachbarte Systeme, z.B. in Mehrfamilienhäusern, existieren. Eine Abhilfe ist aber durch
Netzfilterung möglich.
6
Bei einigen Geräten kann nur der Hauscode verändert werden.
20
Kapitel 3 Automatisierungssysteme
Anders als bei den bisher vorgestellten Automatisierungssystemen enthält ein gesendetes Datenpaket bei X10 nicht Zieladresse und Kommando, sondern nur eines von beiden. Geräte werden
also erst adressiert und erhalten danach den auszuführenden Befehl. Dadurch ist es möglich, erst
mehrere Geräte zu adressieren und diese dann gleichzeitig zu schalten.
Die Übertragungsrate ist vergleichsweise gering, wodurch eine spürbare Verzögerung zwischen
Senden und Ausführen eines Befehls entsteht. Eine typische Übertragung von einer Adresse und
einem Befehl dauert 47 Netzperioden, das entspricht 0.94 s bei 50 Hz. Werden zudem noch Sendewiederholer benutzt, kann die Zeit noch weiter ansteigen.
3.3.2 Protokoll
Die Daten werden durch Modulieren von 1 ms langen 120 kHz Pulsen auf die Netzspannung übertragen, die zur Vermeidung von Störungen in der Nähe des Nulldurchgangs liegen[10]. Eine binäre
1 entspricht dem Vorhandensein, eine 0 dem Fehlen eines Pulses (Abb. 3.8).
Û
Abbildung 3.8: Netzspannung mit aufmoduliertem Datenstrom „1101“.
Abb 3.9 zeigt ein Datenpaket des Standardprotokolls: Das Paket beginnt mit einem einzigartigen Startcode, gefolgt von 4 Bit Hauscode, 4 Bit Gerätenummer bzw. Befehlsnummer und einem
Steuerbit F1, welches angibt, ob es sich bei D1 bis D8 um eine Gerätenummer oder einen Befehl
handelt. Die Bits H1 bis F1 werden doppelt gesendet, einmal normal und einmal als Komplement.
Es treten so entweder die Kombinationen „01“ oder „10“ auf und der Startcode mit „1110“ kann
sicher detektiert werden.
Start Code H1 H1 H2 H2 H4 H4 H8 H8 D1 D1 D2 D2 D4 D4 D8 D8 F1 F1
1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1
1110
Start Code
0110
Hauscode 'A'
1110
Nummer '14'
Abbildung 3.9: Aufbau eines X10 Datenpakets.
0
Adresse
21
Kapitel 3 Automatisierungssysteme
Pakete werden zur Sicherheit einmal wiederholt, wodurch in einer Datenübertragung von Adresse
und Befehl mindestens 4 Pakete gesendet werden müssen. Die Sendewiederholungen werden ohne
Pause direkt aneinander gehängt, ändert sich aber eines der Bits D1 bis D8 oder F1, was einer
Adressänderung oder einem Wechsel zu einem Befehl bedeutet, werden 3 Netzperioden von Nullen
(entspricht "000000") als Trennzeichen eingefügt[11]. Eine einfache Übertragung von 4 Paketen
dauert also 4 · 11 + 3 = 47 Perioden und steigt um 2 · 11 + 3 = 25 Perioden (entspricht 0,5s bei
50Hz) pro zusätzlich angesprochenem Gerät. Die Übertragungsrate ist mit 18 bit/s (50 Hz) bzw.
21.6 Bit/s (60 Hz) sehr niedrig.
Wiederholung
Adresse
Adresse
Wiederholung
Pause
Befehl
Pause
Befehl
Abbildung 3.10: Bei einer Kommunikation werden mindestens 4 Datenpakete gesendet: Adresse
+ Wiederholung und Befehl + Wiederholung. Zwischen Adresse und Befehl wird
eine Pause von 3 Netzperioden eingefügt.
Neben diesem Standardprotokoll existiert noch ein erweitertes Protokoll, das um einige Bits verlängert wurde, um die Einschränkungen von 4 Bit Geräte-/Befehlsnummer zu vermeiden. Die Bitzeiten
sind gleich, es wurde lediglich der Aufbau des Pakets geändert. Genauere Angaben lassen sich auf
der Herstellerseite finden7
7
http://www.idobartana.com/hakb/standard_and_extended_x10_code_format.htm
22
Kapitel 3 Automatisierungssysteme
3.4 EnOcean
EnOcean ist ein Sammelbegriff für Technologien für eine batterielose Funkübertragung in der
Gebäudeautomatisierung. Erfinder und Hersteller ist die deutsche Firma EnOcean GmbH, welche
auch Gründer der EnOcean Alliance ist, einem non-profit Zusammenschluss aus Firmen weltweit,
die folgende Ziele vertritt:
• weltweite Etablierung der batterielosen Funktechnologie
• Entwicklung und Vertrieb von Funkprodukten.
• Weiterentwicklung der Sensorprofile zur Sicherung der Interoperabilität der Produkte und
zum Ermöglichen eines internationalen Standards
Vertrieben werden Geräte mit EnOcean Technologie über die EnOcean Alliance. Bei etwa 100
Vollmitgliedern, welche selbst Produkte und Dienstleistungen anbieten, ergibt sich ein sehr breit
gefächertes und großes Produktangebot. Wie bei anderen Gebäudeautomatisierungssystemen liegt
der Schwerpunkt vor allem bei Heizungs-, Lüftungs- und Klimatechnik (HLK, engl. HVAC ). Durch
Anbindungsmöglichkeit an andere Netze, wie KNX oder Internet, und das Vorhandensein von
eigenen Steuercomputern, lassen sich auch komplexere Steuer- und Regelungen realisieren.
3.4.1 Technologien
Das wohl charakteristischste Merkmal an den EnOcean Technologien ist die Benutzung von Energy
Harvesting[12]. Energy Harvesting bezeichnet die Gewinnung von kleinen Mengen elektrischer
Energie aus Quellen der Umwelt wie Umgebungstemperatur, Vibrationen und Luftströmungen,
um elektrische Geräte zu betreiben und sie autark zu machen[13].
ECO 200
ECT 310
ECS 300/310
Abbildung 3.11: Verschiedene Energy Harvesting Module[14].
Kapitel 3 Automatisierungssysteme
23
Abb. 3.11 zeigt 3 Energie Harvesting Module für a) Bewegungsenergie (Taster oder Schließkontakte), b) Temperaturdifferenz8 (Sensoren auf Fenstern oder Heizungsrohren) und c) Lichtenergie
(für Geräte aller Art).
Die durch Energie Harvesting gewonnene Energie ist sehr gering und liegt typischerweise in der
Größenordnung von einigen Mikrowatt (33 µW bei Solarmodul ECS310). Einfache Funktechnik
und Wandler würden bei so geringen Strömen nicht funktionieren, daher bietet die EnOcean
GmbH auch fertige Mikrocontroller-basierte Funklösungen (z.B. TCM 300) und dazu passende
DC/DC-Konverter (z.B. ECT 310) an.
Der Physik zufolge ist Arbeit = Leistung · Zeit. Da die Leistung proportional zur Sendereichweite
ist, also fest vorgegeben ist, muss die Sendedauer reduziert werden, um effektiv Energie einsparen
zu können. Nach dieser Grundidee[12] wurde das „EnOcean Radio Protocol“ (ERP) entworfen: Aus
14 Byte großen Datenpaketen und einer Übertragungsrate von 125 kBit/s resultieren etwa 1 ms
lange Übertragungszeiten. Durch diese kurzen Zeiten werden Paketkollisionen unwahrscheinlich
und das System arbeitet auch bei hoher Netzdichte noch vergleichsweise zuverlässig.
Neben dem schon erwähnten ERP, bietet EnOcean auch das EnOcean Equipment Profile (EEP),
welches einen Standard für die Organisation der Daten innerhalb eines Datenpakets liefert.
3.4.2 Spezifikation
Datenpakete werden verschlüsselt im 868 Mhz(EU) und 315 Mhz-Band (US) übertragen. Aus Energiespargründen wird die ASK-Modulation verwendet (Abschnitt 2.3.4 auf Seite 9). Die Übertragung ist uni- oder bidirektional, je nach verwendetem Funkmodul. Eine Empfangsbestätigung ist
nicht vorgeschrieben und wird wegen des Mehraufwandes nicht von allen kommerziellen Geräten
umgesetzt. Bei den leistungsfähigeren Modulen (z.B. TCM300) ist zusätzlich noch eine RepeaterFunktion gegeben, mit der Daten wiederholt und damit die Sendereichweite erhöht werden kann.
Eine Kollisionsvermeidung zwischen Paketen ist nicht vorgesehen, zur Erhöhung der Zuverlässigkeit
werden die Daten daher 3 mal mit zufälliger Verzögerung wiederholt. Eine Datenübertragung dauert so im Schnitt etwa 40ms. In jedem Paket wird eine Prüfsumme übertragen, mit der fehlerhaft
empfangene Pakete mit hoher Wahrscheinlichkeit aussortiert werden können.
Die Verknüpfung der Geräte erfolgt durch Lernen auf Tastendruck. Die Adresse der Geräte ist
durch eine 32 Bit lange ID festgelegt und somit einzigartig.
Das EnOcean Equipment Profile ist offen einsehbar, die eigentliche Radiokommunikation (ERP)
allerdings nicht. Da also nicht bekannt ist, wie die Daten auf der „Luftschnittstelle“ aussehen, wäre
für das direkte Senden und Empfangen dieser ein hoher Rekonstruktionsaufwand nötig. Alternativ
8
gezeigt wird nur ein DC/DC Konverter. Für die eigentliche Energiegewinnung wird noch ein Peltier-Element
benötigt.
Kapitel 3 Automatisierungssysteme
24
besteht die Möglichkeit einen Empfänger oder Transceiver von EnOcean, wie z.B. den TCM120, zu
nutzen, da diese die Pakete empfangen und an einer seriellen Schnittstelle entschlüsselt ausgeben
können. Auf diese Weise können Daten abgehört und Sender-IDs ausgelesen werden, was die
Möglichkeit der Manipulation eröffnet, da die Verschlüsselung umgangen wird.
Kapitel 3 Automatisierungssysteme
25
3.5 Z-Wave
Z-Wave ist ein drahtloser Kommunikationsstandard für den Einsatz in der Hausautomatisierung,
entwickelt von der dänischen Firma Zensys. Als Zusammenschluss mit anderen Firmen zu der ZWave Alliance, verfolgt diese das Ziel, einen einheitlichen Standard unter den vielen, auf dem Markt
verfügbaren Systemen zu schaffen, um so einen geringen Preis und eine allgemeine Kompatibilität
solcher Systeme zu garantieren[15]. Anders als die EnOcean Alliance ist die Z-Wave Alliance eine
profitorientierte Vereinigung. Der Z-Wave Standard ist nicht offen und nur für Mitglieder der
Z-Wave Alliance zugänglich.
Vertrieben werden Z-Wave Geräte durch die Z-Wave Alliance, die mit mehr als 160 Mitgliedern
und mehr als 500 verschiedenen Produkten einer der großen Vertreter auf dem Feld drahtloser
Hausautomatisierung ist. Das Produktsortiment umfasst neben den klassischen Bereichen wie
HVAC und einfachen Schaltern auch:
• Sicherheitstechnik: Alarm, Kameras, Bewegungsmelder
• Gateways: Internet, Smart Phone, Automobil, X10
• Steuerzentralen: eigenständig oder auf PC
• Energiemessung: Smart Meter, Messung von Stromverbrauch
Besonderheit von Z-Wave ist das aktive Signal-Routing, bei dem Signale durch weitere Netzwerkknoten zum Empfänger gereicht werden können, falls dieser nicht direkt erreichbar ist (Abb. 3.12).
Ein Z-Wave System bildet also ein voll vermaschtes Netz, das eine erhöhte Reichweite und Robustheit gegenüber anderen Systemen aufweist. Alle Geräte, ausgenommen batteriebetriebene Module,
können als Sendewiederholer arbeiten.
Eine weitere Besonderheit ist das Programmieren von „Szenen“. Diese Szenen erlauben es bei
Ereignissen, wie einem Tastendruck oder bei Überschreiten eines Sensorwertes, eine bestimmte
Folge von Befehlen zu senden. So kann beispielsweise nachts das Öffnen der Haustür, die Szene
„Willkommen“ auslösen, welche bewirkt, dass die Lichter im Eingangsbereich eingeschaltet werden
und das Radio im Wohnzimmer angeht. Szenen werden über spezielle Konfigurationstools, z.B.
den Funk-Konfigurator CONNECT[16] von der Firma Merten, angelegt.
3.5.1 Spezifikation
Z-Wave Geräte kommunizieren verschlüsselt, unter Verwendung von GFSK Modulation auf dem
868 Mhz (EU) und 908 MHZ-Band (US). Die Übertragungsrate liegt bei 9.6 kBit/s bis 40 kBit/s,
was eine schnelle Reaktion erlaubt, aber zu gering für eine Video- oder Audioübertragung ist.
26
Kapitel 3 Automatisierungssysteme
A
B
C
Abbildung 3.12: Z-Wave Netz mit 3 Teilnehmern. Gerät B wirkt als Sendewiederholer und ermöglicht die Kommunikation zwischen den Punkten A und C, die in diesem Fall zu
weit auseinander liegen, um direkt kommunizieren zu können.
Die Verbindung ist bidirektional und erlaubt neben einer Empfangsbestätigung auch eine Abfrage
des aktuellen Zustands der Geräte. Um Paketkollisionen zu vermeiden, wird vor dem Senden der
Kanal abgehört, und erst wenn dieser frei ist, startet die Übertragung (engl. listen-before-talking).
Eine Verknüpfung der Geräte erfolgt bei kleinem Verknüpfungsgrad von max. 5 Geräten durch
Lernen an den Geräten selbst (z.B. Schalter soll 4 Lampen einschalten → 5 Geräte sind involviert),
bei größeren Verknüpfungsgraden ist ein Konfigurationstool nötig und die Einrichtung erfolgt an
einem PC[16]. Pro Netz sind maximal 232 Teilnehmer möglich, werden aber mehr gewünscht,
lassen sich Netze über Netzkoppler zusammenfügen.
Kapitel 3 Automatisierungssysteme
27
3.6 KNX
Konnex (KNX) ist ein offener Feldbus für die Gebäudeautomatisierung. Er ist eine Weiterentwicklung auf Basis des Europäischen Installationsbus (EIB), BatiBus und European Home System
(EHS) und seit 2006 ein internationaler Standard gemäß ISO/IEC 14543-3[17]. KNX wird von
der KNX Association verwaltet, einer Vereinigung von etwa 250 Firmen aus 29 Ländern. Ziel der
KNX Vereinigung ist das Entwickeln und Verbreiten von KNX, so dass dieser als der Standard für
Gebäude- und Hausautomatisierung weltweit angesehen wird9 .
Die Spezifikation beschreibt:
• wie bei einer Installation Sensoren und Aktoren in Gebäuden miteinander verbunden werden
können
• wie die Kommunatikation zwischen Sensoren und Aktoren (Protokoll) aussehen muss.
Weltweit vertreiben etwa 200 Firmen über 7000 KNX Produkte, was in einer gigantischen Produktauswahl resultiert. Der Schwerpunkt liegt in der Heizungs-, Lüftungs- und Klimatechnik (HLK,
englisch HVAC ), es werden aber auch zahlreiche Lösungen für die Hausautomatisierung angeboten. Wegen des hohen Anschaffungspreises ist KNX dort vergleichsweiche schwach vertreten und
wird wegen des großen Installationsaufwands hauptsächlich bei Neubauten eingesetzt. Es besteht
allerdings die Möglichkeit, KNX mit anderen Automatisierungssystemen zu koppeln, wie z.B. X10
oder EnOcean. Dadurch kann das anfängliche System mit leicht nachrüstbaren Funkkomponenten
ausgestattet werden. Ein passender Buskoppler muss aber trotzdem installiert werden.
KNX kann über Gateways, wie z.B. dem System Miele@Home an bestimmte Haushaltsgeräte
wie Geschirrspüler oder Waschmaschine gekoppelt werden. Damit ergeben sich viel komplexere
Steuerungsmöglichkeiten im Vergleich zu anderen Systemen, die solche Geräte meist nur über
Steckdose ein- oder ausschalten können.
3.6.1 Netztopologie
Es existieren 4 Varianten von KNX Netzen[18]:
• Zweidrahtleitung: TP-0 mit 4800 kBit/s und TP-1 mit 9600 Kbit/s
• Power-Line-Communication: mit 1200 Bit/s oder 2400 kBit/s
• Funk (KNX RF): 868 Mhz, FSK, 16 kBit/s, Routing bis 3 Teilnehmer
• Ethernet: (KNXnet/IP)
9
siehe http://www.knx.org/knx-association/mission/
Kapitel 3 Automatisierungssysteme
28
Das am häufigsten verwendete Übertragungsmedium ist die Zweidrahtleitung. Neben der Übertragung von Steuersignalen dient die Leitung auch als Spannungsversorgung für bis zu 64 angeschlossene Geräte. Werden mehr Geräte an eine Leitung gehängt, müssen zusätzliche Spannungsversorgungen, sogenannte Linienverstärker eingeschleift werden.
Ein KNX Netz ist unterteilt in maximal 16 Bereiche mit jeweils 16 Linien und 256 Teilnehmern
pro Linie. Einzelne Linien und Bereiche werden über Koppler zusammengeführt, welche gleichzeitig
auch als Teilnehmer zählen. Es lassen sich somit bis zu 255·15·15 = 57.375 Busteilnehmer einzeln
steuern[19, S. 10].
Abbildung 3.13: Die Struktur eines KNX Netzes.
KNX bietet neben vorgefertigten Produkten auch die Möglichkeit einer speziell angepassten Lösung
für individuelle Problemstellungen. Das heißt im Klartext, dass es neben den klassischen Produkten,
welche schon ab Werk betriebsbereit sind, auch solche gibt, die erst voreingestellt oder sogar
programmiert werden müssen. Man kann KNX Geräte daher in 3 Kategorien aufteilen[20]:
Automatik: Gerät konfiguriert sich automatisch. Gedacht für eine Installation durch den Endbenutzer.
Einfach-Modus: Geräte sind vorprogrammiert, es müssen aber noch einige Parameter eingestellt
werden. Erfordert Fachkenntnisse bei der Installation.
System-Modus: Programmierbare Geräte für spezielle Anwendungen. Erfordert vertiefte Fachkenntnisse bei der Installation.
Kapitel 3 Automatisierungssysteme
29
Verknüpft werden Geräte mit der Engineering Tool Software (ETS) an einem PC. ETS ist plattformunabhängig und ermöglicht eine einheitliche Programmierung aller KNX Geräte, unabhängig
vom jeweiligen Hersteller.
Übertragung
Modulation
Datenrate
Reichweite Innen[m]
Reichweite Außen[m]
Bi-/Unidirektional
Verschlüsselung
Zuverlässigkeit
Protokoll
Produktauswahl
Kosten
Vorteile
Nachteile
Funk 433 MHz
OOK
5
30
uni
keine
gering
teilweise offen
klein
sehr gering
Preis
Reichweite
Funk 433 MHz
OOK
5
30
uni
teilweise
gering
nicht offen
klein
sehr gering
Preis
Reichweite
ca. 20 bit/s
30 (X10RF)
100 (X10RF)
uni/bi
keine
mittel
offen
groß
gering
Auswahl
langsam
Powerline
X10
Funk 868 MHz
OOK
125 kBit/s
30
300
uni/bi
ja
hoch
nicht offen
groß
hoch
wartungsfrei
EnOcean
Funk 868 MHz
GFSK
9.6 kBit/s
30
>100
bi
ja
hoch
nicht offen
sehr groß
mittel
Routing
Z-Wave
Tabelle 3.1: Die vorgestellten Automatisierungssysteme auf einen Blick.
Intertechno
HomeEasy
Doppelader
FSK (RF)
9.6 kBit/s
700
700
bi
teilweise
sehr hoch
offen
sehr groß
sehr hoch
Zuverlässigkeit
Preis
KNX
Kapitel 3 Automatisierungssysteme
30
Kapitel 4
Middleware
Middleware (engl. für „Zwischenschicht“ oder „Dienstschicht“) bezeichnet anwendungsneutrale
Programme, die so zwischen Anwendungen vermitteln, dass ihre Komplexität und Infrastruktur
verborgen wird. Sie bilden also eine Art Abstraktionsebene, welche eine Kommunikation erlaubt,
ohne genaue Kenntnisse über den inneren Aufbau der gegenüberliegenden Schicht zu haben[21].
Man kann sie daher auch als Verteilungsplattform bezeichnen, da sie die Verteilung von Software
unterstützen. Die Software muss nun nicht mehr aus einem „Guss“ bestehen, sondern kann in mehrere Stücke zerteilt werden, welche dann über eine Middleware kommunizieren. Das erleichtert das
Programmieren, da die Gesamtkomplexität verringert wird, und optimiert den Entwicklungsprozess. Außerdem entlastet es die eigentliche Anwendersoftware. Dem gegenüber steht die verringerte
Performanz durch die zusätzliche Schicht und ein erhöhter Ressourcenverbrauch.
Logical Node
Middleware
Physical Node
Abbildung 4.1: Die Middleware als Abstraktionsebene zwischen Logik- und Hardwareebene. Bildursprung: http://de.wikipedia.org/wiki/Middleware
Besonders interessant ist Middleware als Verknüpfungsglied in verteilten Systemen, wie z.B. Intelligenten Umgebungen mit Zugang durch Mobiltelefone[22].
31
32
Kapitel 4 Middleware
Middleware stellt für die Kommunikation Schnittstellen zur Verfügung, die meist standardisierte
Protokolle wie z.B. TCP/IP und HTTP verwenden. Dadurch wird versucht, eine einheitliche Kommunikation zu ermöglichen, und das Entwickeln von konkurrierenden Standards zu verhindern. Sie
wird oft von eigenen Dienstanbietern angeboten und gewartet. Beispiele sind Frameworks wie
.NET, ROS, Web Service, sowie Printserver und Treiber. Ferner gibt es auch allgemeine Middleware wie OSGI, JINI, HAVI, GAIA und MundoCore.
In dieser Arbeit sollen nur Systeme besprochen werden, welche unmittelbar mit Haus- oder Gebäudeautomatisierung zu tun haben. Teilt man die Struktur eines Automatisierungssystems in 3
Schichten (Abb. 4.2) auf, so lässt sich Middleware der mittleren Schicht zuordnen.
Mensch
Mensch
Steuersoftware
Middleware
Smartphone
Automationssysteme
Abbildung 4.2: Middleware als Abstraktionsebene für Automationssysteme
Ein direkter Zugriff des Menschen auf die Middleware ist möglich, erfolgt aber üblicherweise
indirekt über eine weitere Schicht, zu der Steuersoftware und externe Geräte, wie z.B. Smartphones
gehören. Allgemeine Automationssoftware mit Userinterface zählt also nicht zu dieser mittleren
Schicht, auch wenn sie die Kommunikation mit der Automationsebene beinhaltet, da die klare
Definition als Zwischenschicht nicht erfüllt ist. Die Grenzen können teilweise etwas verschwimmen,
da vor allem Gateways oft Funktionen zur direkten Steuerung eingebaut haben. Es wurde daher die
Trennlinie so gezogen, dass Systeme welche vorwiegend nur Informationen vermitteln, mit in diese
Einteilung (Abb. 4.2) aufgenommen werden, und solche deren Schwerpunkt auf der Interaktion
mit dem Menschen liegt, nicht dazu gehören. Die so gefundenen Systeme lassen sich noch weiter
einteilen, und zwar in die Kategorien: Plattform und Software.
4.1 Middleware Plattformen
Middleware Plattformen1 sind Systeme, die auf eigener Hardware außerhalb eines PCs laufen.
Das können z.B. Mikrocontroller basierte Schaltungen und andere eingebettete Systeme sein. Die
Komplexität schwankt sehr stark, es gibt einfache Systeme, die nicht ohne einen Computer funk1
Middleware Plattformen können hier auch als Gateways oder Buskoppler bezeichnet werden
Kapitel 4 Middleware
33
tionieren und kaum mehr können, als Pakete eines Protokolls zu generieren, und wieder andere, die
selbst eine Art Minicomputer bilden. Eine Gemeinsamkeit haben sie jedoch alle, sie besitzen eine
gewisse Eigenintelligenz: Auch einfache Systeme sind in der Lage, kleine Aufgaben wie z.B. das
automatische Erkennen von Protokollen oder das Wiederholen von Sendesignalen zu übernehmen.
Je nach Ausführung werden auch komplexere Dienste angeboten, wie z.B. das Bereitstellen von
Schnittstellen über Internet. Einfache Gateways, wie z.B. ein WLAN Stick, können zwar verschiedene Systeme verbinden, besitzen aber nicht genügend Eigenintelligenz, um als eigene Plattform
zu gelten.
Beispielhaft werden kurz die beiden Plattformen RFXCOM und ALLNET 3000RF MK2 vorgestellt.
Abbildung 4.3: Die Middleware-Plattformen RFXCOM „Lan Transceiver“ (links) und Allnet
3000RF (rechts). Bildursprung: http://www.rfxcom.com/receivers.htm und
http://s100.maximilian-roth.de/homeauto/ALL3000MK2_200.png.
Der 433.92 Mhz LAN Transceiver von RFXCOM ist eine einfache Plattform für das Senden und
Empfangen verschiedener Protokolle. Eine Anbindung an andere Geräte erfolgt über LAN und
Internet. Unterstützt werden neben verschiedenen Steuerprogrammen, wie Girder, Homeseer, xPL,
HomeAutom8, auch über 20 Protokolle diverser Hausautomatisierungssysteme, darunter Systeme
wie Intertechno, HomeEasy, X10, uvm. Es ist damit die Middleware mit der größten allgemeinen
Kompatibilität zu anderen Systemen.
Der Allnet 3000RF MK2 Steuercomputer gehört zu den komplexeren Plattformen. Er ist eine Standalone Lösung und kann durch seine LAN Verbindung im lokalen Netzwerk oder Internet über eine
Web Bedienoberfläche gesteuert werden. Eigentlich stellt er nach der vorherigen Definition keine
reine Middleware dar, sondern entspricht eher einer Steuersoftware. Dennoch ist es möglich ihn als
Middleware zu betreiben, da seine Daten als XML Datei ausgelesen werden können und das Protokoll2 nachgebildet werden kann. Als Besonderheit besitzt er einen integrierten Script-Interpreter,
mit dem durch eine Basic ähnliche Sprache eigene Steuer- und Regelprogramme erstellt werden
können. Unterstützte Automatisierungssysteme sind Intertechno (Abschnitt 3.2 auf Seite 15) und
durch Erweiterung auch FS20 von ELV.
2
Das Protokoll ist nicht offen, kann aber durch Netzwerksniffer mitgehört und entschlüsselt werden.
Kapitel 4 Middleware
34
4.2 Middleware Software
Die zweite Kategorie bezeichnet rein Software-basierte Systeme, welche vorwiegend auf PCs und
anderen Geräten mit Betriebssystem laufen. Die Einrichtung erfolgt durch eine einfache Installation, es wird also keine zusätzliche Hardwareplattform benötigt. Lediglich die nicht standardmäßig
an einem Computer vorhandenen Schnittstellen, wie Funkmodule für die 433 Mhz und 868 MHz
ISM Bänder, müssen nachgerüstet werden. Das geschieht durch einfache Umsetzer, wie "FunkSticks", ist aber auch mit anderen Middleware Plattformen möglich. Insgesamt sind diese Systeme
oftmals kostengünstiger als vergleichbare Plattformen, vor allem wenn man sich für die Benutzung
einer kostenlosen Software entscheidet.
Auch hier sollen kurz 2 verschiedene Systeme vorgestellt werden: ROS und mBS Smart Home.
Robot Operating System (ROS) ist ein offenes Framework, welches ursprünglich für die Robotik
entwickelt wurde. Es stellt Treiber, Hardware Abstraktionen, Paketdienste, Visualisierungen und
einen Nachrichtenaustausch zwischen Prozessen bereit. Ein Beispielprojekt für den Einsatz in
der Hausautomatisierung ist das Heyu Paket, ein Text basiertes Konsolenprogramm zum Steuern
und Ansprechen von X10 Geräten (Powerline + X10RF). Auch für andere Schnittstellen, wie z.B.
HomeEasy oder den RFXCOM Empfänger bietet ROS Pakete an, es lassen sich somit eine Vielzahl
von verschiedenen Systemen ansprechen. Problem hierbei ist aber, dass es oftmals keine passende
Steuersoftware gibt und man diese selber implementieren muss, bzw. andere Pakete wie das Heyu
Paket anpassen muss. Daher ist ROS vor allem für Programmierer und Entwickler interessant3 .
mBS Smart Home ist ein plattformunabhängiges, Java-basiertes Framework auf Basis der allgemeinen Middleware OSGI. Es ist optimiert für den Einsatz in kommerziellen, eingebetteten Produkten,
wie Router, Gateways und Mobiltelefonen und ist für die Produktentwicklung mit eigener SDK und
anderen Entwicklungstools erhältlich. Unterstützte Automatisierungssysteme sind Zwave, Zigbee,
UPnP, KNX, X10 sowie eine andere Reihe von nützlicher Hardware wie z.B. Webcams. Zusammen mit anderer Middleware stellt es Schnittstellen, wie SMS, Email, Web Server und andere Web
Dienste zur Verfügung.
3
siehe auch [23] [21]
Kapitel 5
Implementierung eines Netzwerk-Gateways
Dieses Kapitel beschäftigt sich mit dem Entwurf und der Realisierung der Gateway-Plattform Wifi
Control 433 zur Steuerung verschiedener Hausautomatisierungssysteme. Es soll einen Einblick in
die Gedankengänge und die getroffenen Entscheidungen geben, um so das allgemeine Verständnis
zu verbessern und die Thematik noch weiter zu vertiefen. Die angesprochenen Gebiete reichen von
dem anfänglichen Hardwareaufbau, über die Softwareimplementierung, bis hin zu einem Ausblick
auf zukünftige Entwicklungen und Möglichkeiten.
5.1 Zielsetzung
Das Ziel dieser Entwicklung ist die Schaffung einer Zwischenschicht zwischen Automatisierungshardware und Anwendersoftware (siehe Abbildung 4.2 auf Seite 32). Sie soll dem Benutzer eine
Steuerung seiner Geräte erlauben, ohne den genauen Aufbau des Protokolls zu kennen, entweder
indirekt über zusätzliche Software, oder direkt über die Plattform selbst. Die Lösung soll nicht nur
software-, sondern auch hardwarebasiert sein, also als eine Art Einplatinen-Computer existieren und
somit unabhängig von der Anwesenheit eines PCs funktionsfähig sein. Verfügbare Schnittstellen
sind WLAN, USB und 433 MHz-Funk.
Die im Rahmen dieser Arbeit geforderten Eigenschaften der Plattform:
kleine Abmessungen: es soll in einem kleinen Gehäuse Platz finden und überall im Raum montierbar sein
leicht erweiterbar: es soll die Möglichkeit der Erweiterung auf andere Schnittstellen, wie z.B.
Bluetooth, Zigbee, uvm. gegeben sein.
Interkompatibilität: Es soll mit mehreren verschiedenen Automatisierungssystemen kommunizieren können.
Zusätzlich kommen noch folgende Anforderungen des Autors hinzu:
35
36
Kapitel 5 Implementierung eines Netzwerk-Gateways
universell: Das Modul soll nicht nur als Vermittlungsstelle dienen, sondern auch selber Befehle
ausführen können. Es wird somit selbst zur Automatisierungshardware.
Selbstständigkeit: Die Plattform muss so gestaltet sein, dass sie später zu einer Steuerzentrale
umgeformt werden kann: Es sollen automatisierte Abläufe ausgeführt werden können. Dazu
gehört auch das selbstständige Versenden von Befehlen.
Eigener Befehlssatz: Steuerung über einen einfachen ASCII-Befehlssatz in Textform. (z.B. „open
UARTD0 9600“, siehe Anhang S. 55)
5.2 Hardware
Die Struktur der Plattform entspricht der eines Einplatinencomputers, dh. es sind alle benötigten
Komponenten auf einer Leiterplatte zusammengefasst (Abb. 5.1).
5VRTC
Power
USB
FT232
USART
A
US
XMEGA
RT
SPI
RN171
RFM22B
WLAN
433MHz
Erweiterungsport
SPI
3 USART
22 I/O-Pins
Abbildung 5.1: Struktur der Hardware.
Der Kern der Schaltung bildet ein Mikrocontroller, der entweder direkt (Power, RTC und Erweiterungsport) oder über Kommunikationsbusse, wie USART oder SPI mit zusätzlicher Peripherie
(WLAN, 433 MHz und USB) verbunden ist. Als Erweiterungsmöglichkeit wurde die Platine mit
einem sogenannten Erweiterungsport ausgestattet, der zum Anbinden von Fremdhardware genutzt
werden kann. Er besteht im Prinzip aus nach außen geführten IO-Pins des Mikrocontrollers, die mit
einer Stiftleiste verbunden wurden, um diese einfacher zugänglich zu machen. Der Erweiterungsport kann frei programmiert werden und stellt neben 22 IO-Pins auch externe Schnittsellen, wie
ein SPI und 3 USART bereit. Für die komplexeren Schnittstellen wie USB, WLAN und 433 MHzFunk wurden jeweils spezielle IC oder fertige Module verwendet. Diese werden mit den anderen
Komponenten der Plattform in den nachfolgenden Abschnitten genauer beschrieben.
37
Kapitel 5 Implementierung eines Netzwerk-Gateways
WLAN-Status
JTAG USB Power
WLAN
Status LED
XMEGA
Erweiterungsport
RTC
433MHz-Funk
Abbildung 5.2: Das Wifi Control 433.
5.2.1 Mikrocontroller
Das Herzstück der Schaltung ist ein 8bit Mikrocontroller von Atmel, der ATXMega192A3. Durch
seine sehr große Ausstattung an Peripherie und der einfach zu programmierenden 8-Bit RISC
Architektur, bietet er die ideale Wahl für die gestellten Ansprüche.
Die wichtigsten Kenndaten des Chips:
• max 32 MHz, bis zu 32 MIPS
• 192 kB Flash, 16 kB SRAM, 4 kB EEPROM
• 64 Pin TQFP-Gehäuse mit 50 I/O-Pins
• 7 USART , 3 SPI, 2 TWI
• 7 Timer mit 16 Bit
• 4 Kanal DMA Controller
Außerdem bietet die Xmega Reihe einige Besonderheiten gegenüber den klassischen AVR:
Priorisierte Interrupts: 3 Interruptlevel: low, medium und high. Definition in Abschnitt 5.3.1 auf
Seite 43
Event-System: eigenes Event-Routing-System: Hardwareperipherie kann Daten und Signale untereinander austauschen ohne dabei Umwege über die CPU nehmen zu müssen. Daraus
resultieren eine geringere CPU Auslastung und bessere Latenzzeiten.
Kapitel 5 Implementierung eines Netzwerk-Gateways
38
5.2.2 WLAN
Als Schnittstelle zwischen Mikrocontroller und WLAN wurde das Fertigmodul RN171 von Roving
Networks gewählt, einer TCP/IP Komplettlösung mit kleinem Formfaktor und geringem Stromverbrauch. Das Modul enthält einen 32 bit SPARC Prozessor, ein 2.4 GHz-Funkmodul, den TCP/IP
Stack, eine Realzeit-Uhr, eine eigene Stromversorgung und analoge Sensoreingänge. Es übernimmt
alle Aufgaben, die durch die WLAN-Kommunikation entstehen und gibt empfangene Daten direkt
per serieller Schnittstelle an den Mikrocontroller weiter. Konfiguriert wird das RN171 ebenfalls
über die serielle Schnittstelle mit einem ASCII basierten Befehlssatz.
Folgende Betriebsarten werden unterstützt:
Adhoc: Eine direkte Point-to-Point Verbindung zu anderen Teilnehmern in einem gesonderten
Adhoc-Netzwerk
Netzwerk: DHCP, DNS, ARP, ICMP, FTP client, HTTP client, TCP, UDP
Sicherheit: WEP-128, WPA (TKIP) und WPA2 (AES) bis 54 Mbit/s, davon aber nur max.
500 kbit/s nutzbar durch serielle Anbindung
Alles in allem bietet das RN171 eine gute Möglichkeit Schaltungen um eine Wlan-Funktionalität
zu erweitern. Nachteilig an dem Modul ist, dass nur eine bestehende TCP Verbindung gleichzeitig
möglich ist, was bedeutet, dass immer nur ein Teilnehmer gleichzeitig mit dem Gerät kommunizieren kann. Ist bereits eine Verbindung offen, z.B. über Telnet, so antwortet es auf weitere
Verbindungsanfragen nicht. In aller Regel werden Verbindungen nach dem Senden der Daten wieder aufgelöst, der Kanal ist also nur für kurze Zeit belegt. So kommt es in der Praxis meistens
nur zu kurzen Verzögerungen. Durch eine dauerhafte Verbindung wird das Modul für andere Teilnehmer aber blockiert!
5.2.3 ISM-Funkmodul
Zur Anbindung des Mikrocontrollers an das 433 Mhz Band wird das Funkmodul RFM22B verwendet, ein sehr günstiger, kleiner Transceiver (Sender und Empfänger) mit großem Funktionsumfang. Es besteht im Wesentlichen aus dem IC Si4432 von SiLabs und einem vorgeschaltetem
Filternetzwerk. Die Konfiguration sowie die Datenübertragung erfolgt im normalen Betriebsmodus
registerweise über SPI, das Modul wird in diesem Fall aber in den sogenannten „Direct Mode“
versetzt, was eine direkte Datenübertragung über IO-Pins erlaubt. Einige dieser IO-Pins können
als Interruptquelle dienen und wichtige Statusmeldungen ausgeben, wie z.B. Paket empfangen,
System bereit oder Antennenumschaltung erfolgreich.
Das RFM22B weißt folgende Besonderheiten auf:
Kapitel 5 Implementierung eines Netzwerk-Gateways
39
• programmierbare IO Pins
• auslesbare RSSI (Signalstärke)
• FSK, GFSK und OOK Modulation
• Datenrate bis 256 kBit/s (bei OOK 30 kbits/s)
Der große Funktionsumfang und ein sehr geringer Preis lassen das Modul ideal erscheinen, aber
bei der Dokumentation zeigt es große Schwächen: Angebotene Datenblätter und Dokumente sind
je nach Themengebiet sehr mager ausgeführt, vor allem wenn es um den hier verwendeten DirectMode geht. In der Registerbeschreibung werden einige Register nicht erwähnt und die sehr lange
Errata-Liste des Si4432 erschwert die Sache zusätzlich. Dem Autor ist es nicht gelungen, dem
RFM22B einen Datenstrom zu entlocken, welcher nicht von starkem Rauschen überlagert war.
Ein Software-Filter hätte vielleicht eine Verbesserung gebracht, aber angesichts der Stärke des
Rauschens und der daraus resultierenden hohen Prozessorauslastung, wäre das Ergebnis allenfalls
bescheiden ausgefallen. Daher wurde ein zusätzlicher Empfänger an die Erweiterungsports gehängt,
der RTX-MID-3V von Aurel1 (Abb. 5.3).
Abbildung 5.3: Links das RTX-MID und rechts das RFM22B.
Das RTX-MID ist ein einfacher OOK Transceiver mit, im direkten Vergleich zum RFM22B, schlechteren Daten (Tabelle 5.1). Es hat dafür den Vorteil, das keine Register gesetzt werden müssen
und das Modul sofort betriebsbereit ist. Mit ihm konnte auf Anhieb ein sauberer Datenstrom
empfangen werden.
1
Die Platine war zu diesem Zeitpunkt bereits gefertigt, sonst wäre das RFM22B durch das RTX-MID ersetzt
worden.
40
Kapitel 5 Implementierung eines Netzwerk-Gateways
Sendeleistung
Empfindlichkeit
Modulation
max. Datenrate ASK
[dBm]
[dBm]
[kbit/s]
RFM22B
RTX-MID
20
−118
ASK,FSK,GFSK
30
12
−106
ASK
10
Tabelle 5.1: Kenndaten der Funkmodule
5.2.4 Antennen
Die Platine enthält 2 Antennen, eine 433.92 MHz und eine 2.4 GHz Wlan Antenne (Abb. 5.4).
Abbildung 5.4: Links die PCB-Antenne und rechts die Splatch-Antenne.
Die 2.4 GHz-Antenne ist eine PCB-Antenne (Platine, engl. Printed Circuit Board), was bedeutet,
dass es sich um eine einfache Leiterbahn handelt. Das Design wurde direkt aus der Application
Note AN043[24] von Texas Instruments übernommen.
Die 433 MHz-Antenne ist eine „Splatch“ Antenne von LINX Technologies. Genau genommen
handelt es sich auch hier um eine PCB Antenne, gedacht für das direkte Auflöten auf eine Trägerplatine.
Frequenz
Bandbreite
Impedanz
Gain
[MHz]
[Ω]
[dB]
PCB
Splatch
2.4 GHz
ca. 200
50
+4
433.92 MHz
10
50
−5
Tabelle 5.2: Antennendaten
Wichtiger Aspekt ist die Möglichkeit einer gegenseitigen Antennenbeeinflussung, also das Überstrahlen von einer Antenne auf die andere. Ausgelöst werden solche Störungen durch den Oberwellengehalt des in die Antenne eingespeisten Signals. Oberwellen entsprechen einem Vielfachen
41
Kapitel 5 Implementierung eines Netzwerk-Gateways
der Grundschwingung, können also auch für eine Frequenz von 433 MHz leicht in den GigahertzBereich reichen (siehe Abb. 5.3).
Grundton
4. Oberton
5. Oberton
(1. Harmonische)
(5. Harmonische)
(6. Harmonische)
Untere Bandgrenze
Obere Bandgrenze
433,05
2165,25
2598,30
434,79
2173,95
2608,74
Tabelle 5.3: Die Harmonischen des 433 MHz-Bandes in MHz.
Der Frequenzbereich des RN171 geht von 2,412 bis 2.484 GHz, der kleinste Abstand zu einer
Oberwelle ist damit 114 MHz. Dieser Abstand ist groß2 und zusammen mit der Richtlinie, dass
Nebenaussendungen (Oberwellen) unter 250 nW (entspricht −36 dB) bleiben müssen[25, S. 32],
sollte hier keine gegenseitige Beeinflussung auftreten. In späteren Testversuchen konnte diese
Überlegung bestätigt werden, es traten keine Störungen auf.
5.2.5 USB
Zur Anbindung des Mikrocontrollers an USB wurde der IC FT232RL von FTDI genommen, ein
USB zu Seriell Wandler. Der IC übernimmt das komplette USB-Protokoll und ist bereits ab Werk
direkt einsatzbereit. Verbunden sind Controller und IC über die serielle Schnittstelle, die eine
Übertragungsgeschwindigkeit zwischen 300 baud und 3 Mbaud erlaubt. Am PC wird der IC als
Virtueller COM Port erkannt.
5.2.6 Platine
Die Platine (Abb. 5.5) wurde mit dem Programm Eagle 5.11 von Cadsoft entworfen und später
industriell von Fischer Leiterplatten3 gefertigt. Es handelt sich um eine normale doppelseitige
Platine mit Durchkontaktierungen, Lötstopplack und Bestückungsdruck. Die Abmessungen wurden
bewusst auf 100 mm x 50 mm beschränkt, damit 3 Platinen auf einer Europakarte (160 mm x
100 mm) Platz finden und die Fertigungskosten gering bleiben. Ebenso wurden alle Bauteile auf
der Oberseite platziert, dadurch ist eine maschinelle Bestückung einfacher.
Zur Vereinheitlichung wurden gleichartige Anschlüsse gruppiert: So finden sich dauerhaft eingesteckte Stecker, wie USB, Stromversorgung und Programmieradapter auf der linken Seite, die
2
Der Abstand der einzelnen WLAN-Kanäle des RN171 beträgt 5Mhz. Zieht man als Beispiel das Datenblatt des
vergleichbaren ICs AT86RF230 zur Rate, ist die Kanaltrennung (engl. adjacent channel selection) bei 5 MHz
mit 35 dB und bei 10 MHz bereits mit 52 dB angegeben. Bei einem Abstand von 115 dB sollte hier nur noch
Rauschen übrig bleiben
3
http://www.fischer-leiterplatten.de/
Kapitel 5 Implementierung eines Netzwerk-Gateways
42
Abbildung 5.5: Die unbestückte Platine.
Erweiterungsports auf der unteren Seite und die Status-LEDs zur besseren Lesbarkeit weiter oben.
Um Störungen der Antennen durch eingesteckte Kabel zu vermeiden, wurden die Antennen so
weit wie möglich von den anderen Steckanschlüssen entfernt.
5.2.7 Sonstiges
Stromversorgung: Die Stromversorgung des Moduls erfolgt wahlweise über USB oder externes Netzteil. Sie besteht im Groben aus 2 Schottky-Dioden, zum Schutz, falls USB und
Netzteil gleichzeitig angeschlossen sind, und einem Low-Dropout Spannungsregler für 3.3 V
Ausgangsspannung.
Status-Leds: Das Wifi Control 433 besitzt eine doppelfarbige LED für allgemeine Meldungen
und 3 farbige LEDs für das RN171, die den Status der WLAN Verbindung anzeigen.
RTC: Die Realzeituhr (engl. real-time-clock) dient zur genauen Zeiterfassung und ermöglicht
im Falle eines empfangenen Datenpakets, diesem eine Zeit zuzuordnen, um eine Log-Datei
zu erzeugen. Sie besteht aus einem Uhrenquarz und zwei Filterkondensatoren. Es wurde
bewusst darauf verzichtet, die RTC des RN171 zu benutzen, um die vielen Möglichkeiten
der internen RTC nicht auszuschließen.
Quarz: Die Platine enthält Lötflächen für einen externen Quarz, falls der interne Oszillator bei
einer speziellen Aufgabe nicht ausreichen sollte.
Kapitel 5 Implementierung eines Netzwerk-Gateways
43
5.3 Software
Die verwendete Software wurde in der Programmiersprache C unter Windows geschrieben. Die
benutze Soft- und Hardware waren:
AVR Studio 5: Komplette IDE mit vielen Funktionen. Enthält Header-Files, den GCC-Compiler,
sowie einem eigenen Makefile-Generator. Zusammen mit der direkten Unterstützung von
Atmel Programmiertools kann man ohne zusätzliche Software AVR programmieren und flashen.
AVR Dragon: kostengünstiger Programmieradapter mit Debugging-Funktion.
Scanalogic 2: Einfacher Logikanalyser zum Testen und grafischem Betrachten von Datenströmen. Wurde vor allem beim Evaluieren der Sende- und Empfangsfunktionen verwendet.
5.3.1 Grundlagen
Das Programmieren eines Mikrocontrollers unterscheidet sich vom Schreiben eines Programms auf
PC: Der größte Unterschied ist das Fehlen eines Betriebssystems, der Abstraktionsebene zwischen
Programmcode und Hardware. Während bei einem Betriebssystem die Ressourcen automatisch
verwaltet werden, müssen diese beim hardwarenahen Programmieren mit C einzeln gesteuert werden. Es ist daher für das Verständnis wichtig, einige dieser Hardwarefunktionen und Besonderheiten
zu erklären.
Interrupt
Zu den wohl nützlichsten Werkzeugen eines Mikrocontrollers gehört der Interrupt. Der Interrupt (engl. to interrupt, unterbrechen) bezeichnet eine kurzfristige Unterbrechung des aktuellen
Programmcodes, um einen anderen, meist kurzen und zeitkritischen Codeabschnitt auszuführen.
Ausgelöst werden solche Unterbrechungen durch bestimmte, programmierbare Ereignisse, wie z.B.
ein festes Zeitintervall, oder dem Anlegen einer Spannung an einen Eingangspin. Nach der Unterbrechung wird die Interrupt-Service-Routine (ISR) ausgeführt. Ist diese abgearbeitet, wird das
Programm an der Unterbrechungsstelle fortgesetzt.
Der ATXMega192A3 besitzt 3 priorisierte Interruptlevel: low, medium und high. Die Interrupts
selbst können durch einen höherwertigen Interrupt unterbrochen werden, z.B. kann der medInterrupt nur durch den high-Interrupt unterbrochen werden, der high-Interrupt kann nie unterbrochen werden.
Interrupts bringen den Vorteil, sofort über bestimmte Ereignisse informiert zu werden, ohne permanent einen Status abfragen zu müssen. Das verringert die Prozessorauslastung sowie die Latenz-
44
Kapitel 5 Implementierung eines Netzwerk-Gateways
zeit. Bedingt durch die andere Struktur, können aber auch Vereinfachungen im Programmablauf
entstehen.
Programmablauf
Der Mikrocontroller besteht aus einem Prozessor, Speicher und verschiedener Peripheriehardware.
Jeder dieser Teile ist getrennt voneinander aus eigener Hardware aufgebaut, somit können diese
Teile parallel und unabhängig voneinander laufen. Einmal konfiguriert kann z.B. ein Timer wie die
RTC ohne zusätzliches Einwirken jede Sekunde einen Interrupt auslösen. Der Prozessor kann in der
Zwischenzeit etwas anderes bearbeiten. So können durch geschicktes Kombinieren der Hardware
bestimmte Abläufe automatisiert werden, wodurch Prozessorleistung gespart und die Latenzzeit
verbessert wird.
Ebenfalls grundlegend unterschiedlich zu einem Betriebssystem ist das Vorhandensein einer EndlosSchleife im Code: Das Verhalten des Mikrocontrollers ist nur definiert, wenn dieser gerade einen
Befehl ausführt. Wäre der Programmcode zu Ende, würden keine Befehle mehr abgearbeitet werden
und somit wäre das Verhalten nicht mehr definiert. Um Schaden durch dieses unkontrollierte
Verhalten zu vermeiden, läuft der Prozessor in einer Endlosschleife. Sind seine Befehle abgearbeitet,
beginnt er wieder von vorne. Die Prozessorauslastung beträgt folglich immer 100%. Auch in der
Software des Wifi Control 433 ist eine Endlosschleife implementiert, nämlich der Programmkern
in Abschnitt 5.3.3 auf Seite 48.
5.3.2 Struktur
Durch die Benutzung aller 3 Interruptlevel entstehen 4 Verarbeitungsebenen in der Software
hi
med
low
normal
USART, SPI Empfang
Funk Empfangen, Funk Zeitmessung
Hilfsfunktionen, Realzeituhr
Priorität
Interrupt
(Abb. 5.6).
Befehlsverarbeitung, Sendefunktionen
Abbildung 5.6: Das 4-Schichten Modell der Software-Struktur.
Die unterste Ebene stellt die normale Programmebene dar, in der sich der Controller befindet,
wenn gerade kein Interrupt verarbeitet wird. Sie enthält fast alle Funktionen und bildet mit etwa
90% den größten Teil der Software. In ihr finden sich alle zeitunkritische Funktionen, wie die
Hauptschleife, die Befehlsverarbeitung sowie alle Sendefunktionen.
45
Kapitel 5 Implementierung eines Netzwerk-Gateways
Alle Ebenen darüber gehören zu den Interruptleveln. Ein Sprung in diese Schichten wird immer
nur durch bestimmte, vorher festgelegte Ereignisse ausgelöst. Ihr Code kann praktisch als eine
Antwort auf diese Ereignisse angesehen werden.
Das unterste Interruptlevel ist für ereignisbasierte, zeitunkritischen Funktionen. Dazu gehören neben vielen Hilfsfunktionen, auch einfache Wartefunktionen und die Realzeituhr.
Die beiden obersten Interruptschichten sind für zeitkritische Prozesse, der mittleren Schicht fallen
dabei die langsameren Prozesse, der oberen Schicht die schnelleren Prozesse zu. Zu den langsameren Prozessen gehört das Empfangen von Funksignalen, welche mit Frequenzen um die 5 KHz
(Demodulierter Datenstrom! Vgl. Abschnitt 5.3.3 auf Seite 51) deutlich unter den schnelleren
Prozessen liegen, wie dem Empfangen von Daten über externe Schnittstelle. Bei SPI können
Datenraten bis zu 1 Mbit/s auftreten, die Frequenzen sind also bis zu 200-mal höher. Da die
Schnittstellen oft nur 1 oder 2 Byte Empfangspuffer haben, müssen die Daten sofort und ohne
Verzögerung abgeholt werden, sonst kann es zu Datenverlust kommen.
5.3.3 Aufbau
Das bisher gezeigte Schichtenmodell beschreibt vielmehr die Architektur der Software, als weiter
auf die Funktionen einzugehen. Daher wurde zur Veranschaulichung der Code nach seinen Funktionsbereichen in sogenannte Module eingeteilt. Diese Module sind keine Objekte im klassischen
Sinn, denn die Sprache C ist nicht objektorientiert, vielmehr sind sie als eine Sammlung von Funktionen mit ähnlichem Aufgabenbereich zu verstehen. Diese Einteilung erfolgt unabhängig von dem
vorherigen Schichtenmodell, Module können daher auf mehreren Schichten liegen.
FIFO
First-In-First-Out (FIFO, „Zuerst rein, zuerst raus“) bezeichnet ein Speicherverfahren, bei dem
die zuerst gespeicherten Elemente, auch wieder zuerst entnommen werden. Ziel ist das Zwischenspeichern von Daten, bis eine Weiterverarbeitung erfolgen kann. Eine Software-Implementierung
wird auch Ringpuffer genannt und weißt eine feste Größe auf. Sie sind daher schneller in der
Ausführungszeit und weniger aufwändig als verkettete Listen.
read
0
write
max-1
Abbildung 5.7: FIFO-Ringpuffer mit 6 Speicherzellen.
Kapitel 5 Implementierung eines Netzwerk-Gateways
46
Der FIFO-Puffer besteht aus einem Speicherarray und 2 Zeigern: dem read- und write-Zeiger. Diese zeigen auf die aktuelle Schreib-, bzw. Leseposition. Soll ein Element in den Puffer aufgenommen
werden, dann wird es in die Speicherzelle geschrieben, auf die der Schreibe-Zeiger zeigt und dieser
anschließend inkrementiert (nach rechts verschoben). Ist er bereits am Ende des Speicherbereichs
(max-1), wird er wieder auf den Anfang zurückgesetzt. Ebenso wird mit dem Lesezeiger verfahren,
wenn ein Element ausgelesen wird. Daten werden bei einem Lesevorgang also automatisch „gelöscht“, sind also nicht mehrfach lesbar. Zeigen Lese- und Schreibzeiger auf das gleiche Element,
ist der FIFO-Puffer leer, zeigt der Schreibe-Zeiger auf das Element eins links vom Lesezeiger, ist
der Puffer voll.
In dieser Arbeit wurde ein FIFO-Puffer implementiert, welcher statt einzelnen Elementen, ganze
Arrays speichert, also einem zweidimensionalen FIFO-Speicher entspricht. So können auf einfache
Weise ganze Zeichenketten auf einmal entnommen und gespeichert werden. Das vereinfacht die
Handhabung stark, da das Modul über einen ASCII Befehlssatz gesteuert wird, welcher solchen
Zeichenketten entspricht. Nachteilig ist ein deutlich erhöhter Speicherverbrauch, welcher aber bei
der Speicherfülle des Mikrocontrollers toleriert werden kann.
Parser
Der Parser (engl. to parse, „analysieren“) ist ein Modul um eingehende Befehle aus dem ASCIIBefehlssatz zu übersetzen und auszuführen. Er hat Zugriff auf die gesamte Peripherie des Mikrocontrollers und ist mit ca. 40% Anteil am Programmcode das größte und mächtigste Modul.
Eingehende Befehle werden nacheinander mit einer Liste der Steuerbefehle verglichen. Lässt sich
eine Übereinstimmung finden, ist der Befehl gültig und wird direkt ausgeführt. Nach der erfolgreichen Ausführung kann eine Statusmeldung zurückgegeben werden. Findet der Parser hingegen
keine Übereinstimmung, ist der Befehl entweder nicht vorhanden oder falsch geschrieben worden.
In diesem Fall stoppt der Parser sofort und es wird eine Fehlermeldung oder Warnung ausgegeben.
Alle Schnittstellen sind standardmäßig mit dem Parser verbunden, das ermöglicht eine vollständige
Steuerung, auch über die externen Schnittstellen des Erweiterungsports, wie SPI und USART. Das
WIFI Control 433 kann somit direkt von Fremd-Hardware gesteuert werden.
Alle Befehle entstammen einem selbst entworfenem ASCII-Befehlssatz (Anhang S. 55), der aus
kurzen, leicht verständlichen Texten besteht. Durch den Verzicht auf eine registerweise Konfiguration, wie etwa bei dem RFM22B, lässt sich das Modul auch ohne vorheriges, aufwändiges
Einarbeiten steuern und über ASCII-basierte Terminalprogramme, z.B. Telnet, bedienen.
Zur weiteren Vereinfachung wurden ähnliche Befehle gruppiert und in 4 Hauptbereiche eingeteilt:
Set Die SET-Befehle dienen zur Konfiguration und zum Einrichten des Moduls. Auf diese Weise
können wichtige Systemdaten, wie z.B. Uhrzeit und Datum eingestellt, oder der Erweite-
Kapitel 5 Implementierung eines Netzwerk-Gateways
47
rungsport verändert werden.
Get Die GET-Befehle stellen das Gegenstück zu den SET-Befehlen dar: Mit ihnen können Einstellungen und wichtige Systeminformationen ausgelesen und angezeigt werden.
Send Über die SEND-Befehle ist ein Zugriff auf die Sendefunktionen des Transceive-Moduls (Abschnitt 5.3.3 auf Seite 49) und der externen Schnittstellen des Erweiterungsports möglich.
Connect Die beiden Befehle CONNECT und DISCONNECT sind Teil des Connect-Moduls (Abschnitt 5.3.3). Mit ihnen lassen sich Schnittstellen verknüpfen oder trennen.
Mit diesen 4 Hauptbefehlen lässt sich das Modul vollständig kontrollieren.
Connect
Das Connect-Modul (engl. connect, „verbinden“) ist ein optionales Modul, welches implementiert
wurde, um die Plattform universeller und damit für mehr Aufgaben nutzbar zu machen. Das Modul
kann jeweils 2 Schnittstellen miteinander verknüpfen, so dass eine direkte Verbindung zwischen
Ihnen besteht. Eingehende Daten werden nun nicht mehr an den Parser geleitet, sondern direkt an
die verknüpfte Schnittstelle gesendet. Die Plattform kann so als einfacher Schnittstellenkonverter
arbeiten, z.B. USB zu SPI Wandler, oder USART zu WLAN.
Es können folgende Schnittstellen des Mikrocontrollers miteinander verknüpft werden:
• 1 externer SPI (Erweiterungsport)
• 3 externe USART (Erweiterungsport)
• USB
• WLAN
Die Verbindung kann uni- oder bidirektional sein. Bei einer unidirektionalen Verbindung ist Seite
1 an den Parser gebunden, Seite 2 verknüpft. Eingehende Daten werden bei Seite 1 folglich als
Befehl behandelt und bei Seite 2 ohne Bearbeitung an Seite 1 ausgegeben. Bei der bidirektionalen
Verbindung sind beide Seiten verknüpft.
Praktisches Anwendungsbeispiel des Connect-Moduls ist das Einrichten des WLANs: Hier wird das
RN171 mit einer anderen Schnittstelle verbunden, und über diese direkt konfiguriert. Das Schreiben
von eigenen Initialisierungs-Funktionen entfällt somit, zudem hat man einen vollen Zugriff auf das
Modul.
48
Kapitel 5 Implementierung eines Netzwerk-Gateways
Programmablauf
Der Programmkern ist durch die Auslagerung vieler Funktionen in die einzelnen Module vergleichsweise klein und kann gut durch folgende Abbildung erklärt werden:
Interrupt:
Zeichen empfangen
ja
Fifo leer?
Puffer füllen
nein
false
connect?
true
StringEnde?
nein
ja
PARSE
CONNECT
Fifo füllen
Rücksprung
Abbildung 5.8: Programmablaufplan des Programmkerns: Die linke Seite zeigt die Hauptschleife,
die rechte Seite den Aufbau der ISR für den Datenempfang.
Er besteht im Wesentlichen aus 2 Teilen, der Hauptschleife und dem Datenempfang.
Der Datenempfang (Abb. 5.8 rechte Seite) ist, wie bereits erwähnt, vollständig interruptbasiert
und liegt in der obersten Ebene des 4-Schichten Modells (Abb. 5.6). Er bezeichnet hier den
Empfang von Steuerdaten, darf also nicht mit dem Empfang von Signalen aus dem 433Mhz-Band
verwechselt werden. Dieser wird gesondert in Abschnitt 5.3.3 auf Seite 51 behandelt.
Die gesendeten Daten liegen in aller Regel als Zeichenketten vor, wie z.B. die Befehle „CLOSE SPI“
oder „DISCONNECT USB“. Um die Datenverarbeitung und -Handhabung zu vereinfachen, werden
auch Daten, welche eigentlich keine Zeichenketten sind, als solche interpretiert und verpackt, z.B.
binäre Rohdaten. An der eigentlichen Verarbeitung ändert sich dadurch nichts.
Die Interruptauslösung erfolgt zeichenweise, das heißt, es werden bei Zeichenketten mehrere Interrupts ausgelöst, bis diese ganz empfangen sind. Wird ein Zeichen empfangen, wird es in einem
Puffer gespeichert und an die Zeichenkette der bereits empfangenen Daten „angehängt“. In einer
anschließenden Überprüfung auf die Endbedingung wird die ISR entweder abgebrochen, oder der
String wird in den FIFO Speicher kopiert und der Puffer geleert. Bei der Nachricht „test“ würde
Kapitel 5 Implementierung eines Netzwerk-Gateways
49
die ISR also 3-mal abgebrochen und beim vierten Durchlauf die gesamte Nachricht in den FIFO
kopiert werden. Jede Schnittstelle besitzt ihren eigenen Puffer und FIFO Speicher.
Um die verschiedenen Strings in einem Datenstrom erkennen zu können, müssen bestimmte Mechanismen existieren, welche die Enden der Zeichenketten erkennen und zusammengehörende
Zeichen gruppieren. In dieser Arbeit wurden 3 verschiedene Verfahren implementiert:
Feste Zeit: Nach jedem Zeichen wird angefangen, die Zeit zu zählen. Wird eine bestimmte Zeit
(engl. flush time, „Spül-Zeit“)zwischen dem Empfang von 2 Zeichen überschritten, werden
die bisher gesammelten Daten aus dem Puffer geholt und als Zeichenkette weitergeleitet.
Feste Größe: (engl. flush size, „Spül-Größe“) Nach einer bestimmten Anzahl von empfangenen
Zeichen, werden die Daten aus dem Puffer geholt und als Zeichenkette weitergeleitet.
Trennzeichen: Bei Empfang jedes Zeichens wird geprüft, ob es sich um das vorher festgelegte
Trennzeichen handelt. Wird ein solches Trennzeichen empfangen, werden die bisher gesammelten Daten aus dem Puffer geholt und als Zeichenkette weitergeleitet.
Jedes dieser genannten Trennverfahren besitzt seine eigenen Vor- und Nachteile. Es muss daher
für bestimmte Aufgaben das jeweils Richtige ausgewählt werden. Eine Nutzung von mehreren
Verfahren gleichzeitig ist möglich. So ist z.B. standardmäßig als Flush-Größe die Größe des FIFOPuffers eingestellt, um beim Speichern der Daten einen Überlauf zu vermeiden.
Der Hauptschleife (Abb. 5.8 linke Seite) fällt die Aufgabe zu, die empfangenen Daten an die
Module PARSE und CONNECT zu verteilen. Es wird dazu permanent abgefragt, ob die FIFO
Speicher der einzelnen Schnittstellen gefüllt sind. Trifft das für einen FIFO zu, folgt eine weitere
Abfrage, ob die dazugehörige Schnittstelle verknüpft ist. Bei einer Verknüpfung wird das Datenpaket direkt weitergeschickt, ansonsten durchläuft es den Parser, um dort als Befehl bearbeitet zu
werden. Am Ende dieser Kette springt die Funktion wieder an den Anfang zurück, es handelt sich
bei der Hauptschleife folglich um eine Endlosschleife. Ein Verlassen dieser Endlosschleife ist nur
über Interrupts möglich, daher liegt sie in der untersten Ebene des 4-Schichten-Modells (Abb. 5.6
auf Seite 44).
Transceive
Das Transceive Modul enthält alle Empfangs- und Sendefunktionen für das 433 Mhz-Band. Ein
direkter Zugriff ist über den Parser durch spezielle SEND-Befehle möglich (Anhang S. 55).
Im Rahmen dieser Arbeit wurden 3 Protokolle in die Software aufgenommen, das HomeEasy UK
„simple“ (Abschnitt 3.1.3 auf Seite 13), HomeEasy EU und Intertechno Protokoll (Abschnitt 3.2.2
50
Kapitel 5 Implementierung eines Netzwerk-Gateways
"0"
"1"
980
320
320
980
275
1320
HE UK
275
275
HE EU
400
1200
1200
400
IT
Abbildung 5.9: Die Bitzeiten der Protokolle HomeEasy UK, HomeEasy EU und Intertechno in µs.
Anzahl Bits
Wiederholungen
Pause zw. Wiederholungen
HE UK
HE EU
IT
25
fest, 1.3 ms
10 ms
58
variabel
10 ms
25
fest, 1.6 ms
11.2 ms
Tabelle 5.4: Eigenschaften der Protokolle.
auf Seite 17). Das verschlüsselte HomeEasy UK Protokoll wurde nicht aufgenommen, da die
Codeschlüssel nicht offen sind und das Protokoll somit vermutlich niemals benutzt werden würde.
Senden Das Versenden von Daten ist vergleichsweise einfach, wie Abb. 5.10 zeigt:
Sendemodul einschalten
Zeichenkette durchgehen
aktuelles Zeichen ?
'1'
'0'
send_high_bit()
send_low_bit()
sonst
send_something_else()
Sendemodul ausschalten
Abbildung 5.10: Struktogramm der Sende-Funktionen.
Zuerst wird das Funkmodul aus dem Empfangsmodus in den Sendebetrieb umgeschaltet, danach
werden zeichenweise die zu sendenden Daten durchgegangen und mit den Bitzuständen 1 oder 0
verglichen. Soll eine logische 1 gesendet werden, wird die Funktion send_high_bit() aufgerufen,
51
Kapitel 5 Implementierung eines Netzwerk-Gateways
bei einer logischen 0 die Funktion send_low_bit(). Für andere Zeichen besteht die Möglichkeit,
eigene Bitkombinationen zu senden.
Die Senderoutine besteht im Wesentlichen aus IO-Operationen und Wartezyklen. Da das Funkmodul RFM22B im direct-mode betrieben wird, erlaubt das eine direkte Steuerung über einen
IO-Pin. Zum Senden einer logischen 1 wird der Sende-Pin auf logisch 1 gezogen und umgekehrt.
Die Sendefunktion send_low_bit() sieht dann z.B. bei dem Intertechno Protokoll folgendermaßen
aus: Pin ist 1, 400µs warten, Pin ist 0, 1200µs warten. Eine Erweiterung auf zusätzliche Protokolle
ist leicht realisierbar, es müssen nur die Wartezeiten der Sendefunktion verändert werden.
Empfangen Das Empfangen von Daten ist deutlich komplexer und umfangreicher als der einfache Sendebetrieb. Alle Prozesse sind zeitkritisch und durch die IO-Anbindung des Funkmoduls gibt
es keinen Empfangspuffer. Eingehende Daten müssen also sehr schnell verarbeitet und gespeichert
werden. Die Empfangsfunktionen sind deshalb interruptbasiert und liegen auf der zweit höchsten
Ebene des 4-Schichten-Modells.
Der Empfangsprozess besteht aus 2 verschiedenen Teilprozessen, einem Pin-Change Interrupt und
einem Timer-Überlauf Interrupt (Abb. 5.11).
Interrupt: pin-change
Zeit messen
Timer reset
Interrupt: Timer Überlauf
Paketgröße?
falsch
korrekt
HE UK?
IT?
nein
HE EU?
ja
nein
Logbuch Eintrag
ja
Puffer füllen
Rücksprung
Timer stopp
Puffer reset
Timer stopp
Puffer reset
Rücksprung
Abbildung 5.11: Programmablaufplan der Empfangsfunktion:
Der Pin-Change-Interrupt wird ausgelöst, wenn sich der logische Zustand des Empfang-Pins ändert. Es können also fallende und steigende Flanken in einem Signal erkannt werden. Wird ein
Kapitel 5 Implementierung eines Netzwerk-Gateways
52
Interrupt ausgelöst, wird die Zeit gemessen, die seit der letzten Flanke vergangen ist und anschließend mit den Zeiten der Protokolle verglichen. Die Entscheidung, zu welchem Protokoll das
Signal gehört, erfolgt nach dem Ausschlussprinzip: Zuerst werden alle Protokolle als möglich angenommen und nacheinander verglichen. Stimmen die Zeiten eines Protokolls nicht mit denen des
Signalstroms überein, kann das Signal nicht diesem Protokoll angehören. Das Protokoll wird dann
als nicht zutreffend notiert und bei weiteren Funktions-Durchläufen übersprungen. Stimmen die
Zeiten stattdessen überein, wird das Signal gemäß Abb. 5.9 decodiert und in einem vorläufigen
Puffer gespeichert. Gehört der Datenstrom keinem der bekannten Protokolle an, wird der Empfang
abgebrochen und der Pufferspeicher geleert.
Die Überprüfung der Zeiten wird immer ausgeführt, auch wenn das Protokoll bereits gefunden wurde. Dadurch lassen sich Störungen und falsche Nachrichten leicht filtern. Das Ausschlussverfahren
bietet zudem die Möglichkeit, schnell und einfach zusätzliche Protokolle zu ergänzen.
Die zweite ISR wird benötigt, um die Enden der Datenpakete zu erkennen. Ausgelöst wird der
Interrupt durch einen Werteüberlauf des Timers, welcher in der Pin-Change-ISR (Abb. 5.11 linke
Seite) zur Zeitmessung genutzt wird: Ist ein Datenpaket zu Ende, treten für eine bestimmte Zeit
keine Flanken mehr auf, der Timer wird also nicht mehr resettet. Er läuft nun solange durch, bis
der maximale Zählbereich überschritten wird und er überläuft. Ein Überlauf dauert etwa 3ms und
liegt deutlich über den Bitzeiten und gleichzeitig unter den Pausenzeiten zwischen den Sendewiederholungen. So können die Paketenden zuverlässig detektiert werden.
In der ISR wird zuerst überprüft, ob die im Puffer gespeicherten Daten die passende Länge für das
gefundene Protokoll haben (Tabelle 5.4). Ist das nicht der Fall, wurde das Datenpaket vermutlich
nicht vollständig empfangen und wird daher verworfen. Ist das Paket gültig, wird es zusammen
mit der Uhrzeit in ein Logbuch geschrieben. Um die Daten wegen der Sendewiederholungen nicht
mehrfach zu speichern, wird vor dem Schreiben der letzte Eintrag überprüft: Wurde das gleiche
Signal innerhalb der letzten Sekunde schon gespeichert, wird es verworfen.
Problematisch für den Empfang, ist die starke Ähnlichkeit zwischen dem Intertechno und HomeEasy UK „simple“ Protokoll (Abb. 5.9). Um den Empfang robuster gegen Störungen zu machen,
dürfen die gemessenen Zeiten um bis zu 20% variieren. Das macht es dem Mikrocontroller unmöglich die beiden Protokolle zu trennen. Da ein Protokoll praktisch dem Inversen des Anderen
entspricht, ist eine gemeinsame Nutzung nicht möglich. Zur Lösung des Problems wurde ein Befehl
„SET PROTOCOL xx“ eingeführt, um zwischen den beiden Protokollen umschalten zu können
(Anhang S. 55). Wird ein Protokoll aktiviert, ist das andere deaktiviert.
5.3.4 Evaluation
Die im Rahmen dieser Arbeit geschaffene Plattform ist in der Lage die gestellten Anforderungen
zu erfüllen: Sie beherrscht 3 verschiedene Protokolle, Intertechno, HomeEasy EU und UK „simple“
Kapitel 5 Implementierung eines Netzwerk-Gateways
53
und kann diese senden und empfangen. Durch den Erweiterungsport ist sie leicht erweiterbar und
kann Geräte steuern, welche an diesen angeschlossen sind. Konfiguriert und gesteuert wird sie
über einen selbst entwickelten ASCII basierten Befehlssatz (Anhang S. 55). Eigenständig ist das
Modul der ersten Softwareversion noch nicht, es kann keine Befehle selbstständig senden, sondern
braucht einen übergeordneten Befehlsgeber. Durch den modularen Aufbau der Software und den
universell gehaltenen Funktionen sollte es aber leicht möglich sein, dieses als eigenes Modul in
die Funktionskette einzufügen. Zudem wird in der der aktuellen Softwareversion nur ein Bruchteil
der verfügbaren Leistung verwendet, das sind etwa 20% des Flashspeichers, 60% des SRAMs und
40% der Peripherie des Mikrocontrollers. Es ist also noch genügend Platz für viele Erweiterungen
vorhanden.
In der Praxis funktionierte das Modul sehr stabil. In einem 3-tägigen Ausdauertest wurde die
Plattform dauerhaft durch gesendete Signale und Steuerbefehle ausgelastet, es zeigten sich aber
keine Probleme. Lediglich einige Datenpakete auf dem 433 MHz-Band wurden nicht empfangen,
was aber auf Störungen von außerhalb zurückgeht, da das Band schließlich von vielen anderen
Geräten mitbenutzt wird. Durch die fehlende Empfangsbestätigung der Systeme von Intertechno
und HomeEasy kann diesem Problem nicht entgegengewirkt werden. Es ist daher, wie auch bei
anderen Funksystemen, wichtig, solche Probleme von vornherein durch eine geeignete Platzierung
des Gerätes im Raum zu vermeiden.
Betrachtet man die Entwicklungsmöglichkeiten des Moduls, so ergeben sich viele interessante
Ideen: Die Plattform kann beispielsweise als Server mit grafischer Weboberfläche laufen. Es kann
dann bequem über den Browser gesteuert und geschaltet werden, sei es jetzt nur über WLAN oder
Internet. Durch den geringen Stromverbrauch von durchschnittlich 0.5 W, kann es dauerhaft laufen,
ohne große Zusatzkosten zu verursachen. Ferner ist es wegen der Anbindungsgeschwindigkeit von
bis zu 500 kbit/s an das Wlan auch möglich, Audio Daten zu übertragen und direkt mit den
integrierten Digital zu Analogwandlern des XMEGA Mikrocontrollers auszugeben. So ist z.B. eine
direkte Sprach- oder Musikausgabe an jedem Modul möglich. Die Möglichkeiten sind vielfältig,
es ist daher wahrscheinlich, dass das Modul in der Zukunft noch weiter entwickelt wird und
Anwendung außerhalb dieser Arbeit findet.
Kapitel 6
Zusammenfassung
Das Ergebnis dieser Studienarbeit ist die offene Plattform WIFI Control 433, welche sich in die
Automatisierungssysteme HomeEasy und Intertechno einklinken kann und diese nach außen hin
über USB, WLAN und anderen Schnittstellen öffnet. So ist es möglich, mit diesen beiden einfachen Systemen auch komplexere Steuerungen zu realisieren oder diese zu kombinieren. Das Modul
würde in diesem Fall als Buskoppler arbeiten. Durch die Anbindungsmöglichkeit von Fremdhardware über den Erweiterungsport sind noch viel mehr Einsatzgebiete denkbar, so auch der Einsatz
außerhalb dieser Arbeit. Der Autor betreibt dieses Modul beispielsweise im Privaten, um mit einer
Funk Wetterstation zu kommunizieren und ihre Daten auf einem PC zu sammeln.
Die gesteckten Ziele und Anforderungen wurden also erreicht (Abschnitt 5.3.4 auf Seite 52).
Marktfähig ist die Plattform allerdings noch nicht, es gibt noch Verbesserungsmöglichkeiten. Die
Wichtigste wäre das Benutzen eines Timer ICs als Ersatz für die aktuelle RTC, um so bei Stromausfall den Verlust der Uhrzeit und des Datums zu vermeiden. Auch könnte das RFM22B durch
ein anderes Funkmodul, wie dem RTX-MID ersetzt werden, da es hier Probleme mit dem Empfang gab (Abschnitt 5.2.3 auf Seite 38). Strebt man eine kommerzielle Vermarktung an, wäre
es aus Kostengründen sinnvoll, statt Fertiglösungen für WLAN und 433 MHz-Band diese diskret
aufzubauen. Dennoch bietet das WIFI Control 433 eine ausgezeichnete Möglichkeit, Hausautomatisierungsnetze um eigene Steuerfunktionen zu erweitern oder diese Plattform als Basis für eine
Weiterentwicklung zu nutzen.
Fasst man die Ergebnisse zusammen, wurde gezeigt, dass es möglich ist, solche Netzwerk-Gateways
selber zu implementieren. Dazu wurden eigene Sende- und Empfangsfunktionen, sowie die mögliche Struktur eines solchen Systems vorgestellt, deren Funktionsweise aufgeführt und auftretende
Probleme und Erfahrungen beschrieben. Somit kann diese Arbeit Denkanstöße für andere Entwickler mit ähnlichen Zielen geben.
54
Anhang A
Befehlsliste
Typ
Ziel
Parameter
Wertebereich
Beschreibung
PORTx y z
x = Port
(A, B, C)
IO-Steuerung
y = Pin
(0..7)
z = Pegel
(0..1)
h = Stunden
(0..23)
m = Minuten
(0..59)
s = Sekunden
(0..59)
d = Tage
(1..31)
m = Monate
(1..12)
h = Stunden
(0..23)
X = Vorteiler
(2,4,8,16,
TIME hh:mm:ss
DATE dd.mm.yyyy
SET
SPI SLAVE X
SPI MASTER X
Uhrzeit einstellen
Datum einstellen
SPI öffnen
32,64,128)
SPI CLOSE
SPI Schließen
UARTxy z
x = Port
(B, D)
UART öffnen
UARTxy CLOSE
y = Nummer
(0..1)
UART schließen
z = Baudrate
PROTOCOL x
x = Protokoll
(IT, UK)
Protokoll umschalten
PORTx y
x = Port
(A, B, C)
liefert IO-Pegel (0..1)
y = Pin
(0..7)
x = Port
(B, D)
y = Nummer
(0..1)
UARTxy
GET
SPI
gibt die Einstellungen und
den Connect-Status der
Schnittstelle zurück
USB
WLAN
55
56
Anhang A Befehlsliste
Typ
Ziel
Parameter
Wertebereich
TIME
Beschreibung
gibt die Zeit zurück
(hh:mm:ss)
DATE
gibt das Datum zurück
(dd.mm.yyyy)
GET
VERSION
gibt die Firmware Version
zurück
ID
gibt die ID der Plattform
zurück
LOG
gibt das LOG-Buch, in dem
die empfangenen
Funksignale gespeichert
wurden, zurück
SEND
HEEU 0bz
z = Data
(0..1)
HEEU 0xz
z = Data
(0..F)
HEUK 0bz
z = Data
(0..1)
HEUK 0xz
z = Data
(0..F)
IT 0bz
z = Data
(0..1)
IT z
z = Data
(0,1,f,F)
UARTxy z
x = Port
(B, D)
y = Nummer
(0..1)
SPI
WLAN
HomeEasy Europe
HomeEasy UK „simple“
Intertechno
sendet Daten im
ASCII-Format an
Schnittstelle weiter
USB
HELP
gibt die vollständige
Befehlsliste zurück
57
Anhang A Befehlsliste
Connect Befehle:
Typ
CONNECT
DISCONNECT
Ziel
Parameter
Beschreibung
ab
a,b = UARTxy, SPI, WLAN, USB
Verknüpft zwei
Schnittstellen miteinander.
a
a = UARTxy, SPI, WLAN, USB
Trennt eine Schnittstelle.
Werden 2 Schnittstellen über „CONNECT a b“ verbunden und Schnittstelle a mit „DISCONNECT
a“ getrennt, ist Schnittstelle b immer noch mit a verbunden. Auf diese Weise lassen sich unidirektionale Verknüpfungen erzeugen.
Alle Befehle können groß oder klein geschrieben werden, solange die Schreibweise nicht innerhalb
eines Wortes wechselt! Beispiel: „CONNECT spi“ ist gültig, „cOnnecT SpI“ ist ungültig.
Anhang B
Schaltpläne und Layout
Abbildung B.1: Platine Oberseite: Bedruckung (gelb), Vias (grün), Leiterbahnen (rot), Keepoutarea für Lötstopplack (weiß).
58
Anhang B Schaltpläne und Layout
59
Abbildung B.2: Platine Unterseite: Vias (grün), Leiterbahnen (blau), Keepout-area für Lötstopplack (weiß).
Anhang B Schaltpläne und Layout
60
Anhang B Schaltpläne und Layout
61
Abbildungsverzeichnis
2.1
Anwendungsmöglichkeiten
in
einem
Haus.
Bildursprung:
http://www.
lingg-janke.de/uploads/pics/eib-system-viele-funktionen.jpg . . . .
4
2.2
Blockschaltbild der Datenübertragung. . . . . . . . . . . . . . . . . . . . . . . .
9
2.3
Beispiel für die Modulation ASK (b) und FSK (c) des Quellensignals q(t)(a) [5] .
10
3.1
Drei HomeEasy Protokolle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2
Die Bitzeiten der Protokolle UK und EU in µs. . . . . . . . . . . . . . . . . . .
14
3.3
Links ein klassisches Gerät mit manueller Adresswahl und rechts ein Neueres mit
Lernfunktion[7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.4
Strukturbild der Datenübertragung von 2 Geräten mit HX2262/2272 Pärchen. . .
16
3.5
Die Datenelemente „0“ und „1“. . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.6
Die möglichen Bitkombinationen. . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.7
Der oszillografierte Code lautet: 1FFFFF0F0000. („0“ steht für Vss, Vcc und "F"für
Float)[8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.8
Netzspannung mit aufmoduliertem Datenstrom „1101“. . . . . . . . . . . . . . .
20
3.9
Aufbau eines X10 Datenpakets. . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.10 Bei einer Kommunikation werden mindestens 4 Datenpakete gesendet: Adresse +
Wiederholung und Befehl + Wiederholung. Zwischen Adresse und Befehl wird eine
Pause von 3 Netzperioden eingefügt. . . . . . . . . . . . . . . . . . . . . . . . .
21
3.11 Verschiedene Energy Harvesting Module[14]. . . . . . . . . . . . . . . . . . . . .
22
3.12 Z-Wave Netz mit 3 Teilnehmern. Gerät B wirkt als Sendewiederholer und ermöglicht die Kommunikation zwischen den Punkten A und C, die in diesem Fall zu
weit auseinander liegen, um direkt kommunizieren zu können. . . . . . . . . . . .
26
3.13 Die Struktur eines KNX Netzes. . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.1
Die Middleware als Abstraktionsebene zwischen Logik- und Hardwareebene. Bildursprung: http://de.wikipedia.org/wiki/Middleware . . . . . . . . . . .
31
4.2
Middleware als Abstraktionsebene für Automationssysteme . . . . . . . . . . . .
32
4.3
Die Middleware-Plattformen RFXCOM „Lan Transceiver“ (links) und Allnet
3000RF (rechts). Bildursprung: http://www.rfxcom.com/receivers.htm und
http://s100.maximilian-roth.de/homeauto/ALL3000MK2_200.png. . . . .
62
33
63
ABBILDUNGSVERZEICHNIS
5.1
Struktur der Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.2
Das Wifi Control 433. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.3
Links das RTX-MID und rechts das RFM22B. . . . . . . . . . . . . . . . . . . .
39
5.4
Links die PCB-Antenne und rechts die Splatch-Antenne. . . . . . . . . . . . . .
40
5.5
Die unbestückte Platine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.6
Das 4-Schichten Modell der Software-Struktur. . . . . . . . . . . . . . . . . . .
44
5.7
FIFO-Ringpuffer mit 6 Speicherzellen. . . . . . . . . . . . . . . . . . . . . . . .
45
5.8
Programmablaufplan des Programmkerns: Die linke Seite zeigt die Hauptschleife,
5.9
die rechte Seite den Aufbau der ISR für den Datenempfang. . . . . . . . . . . .
48
Die Bitzeiten der Protokolle HomeEasy UK, HomeEasy EU und Intertechno in µs.
50
5.10 Struktogramm der Sende-Funktionen. . . . . . . . . . . . . . . . . . . . . . . .
50
5.11 Programmablaufplan der Empfangsfunktion:
51
. . . . . . . . . . . . . . . . . . .
B.1 Platine Oberseite: Bedruckung (gelb), Vias (grün), Leiterbahnen (rot), Keepoutarea für Lötstopplack (weiß). . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
B.2 Platine Unterseite: Vias (grün), Leiterbahnen (blau), Keepout-area für Lötstopplack (weiß). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
Tabellenverzeichnis
3.1
Die vorgestellten Automatisierungssysteme auf einen Blick. . . . . . . . . . . . .
30
5.1
Kenndaten der Funkmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2
Antennendaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.3
Die Harmonischen des 433 MHz-Bandes in MHz. . . . . . . . . . . . . . . . . .
41
5.4
Eigenschaften der Protokolle. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
64
Literaturverzeichnis
[1] Pike
lion
Research,
by
“Home
Energy
2020.”
Management
URL:
Users
to
Reach
63
Mil-
http://www.pikeresearch.com/newsroom/
home-energy-management-users-to-reach-63-million-by-2020, Juni 2011.
[2] H. Merz, T. Hansemann, und C. Hübner, Gebäudeautomation: Kommunikationssysteme mit
EIB/KNX, LON und BACnet. Hanser, 2007.
[3] C. Schreie, “Informationsblatt Powerline Communication (PLC),” tech. rep., Deutscher
Amateur-Radio-Club e.V., 2001.
[4] K. Steudle, “Übertragungstechnik: Modulation.” Lehrscript, 2003.
[5] G. Söder, Digitale Modulationsverfahren, Kap. 1. Lehrstuhl für Nachrichtentechnik Technische Universität München, 1999.
[6] M. Lansell, “Home automation with xPL: Byron HomeEasy.” URL: http://www.xplmonkey.
com/homeeasy.html.
[7] Intertechno
Funk-Technik
GmbH,
“Intertechno
Homepage.”
URL:
http://www.
intertechno.at/.
[8] J. Börke, “Die Ansteuerung von Funksteckdosen.” URL: http://avr.xn--brke-5qa.de/
Funksteckdosen.htm, 2006.
[9] E. B.Driscoll, “The history of x10.” URL: http://home.planet.nl/~lhendrix/x10_
history.htm.
[10] X10, “X10 technology transmission theory.” URL: http://www.x10.com/technology1.
htm.
[11] P. Kingery, “Digital X-10: Which One Should I Use, Part XIII (Preamble).” URL: http:
//www.hometoys.com/htinews/feb99/articles/kingery/kingery13.htm, Feb. 99.
[12] A. Anders, “Energy for free – wireless technology without batteries,” tech. rep., EnOcean
GmbH, 2006.
[13] P. Harrop, “Energy harvesting without batteries,” Innovation Magazine, Band 9, Nr. 1, 2009.
65
LITERATURVERZEICHNIS
66
[14] EnOcean GmbH, “Energy Harvesting Information site.” URL: http://www.enocean.com/
en/energy-harvesting/.
[15] Z-Wave Alliance, “About Us: Vision & Mission.” URL : http://www.z-wavealliance.
org/modules/AboutUs/?id=2&chk=b577aef6206600b49c2677a04fda823f.
[16] Merten, Funk-System CONNECT: Grundlagen, 2010. Manual.
[17] KNX Association cvba, “KNX ist jetzt der internationale Standard ISO/IEC 14543-3.”
URL: http://www.merten.de/download/Allgemeines/KNX_Pressetext_de.pdf. Pressemitteilung.
[18] A. Anders und T. Weinzierl, “Neue Möglichkeiten für die KNX Gebäudeautomation durch
Einbindung batterieloser Funksensoren,” tech. rep., EnOcean GmbH and Weinzierl Engineering GmbH, 2009.
[19] Busch-Jaeger Elektro GmbH, Busch-Installationsbus EIB/KNX Busch-Powernet EIB/KNX
Systembeschreibung und Planungshilfe. Manual.
[20] T. Weinzierl, “Netzwerk-Management in KNX-RF Netzwerken,” tech. rep., Weinzierl Engineering GmbH, 2006.
[21] L. Roalter, A. Möller, S. Diewald, und M. Kranz, “Developing Intelligent Environments: A
Development Tool Chain for Creation, Testing and Simulation of Smart and Intelligent Environments,” in Proceedings of the 7th International Conference on Intelligent Environments
(IE), Seiten 214–221, Jul 2011.
[22] S. Diewald, L. Roalter, A. Möller, und M. Kranz, “Towards a holistic approach for mobile
application development in intelligent environments,” in Proceedings of the 10th International Conference on Mobile and Ubiquitous Multimedia, MUM ’11, (New York, NY, USA),
Seiten 70–77, ACM, Dez. 2011.
[23] L. Roalter, M. Kranz, und A. Möller, “A middleware for intelligent environments and the
internet of things,” in Ubiquitous Intelligence and Computing, Band 6406 von Lecture Notes
in Computer Science, Seiten 267–281, Springer Berlin / Heidelberg, 2010.
[24] A. Andersen, “Small Size 2.4 GHz PCB antenna,” Application Note 043, Texas Instruments,
2008.
[25] ETSI, “EN 300 220-1,” April 2006. European Standard (Telecommunications series).