Forum: Mikrocontroller und Digitale Elektronik ad-hoc-Funk Übertragung


von Coco J. (Firma: Student) (dathcoco)


Lesenswert?

Schönen guten Tag,

(Folgendes ist nur ein Gedankenspiel über die Realisierbarkeit)

Also der Plan ist, mehrere AVRs mit Funk zu vernetzten, geplant ist so 
~8 bis 10 Stück.

Gedacht habe ich mir Folgendes: Avrs haben intern eine Tabelle, in der 
Zeitstempel, Adresse des (ursprünglichen) Senders und die Datei drin 
sind.

Der AVR updated ledigtlich seine Zeile (um Daten zu senden), sendet 
jedoch die komplette Tabelle.

Im Empfangsmodus "hört" er nur was gesendet wird, und schaut ob er Daten 
mit neuem Zeitstempel empfängt (also neue Daten) und schreibt sie dann 
natürlich in seine Tabelle.

Mein Problem ist jedoch, wie mache ich das die sich nicht stören, sprich 
Daten durcheinander kommen, falls 2 AVRS auf die Idee kommen 
gleichzeitig zu senden.

Seid mir nicht böse, ich habe schon ein Weilchen gesucht, und bis auf 
Funkmodule im Preispereich 170€ (was eindeutig zu viel für mich ist) 
habe ich nichts brauchbares gefunden.

Wäre es Möglich das ganze mit : 
http://www.pollin.de/shop/dt/NDg4OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM12BP_433_Sende_Empfangsmodul.html 
oder 
http://www.dealextreme.com/p/nrf905-wireless-rf-module-w-antenna-141705?item=6 
zu realisieren?


Ich möchte jetzt nicht zu einer Lösung kommen, ich suche ledigtlich ein 
"ja, gibts schon", "ja, aber nicht mit den Funk-Chips" oder, "nein gehst 
du vollkommen falsch an, vielleicht so:", da ich das Projekt wohl eher 
in "mittelferner Zukunft" starte... oder auch nicht.

von .... (Gast)


Lesenswert?

CSMA/CA implementieren

von Coco J. (Firma: Student) (dathcoco)


Lesenswert?

also, hab mich mal ganz kurz etwas "schlau" gemacht...

Man nutzt das "Chanel-Prinzip" schickt ein Datenbit auf diesem Chanel 
und hört sofort ob danach nix kommt. Falls doch wird eine zufällige Zeit 
gewartet, und gleichzeitig gehört ob jemand senden möchte. Wenn nicht, 
starte ich die Prozedur neu und "hoffe" dass nicht nocheinmal die selbe 
Zeit gewartet wurde.

Da mehr-Chanel Empfänger wohl recht teuer sein sollten muss ich mich 
wohl mit einem Channel begnügen.

Habe ich das so richtig verstanden?

von Coco J. (Firma: Student) (dathcoco)


Lesenswert?

ok, dann noch das Hidden-Base-Problem

A möchte nach B senden, C möchte zu D senden,

B ist in reichweite von A und C

also sendet A zu B "möchte senden"

B antwortet "ok kannst"

C kapiert das und ist ruhig.

dann müssen aber alle gleichzeitig das senden, und dann kommt nen 
Datengewusel durch.. man könnte natürlich auch jedem der Peers 
entsprechend seiner Adresse nen kleines "delay" auferlegen... aber 
delays sind mist.. hab ich mal gehört.. ^^

von Dr. Sommer (Gast)


Lesenswert?

Definiere eines der Module als Basis, die reihum die anderen Module 
abfragt. Jedes dieser Module sendet nur auf eine solche Anfrage hin - 
somit ist gleichzeitiges senden ausgeschlossen. Das geht ganz wunderbar 
mit den RFM12 von Pollin, das CSMA Zeug geht damit nicht so wirklich

von Coco J. (Firma: Student) (dathcoco)


Lesenswert?

Wenn die Basis aber nun nicht mehr in Reichweite ist, da die AVRs mobil 
sein sollen (können), geht das ganze Konzept nicht auf..
(ne Infrastruktur hab ich auch schon gedacht.. aber verworfen wegen 
dieses Problems)


wie wärs an das Signal eine Priorität dran zu hängen, sagen wir 1 ms für 
Teilnehmer 1 , 2 ms für Teilnehmer 2 usw. dann Senden sie ihr "Senden" 
Bit, die anderen Antworten mit "Ok" und danach kommt die 
Datenübertragung...

von Wolfgang (Gast)


Lesenswert?

Wenn die Teilnehmerzahl fest ist und das Datenaufkommen nicht zu hoch 
ist, kann jeder einen festen Zeitslot bekommen, in dem er senden darf. 
Zur Synchronisation müssen sich alle regelmäßig melden und/oder über ein 
genaue Uhr verfügen.
Bei variable Teilnehmerzusammensetzung läßt sich die Zeitslotzuteilung 
auch dynamisch anpassen (SOTDMA)

von Frank K. (fchk)


Lesenswert?

Dieses Rad ist schon erfunden. Es nennt sich IEEE 802.15.4. Darauf 
kannst Du verschiedene Protokolle aufsetzen. Eines nennt sich ZigBee und 
ist relativ komplex, kann aber auch viel, und ist herstellerübergreifend 
standardisiert. Daneben gibts noch proprietäre Protokolle, die deutlich 
weniger Ressourcen brauchen, aber vielleicht nicht alles können.

Schau hier:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2664&param=en535761

http://www.atmel.com/devices/ATMEGA128RFA1.aspx

Daran, dass Atmel einen Mega128 als Basis verwendet, sieht Du schon, wie 
groß der vollständige ZigBee Stack ist.

IEEE 802.15.4 funkt im 2.4 GHz Band. Das wird auch für viele andere 
Dinge verwendet (WLAN, Bluetooth,...). Außerdem ist die Reichweite 
bedingt durch die Dämpfung im Mauerwerk begrenzt. Den proprietären MiWi 
Stack von Microchip kannst Du auch im 868MHz Band verwenden, das weitaus 
weniger überlaufen ist und weniger stark durch Mauerwerk und 
Feuchtigkeit (Wasser) gedämpft wird. Bedenke: In der Mikrowelle wird 2.4 
GHz zum Erhitzen von Wasser verwendet... Dafür wirst Du dann aber PICs 
einsetzen, aus Lizenzgründen. Das ist aber kein Nachteil, denn so ein 
PIC24 hat auch seine Vorteile.

fchk

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.