Здравствуйте, vsb, Вы писали:
vsb>3. GPS. Как я понимаю, принцип работы GPS в том, что спутники посылают сигнал точного времени. Тут тоже не нашёл информацию — насколько сложно такой сигнал принять.
В каком плане сложно?
vsb> Всё же GPS-чипы отдают координаты, а не сигнал.
Время они тоже отдают.
vsb>Также GPS жрёт много энергии,
Современные — не особо.
vsb> требует каких-то альманахов,
Время они, емнип, отдают и без подгрузки альманахов.
vsb>Можно ли уловить сигнал GPS без специальной микросхемы?
Специальной микросхемой будет дешевле и проще.
vsb>4. Краем уха слыхал, что есть какие-то специальные радиостанции, которые рассылают сигнал точного времени.
На территории Казахстана, афаик, ни одной нет. Ближайшая вроде бы где то в Германии.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Какие есть способы получать более-менее точное время?
Здравствуйте, Ночной Смотрящий, Вы писали:
vsb>>3. GPS. Как я понимаю, принцип работы GPS в том, что спутники посылают сигнал точного времени. Тут тоже не нашёл информацию — насколько сложно такой сигнал принять.
НС>В каком плане сложно?
В плане доступности нужного оборудования для приёма радиоволны и извлечения из неё нужной информации. Т.е. подцепить антенну к АЦП-ножке микроконтролера и там чего-нибудь записать-отфильтровать, видимо, не получится.
vsb>> Всё же GPS-чипы отдают координаты, а не сигнал.
НС>Время они тоже отдают.
vsb>>Также GPS жрёт много энергии,
НС>Современные — не особо.
vsb>> требует каких-то альманахов,
НС>Время они, емнип, отдают и без подгрузки альманахов.
vsb>>Можно ли уловить сигнал GPS без специальной микросхемы?
НС>Специальной микросхемой будет дешевле и проще.
Т.е. берём плату, дающую доступ к GPS и курим её интерфейс на предмет этой информации — это нормальный подход, получается. Спасибо.
Re: Какие есть способы получать более-менее точное время?
vsb> Можно ли уловить сигнал GPS без специальной микросхемы? Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
Можно ловить на RTL SDR донгл с прецизионным кварцем, NESDR например. Но это оверкилл.
Как много веселых ребят, и все делают велосипед...
Re: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>Ну мне все эти микросекунды роли не играют, у меня точность 2 секунды, а не микросекунды.
Действительно, непонятно зачем тебе советуют тут решать какие-то уравнения, слушать несколько спутников, вычислять коррекции и поправки, и прочую жесть.
Так как в gps каждая строка данных, переданная со спутника, содержит временную метку в HOW-слове. Для желаемой точности достаточно просто транслировать её наружу с любого из спутников, даже без сравнения с другими.
> Т.е. я бы предпочёл запитать приёмник на 10 мс, поймать первый попавшийся сигнал и потушить его сразу, и пусть там будет точность +- секунда
А вот так не получится.
Хотя временные метки и находятся в каждом subframe, но один subframe занимает 300 бит, а в GPS скорость передачи — 50 бит в секунду. То есть для минимальной порции данных придётся принимать сигнал минимум 6 секунд.
Дальше — хуже. В HOW находится не весь timestamp, а лишь младшая его часть — время с начала gps-недели.
Какая сейчас gps-неделя, конечно, тоже передаётся, но лишь в subframe 1, то есть раз в 30 секунд. И там тоже не все биты, а лишь по модулю 1024 (https://en.wikipedia.org/wiki/GPS_week_number_rollover).
Но и это ещё не всё. Тебя скорее интересует UTC-время. А в нём есть високосные секунды. А gps-time течёт непрерывно.
То есть gps-timestamp нужно скорректировать на несколько целочисленных високосных секунд: а они наступают непредсказуемо. Если эту информацию не обновлять, то каждые несколько лет будет добавляться ошибка ровно в одну секунду.
А обновлять эту информацию можно либо из tzdata, либо из 18-й страницы альманаха (транслируется раз в 12.5 минут, достаточно получать раз в полгода).
Понятно, что если слышно несколько спутников, то можно дождаться первого ответа, кратно уменьшив время ожидания, но даже если тебе откуда-то (например, с предыдущего запуска) уже известна вся нужная информация, то всё равно субсекундного времени приёма не будет достаточно.
Спасибо, очень интересно, пожалуй на все вопросы ответили, я эту информацию по кускам где-то хватал, но полной картины не было.
Я так полагаю, что текущую неделю мне надо узнать один раз, а после этого RTC её будет помнить (по крайней мере пока батарейку не заменят).
По високосным секундам, думаю, тоже не критично, но учту.
Главное теперь, чтобы GPS-плата выдавала всю эту информацию в достаточно сыром виде по мере поступления, а не где-нибудь внутри пережёвывала, выплёвывая лишь выводы через 15 минут работы (:
W>Понятно, что если слышно несколько спутников, то можно дождаться первого ответа, кратно уменьшив время ожидания, но даже если тебе откуда-то (например, с предыдущего запуска) уже известна вся нужная информация, то всё равно субсекундного времени приёма не будет достаточно.
Ну сколько надо, столько будем принимать, про субсекундное время приёма, это я так, от балды сказал, почему-то думал, что там сигнал передаётся куда плотней. Думаю, если раз в пару недель на 6 секунд включать, чтобы подкорректировать RTC, это не должно быть сильно напряжно для батарейки.
Здравствуйте, vsb, Вы писали:
vsb>Т.е. берём плату, дающую доступ к GPS и курим её интерфейс на предмет этой информации
Там обычно вариации на тему последовательного терминала. В который приемник просто выдает по таймеру одну и ту же строку, содержащую список спутников, время и координаты. Координаты, понятно, появляются не сразу.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>Т.е. берём плату, дающую доступ к GPS и курим её интерфейс на предмет этой информации — это нормальный подход, получается. Спасибо.
Здравствуйте, watchmaker, Вы писали:
W>Действительно, непонятно зачем тебе советуют тут решать какие-то уравнения, слушать несколько спутников, вычислять коррекции и поправки, и прочую жесть. W>Так как в gps каждая строка данных, переданная со спутника, содержит временную метку в HOW-слове. Для желаемой точности достаточно просто транслировать её наружу с любого из спутников, даже без сравнения с другими.
А как же ионосфера и многолучевость? Я честно не знаю сколько они могут добавить, но эта временная метка в
случае не очень хороших условий приема будет устаревшей. Возможно речь идет о микри или милли секундах, что для
ТС не актуально. Опять же, какое железо это умеет делать? Если брать gnss приемник, то зачем тогда
с этим всем мучатся и просто не взять готовое gnss решение (x,y,z,t)?
Кодом людям нужно помогать!
Re[7]: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>Главное теперь, чтобы GPS-плата выдавала всю эту информацию в достаточно сыром виде по мере поступления, а не где-нибудь внутри пережёвывала, выплёвывая лишь выводы через 15 минут работы (: