Witam!
Zrobiłem sobie mały eksperyment :). Nadaję przez CC1000 ramkę składającą się z następujących bajtów:
0xAA 0xAA 0xAA 0xAA 0xAA | 0xB6 | 0x73 0x74 0x61 0x72 0x74Pierwsze 5 bajtów to bajty preambuły, koniecznej w tego typu transmisji. Następny bajt to tzw. bajt charakterystyczny. Umożliwia mi on bajtową synchronizację odbiornika z nadajnikiem. Dzięki niemu wiem, od którego miejsca znajdują się dane. Problem polega na tym, że gdy odłączyłem nadajnik, odbiornik nadal "myślał", że przychodzą dane bo wykrywał śmieci, wśród których znajdowały się między innymi bajty preambuły i bajt charakterystyczny. Pomyślałem sobie, że po dołożeniu drugiego bajtu charakterystycznego czyli
0x73, zmniejsze ryzyko identyfikacji śmieci jako faktyczne dane. W końcu to już jest małe prawdopodobieństwo, że trafi się bajt 0xB6 a zaraz po nim 0x73. Mniej więcej tyle, co (1/65535)/2 ???? - takie jest to prawdopodobieństwo (nie mówiąc już nawet o preambule, która też musi wcześniej wystąpić). Zapuściłem więc algorytm i okazało się, że już po 2 sekundach zdarzyła się taka sytuacja, że odbiornik odebrał po kolei te 2 bajty. Myślę sobie - kurcze niby małe prawdopodobieństwo ... no ale w totka też ludzie wygrywają :). W końcu wysyłam jakieś 1200 znaków na sekundę ( skąd te dwie sekundy??).Dodałem więc trzeci bajt charakterystyczny, puściłem algorytm i czekałem, czekałem...5 minut. Znów wystąpiła sytuacja, że po sobie wystąpiły śmieci 0xB6 0x73 0x74.
Dodałem więc 4 bajt charakterystyczny i jak na razie filtruje on śmieci dobrze.
Ciekaw jestem ile bajtów wstawiają ludzie, którzy się na tym znają. !!! A może odpowiedni dobór wartości bajtów charakterystycznych coś tutaj może zmienić??
Z góry dziękuję za odpowiedź
Pozdrawiam