Hallo!
Ich bin neu hier und möchte zunächst erst einmal ein großes Lob
aussprechen, dieses Forum hat mir schon in vielen Fragen gute Antworten
geliefert.
Zu meinem Problem: Ich habe eine sehr zeitkritische Anwendung:
Ein Sender sendet regelmäßig (alle paar Millisekunden) per Funk ein
Synchronisationssignal an alle drei, oder vier Empfänger. Es müssen
dabei keinerlei Daten übertragen werden, stattdessen sollen bei diesem
Signal alle Signalpins der Empfänger den Pegel wechseln. (ob high->low
oder low->high ist egal)
Diese werden dann an den Mikrocontroller geleitet und dort weiter
verarbeitet. Aber das spielt hier keine primäre Rolle.
Zwischen den Empfängern darf es nur Abweichungen von maximal bis zu 5µs
geben, also die Empfänger müssen fast zeitgleich schalten, und das
immer. Auch im bezug auf das Sendesignal. (Dort natürlich mit
reproduzierbarer Verzögerung, also abhängig von Entfernung usw.)
Die Entfernung der Empfänger zum Sender beträgt maximal einen Meter,
Frequenz und Modulation stelle ich mal frei.
Über Kabel wäre das relativ einfach zu realisieren, auch über IR wäre
das sicherlich machbar, nur über Funk?
Hat einer von euch möglicherweise schon Erfahrung mit solch
zeitkritischen Anwendungen, oder kann mir vllt. jemand geeignete
Empfänger nennen oder möglicherweise eine Firma, die so etwas Anbietet?
So wie ich gelesen habe ist selbstbau ja nicht zulässig und in
Datenblätter wird so eine Information nicht geführt.
Danke im Vorraus.
Gruß
Schau doch mal bei www.telecontrolli.com, die haben eine Menge
verschiedenster Module. Du kannst dort auch sicher eine solche Anfrage
starten. Ich denke, dir werden dir gerne antworten.
Vertrieb von Telecontrolli z.B. über www.rfsolutions.co.uk oder
www.hyline.de
Sowas lässt sich beispielsweise mit dem CC2420 von TI machen. Der kann
IEEE 802.15.4 und hat einen Start Frame Delimiter Ausgang. Der wechselt
bei Sender und Empfänger nahezu gleichzeitig den Pegel, wenn ein Paket
gesendet/empfangen wird. Damit lassen sich viele Empfänger gut
synchronisieren. Kann man ja über Brodcast machen, dann sprechen alle
gleichzeitig an. Ich nutze das, um ein Sensornetzwerk zu
synchronisieren.
Danke, der CC2420 ist ja schon sehr mächtig... Ich werde ihn in meine
Liste mit den möglichen Lösungen aufnehmen und dann nächste Woche
genauer anschauen.
Wie genau bekommst du die Synchrosisierung damit hin? Ich hatte als
ersten Versuch einen XBee von digi und hatte da leider Unterschiede von
bis zu 200µs. Deswegen wollte ich das ganze eher etwas Hardwarenäher
entwickeln.
Du hast doch sicher Versucht, zwei Module als Empfänger über Broadcast
anzusprechen und hast dabei mit dem Oszi an den I/O-Signalpins gemessen,
ob eine Verzögerung untereinander auftritt? Das wäre die große Frage,
wie groß diese Verzögerung maximal ist.
gruß
EDIT: oder die Unterschiede an den Start-Frame-Delimiter Ausgängen
Nein, ich synchronisiere jeden Empfänger einzeln, und zwar lasse ich auf
dem Master und den Slaves einen Timer mit einem 32kHz TCXO laufen. Der
SFD hängt an einem Capture Interrupt. Die Synchronisierung besteht aus 2
Paketen, das erste ermittelt per Capture den Zählerstand von Sender und
Empfänger, das 2. übermittelt diesen an den Slave, woraufhin der Slave
seinen Timer korrigiert. Somit hab ich die Timer synchron laufen. Der
SFD kommt auf max. 6µs Abweichung zwischen Sender und Empfänger. Durch
den 32kHz Takt an den Timern kann ich nur auf 30µs synchronisieren,
reicht aber in meiner Anwendung aus.
Wenn´s noch genauer sein soll: NanoNET, mit bissl Protokoll schaffen die
angeblich etwa 200ns Gleichlauf zwischen den Einheiten.
ok, das ist ein netter Ansatz, werde ich auch mal in Betracht ziehen.
Allerdings sind die 30µs für meine Anwendung noch zu viel, wie im ersten
Beitrag beschrieben benötige ich eine maximale Abweichung von
allerhöchstens 5µs zwischen allen Empfänger..
Um so weniger, desto besser, da ich mit dem System die Laufzeit einer
Ultraschallwelle von einem Punkt zu den jeweiligen umliegenden Sensoren
und deren Controller bestimmen will. Und dabei zählt jede µSekunde.
Ich weiß nicht, ob das so präzise über Funk überhaupt möglich ist, das
werde ich nur durch Testen von verschiedener Hardware und Ideen
herausfinden können. Schön wärs natürlich ;)
Gruß
Können sich die Empfänger sehen?
Wenn ja, könnte ein Blitzgerät die Lösung sein. Der Impuls ist kräftig
und sehr steilflankig. Und die Gleichheit ist auch gegeben, Stichwort
Lichtgeschwindigkeit. Da ist 300m = 1µs. Statt Blitzröhre wären auch
IR-Leds eine Idee, die können mit MHz blinken. Einige IR-Kopfhörer
arbeiten mit Trägerfrequenzen im 2.5MHz-Bereich.
Gruß
Jadeclaw
@supachris: nein, das würd ich doch nie tun wollen ;)
@jadeclaw: die Empfänger haben zwar Sichtkontakt, aber mein großes Ziel
ist es, genau so eine Abhängigkeit zu vermeiden. Mit IR hatte ich das
auch schon getestet und es wäre auch realisierbar, aber wie gesagt, das
ganze soll auch ohne Sichtkontakt und ohne bestimmte Ausrichtung
untereinander funktionieren können.
gruß
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.