Установка часов реального времени по GPS

andy-k
Offline
Зарегистрирован: 14.05.2012

Пока не знаю, реализуемо это вообще, но если да и исполнитель найдется, то готов поставить задачку.

Суть такая, есть arduino nano, есть часы реального времени ds3231, есть GPS приемник. GPS подключен по Serial к ардуинке, а так же подключен вывод прерывания, посылающий импульсы каждую секунду(по наступлению новой секунды). Это позволяет очень точно получать текущее время, без разбега в миллисекундах. То есть, не просто забрать текущее мировое время до секунд, но и получить точность до долей секунд.

Вот именно с такой точностью очется инициировать часы реального времени. То есть, чтобы они начали тикать идеально синронно с часами GPS. Ибо сейчас не могу этого добиться. Все перепробовал, все пересмотрел, не выходит каменный цветок.

Чтобы более точно понять, что мне нужно. Итак, и там и там время сейчас, к примеру, 8:23:45, но по GPS 46 секунд наступит через 0.3 секунды, то есть с 45 на 46 "секундная стрелка" тикнет через 0.3 сек. А на ds3231 через 0.8. А иногда через 0.4, иногда через 0.6, зависит от того, как был включен девайс.

Нужно чтобы секунды на них тикали не так:

GPS        ===46=========47=========48====

DS3231  ========46=========47=========48

Жду от вас примерное описание подхода, чтобы согласовать его до начала работ и бюджет.

 

А вот так

GPS        ===46=========47=========48====

DS3231  ===46=========47=========48====

sadman41
Offline
Зарегистрирован: 19.10.2016

C GPS время будете получать с точностью, которая зависит от Output Rate. И если этот Rate 1Hz, то никаких синхронизаций в миллисекунды не удастся получить.

Так, как необходимая точность не озвучена, то ответа на вопрос "возможно ли" на данный момент не существует.

andy-k
Offline
Зарегистрирован: 14.05.2012

Странно, но вроде бы и озвучил и нарисовал и т.д.  Разбег между GPS и часами должен отсутствовать. То есть, не хотелось бы даже 0.001 секунды.

Нужен процесс подстройки часов реального времени под GPS при том, что в них только секунды можно указать.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, смотрите: допустим, что вы как-то измерили, что от подачи команды запуска осциллятора RTC до реального тика проходит 3мс (условно). У GPS Rate, положим, 5Hz, т.е. время летит в порт каждые 200мс. Так как NMEA - формат с переменным числом данных (часть может не выкидываться в порт), то парсинг будет проходить за разные временные промежутки. Разброс будет зависеть от скорости UART. Скажем, он будет пару миллисекунд. Но это можно нивелировать на некоторых моделях приемников. Далее - от момента получения времени в RMC до момента подачи команды RTC нужно отсчитать 197мс. Кто это будет считать? МК с кварцем, который болтает от температуры. В комнате одни 197мс, на улице - другие. 

В этой задаче дохрена неизвестных переменных, которые надо выводить за скобки. Получится это в итоге или нет - огромный вопрос. Все будет очень жестко завязано на модель приемника, конкретный экземпляр ардуины, условия эксплуатации и пр. 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

andy-k пишет:

Странно, но вроде бы и озвучил и нарисовал и т.д.  Разбег между GPS и часами должен отсутствовать. То есть, не хотелось бы даже 0.001 секунды.

Полного отсутсвия " Разбега между GPS и часами" добиться физически невозможно. Определитесь какая точность вас устроит. Ок 1 миллисекунда вас не устраивает. А сколько устроит?

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

видимо придётся решить две задачи, синхронизировать генертор часов с GPS (DO) а уж потом подстройка времени

Komandir
Offline
Зарегистрирован: 18.08.2018

Какой тайный смысл синхронизировать показания с GPS ? В самом чипе GPS оно может и точное, но пока пакет попал в arduino по UART где можно выставить разные скорости передачи, пока подсчиталась контрольная сумма (хз кто по какому алгоритмы считает), пока распарситься этот пакет (опять хз какой алгоритм) - оно уже 100% будет не точное !!!

andy-k
Offline
Зарегистрирован: 14.05.2012

Ребят, GPS приемник выдает достаточно точный импульс ровно раз в секунду, и мне откровенно плевать на то сколько оно там летело по UART-у ))) Точка самой секунды зафиксирована, а когда по UART прилетело, какая это секунда, я и понял. Все просто. И при чем тут кварц мк если GPS автономно от ардуинки по сути работает? 

Возвращаясь к вопросу точности, конечно, хотелось бы 1мс, но расмотрел бы разные варианты не выходящие за 0.1 сек. Хотя, это будет боль в сердце

sadman41
Offline
Зарегистрирован: 19.10.2016

Если все просто, то почему не сделано?

Впрочем, мне тут взбрел один способ, но надо эксперимент ставить. 

andy-k
Offline
Зарегистрирован: 14.05.2012

Это я про то, как точно взять время с GPS. Ну ведь понятно же из текста )

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

sadman41 пишет:

Если все просто, то почему не сделано?

Впрочем, мне тут взбрел один способ, но надо эксперимент ставить. 

неужели затактировать таймер от GPS?

qbit
Offline
Зарегистрирован: 18.03.2019

andy-k пишет:

Пока не знаю, реализуемо это вообще

Да. Вопрос в другом, зачем вносить рассинхронизацию между GPS и таймкипером DS231 до “0,6с”?

Синхронизоваться от GPS-приемника можно двумя способами. Без использования PPS и с использованием PPS. В первом случае максимальная точность – единицы мс, не 1мс, а именно единицы мс. Причина описана выше, например, в #4.

Во втором способе, если использовать сигнал PPS, точность можно получить в единицы мкс. Т.е. время берется из NMEA, а синхронизация по PPS, например, каждую секунду.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Сигнал от спутника распросраняется со скоростью ~300000 км/с. Соответственно, в различных точках земной поверхности разбег составит ~20 мс. (А Земля вращается!) Соответственно, жидать чего-то большего от GPS явно не следует. Неоткуда взяться в датчике времени с более высокой точностью.

sadman41
Offline
Зарегистрирован: 19.10.2016

Добавлю так же, что даже если синкаться по PPS, то это, в общем-то не даст никакой гарантии получения истинно точного времени, будет только условно синхронный ход двух счётчиков, ибо:  "This can be ensured by activating the update RTC and update Ephemeris option. The RTC is calibrated every 5 minutes and the ephemeris data is updated approximately every 30 minutes". 

rst
Offline
Зарегистрирован: 25.06.2018

andy-k пишет:
Жду от вас примерное описание подхода, чтобы согласовать его до начала работ и бюджет.

Не надо синхронизировать сами часы. Надо просто запустить таймер (аппаратный, в МК), изначально его синхронизировать от часов RTC (считать время в секундах, а затем синхронизироваться с сигналом обновления от RTC-часов чтобы получить точность синхронизации точнее 1 сек), а затем - с GPS синхронизировать уже этот таймер. Таймер - выдаёт прерывания 1Гц и в каждом прерывании увеличивает счётчик секунд в значении времени полученном от RTC.

Синхронизировать внутренний таймер МК легко, так как читать его состояние можно мгновенно в отличие от RTC на внешнем интерфейсе. И синхронизация этого таймера - это сдвиг момента начала его периода (период его == 1 сек с прерыванием 1Гц) по сигналу 1 Гц от GPS и запоминание разницы во времени между значением таймера в секундах и временем полученным от GPS.

Ничего писать в RTC-асы не нужно. Нужно только запоминать разницу между содержимым RTC и значением полученным от GPS.

Реализовывал такой алгоритм службы времени в коммерческом изделии. Работает как часы уже много лет в сотнях тысяч выпущенных устройств. Дискретность синхронизации == 1мкс, точность == 0.1мс.

sadman41
Offline
Зарегистрирован: 19.10.2016

ua6em пишет:

неужели затактировать таймер от GPS?

Нет, минимизировать разрыв синхронизации в несколько шагов.

rst
Offline
Зарегистрирован: 25.06.2018

sadman41 пишет:
C GPS время будете получать с точностью, которая зависит от Output Rate. И если этот Rate 1Hz, то никаких синхронизаций в миллисекунды не удастся получить.

Это не так. Точность синхронизации выше 1 секунды получить от GPS не сложно - нужно синхронизироваться с секундным тиком. Многие GPS-приёмники момент выдачи ежесекундных данных синхронизируют с началом секунды. Т.е. - фронт начала стартового бита первого байта посылки по UART соответствует моменту изменения секунды с точностью до нескольких нс в некоторых моделях GPS-приёмников. По нему и можно синхронизироваться точно.

sadman41
Offline
Зарегистрирован: 19.10.2016

rst пишет:

Это не так. Точность синхронизации выше 1 секунды получить от GPS не сложно - нужно синхронизироваться с секундным тиком. 

Синхронизации - да. Но по условиям надо было ещё и время выставить на часах.

rst
Offline
Зарегистрирован: 25.06.2018

sadman41 пишет:
У GPS Rate, положим, 5Hz, т.е. время летит в порт каждые 200мс. Так как NMEA - формат с переменным числом данных (часть может не выкидываться в порт), то парсинг будет проходить за разные временные промежутки. Разброс будет зависеть от скорости UART. Скажем, он будет пару миллисекунд. Но это можно нивелировать на некоторых моделях приемников. Далее - от момента получения времени в RMC до момента подачи команды RTC нужно отсчитать 197мс. Кто это будет считать? МК с кварцем, который болтает от температуры. В комнате одни 197мс, на улице - другие.

Элементарно: нужно всего лишь запомнить таймером (в режиме захвата) момент начала стартового бита NMEA-посылки. Таймер это может запомнить с дискретностью до 1 периода своей тактовой частоты. А время обработки уже не имеет никакого значения - к завершению обработки смотрим на содержимое таймера защёлкнутого и таймера не защёлкнутого: разница между ними - это сколько времени прошло с момента начала стартового бита до завершения обработки.

И кварц МК - тоже не при чём. Он причём только к тому, насколько часы будут уходить за время отсутствия данных от GPS-приёмника. И если взять не дешёвый кварц, а термокомпенсированный генератор (или даже - термостатированный, но он дороже), то даже без синхронизации можно добиться точности хода в несколько единиц ppm.

rst
Offline
Зарегистрирован: 25.06.2018

sadman41 пишет:

rst пишет:

Это не так. Точность синхронизации выше 1 секунды получить от GPS не сложно - нужно синхронизироваться с секундным тиком. 

Синхронизации - да. Но по условиям надо было ещё и время выставить на часах.

Если на самих часах DS3231 - то это конечно можно, но сложно и практически скорей всего не нужно ТС. Он просто некорректно сформулировал задачу. Время точное ему наверняка нужно не в DS3231, а в программе МК.

rst
Offline
Зарегистрирован: 25.06.2018

andy-k пишет:

Ребят, GPS приемник выдает достаточно точный импульс ровно раз в секунду, и мне откровенно плевать на то сколько оно там летело по UART-у ))) Точка самой секунды зафиксирована, а когда по UART прилетело, какая это секунда, я и понял. Все просто. И при чем тут кварц мк если GPS автономно от ардуинки по сути работает?

Имхо: Здесь тот редкий случай, когда спрашивающий гораздо лучше разбирается в теме чем большинство отвечающих  ;)

rst
Offline
Зарегистрирован: 25.06.2018

andriano пишет:
Сигнал от спутника распросраняется со скоростью ~300000 км/с. Соответственно, в различных точках земной поверхности разбег составит ~20 мс. (А Земля вращается!) Соответственно, жидать чего-то большего от GPS явно не следует.

Автор хочет синхронизироваться с GPS-приёмником с заданной точностью, а не со спутником. А это возможно.

sadman41
Offline
Зарегистрирован: 19.10.2016

rst пишет:

sadman41 пишет:

rst пишет:

Это не так. Точность синхронизации выше 1 секунды получить от GPS не сложно - нужно синхронизироваться с секундным тиком. 

Синхронизации - да. Но по условиям надо было ещё и время выставить на часах.

Если на самих часах DS3231 - то это конечно можно, но сложно 

Вот и я о том. В рамках поставленной задачи - решение не особо тривиальное. А своих фантазий насчёт корректности формулировки каждый из нас может навалить пачку. Ну, а потом, как водится, принять свою версию за правильную и устроить классическую драку в грязи.

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

andriano пишет:

Сигнал от спутника распросраняется со скоростью ~300000 км/с. Соответственно, в различных точках земной поверхности разбег составит ~20 мс. (А Земля вращается!) Соответственно, жидать чего-то большего от GPS явно не следует. Неоткуда взяться в датчике времени с более высокой точностью.


Сережа, я очень боюсь тебя расстроить, но расстояние до источника сигнала точного времени определяется в том же GPS приемнике, следовательно точность, после определения координат, составляет единицы метров, делить на скорость света, десять наносекунд - общепринятое значение. Это основной способ синхронизации в базовых станциях сотовой связи. ну к примеру... :)))
---------------
собственно в этом и заключается принцип работы GPS -- определить время до долей наносекунд, и по разнице вычислить местоположение. мне даже неловко это объяснять!

andy-k
Offline
Зарегистрирован: 14.05.2012

Читая ваши дискуссии я понял что да, не указал одну важную деталь. Судя по всему, она упростит задачу. Мне нужно синхронизироваться именно с приемником GPS. Условно, если два разных таких девайса на одной небольшой, с точки зрения географии локации, к примеру, 1-100 км будут оба "тикать" с одинаковой погрешностью относительно мирового времени, то меня это устроит. То есть, приведу пример. В определенную единицу времени точнейшее мировое время составляет 18:23:45.459. Допустим, есть какая-то погрешность на прохождение сигнала от спутника до приемника моего. К примеру, она составляет 100мс. Грубо, но это пример. Так вот, к примеру, в это время на моих часах 18:23:45.359. Мне важно, чтобы на втором девайсе, который нифинга не на другом континенте и даже не в соседней стране находится, было тоже 18:23:45.359. То есть, время достаточно близкое к астрономическому, пусть даже с погрешностью, но чтобы она не плыла между разными девайсами.
 

renoshnik
Offline
Зарегистрирован: 11.04.2013

А, что мешает поставить вместо RTC поставить два модуля GPS и брать с них время ???

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

renoshnik пишет:

А, что мешает поставить вместо RTC поставить два модуля GPS и брать с них время ???

таки и поставил, таки и берёт )))

andy-k
Offline
Зарегистрирован: 14.05.2012

Тока больше сожрет, плюс есть условия работы, где GPS доступен только на старте, а дальше надо перейти туда, где сигнал не принимается

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

andy-k пишет:

Тока больше сожрет, плюс есть условия работы, где GPS доступен только на старте, а дальше надо перейти туда, где сигнал не принимается

а что за GPS то?

andy-k
Offline
Зарегистрирован: 14.05.2012

ua6em пишет:

а что за GPS то?

VK2828U7G5LF 

 

В целом, можно конечно и батарею побольше влупить, но хочется более сбалансированное устройство сделать и покомпактнее и понадежнее, с точки зрения работы в условиях, сложных для GPS, который на постоянку вынужден будет работать. Подстраховываюсь 

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

чувствительность не айс но PPS есть

andy-k
Offline
Зарегистрирован: 14.05.2012

ua6em пишет:

но PPS есть

вот как раз его и использую )

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

Уважаемый ТС. Дискуссия тут, конечно интересная, но я позволю себе пару замечаний "о вооще". ;))

Исполнители очень трепнетно относятся к адекватности заказчиков и пугаются малейших намеков на "что-то не то". В данном случае (без обид) никак не понятна цель синхронизации. По ДШ DS3231 имеет стабильность +-2ppm, что дает уход на 1мс за 500 сек, то есть за 8 минут, примерно. Если отслеживаемые события имеют такое характерное время,  тогда синхронизация в 1миллисекунду имеет смысл.

Я к тому, что дилетант (не в обиду, если ищешь исполнителя, то точно дилетант) обычно не видит и не знает всех граней и сложностей своей "задумки".

Нужно понимать:

1.зачем такая точность синхронизации?

2.почему нельзя синхронизировать приборы в одном месте, без GPS, и дальше использовать?

3.почему нельзя использовать собственно GPS? Это гораздо точнее для фиксации времени в любых состязаниях/соревнованиях. И не вызовет дискуссий о допустимости средства измерения.

Я написал о соревнованиях только потому, что описанный тип синхронизации - совершенно любительский и для промышленного или научного использования точно не подойдет. Если для какого-то эксперимента нужен (автономный!) синхросигнал с миллисекундной точностью, то это никак не DS3231, который делает чудесный RTC, но не более. Еще раз - у него по ДШ +2ppm.

Значит применение развлекательно-спортивное. Но тут я уберу Хрустальный Шар в полку, и перестану гадать. А то отнимут! На форуме давно запретили ХШ! ;))

 

andy-k
Offline
Зарегистрирован: 14.05.2012

Немного не понял намека на мою неадекватность, ну да ладно. По дилетанство тоже забавно. Вы же не знаете ничего обо мне? А поиск исполнителя не всегда является явным признаком того, что сам не могу, потому кого-то ищу, кто мне тут Hello World заколбасит. Да, я честно говорю, что потратив какое-то время на эту задачу, понял, что либо не выходит самому сделать, либо все же у меня на нее нет столько времени и проще часть общего проекта, так сказать, отдать на аутсорс. Или такой подход не имеет права на жизнь? У меня много задач, а времени мало. Потому, за некоторые из них я готов платить. Все просто.

Такой точности для моей задачи хватит. Плюс, я не хочу отправить DS3231 в свободное плавание на сутки. Я смогу(если найти решение задачи) корректировать его ход в определенные моменты времени, которые сам выберу и когда условия позволят. Потому подтверждаю, что такой точности мне хватит. Все грани своей задумки я знаю, поверьте. Не стоит судить о людях по одному посту.

Синхронизировать в одном месте не выйдет из-за географии. Не совсем явно, но все же писал выше. там же писал и причины, почему не хотелось бы чисто на GPS работать. Точность такая нужна для моих эксперементальных измерений. По условиям задачи, мне ее хватит. Я готов корректировать модуль хоть раз в 5 минут, если оно того потребует, но каждую секунду к нему обращаться не хотелось бы. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Нихрена не понятно. 

rst
Offline
Зарегистрирован: 25.06.2018

andy-k пишет:
Такой точности для моей задачи хватит. Плюс, я не хочу отправить DS3231 в свободное плавание на сутки. Я смогу(если найти решение задачи) корректировать его ход в определенные моменты времени, которые сам выберу и когда условия позволят. Потому подтверждаю, что такой точности мне хватит.

Вы так и не ответили на вопросы:

1) Зачем вообще нужен DS3231? Видимо для того случая, если устройство включили, а GPS-сигнала какое-то время нет? И каков может быть временной интервал отутствия GPS сигнала? На сколько уйдёт время в DS3231 за это время?

2) Действительно ли нужно синхронизировать время именно в DS3231 или всё-таки синхронизировать его нужно в устройстве, к которому DS3231 подключено? Это разные случаи. И первое - задача очень сложная, так как DS3231 подключен по I2C, задержка передачи которого неизвестна и задержка установки времени в DS3231 после того как он принял это время из I2C - тоже величина неизвестная (насколько я помню даташит на DS3231 по памяти). Так что точность в 1мсек в этом случае - будет очень сложно полчить. А вот 2-й случай - вполне решаемая и сравнительно нетрудная (для спеца) задача, алгоритм решения которой я приводил выше.

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

не знаю как на этом модуле, но на 7M выход PPM можно запрограммировать на нужную частоту, к примеру раз в 5 минут и нулить на DS3231 секунды (1 секунда это по умолчанию) в принципе если DS позволяет засинхронизироваться от внешнего кварца, то можно настроить и на 32768 и будет вам точность 0,5ррм

rst
Offline
Зарегистрирован: 25.06.2018

ua6em пишет:
не знаю как на этом модуле, но на 7M выход PPM можно запрограммировать на нужную частоту, к примеру раз в 5 минут и нулить на DS3231 секунды

И каким образом "нулить" предлагаете? Записывать туда 0? А длительность этой записи Вам известна? Укажите место в даташите где явно указано сколько миллисекунд пройдёт от момента приёма данных DS3231 с I2C и до момента завершения записи в регистры?

И какова задержка передачи по I2C-шине? Каким образом определите?

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

Не было никакого намека на неадекватность. Я написал, что заявления типа: "Я - Заказчик и сам знаю зачем мне такая точность!" - без объяснения причины - есть признак неадекватности. Никаких намеков.

Давай я напишу ТЗ. как я его понимаю?

=======================

В проекте использован модуль GPS (такой-то или на выбор Исполнителя) и RTC модуль DS3231. Требуется при доступности GPS сигнала, но не чаще чем раз в NNN секунд, проверять синхронизацию RTC и GPS. При обнаружении рассхождения больше чем на ХХ миллисекунд, произвести синхронизацию RTC.

==========================

Если это правильно и ты действительно понимаешь больше чем "Хелло Ворлд", то поясню, что 3231 ресетит счет с 0 "доли" при записи в регистр секунд. Таким образом синхронизация выглядит так: вычисляем время ближайшей+1 "истиной по GPS" секунды по внутренним часам Ардуино, то есть по значению millis(). На это значение millis() планируем запись вычисленного значения секунд в регистр секунд DS3231. Сдвигаем на 1-2 мс время начала обращения к DS3231, чтобы учесть "накладные расходы" на синхронизацию.

Я понятно объяснил? Пиши сам, или жди, что кто-то напишет. По расписанному мной заданию это уже совсем просто.

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

rst пишет:

ua6em пишет:
не знаю как на этом модуле, но на 7M выход PPM можно запрограммировать на нужную частоту, к примеру раз в 5 минут и нулить на DS3231 секунды

И каким образом "нулить" предлагаете? Записывать туда 0? А длительность этой записи Вам известна? Укажите место в даташите где явно указано сколько миллисекунд пройдёт от момента приёма данных DS3231 с I2C и до момента завершения записи в регистры?

И какова задержка передачи по I2C-шине? Каким образом определите?

я жеж не настоящий сталевар, коих тут пруд пруди, это не ко мне, может есть возможность воспользоваться часиками GPS модуля и тогда DS совсем не нужен

rst
Offline
Зарегистрирован: 25.06.2018

ua6em пишет:
я жеж не настоящий сталевар, коих тут пруд пруди, это не ко мне, может есть возможность воспользоваться часиками GPS модуля и тогда DS совсем не нужен

DS3231 может быть нужен только в случаях когда устройство включили, а GPS-сигнала нет. Если такое невозможно - он не нужен.

Всё остальное делается в МК и синхронизировать нужно его таймер. Точность хода кварца МК тоже не важна пока есть GPS-сигнал.

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

rst пишет:

ua6em пишет:
я жеж не настоящий сталевар, коих тут пруд пруди, это не ко мне, может есть возможность воспользоваться часиками GPS модуля и тогда DS совсем не нужен

DS3231 может быть нужен только в случаях когда устройство включили, а GPS-сигнала нет. Если такое невозможно - он не нужен.

Всё остальное делается в МК и синхронизировать нужно его таймер. Точность хода кварца МК тоже не важна пока есть GPS-сигнал.

Вот, как-бэ правильная мысль! Я уже написал, что миллискундную точность DS3231 держит 5 минут, в таком случае - нафиг он нужен? Или нафиг нужна миллисекундная точность? В 10 мс точность обеспечит и кварц самой ардуины, который синхронизировать раз в 5-10 минут от GPS.

Вот поэтому я написал про сомнения в адекватности. Они возникают тогда, когда Закзчик "включает Заказчика" - типа: "я так хачу-и-ниибёт".

====================

А так -  я написал  как сделать можно. РСТ написал  какая будет точность синхронизации - явно не 1 мс... 2-3 мс выйдет точность.

andy-k
Offline
Зарегистрирован: 14.05.2012

wdrakula пишет:

Вот поэтому я написал про сомнения в адекватности. Они возникают тогда, когда Закзчик "включает Заказчика" - типа: "я так хачу-и-ниибёт".

Давайте научимся отличать обсуждения заказчика и исполнителя от постановки задачи в общих чертах и ее обсуждения на форуме, пока исполнитель не найден. Раз уж вы так завуалированно тычете мне неадекватностью, позвольте вам ответить тем же!

Да, я так хочу и ниииииипет. Это плохо? Серьезно? Вы пытаетесь отговорить меня от моей концепции? Зачем вам это? Сам результат никогда не должен быть хуже, чем он изначально задумывался просто потому, что разработчику было проще его каким-то другим путем реализовать. В то же время я понимаю, что я не всесилен и что, вероятно, не все концепции реализации разглядел и потому всегда интересно послушать альтернативные концепции. Но когда их не навязывают чуть ли не пинками, попутно обвиняя в неадекватности и дилетанстве. 

Вы исполнитель и хотите обсудить детали? Велком в какую-то более личную переписку. Если нет, то зачем этот холивар? Есть ряд причин, которые я уже описывал выше, который говорит мне о том, что надо сделать именно так. Если исполнитель желает по какой-то причине с ними ознакомиться, то я могу с ним это обсудить. Но исполнителя я пока не нашел. А я хочу найти именно его. Вероятно, раз вы пишите, что задача простая, он выставит какую-то адекватную сумму за это и я на нее соглашусь, а сам займусь другими вопросами. Если не найду, то да, надо будет анализировать различные сценарии, которые мне набросали уважаемые форумчане и самому что-то ваять, хоть я и не планировал. 

Но это мой путь, поймите это. И вы не должны оценивать мою адекватность, а я не должен оценивать вашу. Таких тем вообще лучше избегать в таком фот форумном общении. Задача поставлена именно в той детализации, которая позволит потенциальному исполнителю понять, сможет ли он ее сделать, в какой бюджет он это сделает и какие допущения и ограничения предложит. Это обычная практика. Все остальное это просто болтовня от скуки.

А тем кто дает реально дельные советы тоже спасибо. Вероятнее всего, придется воспользоваться вашими советами.

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

Ты б, вместо словоблудия, написал - я правильно твое ТЗ понял?

Если да - уточни в нем параметры, если нет, напиши, что я не так понял.

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

DetSimen пишет:

Нихрена не понятно. 

ты о посте #15?

andy-k
Offline
Зарегистрирован: 14.05.2012

wdrakula пишет:

Ты б, вместо словоблудия, написал - я правильно твое ТЗ понял?

Если да - уточни в нем параметры, если нет, напиши, что я не так понял.

 

Да, все верно. Но я не знал про то, что он ресетит. Мне казалось, исходя из того, что я на практике увидел, что генератор как работал, так и работает, ибо разбег с GPS всегда разный, от включения прибора к включению, но всегда статичен при инициализациях с GPS в пределах того, пока на девайсе есть питание и он не перезагружался.

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

тогда, я думаю, что у тебя получится написать синхронизацию самостоятельно.

----------------------------

кусочек ДШ стр.12.

-----------------------------

The countdown chain is reset whenever the seconds
register is written. Write transfers occur on the acknowl-
edge from the DS3231. Once the countdown chain is
reset, to avoid rollover issues the remaining time and
date registers must be written within 1 second. The 1Hz
square-wave output, if enabled, transitions high 500ms
after the seconds data transfer, provided the oscillator is
already running.

andy-k
Offline
Зарегистрирован: 14.05.2012

wdrakula пишет:

тогда, я думаю, что у тебя получится написать синхронизацию самостоятельно.

Выходит, что да. Спасибо

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:
andriano пишет:

Сигнал от спутника распросраняется со скоростью ~300000 км/с. Соответственно, в различных точках земной поверхности разбег составит ~20 мс. (А Земля вращается!) Соответственно, жидать чего-то большего от GPS явно не следует. Неоткуда взяться в датчике времени с более высокой точностью.

Сережа, я очень боюсь тебя расстроить, но расстояние до источника сигнала точного времени определяется в том же GPS приемнике, следовательно точность, после определения координат, составляет единицы метров, делить на скорость света, десять наносекунд - общепринятое значение. Это основной способ синхронизации в базовых станциях сотовой связи. ну к примеру... :))) --------------- собственно в этом и заключается принцип работы GPS -- определить время до долей наносекунд, и по разнице вычислить местоположение. мне даже неловко это объяснять!

Читать подобные теоретизирования, конечно, очень забавно, но всегда следует помнить, что даже безупречная теория способна привести к адекватным выводам только при наличии достоверных входных данных.

И, кстати, для "принципа работы GPS" как раз время вычислять не надо, надо вычислять расстояния. Ну а дальше - банальная геометрия.

Тем не менее:

1. Система спутников GPS не является эталоном точного времени. Внутреннее время этой системы вполне может плавать. Для обеспечения точности в 10 м при разнице расстояний порядка земного радиуса достаточной точностью подсистемы времени системы GPS будет порядка 10м/6370км = 1.6ppm.

2. Датчик GPS не является прибором определения времени. Конечно, в принципе, он может вычислить внутреннее время системы спутников GPS с достаточно высокой точностью. Только будет ли он это делать, если просто схватить время с первого попавшегося спутника вполне обеспечивает нужною точность. И какой алгоритм реально зашит в датчик, мы не знаем. Но оснований считать, что непременно самый точный - нет. Я даже не удивлюсь, если окажатся, что разными датчиками используются различные алгоритмы.

3. В технике принято вполне определенные  правила отображения величин в зависимости от их точности. Обычно считается, что погрешность должна составлять примерно 0.5-2 единицы младшего разряда. Так что единственный разумный подход - посмотреть, сколько цифр после запятой выдает датчик (для секунд). Если 3 - есть шанс получить точность близкую к миллисекундной, а если меньше, IMHO шансов нет (хотя всегда есть шансы на самообман).

В общем, теоретический потолок точности в идеальных условиях, это одно, а реальные свойства конкретного технического изделия - совсем другое.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

andy-k пишет:

Задача поставлена именно в той детализации, которая позволит потенциальному исполнителю понять, сможет ли он ее сделать, в какой бюджет он это сделает и какие допущения и ограничения предложит.

Отнюдь.

Пока по предложенно "детализации" непонятно даже, допускает ли эта задача в принципе реализацию за разумные деньги.  (под "разумными деньгами" подразумевается, что цена не будет превосходить стоимости создания с нуля собственного аналога GPS)

wdrakula
wdrakula аватар
Онлайн
Зарегистрирован: 15.03.2016

andriano пишет:

Бла-бла-бла

Сережа. Поучи предмет обсуждения. Система GPS это в первую очередь - система точного времени.

Принимая сигналы ОЧЕНЬ точного времени, датчик определяет разницу времени приема от разных спутников.

Вот дальше - геометрия. Я много раз просил не спорить со мной. Давай я не стану снова макать тебя в лужу? Мы вроде сраццо перестали? Или нет?

Собственно основное назначение системы - не навигация, а точное время и источник синхростигнала. Начни с "Вики", только сюда не перепечатывай. Я тебе уже написал: точность сигала времени в GPS - в совсем простых системах - около 10 нс. В источниках для SDH потоков - выше. И особенно важна в GPS  стабильность сигнала.