Делаю поделку. Часы на микроконтроллере. Хочу, чтобы показывали более-менее точное время. С точностью до миллисекунд не обязательно, но хотя бы до пары секунд чтобы была и оставалась точность. Я так понимаю, RTC в любом случае постепенно куда-нибудь уйдёт. Т.е. нужно как-то получать сигналы точного времени. Хотелось бы понять, как это сделать. Думаю, раз в сутки будет достаточно. В идеале хотелось бы с нулевыми усилиями со стороны пользователя, чтобы оно просто работало, магия и всё тут.
1. Нужно, чтобы микросхема стоила разумных денег, тысяча долларов будет слишком много. Сильно дёшево не обязательно, это не серийное изделие.
2. Нужно, чтобы она не тратила очень уж много энергии. Даже раз в сутки.
Каких-то точных рецептов мне не надо, сам разберусь, хотелось бы определиться для начала с подходом.
1. WiFi. Тут всё "просто", подключаемся к интернету и спрашиваем любой NTP-сервер, но есть два больших минуса: нужен WiFi (не у всех он есть), и нужен какой-то интерфейс к устройству, через который можно будет настроить параметры подключения к WiFi. В общем само работать не будет.
2. GSM. Слыхал, что по сотовой сети можно получить сигнал точного времени. Информации не очень много, толком не нашёл — насколько это время точное, насколько гарантируется, что сеть поддерживает этот функционал, а самое главное — можно ли этим пользоваться без сим-карты, т.к. сим-карту я туда точно покупать не буду.
3. GPS. Как я понимаю, принцип работы GPS в том, что спутники посылают сигнал точного времени. Тут тоже не нашёл информацию — насколько сложно такой сигнал принять. Всё же GPS-чипы отдают координаты, а не сигнал. Также GPS жрёт много энергии, требует каких-то альманахов, хотя для задачи получения сигнала точного времени это всё не надо. Можно ли уловить сигнал GPS без специальной микросхемы? Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
4. Краем уха слыхал, что есть какие-то специальные радиостанции, которые рассылают сигнал точного времени. Но так и не нагуглил, о чём речь. Есть такое? Где посмотреть покрытие? По каким словам гуглить?
Здравствуйте, vsb, Вы писали:
vsb>Можно ли уловить сигнал GPS без специальной микросхемы? Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
Скорее нет, чем да. Но вообще, там где нужно точное время, GPS это разумный выбор. Его даже в промышленное и научное оборудование встраивают, чтоб не мучаться с синхронизацией вручную.
vsb>4. Краем уха слыхал, что есть какие-то специальные радиостанции, которые рассылают сигнал точного времени. Но так и не нагуглил, о чём речь. Есть такое? Где посмотреть покрытие? По каким словам гуглить?
Здравствуйте, Miroff, Вы писали:
M>Скорее нет, чем да. Но вообще, там где нужно точное время, GPS это разумный выбор. Его даже в промышленное и научное оборудование встраивают, чтоб не мучаться с синхронизацией вручную.
Видеорегистратор с GPS в этом плане крайне удобен — зимой нет-нет да и сядет батарея, вырубятся встроенные часы — но с GPS всегда синхронизируется и со временем проблем нет.
Re: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>Делаю поделку. Часы на микроконтроллере. Хочу, чтобы показывали более-менее точное время. С точностью до миллисекунд не обязательно, но хотя бы до пары секунд чтобы была и оставалась точность. Я так понимаю, RTC в любом случае постепенно куда-нибудь уйдёт. Т.е. нужно как-то получать сигналы точного времени. Хотелось бы понять, как это сделать. Думаю, раз в сутки будет достаточно. В идеале хотелось бы с нулевыми усилиями со стороны пользователя, чтобы оно просто работало, магия и всё тут.
Можно взять более-менее нормальный часовой rtc и подводить часы вручную раз в полгода-год. https://3d-diy.ru/wiki/arduino-moduli/chasy-realnogo-vremeni-ds3231/
В любом случае кривой rtc и автоподводка хуже, чем нормальный rtc и автоподводка.
vsb>4. Краем уха слыхал, что есть какие-то специальные радиостанции, которые рассылают сигнал точного времени. Но так и не нагуглил, о чём речь. Есть такое? Где посмотреть покрытие? По каким словам гуглить?
RWM, RBU.
Re: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>3. GPS. Как я понимаю, принцип работы GPS в том, что спутники посылают сигнал точного времени. Тут тоже не нашёл информацию — насколько сложно такой сигнал принять. Всё же GPS-чипы отдают координаты, а не сигнал. Также GPS жрёт много энергии, требует каких-то альманахов, хотя для задачи получения сигнала точного времени это всё не надо. Можно ли уловить сигнал GPS без специальной микросхемы?
Собственно, точное время одно из основных применений для gps -- https://youtu.be/3bnMCh2wUjs?t=1081 (7 минут про это).
Гугл исп. gps для синхронизации времени для своей распределенной бд.
vsb>3Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
Дешифровать мало, надо решить систему для 4-х неизвестных x,y,z,t, т.е. должно быть соотв. кол-во спутников.
Кодом людям нужно помогать!
Re[2]: Какие есть способы получать более-менее точное время?
2 минуты за год это очень много. Это секунда за 3 дня или 2 секунды за неделю.
AD>В любом случае кривой rtc и автоподводка хуже, чем нормальный rtc и автоподводка.
Почему хуже? Вообще кривой RTC будет стабильно отставать/торопиться или полный рандом? Я планировал написать какой-нибудь простенький алгоритм, который будет определять, в какую сторону врёт RTC и корректировать время автоматически исходя из этих измерений.
Здравствуйте, Sharov, Вы писали:
vsb>>3Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
S>Дешифровать мало, надо решить систему для 4-х неизвестных x,y,z,t, т.е. должно быть соотв. кол-во спутников.
Не очень понял, зачем мне что-то решать. Мне только t нужно. Я так понимаю, сигнал от спутника доходит за доли секунды, мне этой точности за глаза.
Re: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>Почему хуже? Вообще кривой RTC будет стабильно отставать/торопиться или полный рандом? Я планировал написать какой-нибудь простенький алгоритм, который будет определять, в какую сторону врёт RTC и корректировать время автоматически исходя из этих измерений.
Степень вранья будет зависеть от температуры. В чипе, который я скинул, не зря есть датчик оной.
Но если хочется именно покрасноглазить, то вот: https://tube-time.ru/pro_tochnost/
Re[3]: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
S>>Дешифровать мало, надо решить систему для 4-х неизвестных x,y,z,t, т.е. должно быть соотв. кол-во спутников. vsb>Не очень понял, зачем мне что-то решать. Мне только t нужно. Я так понимаю, сигнал от спутника доходит за доли секунды, мне этой точности за глаза.
Я же дал ссылку на видео, где это объясняется. Там не все так просто. Т.е., якобы, сигнал со скоростью
света передается со спутника к приемнику, т.е. есть точное время отправления и скорость света его
распространения, соотв. приемник может получить точное время. Это не так, так как на приемники возможет
дрифт часов, т.е. они банально могут спешить или отставать на микросекунды. Это раз. По пути
распространения сигнала имеется ионосфера, которая этот сигнал немного притормаживает вроде.
Тут подробнее -- https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System#Atmospheric_effects
Еще можно по слову time поискать про другие возможные помехи, типа многолучевости, когда принимается не исходный
сигнал, а отраженный, т.е. он дольше был в пути чем просто "по прямой". В общем это не самое простое дело типа
"дешифровать". Время получается на ряду с позицией, это 4-я неизвестная.
Кодом людям нужно помогать!
Re[4]: Какие есть способы получать более-менее точное время?
Здравствуйте, Sharov, Вы писали:
S>Я же дал ссылку на видео, где это объясняется. Там не все так просто. Т.е., якобы, сигнал со скоростью S>света передается со спутника к приемнику, т.е. есть точное время отправления и скорость света его S>распространения, соотв. приемник может получить точное время. Это не так, так как на приемники возможет S>дрифт часов, т.е. они банально могут спешить или отставать на микросекунды. Это раз. По пути S>распространения сигнала имеется ионосфера, которая этот сигнал немного притормаживает вроде. S>Тут подробнее -- https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System#Atmospheric_effects S>Еще можно по слову time поискать про другие возможные помехи, типа многолучевости, когда принимается не исходный S>сигнал, а отраженный, т.е. он дольше был в пути чем просто "по прямой". В общем это не самое простое дело типа S>"дешифровать". Время получается на ряду с позицией, это 4-я неизвестная.
Ну мне все эти микросекунды роли не играют, у меня точность 2 секунды, а не микросекунды. Я это к чему спрашиваю — чтобы GPS поймал позицию 4 спутников и посчитал локацию, это занимает много времени, в течение которого этот GPS будет жрать энергию. Т.е. я бы предпочёл запитать приёмник на 10 мс, поймать первый попавшийся сигнал и потушить его сразу, и пусть там будет точность +- секунда, нежели подавать на него питание в течение 20 секунд, чтобы получить точность в микросекунду. Как-то так.
Re: Какие есть способы получать более-менее точное время?
Здравствуйте, vsb, Вы писали:
vsb>3. GPS. Как я понимаю, принцип работы GPS в том, что спутники посылают сигнал точного времени. Тут тоже не нашёл информацию — насколько сложно такой сигнал принять. Всё же GPS-чипы отдают координаты, а не сигнал. Также GPS жрёт много энергии, требует каких-то альманахов, хотя для задачи получения сигнала точного времени это всё не надо. Можно ли уловить сигнал GPS без специальной микросхемы? Просто прицепить антенну на АЦП-вход микроконтролера и дешифровать что он там будет улавливать. Или я слишком наивен?
У меня был ноутбук, в котором был не заявленный в спецификации GPS-модем (вернее, он был объединен в одно устройство с GSM-модемом). Я немного повозился, пытаясь его оживить, впрочем, без особого успеха. Видимо, модемная часть в ноутбуке была, а антенны не было; он вел себя, словно он жив, но только спутников не видит.
В плане программирования это была вполне незамысловатая такая железка. Этакий модем с AT-командами, самые длинные и многословные из которых относились к GPS.
У GPS есть один недостаток: в помещении может оказаться, что он ни одного спутника не видит.
На коленке GPS-приемник не сделаешь, там все сложно.
vsb>4. Краем уха слыхал, что есть какие-то специальные радиостанции, которые рассылают сигнал точного времени. Но так и не нагуглил, о чём речь. Есть такое? Где посмотреть покрытие? По каким словам гуглить?
Здравствуйте, vsb, Вы писали:
vsb>Почему хуже? Вообще кривой RTC будет стабильно отставать/торопиться или полный рандом? Я планировал написать какой-нибудь простенький алгоритм, который будет определять, в какую сторону врёт RTC и корректировать время автоматически исходя из этих измерений.
Он температурно-зависимый.
Бывают (по крайней мере, раньше были) кварцевые генераторы, поддерживающие внутри себя постоянную температуру, с целью увеличения стабильности. Но они, наверное, жрут много на обогрев своих внутренностей.
Re[2]: Какие есть способы получать более-менее точное время?
Здравствуйте, Pzz, Вы писали:
S>>Дешифровать мало, надо решить систему для 4-х неизвестных x,y,z,t, т.е. должно быть соотв. кол-во спутников. Pzz>А если интересно только время, и особая точность не нужна, одного спутника не достаточно?
Ионосфера, дрифт часов приемника, переотражения куда-то денутся?
Кодом людям нужно помогать!
Re[4]: Какие есть способы получать более-менее точное время?
Здравствуйте, Sharov, Вы писали:
S>>>Дешифровать мало, надо решить систему для 4-х неизвестных x,y,z,t, т.е. должно быть соотв. кол-во спутников. Pzz>>А если интересно только время, и особая точность не нужна, одного спутника не достаточно?
S>Ионосфера, дрифт часов приемника, переотражения куда-то денутся?
Но сколько они добавят-то? Десяток-другой миллисекунд? Топикстартеру это не важно.
Re[4]: Какие есть способы получать более-менее точное время?
Здравствуйте, Pzz, Вы писали:
vsb>>Почему хуже? Вообще кривой RTC будет стабильно отставать/торопиться или полный рандом? Я планировал написать какой-нибудь простенький алгоритм, который будет определять, в какую сторону врёт RTC и корректировать время автоматически исходя из этих измерений.
Pzz>Он температурно-зависимый.
Pzz>Бывают (по крайней мере, раньше были) кварцевые генераторы, поддерживающие внутри себя постоянную температуру, с целью увеличения стабильности. Но они, наверное, жрут много на обогрев своих внутренностей.
Здравствуйте, Pzz, Вы писали:
Pzz>У меня был ноутбук, в котором был не заявленный в спецификации GPS-модем (вернее, он был объединен в одно устройство с GSM-модемом). Я немного повозился, пытаясь его оживить, впрочем, без особого успеха. Видимо, модемная часть в ноутбуке была, а антенны не было; он вел себя, словно он жив, но только спутников не видит.
Гармин когда то продавал отдельные USB Receiver, эдакая коробочка на проводе, втыкаешь в ноут и его видно как serial port, оттуда можно было тягать и координаты и время.
Валяется где то в шкафу за ненадобностью.
По идее можно такой купить и воткнуть.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Какие есть способы получать более-менее точное время?
Здравствуйте, Pzz, Вы писали:
Pzz>Но сколько они добавят-то? Десяток-другой миллисекунд? Топикстартеру это не важно.
По-моему, даже порядка микросекунд. Т.е. ТС варинат, но все равно для точности в 1 сек. я бы с GPS
не связывался. Не думаю, что есть чип (хотя может и есть), который просто ловит сигнал от спутника,
декодирует его и выдает время. Тут уже будет не малая ф-ть в одном "декодировании" сигнала от спутника,
ибо они, сигналы спутников, подобраны спец. образом (Golden code и т.п.). Т.е. это все равно будет крайне непростое
устройство.
Кодом людям нужно помогать!
Re[6]: Какие есть способы получать более-менее точное время?
Здравствуйте, Sharov, Вы писали:
S>По-моему, даже порядка микросекунд. Т.е. ТС варинат, но все равно для точности в 1 сек. я бы с GPS S>не связывался. Не думаю, что есть чип (хотя может и есть), который просто ловит сигнал от спутника, S>декодирует его и выдает время. Тут уже будет не малая ф-ть в одном "декодировании" сигнала от спутника, S>ибо они, сигналы спутников, подобраны спец. образом (Golden code и т.п.). Т.е. это все равно будет крайне непростое S>устройство.
Я б на его месте тоже с GPS не связывался, если бы был выбор. Но похоже, это — самое простое и дешевое решение, и особых альтернатив у него нет.