www.mikrocontroller.net

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


Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal CSMA/CA an...

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank Büttner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.