Насколько точен хронометраж Raspberry Pi?

17

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

Это в значительной степени можно смягчить, запустив демон NTP, который будет непрерывно корректировать местное время, но NTP не подходит, если Raspberry Pi не подключен к сети.

Поэтому, если я оставлю Raspberry Pi включенным с точным временем в начале, на сколько я должен ожидать, что сообщаемое время будет отклоняться от фактического местного времени?

А как насчет между перезагрузками?

SDsolar
источник
Это будет время хранения программного обеспечения, когда не подключен, кто это? Я бы сказал, что программное обеспечение по хранению времени является точным.
Jivings
1
Вы говорите о максимуме 10 минут в худшем году (экстремальные температуры -20 и ниже / +60 и выше) (оптимизирован для работы в 20 градусов). Это не так уж плохо. Часы реального времени, теперь дни, используются только для хранения атомного времени ... как ... очень точные математические функции, которые должны измерять время выполнения или что-то беспокойное. Множество устройств пропускают 32 кГц кристалл, потому что генераторы достаточно хороши для генерации радиосигналов или видеосигналов без серьезных осложнений.
Петр Кула
@ppumkin У вас есть источники для этого? Я ожидал немного меньшей точности из-за причин, упомянутых Крисом Страттоном (пропущенные прерывания и тому подобное).
1
Извините - только мои общие знания в этой области и опыт использования осцилляторов вместо кристаллов. Отсутствие прерываний будет мега-экстремальным! Если бы это было так плохо, все бы не делали этого.
Петр Кула
Этот вопрос действительно больше о Распбиане, чем о самом Пи. И идея поддерживать непрерывную работу Pi более года настолько маловероятна, что делает приведенную выше статистику несущественной по сравнению с тем, что происходит во время перезагрузки.
SDsolar

Ответы:

9

На самом деле есть две проблемы:

1) Точность самого осциллятора, который имеет такие переменные, как уникальность, возраст, температура и т. Д. Быстрый просмотр каталога позволяет предположить, что типичные микропроцессорные кристаллы имеют порядок +/- 10-100 частей на миллион

2) Если есть что-то, что может вызвать ошибки хронометража относительно кварцевого генератора. Это могут быть такие вещи, как пропущенные прерывания или проблемы перехода, если используемые часы следуют за множителем ФАПЧ - или подвержены дросселированию часов (если оно используется).

Между прочим, NTP, если он не очень хорошо реализован, может на самом деле ухудшить точную временную привязку относительно себя в краткосрочной перспективе, поскольку это означает, что локальные часы могут быть изменены, чтобы соответствовать внешнему авторитету, а не оставаться согласованными с самим собой.

Крис Страттон
источник
8

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

Вам понадобится что-то лучше, чем просто время на программное обеспечение, если есть вероятность, что RPi может потерять мощность или потерпеть крах.

Я надеюсь подключить RTC к GPIO в ближайшее время

Джон Ла Рой
источник
3
Кевин Сангили опубликовал подробное описание добавления RTC к Raspberry Pi susa.net/wordpress/2012/06/…
Стиву Робилларду
1
Другая альтернатива для не подключенного к сети Pi - использование радиосигналов времени, как описано здесь. Designspark.com/de/content/atomic-time-raspberry-pi
Стив Робиллард,
+1 За подключение RTC к GPIO, если требуется более точное время. Может быть, даже атомный приемник .. :-) Хорошее предложение!
Петр Кула
У меня нет большого опыта здесь, но я хотел бы сказать, что «радиостанция WVVB или CHU» является более точным дескриптором, чем «атомный радиоприемник» или подобным. :) Хорошее предложение. Для тех, кто находится в пределах досягаемости от CHU, есть даже c-код, который позволяет извлекать аудио и анализировать время.
Тай Вииникка
1
Хорошо, тогда вот решение GPS: raspberrypi.stackexchange.com/questions/68816/…
SDsolar
6

Интерпретация вопроса о Raspberry Pi с Raspbian.

ОС доминирует в том, как Rapberry Pi держит время.

Ответ: Без внешнего источника внутренние часы крайне непредсказуемы с точки зрения удержания времени самостоятельно.


Недавние тематические исследования:


Это график регистратора данных Raspberry Pi 3 B, который внезапно потерял электроэнергию примерно на час:

введите описание изображения здесь

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

Но часы Raspbian возвращаются назад во времени.

Затем вы можете увидеть, как он прыгает вперед к правильному времени, как только он получает обновление от time.nist.gov


Национальное бюро стандартов рекомендует использовать time.nist.gov, потому что это умный URL, который находит самое быстрое и точное время. Как в Linux (Ubuntu и Raspbian), так и в Windows по умолчанию используются пулы, которые могут находиться на расстоянии нескольких шагов от главных часов.

Как настроить Raspbian для использования основного сервера времени time.nist.gov?


Здесь снова более новый сюжет из той же системы.

Так как он прервался вчера (см. График выше), я использовал sudo init 0его для правильного выключения, чтобы создать образ SD-карты с Win32DiskImager на ПК.

Как видно здесь, это занимает некоторое время.

введите описание изображения здесь

В этом вы можете видеть, что Raspbian первоначально перезапустил свои часы там, где он остановился. Похоже, что он записал хорошие данные (подпрыгивает) в течение минуты.

Затем он показывает, что происходит, когда он получает обновление времени. Он прыгает вперед вправо.

Количество, на которое он прыгает вперед (пара часов), - это время, которое Raspbian пропустил во время записи SD-карты.


Вот удивительный поворот.

Система просто зависла. Горит красный и зеленый свет, без мерцания.

Объявлено (используя espeak ) в течение нескольких минут заданием pron главного сервера на основе ping, которое отслеживает регистраторы данных только для такого случая. Так что это было не более нескольких минут.

Вытащил мощность на несколько секунд. Перезагрузил его - светодиоды выглядят нормально.

Вот как этот сбой повлиял на регистрацию данных:

введите описание изображения здесь

Часы Raspbian подскочили на 2 часа после перезагрузки системы.

Затем обновление времени из time.nist.gov устанавливает его обратно.


Ответ: Без внешнего источника внутренние часы непредсказуемы с точки зрения сохранения реального времени самостоятельно.


Как настроить Raspbian для использования основного сервера времени time.nist.gov?

SDsolar
источник
1
Я могу это подтвердить. Без подключения к интернету или RTC дата и время от малины бесполезны.
Лукаш Якубек
Есть радиоприемники VLF с демодуляторами часов. Например, вот тот, настроенный на 60 кГц, может слышать WWV в Колорадо по всей Северной Америке. amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS Это те же модули, которые они используют в некоторых часах. Они работают с Arduino и Pi.
SDsolar