07.03.2019GPS week number rollover – 7 kwietnia 2019 r., godz. 2:00. Czy możemy spać spokojnie?
W nocy z 6 na 7 kwietnia 2019 r. (z soboty na niedzielę) o godz. 2:00 nastąpi wyzerowanie się 10-bitowego licznika numerów tygodni (przepełnienie licznika) w depeszach nawigacyjnych, wysyłanych przez satelity systemu nawigacji satelitarnej GPS (ang. Global Positioning System).
Oznacza to, że po numerze tygodnia „1023” (2 do potęgi 10 minus 1), liczonego w systemie GPS w sposób ciągły od daty 22 sierpnia 1999 r., nastąpi numer „0”, który odpowiada pierwszemu tygodniowi liczonemu już od daty 7 kwietnia 2019 r. Takie zdarzenie nazywane jest „GPS week number rollover” (w dalszej części artykułu „GPS rollover”). System GPS oznacza i dystrybuuje czas i datę w sposób unikalny, wynikający z zasady generowania kodów transmisyjnych, natomiast odbiornik GPS, a w głównej mierze jego oprogramowanie przetwarza odebrany sygnał, interpretując go zgodnie z przyjętym w urządzeniu algorytmem. Nie każdy algorytm wymaga daty pobranej z systemu GPS. Jeśli jednak data pobrana z systemu GPS jest istotna, to przy zapewnieniu aktualności oprogramowania, nic niepożądanego w dniu 7 kwietnia 2019 r. i po tym dniu nie powinno się wydarzyć, ale warto wcześniej się upewnić. Wyjaśnienie tego zjawiska i dodatkowe informacje znajdą państwo w dalszej części artykułu.
Zdarza się, że przedmiotowe zdarzenie nie do końca poprawnie porównywane jest w mediach do „problemu roku 2000” (tzw. pluskwy milenijnej). Należy jednak podkreślić, że GPS rollover jest nieprzypadkowym efektem, wynikającym z architektury systemów nawigacji satelitarnej, powtarzającym się w przypadku GPS co ok. 19,6 roku (1024 tygodni razy 7 dni i dzielone przez 365,25).
System GPS wykorzystywany jest nie tylko do wyznaczania współrzędnych urządzenia odbiorczego (pozycjonowanie), ale także do synchronizacji czasu. Poprzez fakt, iż satelity dystrybuują dokładną informację o czasie powiązanym z UTC, odtworzenie uniwersalnego czasu koordynowanego z wykorzystaniem sygnałów GPS jest stosunkowo łatwe i tanie (mając na uwadze zaistniały rozwój technologii odbiorników). Odbiorniki GPS, które umożliwiają wygenerowanie precyzyjnego znacznika czasu, stanowią element składowy złożonych systemów i obiektów, często wpisujących się w definicję infrastruktury krytycznej. Rozwój nowoczesnego przemysłu spowodował znaczny wzrost zależności rozwiązań ICT (ang.: Information and Communication Technologies) od sygnałów GPS.
Każdy użytkownik powinien mieć na uwadze ewentualne problemy związane z obsługą tego zdarzenia przez posiadane urządzenia lub/oraz systemy. Poniżej wyszczególniamy najważniejsze informacje odnośnie GPS rollover przydatne wszystkim użytkownikom GPS:
- obsługa tego problemu leży po stronie oprogramowania sprzętowego (ang.: firmware) odbiornika GPS i tego, czy odbiornik pozyskuje/wykorzystuje niezależną od GPS wiarygodną informację o aktualnej dacie;
- w ostatnim czasie wielu producentów i dystrybutorów sprzętu odbierającego sygnały GPS udostępnia w różnej formie (przeważnie na stronach internetowych) informacje o obsłudze GPS rollover, wraz z instrukcjami postępowania, w zależności od posiadanego typu urządzenia;
- negatywny wpływ GPS rollover na urządzenia wykorzystujące sygnały GPS do pozycjonowania oraz/lub nawigacji nie powinien być (zasadniczo) odnotowany, natomiast operatorzy/użytkownicy urządzeń synchronizujących czas z czasem GPS powinni zwrócić szczególną uwagę na ten problem;
- znikomym prawdopodobieństwem wystąpienia błędu charakteryzują się odbiorniki wielosystemowe (wykorzystujące sygnały GPS razem z Galileo, GLONASS, BeiDou);
- na większe prawdopodobieństwo wystąpienia błędu narażone są odbiorniki dawno wprowadzone na rynek, lub takie, które nie były przez długi czas poddawane aktualizacji oprogramowania (w okresie kilkunastu lat);
- większe ryzyko wystąpienia problemu związanego z obsługą GPS rollover istnieje też wśród odbiorników, które zostały oprogramowane indywidualnie, z użyciem dostępnych na rynku chipsetów GPS OEM (ang.: Original Equipment Manufacturer);
- niektóre odbiorniki mogą uzależniać prawidłowe oznaczenie czasu od daty utworzenia oprogramowania sprzętowego lub daty ostatniej aktualizacji – w takich przypadkach efekt GPS rollover może być zauważony niekoniecznie w momencie zerowania się licznika tygodni GPS;
- odbiorniki GPS i oprogramowanie zapewnione przez producentów, którzy stosują się m.in. do specyfikacji IS-GPS-200 [1], nie powinny być narażone na negatywny wpływ GPS rollover.
Departament Bezpieczeństwa Krajowego Stanów Zjednoczonych (ang.: US Department of Homeland Security) opublikował w minionym roku dokument stanowiący memorandum dla użytkowników wykorzystujących GPS do pozyskania informacji o czasie UTC [2]. W tym dokumencie oraz w innych komunikatach podawane są rekomendacje dla użytkowników GPS, odnoszące się do najbliższego wydarzenia GPS rollover, które wskazują na konieczność:
- rozpoznania i ustalenia możliwych powiązań pomiędzy odbiorem sygnałów GPS i wykorzystaniem ich do celów synchronizacji czasu, szczególnie w przypadku operatorów/zarządzających infrastrukturą krytyczną;
- skontaktowania się z producentami posiadanych odbiorników GPS w celu:
- określenia stopnia przystosowania posiadanych urządzeń do obsługi GPS rollover,
- rozpoznania wymaganych działań, które powinien podjąć użytkownik/operator, aby zapobiec ewentualnym błędom związanym z GPS rollover;
- upewnienia się, że oprogramowanie sprzętowe odbiorników GPS jest aktualne.
W kontekście przedmiotowego wydarzenia najważniejsze zatem jest zaktualizowanie oprogramowania sprzętowego w posiadanych odbiornikach/systemach oraz kontakt z producentem lub sprawdzenie informacji na ten temat na jego stronie internetowej. Sposobem na pełne rozpoznanie zależności informacji o czasie pozyskiwanej z odbiornika GPS od wydarzenia GPS rollover jest wykorzystanie symulatora sygnałów GNSS [3]. Niemniej jednak może być to uciążliwe, gdyż w Polsce takie symulatory nie są powszechne, a w przypadkach bardziej złożonych systemów, systemów rozproszonych, czy systemów działających w trybie ciągłym jest to bardzo trudne lub wręcz niemożliwe. Mając na uwadze powyższe, użycie symulatora GNSS może być traktowane jako ostateczność w przypadku braku pewności, co do ewentualności zaistnienia problemu, który mógłby wyrządzić szkody materialne oraz/lub utratę zdrowia bądź życia ludzkiego.
Czas urzędowy i serwery czasu urzędowego: tempus1.gum.gov.pl i tempus2.gum.gov.pl są odporne na problem GPS rollover. Serwery NTP GUM, umożliwiające synchronizację czasu w systemach komputerowych z czasem urzędowym obowiązującym w Polsce, pozyskują znacznik czasu w sposób zabezpieczony przed wpływem zdarzenia GPS rollover.
Również inne systemy pomiarowe Samodzielnego Laboratorium Czasu i Częstotliwości GUM, które m.in. wykorzystują sygnały systemu GPS do międzynarodowych porównań skal czasu, a więc pośrednio do generowania i utrzymania państwowej skali czasu UTC(PL) i czasu urzędowego, są odporne na zdarzenie GPS rollover. Status prawidłowego zabezpieczenia względem poprawnej obsługi wydarzenia GPS rollover posiadanych przez GUM odbiorników i systemów został w ostatnim czasie zweryfikowany przez pracowników Laboratorium. We współpracy z Wydziałem Inżynierii Lądowej i Geodezji Wojskowej Akademii Technicznej, z wykorzystaniem symulatora sygnałów GNSS zostały również wykonane dodatkowe niezależne analizy scenariuszy obejmujących najbliższy GPS rollover (zdjęcie).
Podziękowania: pracownicy GUM dziękują drowi inż. Marcinowi Szołusze i Wydziałowi Inżynierii Lądowej i Geodezji Wojskowej Akademii Technicznej za umożliwienie oraz pomoc w przeprowadzonych testach i za poświęcony czas.
INFORMACJE SZCZEGÓŁOWE O GPS ROLLOVER
Pomiary czasu są związane z koniecznością ich odniesienia do pewnych określonych zjawisk cyklicznych, powtarzalnych. System liczb, w którym sekwencja liczb powtarza się po osiągnięciu pewnej wartości określanej modułem (modulo, w skrócie mod) nazywa się arytmetyką modularną lub arytmetyką reszt. Przykładem zastosowania arytmetyki modularnej jest używany przez nas kalendarz, w którym odmierzanie dni „zeruje się” po 365 dniach (lub 366 w przypadku roku przestępnego), a także odczyty wskazań zegara 12-godzinnego, gdzie zerowanie odbywa się po 12 godzinach. Można wyobrazić sobie sytuację, w której użytkownik analogowego zegarka z 12-godzinnym cyferblatem nie posiadałby żadnej dodatkowej informacji o bieżącej porze dnia (np. długotrwałe przebywanie w pomieszczeniu całkowicie odciętym od światła dziennego), lub o dniu tygodnia czy dacie (brak dodatkowego licznika – np. kalendarza). Pomimo, iż zegarek użytkownika byłby bardzo odkładany, co pozwoliłoby na pomiar upływu czasu zgodnie z arytmetyką liczb całkowitych, to jednokrotny odczyt wskazań zegara zgodnie z arytmetyką modularną nie pozwoliłby na jednoznaczne oznaczenie aktualnego momentu na skali czasu. Użytkownik zegarka byłby jedynie poinformowany o liczbie godzin i minut, które upłynęły od godziny 0:00, natomiast nie wiedziałby czy odczyt wskazania zegara „4:30” oznacza godzinę wpół do piątej rano czy trzydzieści minut po szesnastej, nie mówiąc o braku wiedzy odnośnie aktualnego dnia tygodnia czy dnia roku.
W amerykańskim systemie GPS, podobnie jak w innych globalnych systemach nawigacji satelitarnej (GNSS – ang. Global Navigation Satellite Systems), do odmierzania czasu używana jest również arytmetyka modularna. Satelity GPS obliczają i dystrybuują czas w unikalny sposób, wynikający z metody generowania kodów transmisyjnych złożonych z sekwencji zero-jedynkowych, czyli tzw. kodów (ciągów) pseudoprzypadkowych (ang.: Pseudorandom Noise - PRN).
Dane nawigacyjne GPS, transmitowane w sekwencjach kodu, odnoszone są do podstawowej jednostki czasu systemu – „licznika Z” (pełny licznik Z zawiera łącznie 29 bitów). Na ten licznik składają się dwa fragmenty depeszy GPS wysyłanej z satelitów.
Liczba epok, które upłynęły od początku bieżącego tygodnia (ang.: Time of Week - TOW) transmitowana jest w formie 19-bitowego (w pełnej postaci) ciągu kodu. Licznik ten zeruje się co tydzień (wraz z zerowaniem kodu P), zawsze o północy z soboty na niedzielę i zawiera się w przedziale liczb całkowitych od 0 do 403 199. W systemie GPS epoka oznacza 1,5 sekundy, co jest pochodną szybkości generatora kodu X1 równej 10,23 MHZ i liczby bitów kodu potrzebnych do utworzenia transmitowanego PRN (rysunek). 10 najbardziej znaczących bitów licznika Z określa numer aktualnego tygodnia GPS (ang.: Week Number - WN). Przeznaczona w depeszy nawigacyjnej ilość informacji, potrzebna do określenia numeru tygodnia, pozwala określić, iż największą możliwą wartością tej zmiennej jest 1023 (210-1). Po tej wartości licznik tygodni GPS zeruje się. Oznacza to, że od początku obliczania czasu systemu GPS, a więc od północy z 5 na 6 stycznia 1980 r., czas GPS wyznaczany jest konsekwentnie w ok. 19,6-letnich cyklach, wywodzących się ze sposobu oznaczania epok obserwacji. Depesza nawigacyjna transmitowana przez satelity GPS nie posiada dodatkowej informacji o cyklu wyznaczenia numeru tygodnia lub o aktualnym roku.
Rysunek: odmierzanie czasu w systemie GPS (zmodyfikowano na podstawie publikacji [4]).
Moment zerowania się numeru aktualnego tygodnia (zerowanie całego licznika Z) jest właśnie określany mianem GPS week number rollover. Takie wydarzenie w systemie GPS już raz miało okazję zaistnieć w nocy z 21 na 22 sierpnia 1999 roku, a kolejne wystąpi w nocy z 6 na 7 kwietnia 2019 r. Podczas, gdy w wysyłanej przez satelity GPS depeszy nawigacyjnej nie ma dodatkowej informacji o aktualnym cyklu zliczania tygodniu lub o roku kalendarzowym, odbiornik powinien posiadać dodatkową, wprowadzoną „spoza” systemu informację o pełnej dacie. Taką informację można pozyskać z zegara czasu rzeczywistego pracującego na zapasowym źródle zasilania. Częstym jest również użycie, jako odniesienia, daty zapisanej w tzw. pamięci nieulotnej urządzenia (np. EEPROM, pamięć flash), która może być aktualizowana podczas właściwej pracy urządzenia. Wtedy, jeśli data referencyjna przechowywana w pamięci nie jest późniejsza niż jeden pełny cykl zliczania tygodni GPS, odbiornik powinien poprawnie uznać, że wyznaczana na podstawie sygnałów satelitarnych data nie może być wcześniejsza niż ostatnia zapisana w pamięci nieulotnej urządzenia. Problemy mogą pojawić się w przypadku pełnego kasowania pamięci urządzenia. Trzecim wariantem obsługi GPS rollover (obok zegara czasu rzeczywistego i wykorzystania pamięci nieulotnej) jest możliwość pozyskiwania przez odbiornik lub system, w którym wykorzystywane są sygnały GPS, wiarygodnej informacji o czasie z niezależnego źródła, np. serwerów NTP, PTP lub innych źródeł.
Jeżeli odbiornik nie posiada żadnego z wymienionych wcześniej zabezpieczeń, odniesieniem do wyznaczania niewiadomej liczby cykli obliczania numerów tygodni GPS może być zakodowana data wydania oprogramowania sprzętowego odbiornika. Data ta może być aktualizowana w ramach instalacji aktualizacji oprogramowania. Jednak w tym przypadku odbiornik nie może poprawnie określić liczby cykli odliczania tygodni GPS, jeśli różnica między wprowadzoną datą odniesienia (ostatnią aktualizacją) a bieżącą datą wynosi 19,6 roku.
CIEKAWOSTKI
Jako ciekawostkę, można w tym miejscu podać, że europejski system nawigacji satelitarnej Galileo, którego pełna operacyjność jest przewidywana na 2020 rok, wykorzystuje licznik 12-bitowy na oznaczenie numeru tygodnia (mod 4096 - zerowanie co ok. 78 lat). Początek czasu Galileo został określony na godzinę 0:00 UT 22 sierpnia 1999 r., a więc zaraz po pierwszym GPS rollover. Poprzez ten zabieg zachowano konsekwencję w sposobie oznaczenia numerów tygodnia z systemem GPS.
Program modernizacji systemu GPS zakłada uruchomienie w 2024 roku fazy pełnej operacyjności funkcjonowania nowych rodzajów depeszy nawigacyjnej „Civil Navigation (CNAV) Message”. Numer tygodnia w tej depeszy będzie zapisany na 13-bitowym polu (zerowanie co ok. 157 lat).
Zdjęcie na str. głównej: Widok z platformy antenowej GUM wraz z wizualizacją satelitów GNSS (oraz SBAS), widocznych nad horyzontem (wizualizacja pozyskana z użyciem aplikacji "GNSS view").
[1] “Interface Specification IS-GPS-200, Navstar GPS Space Segment/Navigation User Interfaces,” Global Positioning Systems Directorate Systems Engineering & Integration, Latest version incorporating all applicable Interface Revision Notices (IRNs), https://www.gps.gov/technical/icwg/
[2] “Memorandum for U.S. owners and operators using GPS to obtain UTC time. Upcoming Global Positioning System Week Number Rollover Event.” US Department of Homeland Security, National Cybersecurity & Communications Integration Center, National Coordinating Center for Communications. https://ics-cert.us-cert.gov/Memorandum-US-Owners-and-Operators-Using-GPS-Obtain-UTC-Time
[3] “GPS Week Rollover Issue,” Edward Powers, USNO, Sept 26, 2017, CGSIC, https://www.gps.gov/cgsic/meetings/2017/powers.pdf
[4] The GPS End-of-Week Rollover. Richard B. Langley, University of New Brunswick. GPS WORLD, November 1998.