¿Qué tan precisa es la hora de Raspberry Pi?

17

Me doy cuenta de que, dado que Raspberry Pi no tiene un reloj de hardware en tiempo real incorporado, pueden presentarse algunos problemas con el cronometraje preciso, incluso cuando la persistencia entre reinicios no es un requisito .

Esto puede mitigarse en gran medida ejecutando un demonio NTP que corrige continuamente la hora local, pero NTP no es una opción si Raspberry Pi no está conectado a una red.

Entonces, si dejo una Raspberry Pi encendida con una hora precisa al principio, ¿cuánto debería esperar que la hora informada se desvíe de la hora local real?

¿Y qué hay entre reinicios?

SDsolar
fuente
Será el tiempo de mantenimiento de software cuando no está conectado ¿Quién? Yo diría que el software para mantener el tiempo es inherentemente preciso.
Jivings
1
Está hablando de un máximo de 10 minutos en el peor de cada año (temperaturas extremas de -20 e inferiores / +60 y superiores) (optimizado para una operación de 20 grados). No está tan mal. Un reloj de tiempo real ahora en días solo se usa para mantener el tiempo atómico ... como ... funciones matemáticas muy precisas que necesitan medir el tiempo de ejecución o algo agitado. Muchos dispositivos dejan caer 32khz de cristal porque los osciladores son lo suficientemente buenos para generar señales de RF o señales de video sin complicaciones serias.
Piotr Kula
@ppumkin ¿Tiene alguna fuente para esto? Esperaba un poco menos de precisión debido a las razones que mencionó Chris Stratton (interrupciones perdidas y demás).
1
Lo siento, solo mi conocimiento general en el campo y la experiencia de usar osciladores en lugar de cristales. ¡Las interrupciones perdidas serán mega extremas! Si fuera tan malo, no todos lo estarían haciendo.
Piotr Kula
Esta pregunta es realmente más sobre Raspbian que sobre el Pi en sí. Y la idea de mantener un Pi funcionando continuamente durante más de un año es tan improbable que hace que las estadísticas anteriores sean insignificantes en comparación con lo que sucede durante el reinicio.
SDsolar

Respuestas:

9

Realmente hay dos problemas:

1) La precisión del oscilador en sí mismo, que tiene variables tales como singularidad, edad, temperatura, etc.

2) Si hay algo que pueda causar errores de cronometraje en relación con el oscilador de cristal. Eso sería cosas como interrupciones perdidas o problemas de transición si el reloj utilizado es posterior a un multiplicador PLL, o afectado por la aceleración del reloj (si se utiliza).

Por cierto, el NTP, a menos que esté muy bien implementado, puede empeorar el tiempo auto-relativo preciso a corto plazo, ya que significa que el reloj local se puede cambiar para que sea coherente con una autoridad externa, en lugar de permanecer coherente consigo mismo.

Chris Stratton
fuente
8

Dependerá del cristal que usaron, tal vez 10 ppm aproximadamente. Realmente no puedes contar con él a menos que se especifique en algún lugar. Es posible que pueda usar el GPS si no está conectado a una red. De lo contrario, se puede agregar un chip RTC.

Necesitará algo mejor que solo tiempo de software si existe la posibilidad de que el RPi pueda perder potencia o bloquearse.

Espero conectar un RTC al GPIO en algún momento pronto

John La Rooy
fuente
3
Kevin Sangeelee ha publicado una descripción detallada de la adición de un RTC a la Raspberry Pi susa.net/wordpress/2012/06/…
Steve Robillard
1
Otra alternativa para un Pi no conectado en red es usar señales de tiempo de radio como se discute aquí designspark.com/de/content/atomic-time-raspberry-pi
Steve Robillard
+1 Para conectar un RTC a GPIO si se necesita un tiempo más preciso. Tal vez incluso un receptor atómico .. :-) buena sugerencia!
Piotr Kula
No tengo mucha experiencia aquí, pero me gustaría decir que "estación de radio WVVB o CHU" es un descriptor más preciso que "receptor de radio atómico" o similar. :) Buena sugerencia. Para aquellos al alcance de CHU, incluso hay un código c para extraer el audio y analizar el tiempo.
Tai Viinikka
1
OK, entonces aquí hay una solución GPS: raspberrypi.stackexchange.com/questions/68816/…
SDsolar
6

Interpretando la pregunta que se debe hacer sobre un Raspberry Pi con Raspbian.

El sistema operativo es la influencia dominante en cómo Rapberry Pi mantiene el tiempo.

Respuesta: Sin una fuente externa, el reloj interno es altamente impredecible en términos de mantener el tiempo por sí mismo.


Estudios de casos recientes:


Esta es una trama de un registrador de datos Raspberry Pi 3 B que de repente perdió energía de la red pública durante aproximadamente una hora:

ingrese la descripción de la imagen aquí

Puede ver claramente que cuando se volvió a encender, se inició y reinició el registro de datos.

Pero el reloj Raspbian retrocede en el tiempo.

Luego puede verlo avanzar a la hora correcta tan pronto como reciba una actualización de time.nist.gov


La Oficina Nacional de Normas recomienda usar time.nist.gov porque es una URL inteligente que encuentra el tiempo más rápido y preciso disponible. Tanto Linux (ubuntu y Raspbian) como Windows tienen por defecto los grupos que pueden estar a muchos saltos del reloj maestro.

¿Cómo configuro Raspbian para usar el servidor horario primario time.nist.gov?


Aquí hay una nueva trama del mismo sistema nuevamente.

Desde que se interrumpió ayer (vea el diagrama anterior), solía sudo init 0apagarlo correctamente para crear una imagen de la tarjeta SD con Win32DiskImager en una PC.

Lleva un tiempo, como se puede ver aquí.

ingrese la descripción de la imagen aquí

En este se puede ver que Raspbian inicialmente reinició su reloj justo donde lo dejó. Parece que había registrado buenos datos (saltos) en un minuto.

Luego muestra lo que sucede cuando recibe la actualización de tiempo. Salta hacia la derecha.

La cantidad que salta hacia adelante (un par de horas) es el tiempo que Raspbian perdió durante la captura de la tarjeta SD.


Aquí hay un giro sorprendente.

El sistema simplemente se congeló. Luces rojas y verdes encendidas, sin parpadeos.

Anunciado (usando espeak) en cuestión de minutos por el trabajo cron basado en ping del servidor principal que monitorea los registradores de datos para tal ocurrencia. Así que no fue más de unos minutos.

Potencia extraída por unos segundos. Lo reinicié: los LED parecen normales.

Así es como esta falla afectó el registro de datos:

ingrese la descripción de la imagen aquí

El reloj Raspbian se adelantó 2 horas cuando se reinició el sistema.

Luego, la actualización de tiempo de time.nist.gov lo retrasa.


Respuesta: Sin una fuente externa, el reloj interno es impredecible en términos de mantener el tiempo real por sí solo.


¿Cómo configuro Raspbian para usar el servidor horario primario time.nist.gov?

SDsolar
fuente
1
Puedo confirmar eso. Sin conexión a Internet o RTC, la fecha y la hora de frambuesa son inútiles.
Łukasz Jakubek 19/06/18
Hay receptores de radio VLF con demoduladores de reloj en ellos. Por ejemplo, aquí hay uno sintonizado a 60 KHz que puede escuchar WWV en Colorado en toda América del Norte. amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS Estos son los mismos módulos que usan en algunos relojes. Trabajan con Arduino y Pi.
SDsolar