NMEA – standard GPS-ów

O wykorzystaniu GPS-a, na razie celem pozyskania bardzo dokładnego czasu, napisałem niedawno artykuł. Tytułem wprowadzenia – informacja o współpracy urządzeń pozyskujących czas i lokalizację satelitarną. Podstawowy protokół nazywa się NMEA i powstał głównie dla celów nawigacji morskiej. Jest to interfejs szeregowy o domyślnej szybkości 4800 bodów, ale z możliwością wyboru bitrate w szerokich granicach i bazuje na klasycznym RS232. Wydaje się dziś całkowicie przestarzały, lecz w profesjonalnych rozwiązaniach istotna jest niezawodność i kompatybilność, a oba te elementy są tu spełnione.
Ramka ma do 82 bajtów i wysyłana jest paczkami raz na sekundę. Zawiera przede wszystkim dokładną lokalizację oraz czas dla strefy zero, który należy sobie przekonwertować zgodnie z czasem obowiązującym w strefie, w której odbiornik się znajduje. Poza tym w ramce znajdziemy informacje o wysokości, ilości widocznych satelitów i flagi jakości sygnału. Całość obejmuje suma kontrolna, więc o pomyłce nie ma mowy.
Ramka nie jest skomplikowana do ręcznej obróbki, jednakże można skorzystać z gotowych bibliotek i jedną z nich, TinyGPS++, wykorzystuję we wspomnianym artykule, który skupia się na budowie dokładnego zegara.