Elektroda.pl
Elektroda.pl
X
Arrow Multisolution Day
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sygnał video, wykrycie i poprawa sygnału synchronizacji

Mat_91 11 Lip 2012 23:06 2245 12
  • #1 11 Lip 2012 23:06
    Mat_91
    Poziom 25  

    Witam!
    Koledzy, mam problem :] Potrzebuje prostego urządzenia do wrednego zadania.

    Od jakiegoś czasu interesuje się RC FPV (First Person View :)). Problem leży w tym że jak model odleci daleko i sygnał video nadajnika słabnie odbiornik odbiera coraz więcej smieci, a co za tym idzie istnieje duża możliwość stracenia synchronizacji, a to z kolei powoduje przeważnie w większości jakich kolwiek TV "blue screen of death" z napisem "brak sygnału" lub podobne. Problem w tym że utrata sygnału synchronizacji na ułamek sekundy może spowodować BS'a na kilka sekund (z reguły tv nie wstają od razu po odzyskaniu poprawnej synchronizacji).

    A teraz do rzeczy. Co zrobić aby sygnał synchronizacji na wyjściu był zawsze poprawny? Chodzi o to aby to co wejdzie do układu było poprawnie przesłane dalej z POPRAWNYM sygnałem synchronizacji. W momencie błędnych sygnałów, na wyjściu może się nawet na ten ułamek sekundy pojawić goła panienka byle by synchro było poprawne i TV nie złapał blue screen'a a po odzyskaniu poprawnego sygnału wyświetlał natychmiast poprawne dane- najważniejsze założenie.
    Pierwsze co mi wpadło do głowy do ADC na wejściu i DAC na wyjściu, ale to raczej bez sensu bo trzeba by było bardzo, bardzo szybkich układów i jeszcze szybszego uC ktory by te wszystkie dane zebrał i obrobił. Poza tym cena- drugie założenie, ma być mała :).

    Więc myślałem żeby na wejściu dać szybki komparator i uruchamiać przerwanie który odmierzy 64uS jako czas trwania jednej ramki. Gdyby po tych 64uS nie nastąpiło następne przerwanie (czyli kolejny sygnał synchro) układ generował by własny sygnał, a potem dalej przepuszczał sygnał video taki jaki był na wejściu (nawet jeżeli to jest sam szum). Czyli działanie układu po utracie synchronizacji było by synchronizowane względem ostatniego sygnału synchro (ale to brzmi...). Tylko czy to ma sens? To może działać? I jaki układ dać na wyjściu? Sumator analogowy? Czy po prostu zwierać linie wyjścia do masy na czas trwania impulsu synchronizacji? Nie bardzo wiem od której strony się za to zabrać.

    Od razu dodam że nie istnieje na rynku podobny układ i nie da się zastosować gotowego układu. Były pomysły aby wykorzystać do tego celu niektóre scalone układy OSD ale mają tą wadę że w przypadku braku sygnału video generują własne sygnały synchronizacji, natomiast gdy jest podawany sygnał traktują go jako nadrzędne i tak czy inaczej gubią się gdy jest za dużo szumu.

    Jeżeli coś nie jasno opisałem to pytajcie.
    Jakieś rady lub sugestie?
    Pozdrawiam,
    Mateusz.

    0 12
  • Arrow Multisolution Day
  • #2 11 Lip 2012 23:45
    gaskoin
    Poziom 38  

    Mógłbyś coś napisać o kanale komunikacyjnym ? Ciężko się domyślić o co chodzi, a nikomu też raczej nie będzie się chciało szukać szczegółów fpv.

    Chodzi mi o sposób transmisji danych. Samolot -> jakieś urządzdenie -> TV ? Piszesz o wejściu/wyjściu ale nie piszesz czego.

    0
  • Arrow Multisolution Day
  • #3 11 Lip 2012 23:56
    Mat_91
    Poziom 25  

    Jasne, zapomniałem o tym napisać.
    Przykład kompletnego systemu FPV: Link

    Czyli kamerka, nadajnik z wejściem composite video PAL/NTSC i na końcu odbiornik z wyjściem composite video.

    Oczywiście nadajniki i odbiorniki są na różne częstotliwości i różne moce.

    Sygnał synchronizacji o którym wspominałem wcześniej odnosił się oczywiście do sygnałów synchro systemów PAL/NTSC o czym zapomniałem dodać i za co przepraszam.

    Wejście/wyjście odnosiło się do mojego układu który potrzebuje. Ma się on znajdować pomiędzy odbiornikiem video a telewizorem. Czyli na wejściu mojego układu X sprawdzam impulsy synchronizacji i to idzie na wyjście jeżeli wszystko jest ok i dalej na TV, jeżeli nie to dokładam moją synchronizacje i dalej przepuszczam resztę sygnału w niezmienionej formie do TV.

    0
  • #4 12 Lip 2012 00:01
    tmf
    Moderator Mikrokontrolery Projektowanie

    Jak odtwarzasz synchro do OSD? Masz PLL? Jeśli tak to prościej na MCU analizować wyjście z PLL. H-Sync może inicjować timer, który generuje V i H-Sync. Jeśli nie będzie wyzwolenia w zadanym czasie to sam powinien się wyzwolić, ew. opóźnienie można łatwo skompensować skróceniem impulsu synchronizacji - na to odbiorniki nie są za bardzo czułe.

    0
  • #5 12 Lip 2012 00:07
    Mat_91
    Poziom 25  

    tmf tylko że OSD jest pomiędzy kamerą a nadajnikiem i w to nie mam możliwości ingerencji. W trakcie transmisji na duże odległości sygnał jest zakłócany i to co pojawia się na wyjściu Video odbiornika (na ziemi) nie koniecznie musi przypominać sygnał video a raczej same śmieci. I to ten sygnał muszę analizować i wykrywać czy pojawia się synchronizacja czy nie. Pytanie tylko jak?

    0
  • Pomocny post
    #6 12 Lip 2012 00:14
    tmf
    Moderator Mikrokontrolery Projektowanie

    Czyli musisz odtworzyć synchronizację. Dodaj np. LM1881, będziesz miał impulsy synchronizacji. Je podajesz na MCU i badasz czy H-Sync pojawia się co określony czas - 64 us. Dokładnie wiesz kiedy ma się pojawić następny. Jeśli się pojawi to ok, jeśli się nie pojawi w czasie np. +/-400ns to go generujesz sam. Oczywiście trzeba dodać jeszcze analizę liczby linii żeby generować także V-Sync. V-Sync możesz też wykorzystać do ponownej synchronizacji z utraconym sygnałem.

    0
  • #7 12 Lip 2012 00:19
    Mat_91
    Poziom 25  

    O analizie liczby linii pamiętam cały czas. Bardziej mnie w tej chwili martwi to jak "wkleić" moje impulsy synchronizacji do wejściowego sygnału video. Nie mam na to żadnych pomysłów oprócz tego co napisałem w pierwszym poście.

    Ten LM1881 wygląda ciekawie, muszę przestudiować notę, dzięki:)

    0
  • #8 12 Lip 2012 00:24
    tmf
    Moderator Mikrokontrolery Projektowanie

    A brutalnie dajesz pin IO na wyjście sygnału iwystawiasz stan niski jak ma być synchronizacja. Robiłem tak OSD i działało ok.

    0
  • #9 12 Lip 2012 00:26
    Mat_91
    Poziom 25  

    No skoro tak:) Teraz tylko zamówię ten LM1881 i zobaczymy co z tego wyjdzie.

    0
  • #11 12 Lip 2012 18:09
    gaskoin
    Poziom 38  

    Można też próbować metod korelacyjnych do szukania sygnału synchronizacji + jakiś nieliniowy filtr dynamiczny (coś na pokrój kroczącego wienera). Ale jak powyżej - jest to raczej do zbadania, no i minus jest taki, że potrzebowałbyś próbkować sygnał a potem go odtwarzać. Idealny byłby tu jakiś DSP.

    Jesteś w stanie jakoś porównać sygnał przed wysłaniem i po dotarciu ? Może to wiele wnieść do analizy problemu :)

    0
  • #12 12 Lip 2012 19:53
    Mat_91
    Poziom 25  

    Chodzi o to że przy dużych odległościach istnieje duże prawdopodobieństwo że w wyniku zakłóceń sygnału utracę synchronizację lub TV jej nie rozpozna. Problem w tym że taka utrata synchro może trwać ułamek sekundy a TV zblokuje to na kilka-kilkanaście sekund. Nie muszę chyba opisywać jak niebezpieczne to może być kiedy model jest kilka km od nas i nie mamy wizji a w polu rażenia spadającego modelu mogą się znaleźć ludzie :/

    Jedyne co chcę uzyskać to wykrycie błędnego sygnału synchronizacji (lub jego braku) i w takim wypadku wstawienie własnego tak aby TV nie zgłupiał i myślał że ciągle dostaje poprawne dane (nawet jeżeli sygnał jest tak zakłócony że widać sam "śnieg" na TV, lepsze to niż nic bo nawet w tych śmieciach czasem można coś zobaczyć).

    Najprostszym rozwiązaniem wydaje się to zaproponowane przez tmf. Ale do póki nie mam układu to tego nie sprawdzę.

    Nawigator dzięki za lekturę jednak to stanowczo zbyt skomplikowane:) Nie potrzebuje super zaawansowanego układu rozpoznawania poprawnej synchronizacji tylko układu który wykrywa czy ta synchronizacja jest czy jej nie ma, nic więcej:)

    gaskoin niestety nie mam takiej możliwości. Nie mam nawet dostępu do oscyloskopu w obecnej chwili:/

    0
  • #13 19 Lut 2013 19:09
    pawel_x
    Poziom 13  

    Witam

    Powstało już takie urządzenie : http://rc-fpv.pl/viewtopic.php?t=12176

    Jest w trakcie ostatnich testów i wygląda na to, że za kilka dni będę miał ukończone. Zostało przetestowane na moich LCD z blue screenem i działa. Dokładnie jak działa to można zobaczyć sobie filmiki w wątku.

    0