Datenfunk mit dem AVR: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 19: | Zeile 19: | ||
Ferner können die Module offenbar nicht die '''Empfangsstärke''' messen oder bzw. ausgeben. | Ferner können die Module offenbar nicht die '''Empfangsstärke''' messen oder bzw. ausgeben. | ||
'''''Fehler im Beispielcode des Herstellers''''' | |||
Die Zeile "RFXX_WRT_CMD(0xC400);//1.66MHz, 2.2V" (Low Battery Detector and Clock Divider) spricht den falschen Adressbereich an und ueberschreibt die Einstellungen des AFC Command. Richtig ist (0xC000). Trotzdem funktioniert der Beispielcode - so lange man nicht den externen Takt nutzen moechte... | |||
Ueberhaupt sollte man bei den Commands nicht alles glauben, was die Kommentare als Setup vorgaukeln. Es gibt deutliche Abweichungen, unter anderem auch bei besagtem Clock Divider. | |||
= Verschlüsselung und Authenzität = | = Verschlüsselung und Authenzität = | ||
Parallel zum Netzwerkstack für die Funkmodule wird auch die [[Crypto-avr-lib]] entwickelt, welche hash- und verschlüsselungsfunktionen bietet, um den Datenverkehr der Geräte untereinander zu sichern. | Parallel zum Netzwerkstack für die Funkmodule wird auch die [[Crypto-avr-lib]] entwickelt, welche hash- und verschlüsselungsfunktionen bietet, um den Datenverkehr der Geräte untereinander zu sichern. |
Version vom 25. August 2007, 21:09 Uhr
Hardware
Die benutzten Transceiver gibt es bei verschiedenen Herstellern unter dem Namen RFM12 oder RF12. Sie können im 433 Mhz ISM Band und zusätzlich auf Frequenzen in der Umgebung von 315, 868 und 915 MHz funken.
In Deutschland sind die Module bei Pollin zum Preis von 8 Eur erhältlich, allerdings lohnt sich ab einer Menge von 10 oder mehr Modulen eine direkte Bestellung beim Hersteller (Produktseite).
Beispielcode
Im SVN ist Beispielcode Beispielcode hinterlegt, der die Module in Empfangsbereitschaft versetzt und ein empfangenes Byte mit den LEDs des Laborboards anzeigt. Wenn man Button 0 drückt, sendet das Modul.
Datenblätter
Auf der Pollin Homepage sind unvollständige Datenblätter und nicht funktionierender Beispielcode verzeichnet. Die beigelegte Papierdokumentation ist ebenso unbrauchbar. Von diesen ist ausdrücklich abzuraten!
Ein etwas brauchbareres, aber dennoch nicht ganz vollständiges Datenblatt findet sich auf der Herstellerseite: Herstellerseite.
Protokoll
Die erste Version des Datenaustauschprotokolls hat den Namen AirLAB v0. Es ist ein erste Entwicklung, die zunächst einmal in der Praxis erprobt werden muss.
Probleme
Die Module können scheinbar keine Kollisionen erkennen. Die erste Version des Protokolls arbeitet mit relativ kleinen Paketen (<= 260 Bytes), damit der Ether zum Einen möglichst schnell wieder frei wird und zum Anderen ganz einfach weil die partizipierenden Devices groessere Pakete zumeist garnicht handlen koennten.
Ferner können die Module offenbar nicht die Empfangsstärke messen oder bzw. ausgeben.
Fehler im Beispielcode des Herstellers
Die Zeile "RFXX_WRT_CMD(0xC400);//1.66MHz, 2.2V" (Low Battery Detector and Clock Divider) spricht den falschen Adressbereich an und ueberschreibt die Einstellungen des AFC Command. Richtig ist (0xC000). Trotzdem funktioniert der Beispielcode - so lange man nicht den externen Takt nutzen moechte...
Ueberhaupt sollte man bei den Commands nicht alles glauben, was die Kommentare als Setup vorgaukeln. Es gibt deutliche Abweichungen, unter anderem auch bei besagtem Clock Divider.
Verschlüsselung und Authenzität
Parallel zum Netzwerkstack für die Funkmodule wird auch die Crypto-avr-lib entwickelt, welche hash- und verschlüsselungsfunktionen bietet, um den Datenverkehr der Geräte untereinander zu sichern.