Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

1 - Aufbau eines Klein-Netzwerkes

In diesem Abschnitt wird gezeigt, wie man ein Netz aus einem Sender und einem Empfänger aufbaut. Der Sender überträgt laufend Daten zum Empfänger, die dieser dann im X-CTU Terminal auf dem PC darstellt (Abb. 1).

Abbildung 1 – Kleines Netzwerk aus zwei XBee24B Modulen mit PCB-Antenne
Aufbau eines Netzwerkes aus Sender und Empfänger
Material
  • 1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)
  • 1x  XBee-Adapter Board
  • 1x  Steckbrett (groß)
  • 1x  Netzteil mit 3,3V - z. B. Arduino-UNO oder Propeller Board of Education
  • 1x  USB Verbindungskabel
  • 2x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)
Aufgaben
  • Baue die Schaltung nach Abbildung 2 auf.
  • Verbinde das XBee-USB-Board noch nicht mit dem PC.
  • Starte das Programm X-CTU.

Schaltungsaufbau

Abbildung 2 – Schaltungsaufbau mit zwei XBee-Adapter-Boards.

2 – Das Sender-Modul konfigurieren

Das Sendermodul konfigurieren
Aufgaben
  • Achte immer darauf, dass die USB-Verbindung des XBee-Boards unterbrochen ist, wenn ein XBee-Modul eingesetzt oder entnommen werden soll.
  • Setze das XBee-Modul in die Fassung des XBee-USB-Boards ein.
  • Stelle die USB-Verbindung mit dem PC wieder her.
  • Starte das Programm X-CTU und achte darauf, ob die Verbindung zum XBee-Modul hergestellt wird.
  • Sobald das Modul von der Software erkannt worden ist, öffne die Registerkarte Modem Configuration und klicke auf den Button Restore und aktiviere damit die Werkseinstellungen des Moduls.
  • Klicke auf Read und überzeuge dich davon, dass die Einstellungen zurückgesetzt worden sind.

Achte bei der Verkabelung darauf, dass bei dem XBee-Adapter-Board von Parallax Inc. auf jeder Seite 11 statt 10 Pin vorhanden sind und das der oberste Pin auf der linken Seite auf GND (Vss) liegt.

Abbildung 3 – Pinbelegung auf dem XBee-Adapter Board der Fa. Parallax Inc.

Die folgenden Einstellungen müssen in der Konfiguration für den Sender geändert werden:

1 - Ordner Networking & Security

  • DL – Destination Address Low – von alt 0 auf neu  4711
  • MY – 16-Bit Source Address – von alt 0 auf neu 815

Jedes XBee Modul hat eine 64-Bit Seriennummer (steht hinten auf dem Chip) und eine 64-Bit Zieladresse, die in zwei Blöcken  DH und DL von jeweils 32 Bit aufgeteilt sind. Jeder Block hat eine Bitlänge von 32, das entspricht 4 Byte. Der DL Block enthält die 16-Bit Zieladresse des XBees, mit dem eine Verbindung aufgenommen werden soll, der DH Block ist 0, binär geschrieben 0b0000 0000 0000 0000 oder hexadezimal geschrieben 0x0000.

2 - Ordner I/O Settings

Ändere folgende Einstellungen

  • D8 – DI8 Configuration – von alt 0 – DISABLED auf neu 3 – DI (damit wird P9 DI8 auf Eingang gesetzt).
  • D6 – DIO6 Configuration – von alt 0 – DISABLED auf neu 3 – DI (damit wird P16 AD6/DIO6 auf Eingang gesetzt).
  • D5 – DIO5 Configuration – von alt 0 – DISABLED auf neu 3 – DI (damit wird P15 AD5/DIO5 auf Eingang gesetzt).
  • IR – von alt 0 auf neu 1388 (dez. 5000)

Überprüfe noch einmal alle Einstellungen und übertrage die Änderungen mit Write in das Modul.

 

Mit dieser Einstellung sind die Pins 9, 15 und 16 ( DI8, AD6 - DIO6 und AD5 – DIO5) des Senders als digitale Eingänge (DI) geschaltet. Die Abtastrate erfolgt in Vielfachen von einer Millisekunde. Ein Wert von 0x1388 (500010) ergibt damit eine Verzögerung von 5000ms oder 5s zwischen zwei Messproben. Das heißt, alle fünf Sekunden werden alle I/O Pins, die aktiv geschaltet worden sind, abgefragt und die dort anliegenden Informationen abgespeichert. In unserem Beispiel werden  DIO5, DIO6 und DI8 abgefragt.

Überprüfe mit einem Klick auf Read, ob alle Änderungseinträge vom Modul korrekt abgespeichert wurden. Damit ist die Konfiguration des Sender-Moduls fertig gestellt. Löse das USB-Kabel vom PC und nimm das XBee-Modul aus der Fassung.

3 – Das Empfänger-Modul konfigurieren

Das Empfängermodul konfigurieren
Aufgaben
  • Achte immer darauf, dass die USB-Verbindung des XBee-Boards unterbrochen ist, wenn ein XBee-Modul eingesetzt oder entnommen werden soll.
  • Setze das XBee-Empfänger Modul in die Fassung des XBee-USB-Boards ein.
  • Stelle die USB-Verbindung mit dem PC wieder her.
  • Starte das Programm X-CTU und achte darauf, ob die Verbindung zum XBee-Modul hergestellt wird.
  • Sobald das Modul von der Software erkannt worden ist, öffne die Registerkarte Modem Configuration und klicke auf den Button Restore und aktiviere damit die Werkseinstellungen des Moduls.
  • Klicke auf Read und überzeuge dich davon, dass die Einstellungen zurückgesetzt worden sind.

Die folgenden Einstellungen müssen in der Konfiguration für den Empfänger geändert werden:

1 - Ordner Networking & Security

  • DL – Destination Address Low – von alt 0 auf neu  815
  • MY – 16-Bit Source Address – von alt 0 auf neu 4711

Die Zieladresse für den Empfänger-Modul ist die Eigenadresse des Senders; entsprechend ist die Eigenadresse des Empfänger-Moduls die Zieladresse des Senders.

Abbildung 4 - Einstellungen der Zieladresse (DL) 815 und der Heimatadresse 4711 (XCTU Programm Vers. 6.3.2).

2 - Ordner I/O Settings

Ändere folgende Einstellung

  • IU – I/O Output Enable – von alt 0 – DISABLED auf neu 1 – ENABLED (damit kann das Modul Daten, die es von einem anderen XBee Modul erhalten hat, an ein externes Gerät – z. B. ein Terminal – weiterleiten).

Überprüfe noch einmal alle Einstellungen und übertrage anschließend die Änderungen mit Write in das Modul.

 

Damit sind alle Einstellungen am Empfänger und Sender abgeschlossen. Das Empfänger-Modul kann im XBee-USB-Adapter Board bleiben.

Abbildung 5 - Einstellung von I/O Output Enable ändern.

4 – Der Datenaustausch

Nachdem alle Grundeinstellungen vorgenommen sind, schauen wir uns jetzt den Datenaustausch zwischen zwei XBee-Modulen an.

Datenaustausch
Material
  • 1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)
  • 1x  XBee-Adapter Board
  • 1x  Steckbrett
  • 1x  USB Verbindungskabel
  • 1x  Netzteil mit 3,3V - z. B. Arduino-UNO oder Propeller Board of Education
  • 2x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)
Aufgaben
  • Baue die Schaltung nach Abbildung 6 auf.
  • Setze die XBee-Module in die entsprechenden Boards ein; achte darauf, dass Sender- und Empfänger-Modul nicht zu vertauschen. Das Empfänger-Modul sitzt auf dem  XBee-USB Adapter Board.
  • Verbinde das XBee-USB-Board mit dem PC.
  • Starte das Programm X-CTU auf dem PC.

Schaltungsaufbau

Abbildung 6 - Aufbau eines kleines Netzwerkes aus einem XBee Sender- und einem XBee Empfänger-Modul.

Um zu sehen, was der Sender an den Empfänger überträgt, wird in der XCTU-Software die Konsole eingeschaltet.

  • Klicke auf das Icon Console
Abbildung 7 - Icon-Zeile im Hauptprogramm von XCTU Vers. 6.3.x

Das sich öffnende Fenster Console log zeigt irgendwelche Zeichen. Durch einen Klick auf das Icon 0x rechts oberhalb des Fensters wird dieses geteilt. Im linken schmaleren Teil erscheinen die Sonderzeichen, im rechten Teil erkennt man Tupel von hexadezimalen Zahlen.

Abbildung 8 - Konsolendarstellung der Übertragungsbytes. Links: Zeichendarstellung -Rechts: hexadezimale Darstellung. Die Zahlenkolonnen weisen eine Periode auf, die mit der Zeichenfolge 7E eingeleitet wird.

Bei genauem Studium der Zahlenkolonnen erkennt man eine Regelmäßigkeit. Die Tupel scheinen sich nach einer gewissen Zeit zu wiederholen. Und man erkennt, dass keine Textinformationen sondern Datenpakete übertragen werden, die eine bestimmte Information über die I/O Pin des Sendermoduls enthalten. Die 2-er Tupel wiederholen sich nach folgendem Schema

 

7E 00 0A 83 08 15 4A 00 01 01 60 01 40 72

Abbildung 9 - Die 2-Tupel hexadezimaler Zahlen wiederholen sich nach einer festen Bitfolge.

5 - Die Daten des Senders analysieren

Welche Bedeutung jedes der 16 Tupelpaare bei der Datenübertragung hat, wird im Folgenden näher untersucht.

Die Aktivsignal Bytes teilen sich in einen HighA und LowA Anteil von jeweils 8 Bit auf, die durch je zwei Hexadezimalzahlen repräsentiert werden. Die Bedeutung der einzelnen Bits zeigt die folgende Tabelle.

Informationen aus den Aktivsignal-Bytes ziehen

Von allen Ein- und Ausgängen des Sender-XBees wurden die I/O Kanäle D8, D6 und D5 als Eingänge konfiguriert (Abschnitt 2) und freigeschaltet (enabled). Alle aktiven Ein- und Ausgänge werden durch eine 1 markiert, alle inaktiven durch eine 0.

Der Bitfolge

  • 0 0 0 0 0 0 0 1 im HighA des Aktivsignal Bytes

entspricht ein Hexadezimalwert von 0x01 (die führende Null wurde hinzugefügt, da hexadezimale Zahlen hier als 2-er Tupel angegeben werden), der Bitfolge

  • 0 1 1 0 0 0 0 0 im LowA des Aktivsignals Bytes

entspricht ein Hexadezimalwert von 0x60.

Mit dieser Information weiß der Empfänger-Baustein, welche Eingänge des Senders bei einer Datenübertragung Informationen liefern; mit 0 oder 1 sind hier keine Status- oder Pegelanzeigen von Pins gemeint. Diese werden mit den Bytes der beiden folgenden Datenpakete geliefert.

Informationen aus den Datenpaket-Bytes ziehen

Der Sender hat von den aktiven I/O Ports nur D8 und D6 mit HIGH-Pegel zurückgemeldet; dort steht eine 1 an der entsprechenden Bitstelle. Da alle drei Eingänge des Sender-XBees nicht beschaltet sind und offensichtlich ein HIGH an zwei der drei Eingänge anliegt, werden diese beiden wohl von einem internen pull-up Widerstand im Leerlauf auf 1 hochgezogen. Mehr Klarheit verschafft da ein Blick in das Datenblatt des XBees.

Die Prüfsumme, die als letztes im Datenpaket erscheint ist mit 0x72 angegeben. Sie wird aus den Bytes der Daten ermittelt. Der Empfänger bildet ebenfalls eine Prüfsumme und vergleicht seine errechnete mit der übermittelten. Besteht Übereinstimmung ist alles ok, bei nicht vorhandener Übereinstimmung wird das übermittelte Datenpaket einfach "übersehen" und vergessen. Eine Fehlermeldung erfolgt nicht.

In der Konfigurationseinstellung kann für den Sender unter RR - XBee Retries in der Datei Networking & Security die Anzahl der Versuche bei einer missglückten Übertragung eingetragen werden. Standardmäßig ist ein Wert von 0 eingetragen.

Mit der folgenden kleinen Übung wird der Eingang D6 mit einem Steckdraht auf GND und D5 auf 3,3V gesetzt. Zur Erinnerung: D6 liegt unbeschaltet auf 1 und D5 auf 0. Wir werden überprüfen, ob die Eingänge D6 auf 0 und D5 auf 1 in den Datenpaket- und Aktivsignal-Bytes angezeigt werden.

Aufgaben

  • Löse die USB-Verbindung des XBee-Boards vom PC.
  • Verbinde D6 mit GND, D5 mit 3,3V.
  • Stelle die USB-Verbindung mit dem PC wieder her.
  • Beobachte die übertragenen Bitfolgen. Was hat sich verändert?
Abbildung 10 - Neue Beschaltung der Ports: D5 auf 3,3V gesetzt und D6 mit GND verbunden

Die Bitfolge für die Einstellungen D5 - auf 1 und D6 - auf 0 ergibt

  • 7E 00 0A 83 08 15 49 00 01 01 60 01 20 93

 

Abbildung 11 - Datenpaket- (blau) und Aktivitäts-Bytes (schwarz) der Datenübertragung

Die ersten beiden 2-Tupel 0x01 und 0x60 sind die Aktivsignal-Bytes. 01 bedeutet, dass D8 aktiv ist und 0x60  bedeutet, dass das 6. und 7. Bit gesetzt - also 1 - ist (Tabelle Aktivsignal-Bytes) und damit D5 und D6 aktiv sind. So hatten wir ja auch die Schaltungskonfiguration angelegt.

 

Die beiden blau umrandeten 2-Tupel 0x01 und 0x20 stehen für die Datenpaket-Bytes. Danach liegt an D8 und an D5 eine 1 und an D6 eine 0. Das entspricht dem aktuellen Versuchsablauf, da wir D5 auf 1 und D6 auf GND gesetzt haben.

 

Die Prüfsumme, die als letztes im Datenpaket erscheint ist mit 0x92 angegeben. Sie wird aus den Bytes der Daten ermittelt (s. Berechnung der Prüfsumme). Der Empfänger bildet ebenfalls eine Prüfsumme und vergleicht seine errechnete mit der übermittelten. Besteht Übereinstimmung ist alles ok, bei nicht vorhandener Übereinstimmung wird das übermittelte Datenpaket einfach "übersehen" und vergessen. Eine Fehlermeldung erfolgt nicht. In der Konfigurationseinstellung kann für den Sender unter RR - XBee Retries in der Datei Networking & Security die Anzahl der Versuche bei einer missglückten Übertragung eingetragen werden. Standardmäßig ist ein Wert von 0 eingetragen.

6 - Berechnung der Prüfsumme

Die Prüfsumme wird aus den unterstrichenen Zahlen der sich wiederholenden Zahlenkolonnen gebildet.

Nicht berücksichtigt werden bei der Prüfsummenbildung neben der Prüfsumme selbst, das Zeichen für den Start einer Datenübertragung (0x7E) und die zwei Byte des Byte-Zählers (00 0A).

Addiert man alle unterstrichenen Zahlen (hexadezimal!!!), erhält man 0x016D (bitte überprüfen!). Subtrahiert man das lower 2-Tupel der Hex-Werte (0x6D) von 0xFF, erhält man die Prüfsumme, und die ist im hier vorliegenden Fall 92.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf