Forum: Mikrocontroller und Digitale Elektronik Protokoll für P2P-Wireless-Übertragung zwischen mehreren Geräten


von Paul (Gast)


Lesenswert?

Hallo,

mit dem RFM12-Funkmodul von Pollin (433MHz Band) in Verbindung mit einem 
ATtiny84-AVR versuche ich momentan ein Netzwerk zwischen mehreren dieser 
Geräte herzustellen.

Die Hardware und die grundlegenden Routinen stehen bereits, nur muss ich 
mich jetzt an ein Protokoll für die Übertragung wagen.

Hat hier jemand Erfahrungen, Links, Ideen oder Vorschläge für 
Funkübertragung zwischen mehr als zwei Endgeräten?

Wie gesagt, es gibt keinen Server, das Protokoll muss quasi Peer-2-Peer 
fähig sein.

Ich hoffe ihr könnt mir helfen. ;-)

Gruß,
Paul

von Timmo H. (masterfx)


Lesenswert?

Geht es dabei um kleine Datenblöcke oder eher größere Datenmengen? Du 
könntest dir z.B. so eine art Mini-TCP/IP machen. Jeder "rechner" 
bekommt eine ID (=>IP). Dann einfach einen kleinen Header, der z.B. 
Quelle,Ziel,Länge,Checksumme enthält und dann einfach dahinter die 
Daten. Gibt zig Möglichkeiten. Du könntest auch NMEA nehmen oder so. 
NMEA hätte den vorteil dass sie in ASCII sind => ohne Umwandlung lesbar, 
dafür natürlich ein ziemlich großer Overhead.

von Paul (Gast)


Lesenswert?

Hey,

danke für die Antwort. Bei der Anwendung handelt es sich um einen Chat, 
es werden also hauptsächliche kleine Blöcke Klartext übertragen.

Das mit der ID ist schon klar, aber ich weiß noch nicht wie ich es 
Timingtechnisch hinbekomme, dass nicht z.B. zufällig zwei Geräte 
gleichzeitig senden und dann natürlich nur Datenmüll herauskommt... :-/

Gruß,
Paul

von Mathi (Gast)


Lesenswert?

Schau Dir mal CSMA/CA an...

von lightninglord (Gast)


Lesenswert?

Schrieb dir doch dein eigenes Protokoll:

Header mit:

  * ID
  * Größe des Datenpaketes
  * Checksumme ( zb. CRC )

Datenblock mit deinem Text

EOF-Message


Du musst dann nur dafür sorgen das die anderen Teilnehmer, die gerade 
nicht an gefunkt werden bis zum EOF warten und dann erst wieder senden 
dürfen, damit haste auch abgesichert das es kein Datenwirwar gibt.
Am besten du deklarierst einen als Host, der die Kontrolle über das Netz 
hat.

von Frank Büttner (Gast)


Lesenswert?

Also ich würde vielleicht einen logische Ring aufbauen durch den ein 
Sende-Token läuft. Wenn sich die Anzahl der Stationen in deinem Chat nie 
ändert, ist das sicher ne einfache Möglichkeit.

Du vergibst jeder Station ne eindeutige Nummer. Am Anfang hat die 
Station mit der Nummer 0 das Sendetoken. Alle anderen Stationen 
überwachen den Äther und empfangen die Daten (einfache Pakete wie oben 
beschrieben). Sendet eine Station mal nix (weil sie ausgeschaltet ist) 
dann übernimmt nach einem Timeout die nächste in der Reihenfolge 
automatisch das Token.

von Paul (Gast)


Lesenswert?

Hi,

Token Ring fällt flach, da die Anzahl variiert..

Danke für die vielen Antworten, ich denke ich werde das mit MACA lösen. 
:-)

Gruß,
Paul

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.