XBEE
Einleitung
- PAN-ID:
Das ist die Kennnummer des ganzen Netzwerkes; die default PAN für XBEE Module ist 0x3332. - NODE-ID:
Das ist die Kennnummer des individuellen Netzteilnehmer, diese kann entweder als kurze Adresse (16 Bit) oder lange Adresse (64 Bit) eingestellt sein. Die lange Adresse ist voreingestellt und weltweit eindeutig. Die kurze Adresse muß für die jeweilige Applikation vergeben werden.
XBEE kennt sowohl Broadcast als auch Punkt-zu-Punkt Verbindungen.
Zum Senden von Broadcast muß DH=0 und DL=0xFFFF eingestellt werden.
Broadcast ist bandbreitenintensiv, weil
jeder Knoten die Nachricht bis zu viermal wiederholt.
Für die Funkverbindung des
Handreglers werden XBEE-Module des
Anbieters digi.com verwendet.
Diese senden gemäß 802.15.4 (ZigBEE) bei 2.4GHz mit DSSS (Direct-Sequence Spread Spectrum). Damit sind die
jeweiligen Antennen klein, auf dem rechts abgebildeten Modul ist z.B. eine kleine Keramikantennen.
Die Ausführung als Steckmodul erlaubt eine einfache Integration in die
Hardware und der Funkteil ist komplett fertig und zugelassen.
Zur Adressierung werden zwei Adressbestandteile verwendet:
Für unsere Zwecke verwenden wir Star-Topologie mit langer Adresse. Die Star-Topologie kann auch auf Mesh-Netzwerken implementiert werden, der Master wird von den anderen Teilnehmer anhand seines Verhaltens erkannt. Es gibt zwei verschiedene Module: Series 1 (802.15.4) und Series 2 (ZB Pro/ZNet); MFT verwendet Series 2.
Nachrichtenübertragung zum Modul
- Die XBEE Module bieten eine Byte-orientierte serielle Schnittstelle an. Diese kann entweder
im Transparent-Mode oder Paketweise ('API mode') betrieben werden.
Neue Module haben Transparent-Mode voreingestellt (sind also quasi RS232-Ersatz) und müssen erst
per Modembefehle auf die folgenden Einstellungen konfiguriert werden.
Für das Modellbahnprotokoll WRP wird der API-mode verwendet, in diesen kann ohne weiteres Framing direkt zu übertragenen Nachrichten eingebettet werden. Innerhalb der API Schnittstelle wird ein feste Struktur verwendet, in welche die Daten (max. 72 Byte je Nachricht) eingebettet werden. Zur Sicherung der Übertragung wird eine Checksumme angehängt, so dass sich als Summe aus allen Bytes (beginnend nach dem Längenfeld und einschließlich der Checksumme) 0xFF ergibt.
| API-Packet (Beispiel von Digi.com) | ||
|---|---|---|
| 7E | Start Delimeter | |
| 00 0A | Length Bytes | |
| 01 | API Identifier | Checksum = 0xFF |
| 01 | API Frame ID | |
| 50 01 | Destination Address low | |
| 00 | Option Byte | |
| 48 65 6C 6C 6F | Data Packet | |
| B8 | Checksum | |
Verbindung mit dem Modul
-
Wie bei jeder seriellen Schnittstelle sind eine Reihe Parameter zu setzen. MFT verwendet folgende Parameter:
| XBEE Setup | |
|---|---|
| Serielle Schnittstelle | 115200 Baud, 8N1 (8 Bit, no parity, 1 Stopbit) |
| API Mode | 1 (API enabled, no escaping) |
| PAN-ID | 0x4443 |
| Adressing | Long, 64 Bit |
Funkmodul initialisieren
-
Um ein Funkmodul zu benutzen, muß es zuerst auf die beim Handregler bzw. Gateway verwendeten Einstellungen
konfiguriert werden.
Hierzu geht man wie folgt vor:
- Verbinden des Moduls mit dem seriellen Port des PCs. Hierzu muß das Modul entweder im Adapter von digi.com stecken oder man benutzt das Gateway.
- Umschalten des Moduls in den Kommando-Mode:
- Pause mind. 1s
- Senden von +++ (das sind drei +-Zeichen)
- Pause mind. 1s - Nun kann man Kommandos an das Modul senden. Diese Kommandos müssen innerhalb einer gewissen Zeitspanne (command timeout)
gesendet werden, sonst verläßt das Modul den Kommandomodus wieder.
- ATBD 7 Umstellen der Baudrate auf 115200
- ATID Abfragen der PAN-ID
- ATID 0x4443 Setzen der PAN-ID
- ATPL 4 Sendeleistung einstellen (0=low, 4=highest)
- ATD7 1 Hardware-Handshake aktivieren (CTS)
- ATD6 1 Hardware-Handshake aktivieren (RTS)
- ATAC Anwenden der Werte
- ATAP 1 Aktivieren API Mode
- ATWR Permanentes Speichern der konfigurierten Werte (nur dann sind diese beim nächsten Start wieder gesetzt)
- ATCN Verlassen Kommandomodus
- Man kann diese Einstellungen auch mit der X-CTU Software von Digi.com vornehmen.
Leider weiß man zu Beginn nicht, wie die Parameter auf der Modulseite einstellt sind. Der steuernde Controller muß daher zumindest die Voreinstellung des XBEE-Moduls (default 9600 Baud) und die obige Einstellung beim Verbindungsaufbau probieren.
Netzwerkverbindung
- Alle notwendigen Vorgänge (Verbindungsaufbau, Daten-Prüfung, Wiederholung)
werden von den XBEE-Modulen selbst erledigt.
Zu Beginn (und auch bei Hinzunahme neuer Handregler) muß das Netz konfiguriert werden, es muß also klar sein,
welcher Teilnehmer wie zu erreichen ist. Jeder Funkteilnehmer hat eine eindeutig Kennung (MAC).
Damit angeschlosssene Handregler wissen, an wem sie ihre Abfragen und Befehle zu senden haben,
sendet die Zentrale zyklisch Pakete aus, welche an alle möglichen Teilnehmer adressiert sind (Broadcast).
Die Teilnehmer erkennen am gesetzten Zentralenbit (MSB im header), dass diese Nachricht von der Zentrale stammt und merken sich die MAC als Ziel für ihren eigenen Verbindungsaufbau.
An einer Basisstation können bis zu 8 Funkhandregler betrieben werden, wobei wegen der Netzwerkstruktur der XBEE-Module es nicht erforderlich ist, dass jeder Funkhandregler direkten Kontakt zur Basisstation hat. Wenn kein direkter Kontakt besteht, so vermitteln andere Module die Nachrichten weiter.
Links:
- Definition der Nschrichten (WRP)
http://en.wikipedia.org/wiki/ZigBee wiki von Digi.com http://code.google.com/p/xbee-arduino/
Einführung von plischka.at
XBEE setup.pdf von humboldt.edu
Übersicht
Konfiguration
XBEE Setup (Tutorial, pdf)
solajet.de Kaufen