Zitat:
FIFOs sind dafür nicht geeignet, da liegst du richtig. Normalerweise parst man die Daten aus empfangenen Paketen raus und legt sie dann in geeigneten Datenstrukturen ab, wenn man sie für länger braucht. Insbesondere trennt man eigentlich den Netzwerkstack von der weiteren Datenverarbeitung, einfach der Modularisierung/Flexibilisierung wegen.
Zitat:
Thema Puffer:
Ich nehm für die Eingangs - Rohdaten gerne einen fixen Ringpuffer mit Schreib- und Lesezeigern.
Das schafft für den empfangenden Controller etwas Zeit für die Abarbeitung und es sollten keine Bytes verloren gehen.
Aus diesem Puffer kann man sich dann die Daten rausparsen und wieder Puffern oder in String Variablen oder struct's zur weiteren Verarbeitung ablegen.
Generell lauft es ja so ab, dass das RFM12 einen Interrupt verursacht in dem ich dann die Daten abholen kann. Wenn der Frame komplett ist, muss auf den Units natürlich entschlüsselt und geantwortet werden. Das würde ich auch noch in der ISR erledigen sodass dann das Frame im Reinformat im Buffer liegt um dann im normalen Programmablauf (nicht mehr zeitkritisch) abgearbeitet wird. (z.B.: LampeX in 3sec auf 10% dimmen)
Der Buffer soll die Schnittstelle zwischen Protokoll und Ausführung sein.
Zitat:
Meine "Waffe" für solche Fälle ist der IRF3708.
Hat schon bei 5V sehr geringen RDS On ( 12mOhm ).
Genügend Reserven ( 63A ) - Bis 10A ohne Kühlkörper.
Leicht erhältlich, Preislich OK.
Das klingt schon mal gut - vielen Dank!
Zitat:
Die RFM12 Funk Module sind etwas Tricky, hast Du schon etwas Erfahrung mit den Bausteinen?
Ich hab schon gelesen, dass die Dinger recht trickreich sind - allerdings ist der Preis natürlich TOP.
Erfahrung habe ich leider noch keine - aber die fehlt generell auf dem gesamten Microcontroller- und Elektronikbereich.
Ich denke die Umsetzung dieses Projekts kann im schlechtesten Fall noch Jahre in Anspruch nehmen.
Aber ich habe großes Interesse mir Fähigkeiten im Herstellen und Programmieren von Platinen in Kombination mit Microcontrollern anzueignen - insbesondere weil ich einen großen Mehrwert für mein Informatik-Studium daraus ziehen kann.
Zitat:
Wenn Du die Daten schon verschlüsseln willst, würde ich versuchen ein Protokoll zu nehmen, das auch zumindest eine Einzelbit- Fehlerkorrektur erlaubt.
Wobei ich den Sinn einer Verschlüsselung für Deinen Zweck eigentlich nicht so richtig erkennen kann - Ausser als Lerneffekt, oder Kopierschutz für eventuelle Nachbauer.
Also ist es ratsam einen Hamming Code in das Datenframe einzuarbeiten?
Verschlüsselung deshalb, weil ja auch recht sensible Daten über die Funkstrecke übertragen werden sollen (irgendwann mal zu mindest).
Zum Beispiel der Befehl zum Öffnen der Haustür kann - mitgehorcht und erneut eingesendet - kritisch werden. Um die Authentizität der übertragenen Daten zu wahren muss ich verschlüsseln. Mit der ID und der Sendezeit können Frames dann quasi nur 1x verwendet werden.