Skocz do zawartości

Obsługa RF - własna implementacja komunikacji


Sheppard25

Pomocna odpowiedź

Cześć

Mam pytanie o moduły RF, takie proste jak np ten: https://botland.com.pl/moduly-radiowe/3191-modul-radiowy-nadajnik-fs1000a-odbiornik-433-mhz-5904422331573.html

Mianowicie, czy te nadajniki transmitują dosłownie to co im podam na wejście DATA czy one coś robią z tym jeszcze? Dodają preambułę, dzielą to jakoś na pakiety? Interesuje mnie temat obsługi takiej transmisji, mianowicie chciałbym napisać własną bibliotekę, która to obsługuje (jak VirtualWire). W najprostszym wydaniu (mówię to jako laik - programista) byłoby to coś w stylu:

1. Zsychronizowanie timera mikrokontrolera do częstotliwości nadajnika

2. Wysłanie jaakiejś preambuły / bitów startu (odbiornik ma tę preambułę również zakodowaną więc wie kiedy odbierać dane) z częstotliwością nadajnika

3. Dane mogą lecieć np po 8 bitów (1 bajt) na pakiet i być dekodowane przez odbiornik

Czy mniej więcej tak to wygląda czy znacznie upraszczam 😜 ?

Pozdrawiam

Edytowano przez Sheppard25
Link do komentarza
Share on other sites

48 minut temu, etet100 napisał:

Przecież tam są dwa tranzystory. Raczej bym się nie spodziewał żadnej logiki. 
image.thumb.png.02ede63fd6475083741d95f78099805a.png

@etet100 nie moglem znalezc schematu, czasami w jakis malych kontrolerach sa super zaawansowane uklady. A wiesz w jaki sposob synchronizuje sie emiter z odbiornikiem? Nie chodzi o preambule bo to nie jest sposob sunchronizacji, chodzi mi raczej o to ze nawet jak obs sluchaja na tych 433 MHz to nadal jeden moze probkowac z przesunieciem wzgledem drugiego i zle odbierac bity. 

Link do komentarza
Share on other sites

(edytowany)

Biorąc pod uwagę że jest tam tranzystor kluczujący możesz jedynie włączać lub wyłączać nośną. A zauważ że taki pilot do tv działa na tej samej zasadzie jest tam kluczowanie nośnej a tv odbiera zawsze niezawodnie. Są różne metody kodowania sygnału, na początek możesz spróbować dostosować RC5 

Z resztą do tych nadajników/odbiorników były dedykowane układy motorolli, nie pomnę teraz symbolu 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@_LM_ nie do konca rozumiem nomenklature ale z tego co wyguglalem chodzi Ci o to ze jest tam zwykly tranzystor ktory wlacza nadawanie i wylacza i nawet jak nadajnik i odbiornik nie sa idealnie zsynchronizowane to i tak odbiornik o dziwo dobrze odczytuje dane

Link do komentarza
Share on other sites

To się nazywa kodowaniem Manchester pierwsze dwa bity służą właśnie do synchronizacji, te impulsy służą do odzyskania stanu zegara po stronie nadajnika. Powiedzmy że odbiornik normalnie jest w stanie wysokim. Kiedy nadajnik zaczyna komunikację po stronie odbiornika masz zbocze opadające, odbiornik zaczyna liczyć czas do następnego narastającego i w ten sposób "wie" ile to zajmuje czasu. Potem pomiar czasu impulsu w stanie wysokim i w ten sposób z pewną tolerancją możemy oszacować jak czytać kolejne bity. Ogólnie bardzo ciekawe to jest ale nie jestem w stanie teraz opisać dokładnie z telefonu. Poszukaj kodowanie Manchester

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)
29 minut temu, _LM_ napisał:

To się nazywa kodowaniem Manchester pierwsze dwa bity służą właśnie do synchronizacji, te impulsy służą do odzyskania stanu zegara po stronie nadajnika. Powiedzmy że odbiornik normalnie jest w stanie wysokim. Kiedy nadajnik zaczyna komunikację po stronie odbiornika masz zbocze opadające, odbiornik zaczyna liczyć czas do następnego narastającego i w ten sposób "wie" ile to zajmuje czasu. Potem pomiar czasu impulsu w stanie wysokim i w ten sposób z pewną tolerancją możemy oszacować jak czytać kolejne bity. Ogólnie bardzo ciekawe to jest ale nie jestem w stanie teraz opisać dokładnie z telefonu. Poszukaj kodowanie Manchester

@_LM_ dzieki wielkie a powiedz mi jeszcze czy mozna to wydajnie kodowac i debugowac bez oscyloskopu lub/i analizatora sygnalow? 

Edytowano przez Sheppard25
Link do komentarza
Share on other sites

Musisz wiedzieć ile zajmuje pełna ramka danych. Dodatkowo zastosować CRC i masz niezawodną komunikację. Zaś o odstrojenie generatora w nadajniku i odbiorniku nie martwiłbym się bo masz tam stabilizację kwarcem 

Link do komentarza
Share on other sites

Da się to zrobić ale musisz wiedzieć w jaki sposób chcesz kodować informacje nie bez przypadku podałem RC5 na początek. Czyli robisz "pilota" na jednym mikrokontrolerze i odbiornik na drugim 

Link do komentarza
Share on other sites

(edytowany)

@_LM_ dzieki, troche lektury i wyprowadzilem sie z bledu. Cale zycie zakladalem ze czestotliwosc w jakis sposob determinuje predkosc przeslu i dane sa wlasnie jakos w niej zapisane a to jest prostsze, po prostu nosna pojawia sie i zanika i to odpowiada 1 i 0 (zaleznie czy zakodujemy np w Manchester) a sama czestotliwosc glownie odpowiada za zasiegtej fali, zaklocenia czy ilosc kanalow a nie szybkosc transmisji. Nic nie trzeba dzielic na mikrokontrolerze przez czestotliwosc fali, od tego jest bitrate. Popraw(cie) mnie prosze jesli sie myle

Edytowano przez Sheppard25
Link do komentarza
Share on other sites

(edytowany)

Szybkość transferu też 🙂 Takim przykładem kodowania danych na jednej linii są popularne stacje pogodowe, kiedyś szukałem informacji jak taki sygnał przechwycić. 

Co doprowadziło do strony opisującej jak to działa https://www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/ a więc sposobów i możliwości jest sporo. 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Na krótkim dystansie zadziała. Na 433MHz - trzeba by sprawdzić ale kilka cm drutu powinno wystarczyć. Są na to kalkulatory lub wziąć miarę z gotowca  

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

@_LM_Ok jak sa kalkulatory gdzie podadza mi dlugosc drutu to git, do debugowania na krotki dystans mowisz ze nie trzeba? Wlasnie tu mam pytania poniekąd spokrewnione:

1. Czy jeżeli ustawiam na pin tego modułu RF stany 0 lub 1 to ten moduł już nadaje? Tzn w jaki sposób miałbym "wyłączać" nośną tak aby wysyłać kolejne bity? Ustawiając pin na jakiś tan niezdefiniowany? Chyba nie odłączając zasilanie modułu bo żadne schematy nie uwzględniają czegoś takiego.

I drugie pytanie o debugowanie

2. Czy jeżeli ustawiam na stałe stan wysoki na nadajniku, to zakładając że wtedy ten nadajnik stale nadaje jedynkę nie powinienem mieć również stanu wysokiego na odbiorniku? Zapinam się tam oscyloskopem niestety napięcie mi tam szaleje od 0 do ok. 3V i to niezależnie od tego czy nadajnik jest włączony czy nie. Kwestia anteny?

Edytowano przez Sheppard25
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.