Hallo,
ich habe ein Board mit einem 32Bit-ARM7-Mikrocontroller AT91SAM7X512 und
einem 2,4 GHz Transceiver AT86RF231. Von diesem Board habe ich mehrer.
Wie kann ich nun die einzelnen Boards ansprechen, ich meine wie
programmiere ich das in C.
Ich benutze Eclipse mit openocd und einen Olimex Programmieradapter.
Leider stehe ich vollkommen auf dem Schlauch wie ich die Kommunikation
programmieren kann.
Deshalb bitte ich euch um Hilfe.
Was die AT86RF231 Chips implementieren ist IEEE 802.15.4, welches die
Grundlage zu ZigBee ist. Um Datenpackete nach ZigBee Standard zu
versenden ist allerdings noch so einiges an zusaetzlicher Software
noetig.
Zum Glueck stellt Atmel da passende Blibliotheken zur Verfuergung.
Ausgangspunkt ist z.B.:
http://www.atmel.com/products/zigbee/software.asp?source=cms&family_id=676
Auch hilfreich durfte etwas Grundlagenwissen zu ZigBee sein, also z.B.
eines der vielen Buecher, die es zu diesem Thema schon gibt.
Auch gibt es natuerlich den ZigBee Standard selbst, der allerdings als
Einstieg eher harte Kost ist. Die Standards lassen sich von
http://www.zigbee.org
nach Registrierung herunterladen.
Nicht zuletzt sollte man sich die Frage stellen, ob es wirklich ZigBee
sein soll/muss ? Eventuell ist eine andere Loesung, durchaus auf IEEE
802.14.4 basierend, einfacher zu implementieren ? Aber um das zu
beurteilen muesste man besser das Problem verstehen, welches Du zu
loesen versuchst.
ZigZeg
Ich habe mir die Bibliotheken von Atmel schon heruntergeladen, doch ich
kann damit wenig anfangen.
Mein Problem besteht daran diese Bibliothek sinvoll zu nutzen. Wo finde
das das zum Bespiel, wie ich Daten von A nach B schicken kann.
Es sollte schon ZigBee sein, da es ja für Low Power Anwendungen
geschaffen wurde. Ich möchte ganz einfach erstmal nur Daten von einem
Punkt zum anderen Punkt via.ZigBee übertragen.
Carsten B. schrieb:> Ich habe mir die Bibliotheken von Atmel schon heruntergeladen, doch ich> kann damit wenig anfangen.
ZigBee ist durchaus nicht einfach.
> Mein Problem besteht daran diese Bibliothek sinvoll zu nutzen. Wo finde> das das zum Bespiel, wie ich Daten von A nach B schicken kann.
Zur Not mal den Atmel Support fragen ?
> Es sollte schon ZigBee sein, da es ja für Low Power Anwendungen> geschaffen wurde. Ich möchte ganz einfach erstmal nur Daten von einem> Punkt zum anderen Punkt via.ZigBee übertragen.
Punkt ist: Zum Versenden verwendet ZigBee 802.14.4 Packete. Mann kann
direkt solche Packete senden, das braucht (zum Senden) die gleiche
Energie (evtl. kann das Packet kuerzer sein), und man spart viel
Overhead.
ZigBee kann tolle Dinge, z.B. Packete ueber mehrere Stationen
weiterleiten. Braucht man aber manchmal nicht => unnoetiger Overhead.
Bevor ich mich mit dem Support herum ärgere, wollte ich es hier erst im
Forum probieren, ob mir jemand helfen kann.
Hier sind ja schlaue Köpfe angemeldet.
Hast du sonst noch ein Vorschlag wo ich Informationen bekomme? Vll. ein
Tutorial?
Also wenn es kein vermaschtes Netzwerk mit automatischer An- un
Abmeldung sein muss, würde ich dringend von ZigBee abraten. Ich hatte
das in meiner Diplomarbeit versucht, und bin zu dem Schluss gekommen,
dass es für low-power kaum sinnvoll ist (weil die An- und Abmeldung
elend viel Strom frisst, und die Router immer an sein müssen), und für
Sensor-Netzwerke, die einen zeitlichen Bezug zwischen den Messdaten
herstellen müssen, erst recht nicht. Ich hab dann ein eigenes, schlankes
Protokoll auf der Basis von 802.15.4 implementiert, was wesentlich
robuster gegen Störer (Bluetooth, WLAN) ist, Synchronisierung der Knoten
auf weniger als 30µs Genauigkeit erlaubt und viel stromsparender als
ZigBee ist. Natürlich kann das kein Routing usw. aber war bei uns
überhaupt nicht nötig.
Danke für dein sehr nützlich Rat. Ich benötige aber ein ZigBee Netz, da
führt kein Weg dran vorbei (ist eine feste Vorgabe).
Kannst du mir deine Erkenntnisse mitteilen die du während deinder DA
gemacht hast (ich gehe mal davon aus, dass du zu Anfang ZigBee benutzt
hast und dann umgeschwenkt bist)?
Was mich am meisten Interressiert ist der Aspekt, wenn ich mehrer Knoten
habe wie realisiere ich da in C die Kommunikation. Gibt es in der
Bibliothek von Atmel spezielle Funktionen die man verwenden kann? Oder
besser wie läuft das überhaupt ab.
Noch was anderes, warum hat man ZigBee überhaupt entwickelt? In der
Industrie wird das doch garnicht so richtig eingesetzt und ist meines
Wissens auch nicht weit verbreitet. Ich meine Engerieersparnis ist für
mich kein guter Grung, wenn die Datenrate zu gering ist.
Ich habe in der DA ZigBee genommen, da war zu wenig Zeit, was eigenes zu
machen. Das war 2006/2007 und da gabs die Atmel noch nicht so. Ich hatte
die Telegesis ETRX Module mit dem MSP430 verwendet. In meinen Augen ist
ZigBee eine Totgeburt, damals hieß es auf allen Pages bei denen noch
"Sensor network" usw. aber das haben die ja längst rausgenommen. Ich
kann dir da also nicht besonders weiter helfen.
Wenn an ZigBee kein Weg vorbeifuehrt, dann fuehrt auch kein Weg an einem
Satz Buechern wie "Ich und Zigbee" vorbei. Bei Zigbee ist das Anmelden
zum Beispiel viel einfacher wie bei Bluetooth. Daher ist bei wechselnden
Verbindungen Zigbee viel stromsparender.
Ich hab auch einen Satz Sendemodule, die ich mit einem Mesh Protokol
versehen muss. Das Protokol ist noch unbestimmt.
Easylocks säubern
Carsten B. schrieb:> Das mit dem Büchern ist glaube ich eine ganz gute Idee. Kannst du mir da> eins empfehlen?
Ich habe
Kupris/Sikora, Franzis Verlag: ZigBee: Datenfunk mit IEEE 802.15.4 und
ZigBee
Vermittelt einen guten Überblick, aber ist leider stellenweise etwas
Freescale lastig. Auch die beiliegende CD enthält wohl nur für Freescale
interessantes Material. Auch ist das Buch nicht auf dem neuesten Stand,
was aber nicht so schlimm ist. Ist ja auch fast unmöglich, da der
Standard sich ständig weiter entwickelt.
Auf jeden Fall viele Grundlagen, also optimal als Basis für ein
Grundlagenkapitel der DA (natürlich nicht abschreiben ;-) )
Ich habe mein Exemplar günstig gebraucht gekauft.
Zum mal reinschauen einfach auf books.google.de nach ZigBee suchen.
Oder Du schaust mal was die Hochschulbibliothek so hergibt.