Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Tu możesz pisać o swoich problemach z pisaniem programów w języku C dla AVR.
Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » wtorek 13 wrz 2016, 12:37

Witam.

Chciałbym przetestować układy do komunikacji radiowej ISM (nrf24l01, rfm73), a dokładnie zasięg i poprawność odebranych danych. Tutaj moje pytanie - jak dokonać poprawności ilości odebranych danych/pakietów?

Myślałem, żeby zrobić to w ten sposób:
Wysyłać co określony okres czasu jakiś pakiet danych (np. co 1 sekundę 8 bajtów, wcześniej zdefiniowych) i sprawdzać w odbiorniku czy dane zostały poprawnie odebrane - porównywać z wcześniej zdefiniowanymi 8 bajtami. Następnie z większego okresu czasu (np 60s) obliczać procent poprawnie odebranych danych, a także wyświetlić ilość poprawnie odebranych danych do ilości wysłanych danych.

Czy może macie jakiś inny pomysł?

Pozdrawiam.
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: Antystatyczny » wtorek 13 wrz 2016, 18:38

Proponuję również test wysłania samych zer oraz samych jedynek.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » wtorek 13 wrz 2016, 21:04

No faktycznie. Mogę przecież sprawdzać tylko CRC.

Dzięki za podpowiedzi. W przypadku jakichś pytań będę się zgłaszał.
Jak już wykonam testy to się podzielę wynikami.
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1168
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: Antystatyczny » wtorek 13 wrz 2016, 21:34

Do prostych transmisji wystarczy zwykłe xorowanie danych, tak jak to ma miejsce w przypadku nadawania/odbioru zdań NMEA 0183. jeśli taka metoda nie będzie satysfakcjonująca, to zaimplementuj CRC... No chyba, że CRC jest Ci łatwiej umieścić w kodzie.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: dambo » wtorek 13 wrz 2016, 22:13

nrf24l01 ma w swoim "pakiecie danych" wyliczanie crc i auto ACK
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » czwartek 15 wrz 2016, 08:54

Zrobiłem pierwsze proste testy NRF24L01.
Wynik - bardzo słaby zasięg. Po przejściu do drugiego pokoju - dosłownie za ścianą - brak jakiejkolwiek transmisji. Odległość około 2m.
W przypadku gdy moduły się widziały zasięg był do około 8m.

Używaliście tych modułów? Jaki mieliście zasięg?
Czyżby faktycznie miały taki słaby zasięg?
Konfiguracja modułów - dla największych mocy.
Użyłem bibliotek @Nefarious19.
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » czwartek 15 wrz 2016, 13:21

Znalazłem coś takiego w internecie. Może będą działać te biblioteki:

http://stm32f4-discovery.net/2014/06/li ... stm32f4xx/

Dzięki.

Wysłane przy użyciu Tapatalk
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: dambo » piątek 16 wrz 2016, 12:36

co do słabego zasięgu - może głupie pytanie - zadbałeś ładnie o kwestię ich zasilania - jakiś 100nF przylutowany najlepiej przy samych goldpinach i coś low ESR o większej pojemności?

Ja w wersji zwykłej 20 metrów bez problemu osiągałem, a w wersji z antenami nawet na 700 metrów gadały, ale straty pewnie wtedy były z 80% - muszę kiedyś to pobadać dokładniej, a w przygotowaniu mam bibliotekę do nich wspierającą adresowanie i tworzenie różnych typów sieci
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » piątek 16 wrz 2016, 12:54

dambo pisze:co do słabego zasięgu - może głupie pytanie - zadbałeś ładnie o kwestię ich zasilania - jakiś 100nF przylutowany najlepiej przy samych goldpinach i coś low ESR o większej pojemności?


Nie ma głupich pytań;)

Tak dałem kondensatory ale zwykłe. 100nF ceramiczny i elektrolit 22uF.

Ale popróbuje z zasilaniem jeszcze.
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: dambo » piątek 16 wrz 2016, 16:03

tu Cię mogę zapewnić, że zasilanie jest mega kluczową kwestią - bez kondensatorków na biurku 2 metry kolo siebie nie chciały rozmawiać ze sobą. Co jeszcze mogę polecić - odpal jakieś wifi analizer na androidzie i ustaw częstotliwość nrfów na zakresie gdzie nie ma zakłóceń lub ustaw kanał na 0 - jest on poza zasięgiem domyślnych sieci WiFi, więc tam jest "cisza" :)
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » sobota 17 wrz 2016, 21:32

Próbowałem z zasilaniem, z opcjami konfiguracyjnymi i nic się nie poprawiło.

Dla ciekawości sprawdziłem moduły RFM73 - mają trochę lepszy zasięg od nrf24l01. Bez żadnych zakłóceń sygnał przechodził na drugą stronę ściany, oraz na drugim końcu domu jakieś dane docierały - nie wszystkie, ale zawsze coś.

Chyba będę musiał zostawić tą częstotliwość i przejść na 433MHz.
Można wszystko osiągnąć, wystarczy chcieć.

Awatar użytkownika
dambo
Expert
Expert
Posty: 645
Rejestracja: czwartek 17 mar 2016, 17:12

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: dambo » sobota 17 wrz 2016, 23:49

jak dokładnie masz ustawione nrfy? dynamic payloads, auto ack, prędkość itp.
Nowy blog o tematyce embedded -> https://www.embedownik.pl/

Awatar użytkownika
danielos
Newb
Newb
Posty: 69
Rejestracja: sobota 02 sty 2016, 15:06
Lokalizacja: Pawłowice, Silesia.
Kontaktowanie:

Re: Komunikacja bezprzewodowa - testowanie ilości poprawnie odebranych pakietów

Postautor: danielos » sobota 17 wrz 2016, 23:59

Dynamic payloads włączone, potwierdzenie też włączone, szybkość 1mb, moc nadawania 1dbm, crc z jednym bajtem.

Teraz tak porównuje możliwości konfiguracyjne RFM73 z NRF24L01 i zauważyłem, że RFM73 ma możliwość ustawienia mocy nadawania do 5dbm (niektóre sklepy podają że nawet 10dbm) i większą czułość w trybie nadawania.
Można wszystko osiągnąć, wystarczy chcieć.


Wróć do „Programowanie AVR w C”

Kto jest online

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