Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Moduł radiowy 433MHz. Czy da sie odbierać równocześnie...?

kcab
-
-
Posty:20
Rejestracja:30 paź 2006, o 17:38
Lokalizacja:Warszawa
Moduł radiowy 433MHz. Czy da sie odbierać równocześnie...?

Postautor: kcab » 3 gru 2006, o 23:00

Witam!

Posiadam moduł radiowy Radiometrixa BiM2-433-64-5V.
Oto link do specyfikacji w *.html:
http://www.radiometrix.co.uk/products/bim2.htm

Jeden moduł pracuje w trybie odbioru a kilkanaście innych w trybie nadawania. Czy jeśli nadajniki (moduły w trybie nadawania) wysyłają równocześnie dane (ramke dwudziesto bajtową) to odbiornik może poprawnie te dane odebrać? Czy będzie może tak że wszystkie dane (bity w ramkach) sie poprzeplatajai wyjdą śmieci...?

Dodam że każda ramka składa się z bajtu &h55, &hFF, adres odbiornika, adres nadajnika, dane...

Proszę kolegów o podpowiedź. Pozdrawiam ŻUBR :)

MDz
-
-
Posty:365
Rejestracja:29 mar 2003, o 13:35
Lokalizacja:Warszawa
Kontaktowanie:

Postautor: MDz » 4 gru 2006, o 04:24

W ogólnym przypadku sygnały pochodzące z dwóch nadajników nałożą się a Rx odbierze sieczkę. Wprawdzie może się zdarzyć, że odbierane sygnały będą się znacznie różnić poziomem i sygnał z jednego nadajnika całkowicie "przykryje" sygnał z drugiego, ale i tak stracisz transmisję z co najmniej jednego źródła. Zatem musisz kierować ruchem w sieci radiowej.

Możesz to zrobić na kilka sposobów, np:
1)
Przydzielając jednej stacji funkcję mastera dyrygującego ruchem, rozsyłającego znacznik uprawniający wybranego slave'a (jedną z pozostałych stacji) do nadawania. Taki znacznik miałby ściśle określony czas ważności. Jeżeli slave nie odpowie z zadanym czasie to traci prawo głosu. A może nie odpowiedzieć z kilku przyczyn, np:
- znacznik uległ zniekształceniu w torze radiowym i nie został poprawnie rozpoznany przez slave'a
- slave nie działa
- odpowiedź nadana przez slave'a została zakłócona i nie dotarła w rozpoznawalnej postaci do mastera.

2)
W przypadku, gdy ruch w sieci jest niewielki a tym samym niewielkie prawdopodobieństwo kolizji to można pomyśleć o jakiejś uproszczonej wersji CSMA/CD:
( http://pl.wikipedia.org/wiki/CSMA/CD )
- Każdy NADAWCA, przed nadawaniem, sprawdza na wyjściu CD modułu (Carrier Detect) czy właśnie nie odbywa się jakaś transmisja. Jest to pierwszy krok zmniejszający prawdopodobieństwo kolizji (Carrier Sense).
- Jeżeli łącze jest wolne to NADAWCA wysyła swoją ramkę z dodanym identyfikatorem (adresem odbiorcy, zwrotnym adresem nadawcy, kolejnym numerem ramki, kodem wiadomości... i co tam jeszcze bedzie potrzebne) oraz CRC.
- ODBIORCA odbiera ramkę, weryfikuje CRC i krótkim komunikatem skierowanym do NADAWCY potwierdza przyjęcie poprawnej wiadomości.
- Jeżeli oryginalny pakiet został zniekształcony (na skutek kolizji lub zakłóceń spoza sieci) to ODBIORCA go nie rozpozna i w zadanym czasie nie potwierdzi odbioru. W takim przypadku NADAWCA po odczekaniu _losowego_ czasu opóźnienia powtarza swoją transmisję. Jeżeli zakłócenie było skutkiem kolizji (mimo kontroli stanu CD dwaj nadawcy jednak zaczęli nadawać równocześnie) to po wprowadzeniu dodatkowego, losowego opóźnienia retransmisje nie powinny się już nałożyć.

Różnica wobec klasycznego "ethernetowego" CSMA/CD polega na tym, że nie masz możliwości wiarygodnego monitorowania własnej transmisji (odbiornik ustawiony obok nadajnika i tak odbierze tylko ten jeden sygnał gubiąc wszelkie inne źródła o niższym poziomie). Dlatego pozostaje jedynie weryfikacja poprawności za pomocą komunikatów zwrotnych.

Ogólnie rzecz biorąc łącze radiowe jest zawodne i nigdy nie masz pewności czy komunikat dotrze bez zakłóceń. Dlatego pomijając najprostsze zastosowania (np. dzwonek bezprzewodowy) w każdym przypadku trzeba wziąć pod uwagę kontrolę integralności wiadomości (sumy kontrolne) i potwierdzanie odbioru.

Hint:
Może się przyda (HTH SNAP): http://www.hth.com/snap .

--
MDz

kcab
-
-
Posty:20
Rejestracja:30 paź 2006, o 17:38
Lokalizacja:Warszawa

Postautor: kcab » 4 gru 2006, o 09:33

Wow. Jeste, b. wdzieczny za wyczerpującą odpowiedź.
JA rozwiąząłem problem w tren sposób.
Jest 800 hostów (nadajników) i jeden odbiornik.
Hosty mają adresy od 1 właśnie do 800. I teraz, każdy HOST ma określoną chwile na sekunde lub kilka sekund w której wysyła swoją ramkę. Nastęnie jest szczelina czasowa czyli przerwa w nadawaniu (żaden z hostów nie nadaje), po niej kolejny host o innym adresie wysyła swoją ramke. Odbiornik jest zawsze w trybie odbierania (bez potwierdzenia transmisji) i uruchamia podprogram odbioru jak tylko nastąpi przerwanie na CD.

Możliwości modułów radiowych pozwoliły na zmieszczenie w jednej sekundzie 80 hostów, czyli wysłanie ramek z 800 hostów zajmie 10sekund. W przeciogu tego czasu każdy host tylko raz wyśle swojaramkę. Po tym czasie sytuaxcja siepowtarza i tak 3 razy.

W tym rozwiazaniu nie ma możliwości "najechania" na inną ramke. :) Nie ma potrzeby wysyłania potwierdzenia, tym bardziej że przełączenie w tryb nadawania, wysłąnie potwierdzenia i przełączenia w tryb odbioru zajmuje troche cennego czasu w napiętym terminarzu ODBIORNIKA :)

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 4 gru 2006, o 10:59

W tym rozwiazaniu nie ma możliwości "najechania" na inną ramke. :) Nie ma potrzeby wysyłania potwierdzenia,
Tia... pod warunkiem, ze uda Ci sie je zsynchronizowac, a to wcale nie musi byc takie latwe. No chyba ze masz jeszcze jakis "impuls"...

kcab
-
-
Posty:20
Rejestracja:30 paź 2006, o 17:38
Lokalizacja:Warszawa

Postautor: kcab » 4 gru 2006, o 13:48

uK na którym, pracuje ma dokładny timer o rozdzielczości 16bitów, po przepełnieniu jest ładowany tąsamawartością co wczesniej. To znakomity wzorzecz czasu :p
Jeślichodzi o synchronizacje to broadcast załątwia sprawe (wysłanie do wszystkich nadajników jednoczesnie informacji o synchronizacji) :p

MDz
-
-
Posty:365
Rejestracja:29 mar 2003, o 13:35
Lokalizacja:Warszawa
Kontaktowanie:

Postautor: MDz » 4 gru 2006, o 15:18

uK na którym, pracuje ma dokładny timer o rozdzielczości 16bitów, po przepełnieniu jest ładowany tąsamawartością co wczesniej. To znakomity wzorzecz czasu.
Nie timer jest ważny a _źródło_ z jakiego się go taktuje. Z jakiego kwarcu go popędzasz? Jakiegoś taniego kwarcu "do uC"? No to nie spodziewaj się stabilności lepszej niz 1e-6 i zgodności pomiędzy kwarcami z jednej szuflady lepszej niż 1e-5.
Jeśli chodzi o synchronizacje to broadcast załątwia sprawe (wysłanie do wszystkich nadajników jednoczesnie informacji o synchronizacji).
A co bedzie jeżeli N (N=0...800) z tych 800 odbiorników owego broadcastu nie odbierze? (To jest łącze radiowe więc zawsze ma prawo pojawić się jakieś zakłócenie z obcego źródła.)
Nie mając aktualnej synchronizacji wyłączą się? Czy zaryzykują nadawanie w ciemno i rozsynchronizowanie całej sieci?

IMHO:
Synchronizacja jest ważna przez ściśle określony czas od ostatniego broadcastu. Prawo do nadawania może mieć tylko nadajnik posiadający aktualny "certyfikat". Ten, który aktualnego broadcatu "synchro" nie dostanie, może jeszcze przez jakiś rezerwowy czas nadawać ramki z ustawioną flagą NO-SYNC (informującą MASTERA o konieczności powtórzenia broadcastu). A jeżeli nadal tego "synchro" nie dostanie to pozostaje mu tylko wyłaczyć się i czekać na synchronizację.

Zresztą jeżeli nadajniki mają pracować cyklicznie to już po jednym obiegu MASTER będzie wiedział który z nadajników nie działa (lub został zakłócony). Jeżeli brak ramki z danego nadajnika się powtórzy, to będzie to dobra przesłanka do powtórzenia synchronizacji.

--
MDz

kcab
-
-
Posty:20
Rejestracja:30 paź 2006, o 17:38
Lokalizacja:Warszawa

CCC

Postautor: kcab » 5 gru 2006, o 02:29

transmisja z potwierdzniami bedzie trwałą zbyt długo :)

liczenie odebranych hostow jest dobrym rozwiazaniem>

apropos niedotarcia broadcastu< mozna kilka razy powtorzyc broadcast dla pewnosci ( nadajnikom juz zsynchronizowanym to nie przeszkodzi)

dziekuje za wyczerpujace odpowiedzi

jesli moj projekt wypali< klatka browara dla ciebie :p

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości