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).