как работает gps, часть 4
Oct. 23rd, 2009 04:08 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Остаётся рассказать, как читать сигналы gps, если в вашем устройстве есть такой чип.
Пропустим вопросы конфигурации и инициализации, это всё детали. Предположим, что у вас уже всё подключено, прогрето, сконфигурировано, gps нашел свои спутники и готов поделиться информацией. Взять её у него - наша задача.
Gps передаёт свою информацию по последовательному порту, на 4800 baud. Каждый блок представляет собой несколько строк ASCII символов. Каждая строка начинается с идентификатора. Есть стандарт на контент, но есть и реальность, в которой а) стандарт не всегда соблюдается, и б) proprietory форматы содержат много интересного, чего нет в стандартной информации.
Вот некоторые из идентификаторов:
$GPZDA - работает как часы, т.е. сообщает время и дату;
$GPRMC - минимальный источник текущего положения
$GPGGA - типичный источник текущего положения ("gps fix")
$GPGLL - ещё один альтернативный источник текущего положения
$GPGSA - сведения об использованных спутниках и точность по вертикали и по горизонтали
Так как самое интересное - это gps fix, то эти три, GPGGA, GPGLL, GPRMC я и приведу в деталях.
Есть много различных видов данных от GPS; разные GPS возвращают разные пакеты данных. Странное отсутстие высоты в минимальном пакете объясняется тем, что стандарт разрабатывали моряки, а у моряков пространство двумерное, они про высоту ничего не знают. А глубину GPS не меряет.
На этом я заканчиваю свои записки. Пользуйтесь этими данными как считаете нужным.
Ещё несколько замечаний на тему распространённых мифов.
- GPS передаёт данные на спутник. Это нужно верить в чудеса, чтобы полагать, что 30 спутников на высоте 20 тыс км в состоянии принять сигналы от, небось, полумиллиарда мобильников и навигаторов; если ещё учесть мощность сигнала мобильника... ну вы поняли.
- нужна постоянная видимость спутника. Нет; на самом деле, некоторые устройства могут проэкстраполировать ваше движение в тоннеле; кроме того, репитеры, aka DGPS, во множестве размещены по городам и весям; у нас в конторе, например, несколько таких репитеров висит просто на потолке; я так понимаю, что и в Гугле тоже эти приборы понатыканы; вскоре они появятся и в аэропортах, если уже не появились.
- спутники ни при чём, а всё ориентирование идёт через башни мобильников. Нельзя исключить, что такие приборы имеются, только их нельзя назвать GPS; система LORAN, использовавшаяся для морской и воздушной навигации до эпохи GPS, нынче уходит в прошлое, т.к. затраты на поддержку всех этих станций по всей планете несравнимы с затратами на спутник.
Замечания приветствуются. Через недельку я это перегоню в pdf и помещу у себя на сайте.
Пропустим вопросы конфигурации и инициализации, это всё детали. Предположим, что у вас уже всё подключено, прогрето, сконфигурировано, gps нашел свои спутники и готов поделиться информацией. Взять её у него - наша задача.
Gps передаёт свою информацию по последовательному порту, на 4800 baud. Каждый блок представляет собой несколько строк ASCII символов. Каждая строка начинается с идентификатора. Есть стандарт на контент, но есть и реальность, в которой а) стандарт не всегда соблюдается, и б) proprietory форматы содержат много интересного, чего нет в стандартной информации.
Вот некоторые из идентификаторов:
$GPZDA - работает как часы, т.е. сообщает время и дату;
$GPRMC - минимальный источник текущего положения
$GPGGA - типичный источник текущего положения ("gps fix")
$GPGLL - ещё один альтернативный источник текущего положения
$GPGSA - сведения об использованных спутниках и точность по вертикали и по горизонтали
Так как самое интересное - это gps fix, то эти три, GPGGA, GPGLL, GPRMC я и приведу в деталях.
GP*** | Время, Широта, Долгота | Высота | Скорость | Курс | Точность | <Пример | Интерпретация |
---|---|---|---|---|---|---|---|
RMC | + | + | + | + | + | $GPRMC,081836,A,3751.65,N,4507.36,E,010.0,117.0,221009,011.3,E*42 | t=08:18:36, all ok, lat=37°51.65' North, lon=45°7.36' East, speed=10 knots, course=117°, date=Nov.22,2009, magnetic deviation=11.3° East, and 42 is the checksum |
GGA | + | + | - | - | + | $GPGGA,180823.30,3751.65,N,4507.36,E,1,09,3.1,271.8,M,-34.5,M,5.5,1234*42 | t=08:18:36, lat=37°51.65' North, lon=45°7.36' East, source: satellite, 9 satellites, horizontal precision 3.1 m, altitude 271.8 m, geoid height above ellipsoid -34.5, age of DGPS data = 5.5 sec, DGPS id = 1234; and 42 is the checksum |
GLL | + | - | - | - | - | $GPGLL,3751.65,N,4507.36,E,180823.30,A | lat=37°51.65' North, lon=45°7.36' East; t=08:18:36; A means data valid |
Есть много различных видов данных от GPS; разные GPS возвращают разные пакеты данных. Странное отсутстие высоты в минимальном пакете объясняется тем, что стандарт разрабатывали моряки, а у моряков пространство двумерное, они про высоту ничего не знают. А глубину GPS не меряет.
На этом я заканчиваю свои записки. Пользуйтесь этими данными как считаете нужным.
Ещё несколько замечаний на тему распространённых мифов.
- GPS передаёт данные на спутник. Это нужно верить в чудеса, чтобы полагать, что 30 спутников на высоте 20 тыс км в состоянии принять сигналы от, небось, полумиллиарда мобильников и навигаторов; если ещё учесть мощность сигнала мобильника... ну вы поняли.
- нужна постоянная видимость спутника. Нет; на самом деле, некоторые устройства могут проэкстраполировать ваше движение в тоннеле; кроме того, репитеры, aka DGPS, во множестве размещены по городам и весям; у нас в конторе, например, несколько таких репитеров висит просто на потолке; я так понимаю, что и в Гугле тоже эти приборы понатыканы; вскоре они появятся и в аэропортах, если уже не появились.
- спутники ни при чём, а всё ориентирование идёт через башни мобильников. Нельзя исключить, что такие приборы имеются, только их нельзя назвать GPS; система LORAN, использовавшаяся для морской и воздушной навигации до эпохи GPS, нынче уходит в прошлое, т.к. затраты на поддержку всех этих станций по всей планете несравнимы с затратами на спутник.
Замечания приветствуются. Через недельку я это перегоню в pdf и помещу у себя на сайте.