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

Odbiornik GPS NEO-6M - opis i recenzja.

grala1 16 Cze 2018 16:59 5997 16
  • Chciałbym dzisiaj przybliżyć Wam odbiorniki sygnału GPS. Postaram się to zrobić na podstawie gotowego modułu który wykorzystuje do tego układ firmy U-BLOX a mianowicie układ o nazwie NEO-6 w wersji „M”.
    Odbiornik GPS NEO-6M - opis i recenzja.

    Nie będę tutaj rozpisywał się na jakiej zasadzie działa pomiar pozycji odbiornika. Moduł NEO6-M wyposażony jest w interfejs UART TTL dzięki któremu możemy się z nim komunikować i odbierać dane z wykorzystaniem protokołu NMEA-0183.
    NMEA to National Marine Electronics Association, jest to specyfikacja protokołu który umożliwia komunikację między różnego rodzaju urządzeniami pomiarowymi oraz proste połączenie odbiornika GPS z innymi urządzeniami.
    Standard NMEA polega na wysyłaniu niezależnych linii danych, gdzie każda linia:
    - zaczyna się od znaku $;
    - posiada nagłówek;
    - nie może przekraczać 80 znaków;
    - każda nada oddzielona jest od następnej znakiem przecinka;
    -dane w formacie liczby mogą posiadać wartości ułamkowe wyrażone po znaku kropki;
    - może być zakończona sumą kontrolną w postaci zapisu w formie dwucyfrowej liczby szesnastkowej poprzedzonej znakiem gwiazdki.
    Poniżej opisze kilka linii danych , nie będą to wszystkie możliwe występujące w protokole NMEA a tylko te które to nasz odbiornik NEO-6M wysyła do nas poprzez UART.
    GGA – Fix information
    Przykład:
    $GPGGA,151654.00,5145.11403,N,01803.73294,E,1,04,4.86,131.8,M,38.3,M,,*50
    GGA – identyfikator nagłówka;
    151654.00 – czas o której zostały odebrane dane. 15:16:54 czasu UTC;
    5145.11403,N – szerokość geograficzna, 51°45,11403’N;
    01803.73294,E – długość geograficzna, 18°03,73294’E;
    1 – jakość pomiaru;
    04 – ilość śledzonych satelitów;
    4.86 – dokładność pozycji - HDOP;
    131.8,M – wysokość nad poziomem morza;
    38.3M – wysokość geoidy powyżej elipsoidy WGS84;
    brak danej – czas od ostatniego uaktualnienia DGPS;
    brak danej – numer ID stacji DGPS;
    *50 – suma kontrolna.
    Jak widać powyżej brakuje nam dwóch danych. DGPS to inaczej Differential GPS, są to dane wysyłane przez stacje naziemne a akurat nasz odbiornik tego nie obsługuje.
    Jakość pomiaru może mieć następujące wartości:
    0 – brak pozycji lub pozycja z bardzo dużym błędem;
    1 – pozycja określona na podstawie GPS;
    2 – pozycja określona przy udziale DGPS;
    3 – pozycja PPS;
    4 – Real Time Cinematic;
    5 – Float RTK;
    6 – estimated;
    7 – manual impet mode;
    8 – tryb symulacji.
    Dokładność pozycji a dokładniej horyzontalna dokładność pozycji HDOP określa szacunkową dokładność pozycji. Ogólnie przyjmuje się że wartość HDOP niższa od 6 jest wystarczająca by na jej podstawie dokonać decyzji np. o skręcie na skrzyżowaniu.

    GSA – Overall Satellite data
    Przykład:
    $GPGSA,A,3,16,26,21,31,,,,,,,,,5.98,4.86,3.49*00
    GSA – nagłówek;
    A – automatyczny wybór pozycji, inna możliwość tutaj to M – ręczny;
    3 – pozycja 3D, inne możliwości 1 – brak ustalonej pozycji, 2 – pozycja 2D, 3 – pozycja 3D;
    16,26,21,31,,,,,,,, - numery satelitów wykorzystanych do wyznaczenia pozycji, miejsce na dane z 12 satelitów;
    5.98 – DOP – precyzja wyznaczonej pozycji;
    4.86 – HDOP – precyzja horyzontalna;
    3.49 – VDOP – precyzja wertykalna;
    *00 – suma kontrolna.

    GSV – Detailed Satellite data
    Przykład:
    $GPGSV,3,1,12,02,11,045,,05,24,069,13,09,02,357,,12,03,126,*7A
    GSV – nagłówek;
    3 – ilość linii które powinna odczytać aplikacja w celu uzyskania pełnych danych o wszystkich satelitach. Mamy tutaj ograniczoną ilość znaków do 80 z twego powodu informacja ta jest przedstawiona w trzech liniach;
    1 – aktualny numer linii – patrz wyżej;
    12 – ilość aktualnie widocznych satelitów;
    02 – identyfikator satelity – PRN;
    11 – wyniesienie satelity nad poziom równika – wyrażone w stopniach;
    045 – azymut satelity – wyrażone w stopniach;
    brak danej – SNR – poziom odbieranego sygnału;
    kolejne wartości określają kolejne satelity – maksymalnie możemy mieć 4 satelity opisane w jednej linii;
    *7A – suma kontrolna

    GLL – Lattitudal/Longitunal data
    Przykład:
    $GPGLL,5145.11403,N,01803.73294,E,151654.00,A,*68
    GLL – nagłówek;
    5145.11403,N – szerokość geograficzna 51°45.11403’N;
    01803.73294,E – długość geograficzna 18°03.73294’E;
    151654.00 – czas ustalenia pozycji, czas UTC;
    A – aktywny status, V – nieaktywny;
    *68 – suma kontrolna.

    RMC – Recommended minimum of data
    Przykład:
    $GPRMC,151655.00,A,5145.11396,N,01803.73254,E,0.055,,300418,,,A*79

    RMC – nagłówek;
    151655.00 – czas ustalenia pozycji, czas UTC;
    A – status, A – aktywny, V – nieaktywny:
    5145.11396,N – szerokość geograficzna 51°45.11396’N;
    01803.73254,E – długość geograficzna 18°03.73254’E;
    0.555 – prędkość obiektu w węzłach;
    brak danej – kąt poruszania się obiektu;
    300418 – data 30 kwietnia 2018;
    Brak danej – powinno b tutaj odchylenie magnetyczne Ziemi;
    *79 – suma kontrola.

    VTG – Vector track and speed over the Ground
    Przykład:
    $GPVTG,,T,,M,0.055,N,0.102,K*20
    VTG – nagłówek;
    brak danej - ścieżka poruszania się w stopniach - ,,T;
    brak danej - ścieżka poruszania się na podstawie współrzędnych magnetycznych w stopniach - ,,M;
    0,55N – prędkość w węzłach;
    0.102K – prędkość w km/godz.;
    *20 – suma kontrolna.

    Trochę danych na temat naszego gotowego odbiornika GPS.
    Najważniejszym elementem tutaj jest moduł NEO-6M który to zasilany jest ze stabilizatora RT9193-33 którego to maksymalne napięcie zasilania to 6VDC więc najlepiej do zasilania użyć źródła napięcia 5V. Pobór prądu wedle dokumentacji dla NEO-6M to maksymalnie 67mA ale nasz odbiornik pobiera 60mA zanim złapie „FIX`a” i ok. 50mA po złapaniu „FIX`a”. Na płytce znajdziemy też pamięć eeprom 24C32 oraz mały akumulatorek dzięki którym możemy korzystać z funkcji „ciepłego startu”. Zimny start wedle dokumentacji to 27 sekund zaś ciepły to 1 sekunda. Co oznacza pojęcie zimny i ciepły start? Zimny start to uruchomienie długo nieużywanego odbiornika i czekanie do momentu aż odbiornik ustali pozycję czyli złapie FIX`a, natomiast ciepły start to znalezienie FIX`a po chwilowej utracie sygnału lub po chwilowym zaniku zasilania. W przypadku mojego odbiornika na znalezienie FIX`a trzeba czekać ok. 15min od włączenia zasilania – czas ten zależy też od tego czy odbiornik jest w budynku czy na zewnątrz. Czym odbiornik widzi „czystsze” niebo tym szybciej złapie sygnał. W moim odbiorniku akumulatorek starcza na ok. 60min podtrzymania zasilania.
    Moduł NEO-6M wyposażony jest w interfejsy takie jak UART, SPI oraz USB. Niestety w tym modelu odbiornika producent płytki daje nam do dyspozycji tylko interfejs UART gdzie jego logika jest na poziomie 3.3V, dane udostępnione przez tej interfejs są odświeżane z częstotliwością 1Hz. Na płytce mamy również złącze goldpin gdzie należy podać zasilanie – VCC, GND, wyprowadzenie dla wspomnianego już UART`u – TXD, RXD, oraz wyjście PPS – pulse per second czyli wyjście na którym pojawia nam się sygnał z częstotliwością 1Hz – dokładniej mamy tutaj stan wysoki o czasie trwania 100ms oraz stan niski o czasie trwania 900ms. Do wyjścia tego mamy podłączoną diodę LED, która po podłączeniu zasilania świeci światłem ciągłym a po złapaniu FIX`a przez odbiornik miga z częstotliwością 1Hz.
    Do komunikacji z tą wersją odbiornika potrzebna będzie nam przejściówka USB-UART np. FT232.
    Wymiary odbiornika to 36x24x12mm, wymiary anteny to 21x6x7mm.
    Na rysunku poniżej schemat dla tego odbiornika GPS.
    Odbiornik GPS NEO-6M - opis i recenzja.

    Cena odbiornika na Aliexpress zaczyna się od $3,33 wraz z anteną w komplecie i wysyłką. Na Allegro za identycznego odbiornik GPS trzeba wydać od 43,65zł z wysyłką. Jak widać ceny na Aliexpress są dość niskie ale należy pamiętać że te moduły NEO nie są nowe tylko są to elementy z odzysku.
    Moduł który dostałem nie działał na początku. Po podłączeniu go pod zasilacz laboratoryjny ustawieniu ograniczenia prądowego na 100mA napięcie zasilania spadło z powodu zadziałania ograniczenia prądowego. Zwiększenie prądu nic nie dało – okazało się że to nie odbiornik tyle pobiera a jest na nim raczej jakieś zwarcie. Wylutowałem moduł NEO i po podłączeniu zasilania dalej działało ograniczenie prądowe zasilacza. Dało to jakąś nadzieję że moduł jednak może być sprawny i po dokładnym obejrzeniu płytki znalazłem dwa miejsca gdzie były zwarcia. Były one na pamięci eeprom.
    Poniżej widać to na zdjęciach.
    Odbiornik GPS NEO-6M - opis i recenzja. Odbiornik GPS NEO-6M - opis i recenzja.

    Jedno z nich nie miało znaczenia gdyż zwarte były nogi 1-2 ale tutaj i tak nogi 1-2-3-4 są zwarte na płytce. Zwarte były również nogi 7-8 czyli na zasilaniu pamięci. Po usunięciu tych zwarć o dziwo stabilizator działał – twarda bestia. Po wlutowaniu modułu NEO i zasilanie odbiornika w końcu zaświeciła dioda LED i można było nawiązać połączenie z odbiornikiem.
    Do komunikacji z odbiornikiem wykorzystałem FT232 i program HyperTerminal. Ustawienia dla komunikacji w programie poniżej na zdjęciu.
    Odbiornik GPS NEO-6M - opis i recenzja.

    Po skomunikowaniu się z odbiornikiem dostajemy „ramkę” danych która to przed złapaniem FIX’a wygląda następująco:
    $GPGGA,173745.00,,,,,0,05,99.99,,,,,,*60
    $GPGSA,A,1,10,29,27,26,16,,,,,,,,99.99,99.99,1.00*0D
    $GPGSV,3,1,12,04,41,180,24,07,08,337,21,08,04,289,18,10,24,173,24*7F
    $GPGSV,3,2,12,13,07,049,,15,10,081,06,16,64,256,10,20,53,103,*7A
    $GPGSV,3,3,12,21,71,072,09,26,51,200,19,27,41,291,24,29,15,104,16*78
    $GPGLL,,,,,173745.00,V,N*49
    $GPRMC,173746.00,V,,,,,,,300418,,,N*73
    $GPVTG,,,,,,,,,N*30

    Po złapaniu FIX’a „ramka” wygląda tak:
    $GPGGA,173747.00,5145.08762,N,01803.70069,E,1,04,12.82,184.1,M,38.3,M,,*68
    $GPGSA,A,2,10,29,27,26,,,,,,,,,12.86,12.82,1.00*0D
    $GPGSV,3,1,12,04,41,180,24,07,08,337,22,08,04,289,17,10,24,173,25*72
    $GPGSV,3,2,12,13,07,049,,15,10,081,,16,64,256,,20,53,103,*7D
    $GPGSV,3,3,12,21,71,072,08,26,51,200,19,27,41,291,25,29,15,104,17*79
    $GPGLL,5145.08762,N,01803.70069,E,173747.00,A,A*64
    $GPRMC,173748.00,A,5145.08837,N,01803.70165,E,0.382,,300418,,,A*77
    $GPVTG,,T,,M,0.382,N,0.708,K,A*25

    Po zapoznaniu się z protokołem NMEA jesteśmy w stanie na podstawie takiej ramki określić pozycję naszego odbiornika, czas oraz wysokość nad poziomem morza.
    Dane te możemy np. wpisać w Google Maps do znalezienia pozycji odbiornika na mapie.
    Z początku wpisywałem dane 51.4508762 18.0370069 co dawało różnicę w pomiarze o ok. 20km. Z początku myślałem że być może jest to uszkodzenie spowodowane wcześniejszym zwarciem na płytce PCB lub może jakością układu bo czego tu się spodziewać za kilkanaście złotych. Odbiornik powędrował w kąt a ja czekałem na praczkę z nowym odbiornikiem GPS. Po kilku dniach przysiadłem powrotem do tego odbiornika poszukałem danych na temat protokołu NMEA i w końcu zauważyłem gdzie jest błąd w odczycie współrzędnych z „ramki”. Na początku macie przedstawiony opis protokołu i zamianę danych na współrzędne. Poniżej jeszcze kilka innych możliwości przeliczenia współrzędnych z „ramki”.
    W powyższej ramce pozycja to 51°45.08762’N, 18°03,70069’E, czas UTC 17:37:47 (19:37:47 czasu polskiego), 184,1mnpm.
    51°45.08762N 18°03.70069E
    Jak widać tutaj sekundy zapisane są w formie „dziesiętnej”. Można też wpisać 51°45'05.3"N 18°03'42.0"E gdzie zapis jest już w formie minut i sekund. Zapis ten bierze się z przemnożenia wartości dziesiętnej minut przez wartość 60.
    0,8762x60=5,2572sek≈5,3sek
    0,70069x60=42,0414sek≈42,0sek
    Dane te można wpisać również w inny sposób. Możemy wartość minut podzielić przez 60.
    45,08762:60=0,751460
    3,70069:60=0,061678
    Po czym wpisać: 51.751460N, 18.061678E

    Poniżej obraz z programu HyperTerminal w czasie używania odbiornika w podczas jazdy autem.
    Odbiornik GPS NEO-6M - opis i recenzja.

    Możecie tutaj znaleźć prędkość poruszania się. Prędkość wskazywana przez licznik auta wynosiła 110km/godz. zaś odbiornik GPS pokazywał 107km/godz. Z mojego doświadczenia mogę napisać że zawsze prędkość pokazywana przez GPS jest niższa niż pokazuje licznik auta – zazwyczaj jest to ok. 5km/godz., oczywiście zależy to od prędkości auta.
    Szczerze powiedziawszy myślałem że odczyt danych z tego odbiornika będzie dużo trudniejszy a jak widać jest to dość proste.
    Moduł ten potrafi gubić sygnał jeżeli np. mamy umieszczonego go w domu. Przeglądając dane odebrane poprzez UART można zauważyć że potrafi zgubić sygnał na kilkanaście sekund lub dłużej (zależy to oczywiście jak dobrze widzi niebo) po czym ponownie znaleźć sygnał. Nie zauważyłem podobnych objawów gdy moduł pracuje „na świeżym powietrzu”. W czasie używania go w aucie też nie zauważyłem gubienia sygnału gdy odbiornik był położony na desce rozdzielczej. Myślę że przy większej antenie problem ten będzie występował rzadziej i czas łapania FIX’a po pierwszym włączeniu powinien się zmniejszyć.
    Moduł ten można wykorzystać przy budowie np. rejestratora pozycji łącząc taki moduł z mikrokontrolerem lub dokładając do tego zestawu moduł SIM można zbudować GPS trackera. W Google można znaleźć przykłady budowy GPS trackera z użyciem tego odbiornika, modułu SIM oraz Arduino.
    W załączniku dokumentacja do modułu NEO-6.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    grala1
    Specjalista grupy V.A.G.
    Offline 
  • PCBway
  • #2
    TechEkspert
    Redaktor
    Ciekawy opis, czy to jest "prawdziwy" u-blox czy "zgodny" z u-blox?

    Wyjście PPS 1Hz daje możliwość uzyskania tanim kosztem częstotliwości referencyjnej.
    Moduł Waveshare NEO-7M z anteną zewnętrzną wykorzystałem do zbadania zmian częstotliwości 50Hz napięcia sieciowego.

    Mój moduł był "zgodny" z u-blox.
    Część modułów pozwala na zmianę częstotliwości sygnału PPS do nawet 10MHz co daje możliwość uzyskania taniego wzorca częstotliwości.
  • #3
    mkpl
    Poziom 37  
    TechEkspert ten 1pps może też być różnej jakości i nie zawsze nadaje się na referencyjny. Choć cena modułu i tak zachęca do eksperymentu.
  • #4
    TechEkspert
    Redaktor
    @mkpl słusznie, ciekawy byłby odwrotny eksperyment i sprawdzenie stabilności sygnału 1PPS GPS np. termostatyzowanym generatorem kwarcowym lub np. jeżeli ktoś ma dostęp do wzorca rubidowego.

    Być może prostszych rozwiązaniach można sprawdzić jakość sygnału 1PPS innym generatorem o zbliżonej dokładności. W specyfikacji jednego z modułów GPS znalazłem informację o stabilności 1PPS na poziomie +/- 10ns, pytanie jaka jest stabilność wspomnianych modułów serii NEO.
  • #5
    atek000
    Poziom 17  
    Taka mała informacja ode mnie. Może już wiesz ale nie napisałeś, a jak nie wiesz to się dowiesz. Po wpisaniu współrzędnych do Maps Google nie będziesz miał oczekiwanego rezultatu. Odbiorniki GPS zgodne z NMEA podają współrzędne w stopniach, minutach i sekundach a mapy Google wykorzystują stopnie i ułamek stopnia. Aby to zobrazować, przedstawmy to w formie czasu, np. mamy godzinę 2:30 czyli 2h i 30min, to samo można przedstawić jako 2,5 jako 2h i 0,5h. Kolejny przykład to pn. 1:15 to tyle samo co 1,25, dalej np. 3:45 to będzie 3,75.
    Mam nadzieję, że jakoś prosto to wyjaśniłem. Też kiedyś budowałem odbiornik GPS i walczyłem z tym 2 dni zanim dopatrzyłem się tej różnicy.
  • PCBway
  • #6
    Owiec_
    Poziom 6  
    Wystarczy przemnożyć sekundy razy 0,6 o czym zresztą autor napisał (lub dopisał później)
    Więcej info tutaj:
    https://support.google.com/maps/answer/18539?hl=pl&co=GENIE.Platform%3DDesktop
    Działa też link "www.google.pl/maps/place/%s+%s".
    Wprowadzenie trzeciego standardu który by uwzględniał oba standardy jakie są preferowane przez oba zespoły (inżynierów Google'a i projektantów GPS) wprowadziłoby jeszcze większy chaos IMO ;)

    Autorze:
    0,8762x60 daje 5,25572, w tym przypadku wynik po zaokrągleniu nie robi na szczęście różnicy.
  • #8
    grala1
    Specjalista grupy V.A.G.
    @atek000, najwyraźniej nie czytałeś dokładnie tekstu.
    Jest tam wytłumaczone jak przeliczyć.
    W Google Maps można wpisać współrzędne na 3 sposoby:
    51°45.08762’N, 18°03.70069’E
    51°45'05.3"N 18°03'42.0"E
    51.751472, 18.061667

    @Owiec_, nic nie zmieniałem w tekście. Jeżeli coś się zmieni to pod tekstem będzie wzmianka dodana automatycznie przez forum gdzie będzie informacja kiedy to było i ile razy tekst został zmieniony.
    0,8762x60=52,575
    Nie wiem skąd tam Ci się wzięła ta dodatkowa "5". Dziękuje za zwrócenie uwagi bo teraz znalazłem błąd ale w innym miejscu.
    Nie 0,8762 a 0,08762 co da 5,3sek.
    $GPGGA,173747.00,5145.08762,N,01803.70069,E,1,04,12.82,184.1,M,38.3,M,,*68
    Powinno być napisane tak:
    0,08762x60=5,2572sek≈5,3sek
    Źle wyliczone ale współrzędne wpisane poprawnie. Ta pomyłka przy przesunięciu przecinka to ok 1,5km różnicy w linii prostej między tymi punktami.

    @MODI, nie wiem czy to pytanie do mnie ale ja tego nie próbowałem - nie miałem jak na razie takiej potrzeby.

    @TechEkspert, nie wiem po czym rozpoznać czy to prawdziwy U-BLOX czy tylko zgodny. Jeżeli wiesz to napisz jak sprawdzić.
    Ja znalazłem informacje że te układy pochodzą z odzysku ale zawsze można jakąś bajeczkę wymyślić by się lepiej sprzedawało.
    Mam dwa moduły i każdy ma naklejkę z logiem choć jedna wygląda lepiej a druga gorzej. Jest też tam data produkcji gdzie jeden jest z 10 tygodnia 2017 roku a drugi z 22 tygodnia 2015. Jest też nr seryjny i każdy ma inny numer.

    Co do jakości sygnału PPS to niestety nie dysponuje tak dokładnym sprzętem by to sprawdzić.
    Poniżej dwa zrzuty - jeden z Hantek'a6022BE a drugi z klona Saleae.
    Odbiornik GPS NEO-6M - opis i recenzja.
    Odbiornik GPS NEO-6M - opis i recenzja.
  • #9
    TechEkspert
    Redaktor
    @grala1 wiem że mój nie jest u-blox gdyż w opisie miał "compatible with u-blox" i na module brak logo producenta.

    Co to 1PPS być może udałoby się zbadać sygnał z dwóch różnych modułów GPS, wprawdzie nie będzie informacji który jest OK, ale jeżeli oba sygnały będą miały zbliżone przesunięcie to znaczy że oba są w miarę stabilne?

    Generalnie testy długoterminowe, nawet z termostatyzowanym generatorem kwarcowym mogłyby coś pokazać, wprawdzie nie będzie wiadomo co pływa, ale może uda się zaobserwować jakiś dryft, lub jego brak.
  • #10
    Galareta
    Poziom 21  
    Kiedyś kupiłem najtańsze z najtańszych modułów od chińczyka, na 99% były wlutowane już kiedyś. Do tego miały ślady korozji od topnika zastosowanego do wylutu.

    Do klona salae polecam sigrok
  • #11
    tplewa
    Poziom 38  
    TechEkspert napisał:
    Ciekawy opis, czy to jest "prawdziwy" u-blox czy "zgodny" z u-blox?


    Na Ali nie spotkałem jeszcze oryginalnych, a swojego czasu kupiłem trochę u rożnych sprzedawców dla testów.

    Dlatego też na aukcjach w ich tytułach nie ma słowa uBlox tylko NEO coś tam (ot Aliexpress zabrania podróbek) w razie sporu sprzedawca też jest kryty bo nigdzie nie napisał że to uBlox...
  • #12
    Sas_AS
    Poziom 15  
    TechEkspert napisał:

    Co to 1PPS być może udałoby się zbadać sygnał z dwóch różnych modułów GPS, wprawdzie nie będzie informacji który jest OK, ale jeżeli oba sygnały będą miały zbliżone przesunięcie to znaczy że oba są w miarę stabilne?

    Generalnie testy długoterminowe, nawet z termostatyzowanym generatorem kwarcowym mogłyby coś pokazać, wprawdzie nie będzie wiadomo co pływa, ale może uda się zaobserwować jakiś dryft, lub jego brak.


    Ale po co, jak i w odniesieniu do czego ?

    Sygnał 1PPS nie jest stworzony jako bezpośredni sygnał referencyjny a jedynie informacją o upłynięciu kolejnej sekundy. Sygnał typowo dla komercyjnego odbiornika ma przesunięcie fazowe +/- 10nS czyli w teorii w pierwszym mierzonym okresie między 1 a 2 odbiornikiem może dojść do przesunięcia o +20nS, w drugim okresie np. -15nS a w kolejnym +15nS i będzie to całkiem normalne. Myślę nawet, że dodatkowa odchyłka o kilka nS poza deklaracją producenta też nie jest niczym szczególnym, trzeba uwzględnić wiele czynników jak stabilność i dokładność generatora wzorcowego mikrokontrolera, oprogramowanie, zmienna ilość cykli zegarowych, ilość obieranych satelitów, zakłócenia, jakość sygnału itp. Jeżeli odbiorniki złapałyby fix'a nie doczekasz się dryfu czyli średniego przesunięcia fazowego między poszczególnymi odbiornikami, które będzie rosło, aż wyniesie szczytowo 500 mS. 1PPS jest informacją o upłynięciu kolejnej sekundy i wygenerowanie sygnału 1PPS przez odbiornik z dokładnością +/- 10nS nie ma większego znaczenia z punktu upływu czasu. Przy tych założeniach oba będą OK, o ile łapią fix'a i wysyłają sygnał 1PPS. Odniesienie tego sygnału do wzorca ocxo czy rubidowego prędzej czy później wykaże przesunięcie fazowe. Nawet jeśli odbiornik chwilowo zgubi fix'a będzie to dalej oznaczało odstrojenie posiadanego generatora wzorcowego od międzynarodowych stacji nadawczych ze zsynchronizowanymi generatorami cezowymi ( za pomocą sygnału 1PPS :) ). Reprodukcja sygnału 10MHz przez wewnętrzny dac jako tani generator wzorcowy nie ma większego sensu, prawdopodobnie przez zastosowany wewnętrzny tcxo, lub co gorsza jego brak. W sygnale będzie widoczna skokowa naprawa przesunięcia fazowego względem sygnału 1PPS lub ciągle zmieniający się dryft częstotliwości. W czasie 20nS dla 10Mhz całkiem sporo się dzieje, bo jak dobrze liczę minie 72 stopnie okresu i co jakiś czas ewentualne przesunięcie trzeba skorygować.
    Z ciekawostek reprodukcja wzorca częstotliwości i czasu datum cesium plus z odbiornikiem gps 20nS (+/- 10nS) z dokładnością 1E-11 w sprzyjających warunkach trwa 48 godzin. Po 24 godzinach wyniki nie są lepsze niż z gpsdo trimble thunderbolt. Zegar synchronizuje się względem sieci zegarów cezowych na poziomie ~2E-14 około miesiąca (a przynajmniej dochodzi do levelu pracy który to potwierdza, pływanie 16 bitowego dac o 1 bit pod warunkiem, że temperatura otoczenia znacząco się nie zmienia ;) ).
  • #13
    TechEkspert
    Redaktor
    @Sas_AS no właśnie, w odniesieniu do czego to jest dobre pytanie, jeżeli nie dysponujemy odpowiednim wzorcem to trudno coś zbadać,
    porównanie dwóch lub trzech odbiorników GPS być może dałoby informację, o wzajemnych różnicach (tak jak mając kilka multimetrów można sprawdzić czy któryś nie odbiega zbytnio od wskazań pozostałych). Ale i tak widzę że przy wzroście wymagań co do dokładności, złożoność systemu rośnie wykładniczo.

    Tak jak piszesz 1PPS ma inne zastosowania, chociaż przy okazji testów NavSpark-mini natrafiłem na odbiornik GPS, który zoptymalizowany jest do generowania dokładnego czasu i ma możliwość ustawiania generowanej częstotliwości w zakresie: 1Hz ~ 19.2MHz: http://navspark.mybigcommerce.com/ns-t-precision-timing-frequency-generation-gps-receiver/
  • #14
    tplewa
    Poziom 38  
    TechEkspert napisał:

    Tak jak piszesz 1PPS ma inne zastosowania, chociaż przy okazji testów NavSpark-mini natrafiłem na odbiornik GPS, który zoptymalizowany jest do generowania dokładnego czasu i ma możliwość ustawiania generowanej częstotliwości w zakresie: 1Hz ~ 19.2MHz: http://navspark.mybigcommerce.com/ns-t-precision-timing-frequency-generation-gps-receiver/


    Generalnie nie trzeba daleko odbiegać bo i uBlox ma takie moduły w ofercie np. LEA-M8T/NEO-M8T

    https://www.u-blox.com/sites/default/files/NEO-LEA-M8T-FW3_DataSheet_%28UBX-15025193%29.pdf

    Zresztą jak to mówią dla każdego znajdzie się coś dobrego (tutaj jeszcze kwestia ile na to chcemy wydać) ;)

    Odnośnie 1PPS to przykładowo można używać w połączeniu z GPSD Time Service http://www.catb.org/gpsd/gpsd-time-service-howto.html gdzie w wielu przypadkach jest to wystarczające...

    Niestety nie ma co ukrywać że w wielu zastosowaniach amatorskich (generowanie 10MHz) najczęściej ludzie ograniczają się do trimble thunderbolt ewentualnie używanych generatorów rubidowych (dostępnych na e-bay), a i tak dla wielu są to rozwiązania zbyt drogie aby sobie coś takiego zrealizować w domowym laboratorium.
  • #15
    Sas_AS
    Poziom 15  
    @TechEkspert co do badania różnić między odbiornikami zgodzę się w kwestii wzorca odniesienia.
    @tplewa w odniesieniu do wzorców częstotliwości do laboratorium dla amatorów.

    Chciałem raczej zaszczepić idę, że takowe badanie nie ma sensu. Na czas wygenerowania 1PPS ma wpływ mnóstwo czynników, znikomy wpływ ma hardware konkretnej sztuki, czyli czy ta czy siaka zrobiona jest lepiej lub gorzej. Wszelkie zmiany przesunięcia fazowego zależą głównie od siły sygnału, zakłóceń, dostępności satelitów, więc ostatecznie sposobu zadziałania algorytmu oprogramowania. Przy wyborze źródła odniesienia do wygenerowania 1PPS, czyli wzięcia pod uwagę konkretnych satelitów (nadawanych sygnałów z zegarów cezowych, data ich synchronizacji), typowy odbiornik śledzi max 12 satelitów z czego aktualnie tylko 4 najsilniejsze lub z najmniejszym czasem opóźnienia bierze pod uwagę. Są lepsze odbiorniki gps, zapewne dokonują większą ilość obliczeń celem poprawienia stabilności sygnału 1PPS. Mimo to jest to tylko efekt uboczny, bo ich głównym celem jest nie zgubienie fix'a w różnych warunkach pogodowych przez jak najdłuższy czas. Informacja producenta, że czas 1PPS jest wygenerowany z mniejszym czasem przesunięci np. +/- 7nS jest raczej dla użytkownika, projektanta, programisty w jakim czasie może się spodziewać kolejnego impulsu 1PPS. Nie zmienia to faktu, że projektując jakiekolwiek klasyczne gpsdo oparte o ocxo, duble ocxo, generator rubidowy nie bierzemy pod uwagę pojedynczych sygnał 1PPS i ich przesunięcia fazowego. Znaczenie ma ilość poprawnie odebranych sygnałów, dla w/w odbiornika. W wielkim uproszczeniu już po 10 sekundach możemy liczyć na dokładność ~2nS a po 100 sekundach ~0,2nS czyli 2E-10. Sygnały z błędem +/-10nS otrzymamy tylko dla pierwszej i ostatniej sekundy, a dla pozostałych 98 sekund przesunięcie fazowe poszczególnych sygnałów nie ma znaczenia. Jeśli budowalibyśmy generator 1PPS i byłby wstanie osiągnąć taką stabilność już po 100 sekundach to każda następna sekunda byłaby wygenerowana z dokładnością lepszą niż ~ 0,2nS. Dla serwerów czasów jest to w zupełności wystarczająca dokładność. Dla wzorców częstotliwości 1MHz, 5MHz, 10MHz potrzeba dłuższego czasu, w zależności od użytego generatora którego synchronizujemy z sygnałem 1PPS. Dla generatorów cezowych czas liczony jest w dniach lub nawet miesiącach :).
    Tu dochodzimy do setna, gdyż dla amatora szukającego wzorca częstotliwości lepszy jest używany gpsdo oparty ocxo np. trimble, datum, symmetricom i podobne (byle nie chińska samoróbka, trywialny sposób naprawy przesunięcia fazowego, częstotliwość wzorcowa generowana z dac i skok przesunięcia fazowego co jakiś czas), niż generator rubidowy o nieznanej częstotliwości. Nawet lepsza jest samoróbka z dobrym ocxo lub duble ocxo synchronizowana przez 1PPS z odbiornika gps (w najstarszych rozwiązaniach to kilka ttl na krzyż), w zależności od potrzeba można sobie również zastosować ocxo w wersji LF. Po włączeniu gpsdo po kilku godzinach mamy pewne źródło wzorca częstotliwości i czasu na przyzwoitym poziomie, dodatkowo zsynchronizowane z generatorami cezowymi. Trzeba tylko pamiętać, aby go nie przestawiać ze względu na oddziaływanie pola magnetycznego ziemi. Posiadałem generator rubidowy FE-5680A w wersji, której nie dało się skalibrować programowo (pewnie się da, tylko nikt tego nie rozgryzł dla wersji zwanej zablokowaną), a po resursie niewiele miała wspólnego z deklaracją producenta (alledrogo i problem z głowy). Kolejny był EFRATOM LPRO który jest nie do wyregulowania za pomocą potencjometru (alle...). Wrócę za jakiś czas do FEI i poszukam wersji programowalnej, zestroje z gpsdo lub wzorcem cezowym na zapas jakby gps wyłączyli ;)
  • #16
    tplewa
    Poziom 38  
    @Sas_AS

    Oj kolega mnie chyba nie zrozumiał. Ja się cieszę że kolega poruszył tutaj naprawdę sporo ciekawych spraw i ma to ogromną zaletę edukacyjna itd. Mój wpis miał być bardziej nie oszukujmy się sprowadzeniem tego na ziemię powiedzmy do poziomu takich "biednych" żuczków jak my amatorzy/hobbyści gdzie czasem przymyka się oko na pewne niedoskonałości (a i jak wspomniałem nawet i to dla wielu jest bolesne finansowo - choć starałem się to ująć dość delikatnie ;) ) Co nie zmienia faktu że kolega pokazał jak to powinno wyglądać jak oczekujemy czegoś więcej (tutaj to może napisałem krótko dla każdego coś dobrego - kwestia ile mamy do wydania ;) )
  • #17
    Sas_AS
    Poziom 15  
    @tplewa
    Zrozumieliśmy się ;) Chciałem tylko wyjaśnić, aby Ktoś nie zachłysnął się generatorem rubidowym bez sprawdzenia z innym generatorem, który ma zsynchronizowany sygnał 1PPS z gps. Nie ma i nie będzie jakiegoś jednego zegara cezowego wg którego ustawiamy całą resztę, jest ich cała sieć spięta przez m.i. 1PPS z którego My biedne żuczki możemy korzystać.

    Polecam obejrzeć: Keysight Standards Laboratory