Będę miał przewód o długości do 1000 mz wieloma węzłami podłączonymi do niego. Przewód będzie przebiegał wzdłuż magistrali CAN i przewodu uziemienia i musi przesyłać sygnał zegara o częstotliwości prostokątnej 1 kHz 50% do każdego węzła.
Uruchomię to z mikrokontrolera 3,3 V, a sygnał będzie odbierany przez mikrokontroler 3,3 V oraz obwód pomiaru czasu.
Krótko mówiąc, zegar będzie używany jako czas globalny, a obwód pomiaru czasu określi różnicę czasu między zdarzeniem a zboczem zegara. Ten obwód jest w stanie mierzyć z dokładnością około 0,1 ns. Idealnym scenariuszem jest ustawienie zegara tak precyzyjnego, jak obwód pomiaru czasu.
Każde opóźnienie od mastera do węzła jest mierzone / znane i uwzględniane.
Co mogę zrobić, aby zwiększyć niezawodność i stabilność tego przewodu / sygnału?
Ponieważ jest to bardzo wolny zegar, wyobrażam sobie, że nie trzeba wykonywać żadnych rozległych prac i że coś prostego, jak wyzwalacz Schmitta w węzłach, wystarczy.
Oto diagram:
Aby zmierzyć opóźnienia we wszystkich węzłach, master zatrzymuje pracę wszystkich węzłów (Komunikuje to przez CAN). Następnie prosi pierwszy węzeł o odzwierciedlenie sygnału, który otrzyma drugą linią. Wszystkie inne węzły pozostawią teraz przewody pływające.
Urządzenie główne ustawia prawy przewód w stan wysoki, wyzwalając uruchomienie obwodu czasowego. Po pewnym czasie sygnał dotrze do węzła, który przepuści go na drugiej linii. Po kolejnym opóźnieniu master otrzyma go z powrotem, co zatrzyma obwód czasowy.
Teraz master może odczytać wartość obwodu czasowego i określić opóźnienie. Gdy wszystkie opóźnienia węzłów są znane, master rozpocznie operację. Wszystkie węzły pozostawią przewód powrotny bez ruchu i przyjmą przewód zegara (prawy master) jako wejście.
Gdy zdarzenie ma miejsce w jednym z węzłów, wyzwoli obwód czasowy. Następny impuls zegara zatrzyma obwód czasu. Znamy teraz czas między początkiem zdarzenia a następnym impulsem zegarowym. Węzeł odsyła, z jakim zliczaniem zegara zdarzenie zostało wykryte i ile czasu wskazał obwód czasu.Wraz ze zmierzonymi opóźnieniami, mistrz będzie mógł uzyskać globalny czas zdarzenia.
Aha, jaka dokładność jest akceptowalna: cel wynosi 1 ns, byłby zadowolony z 3 ns i byłby w porządku przy 10 ns.W zależności od ostatecznego projektu systemu może istnieć możliwość wielokrotnego wyzwalania zdarzenia i uśrednienia wyników, co również poprawiłoby dokładność.
Właściwy czas nie jest tworzony przeze mnie, ale przez TI. TDC7200
Aplikacja to TDOA.Czasy zdarzeń są wprowadzane do algorytmu w celu określenia, skąd pochodzi zdarzenie.Wydarzenie polega na wykryciu sygnału radiowego (co również będzie wyzwaniem, aby uzyskać taką dokładność, jak chcę).