kramann.info
© Guido Kramann

Login: Passwort:










7.8 Broadcast

Wie kann ein ATmega32 an mehrere andere ATmega32 Daten via RS232 senden?

  • Im folgenden Aufbau gibt es drei beteiligte Mikrocontroller M1, M2, M3:
  • M1 sendet Byte-Zahlen abwechselnd an M2 und M3.
  • Die Übertragung geschieht über die RS232-Schnittstelle.
  • TxD von M1 ist deshalb sowohl mit RxD von M2, als auch mit RxD von M3 verbunden.
  • Hier der schematische Aufbau:
Schema

Bild 7.8-1: Schematischer Aufbau für Broadcast.

  • Es sollen von M1 nun aber alternierend Daten an M2 und M3 geschickt werden.
  • Dies gelingt durch Aufteilen des gesendeten Zeichens in einen Datenteil und einen Empfängerteil:
  • Nur die unteren vier Bit eines gesendeten Bytes sind Daten, die oberen vier Bit dienen dazu, den Empfänger festzulegen.
  • Somit könnten vier verschiedene Empfänger (M2, M3, M4, M5) in beliebiger Kombination festgelegt werden.
  • Beispiele:
Gesendetes Byte angesprochene Empfänger Gesendete Zahl
0b00010011 M2 3
0b00100111 M3 7
0b00100101 M2 und M3 5
0b11110101 M2, M3, M4 und M5 5
0b11111111 M2, M3, M4 und M5 15

Tabelle 7.8-1: Beispiele für Empfänger-Konfigurationen und übertragene Daten

  • Als Versuch werden nun drei Boards aufgebaut M1, M2 und M3.
  • M1 zählt in der Variablen akku immer von 0 bis 9 und sendet diese Zahl an M2.
  • Außerdem sendet M1 immer 9-akku an M3.
  • Alle Daten werden jeweils angezeigt.
  • Es ergibt sich folgende Abfolge:
M1   M2   M3
0    0    
 9   0    9
1    1    9
 8   1    8
2    2    8
 7   2    7
3    3    7
 6   3    6
4    4    6
 5   4    5
5    5    5
 4   5    4
6    6    4
 3   6    3
7    7    3
 2   7    2
8    8    2
 1   8    1
9    9    1
 0   9    0
0    0    0 
 9   0    9
...  ...  ...
 

Code 7.8-1: Anzeige von M1, M2, und M3

Schema

Bild 7.8-2: Versuchsaufbau

broadcast.zip - Projektdateien für M1, M2 und M3.