Quelle est la précision du chronométrage du Raspberry Pi?

17

Je me rends compte que puisque Raspberry Pi n'a pas d'horloge matérielle en temps réel intégrée, certains problèmes de chronométrage précis peuvent se présenter, même lorsque la persistance entre les redémarrages n'est pas une exigence .

Cela peut être largement atténué en exécutant un démon NTP qui corrigera continuellement l'heure locale, mais NTP n'est pas une option si le Raspberry Pi n'est pas connecté à un réseau.

Donc, si je laisse un Raspberry Pi allumé avec une heure précise au début, combien dois-je m'attendre à ce que l'heure signalée dérive de l'heure locale réelle?

Et qu'en est-il entre les redémarrages?

SDsolar
la source
Ce sera un logiciel qui garde le temps lorsqu'il n'est pas connecté, qui? Je dirais que le logiciel de chronométrage est intrinsèquement précis.
Jivings
1
Vous parlez d'un maximum de 10 minutes au pire par an (températures extrêmes de -20 et moins / +60 et plus) (optimisé pour un fonctionnement à 20 degrés). C'est pas si mal. Une horloge en temps réel maintenant un jour n'est utilisée que pour la conservation du temps atomique .. comme .. des fonctions mathématiques très précises qui doivent mesurer le temps d'exécution ou quelque chose de trépidant. De nombreux appareils lâchent un cristal de 32 kHz car les oscillateurs sont assez bons pour générer des signaux RF ou vidéo sans complications graves.
Piotr Kula
@ppumkin Avez-vous des sources pour cela? J'attendais un peu moins de précision pour les raisons mentionnées par Chris Stratton (interruptions manquées, etc.).
1
Désolé - Juste mes connaissances générales dans le domaine et mon expérience de l'utilisation d'oscillateurs au lieu de cristaux. Les interruptions manquantes vont être extrêmement extrêmes! Si c'était si mauvais, tout le monde ne le ferait pas.
Piotr Kula
Cette question concerne vraiment plus Raspbian que le Pi lui-même. Et l'idée de maintenir un Pi en fonctionnement continu pendant plus d'un an est si peu probable qu'elle rend les statistiques ci-dessus insignifiantes par rapport à ce qui se passe pendant le redémarrage.
SDsolar

Réponses:

9

Il y a vraiment deux problèmes:

1) La précision de l'oscillateur lui-même - qui a des variables telles que l'unicité, l'âge, la température, etc.

2) S'il y a quelque chose qui pourrait provoquer des erreurs de chronométrage par rapport à l'oscillateur à cristal. Ce serait des choses comme des interruptions manquées ou des problèmes de transition si l'horloge utilisée est après un multiplicateur PLL - ou affectée par la limitation de l'horloge (si elle est utilisée).

Soit dit en passant, à moins que NTP très bien mis en œuvre peut effectivement faire le calendrier auto-relatif précis pire à court terme, car cela signifie que l'horloge locale peut être modifiée pour être conforme à une autorité extérieure, plutôt que de rester cohérent avec lui - même.

Chris Stratton
la source
8

Cela dépendra du cristal utilisé, peut-être 10 ppm environ. Vous ne pouvez pas vraiment compter dessus à moins qu'il ne soit spécifié quelque part. Vous pourrez peut-être utiliser le GPS s'il n'est pas connecté à un réseau. Sinon, une puce RTC peut être ajoutée.

Vous aurez besoin de quelque chose de mieux que du temps logiciel s'il y a une chance que le RPi puisse perdre de la puissance ou planter.

J'espère connecter un RTC au GPIO très bientôt

John La Rooy
la source
3
Kevin Sangeelee a publié un article détaillé sur l'ajout d'un RTC au Raspberry Pi susa.net/wordpress/2012/06/…
Steve Robillard
1
Une autre alternative pour un Pi non en réseau utilise des signaux horaires radio comme discuté ici designspark.com/de/content/atomic-time-raspberry-pi
Steve Robillard
+1 Pour connecter un RTC à GPIO si un temps plus précis est nécessaire. Peut-être même un récepteur atomique .. :-) belle suggestion!
Piotr Kula
Je n'ai pas une grande expertise ici, mais je voudrais dire que "station radio WVVB ou CHU" est un descripteur plus précis que "récepteur radio atomique" ou similaire. :) Bonne suggestion. Pour ceux à portée de CHU, il y a même du code c pour extraire l'audio et analyser le temps.
Tai Viinikka
1
OK, alors voici une solution GPS: raspberrypi.stackexchange.com/questions/68816/…
SDsolar
6

Interpréter la question à poser sur un Raspberry Pi exécutant Raspbian.

L'OS est l'influence dominante dans la façon dont le Rapberry Pi garde le temps.

Réponse: Sans source externe, l'horloge interne est très imprévisible pour ce qui est de garder le temps seul.


Études de cas récentes:


Voici une intrigue provenant d'un enregistreur de données Raspberry Pi 3 B qui a soudainement perdu l'alimentation secteur pendant environ une heure:

entrez la description de l'image ici

Vous pouvez clairement voir qu'à la remise sous tension, il a démarré et redémarré l'enregistrement des données.

Mais l'horloge Raspbian remonte dans le temps.

Ensuite, vous pouvez le voir passer à l'heure correcte dès qu'il reçoit une mise à jour de time.nist.gov


Le National Bureau of Standards recommande d'utiliser time.nist.gov car il s'agit d'une URL intelligente qui trouve l'heure la plus rapide et la plus précise disponible. Linux (ubuntu et Raspbian) et Windows utilisent par défaut des pools qui peuvent être à plusieurs sauts de l'horloge principale.

Comment configurer Raspbian pour utiliser le serveur de temps principal time.nist.gov?


Voici à nouveau une intrigue plus récente du même système.

Puisqu'il s'est interrompu hier (voir l'intrigue ci-dessus), j'ai l'habitude sudo init 0de l'éteindre correctement, afin d'imager la carte SD avec Win32DiskImager sur un PC.

Cela prend un certain temps, comme on peut le voir ici.

entrez la description de l'image ici

Dans celui-ci, vous pouvez voir que Raspbian a initialement redémarré son horloge là où elle s'était arrêtée. Il semble qu'il ait enregistré de bonnes données (saute) en une minute.

Il montre ensuite ce qui se passe lorsqu'il reçoit la mise à jour de l'heure. Il saute vers la droite.

Le montant qu'il avance (quelques heures) est le temps qui a été manqué par Raspbian lors de l'imagerie de la carte SD.


Voici une tournure surprenante.

Le système a simplement gelé. Les lumières rouges et vertes sont allumées, pas de scintillement.

Annoncé (en utilisant espeak ) en quelques minutes par le travail cron basé sur le ping du serveur principal qui surveille les enregistreurs de données pour une telle occurrence. Donc ça ne s'est pas arrêté plus de quelques minutes.

Puissance tirée pendant quelques secondes. Redémarré - les LED semblent normales.

Voici comment ce problème a affecté l'enregistrement des données:

entrez la description de l'image ici

L'horloge Raspbian a bondi de 2 heures lorsque le système a été redémarré.

Ensuite, la mise à jour de l'heure de time.nist.gov la remet en place.


Réponse: Sans source externe, l'horloge interne est imprévisible pour ce qui est de garder le temps réel seul.


Comment configurer Raspbian pour utiliser le serveur de temps principal time.nist.gov?

SDsolar
la source
1
Je peux le confirmer. Sans connexion Internet ou date et heure RTC de framboise est inutile.
Łukasz Jakubek
Il y a des récepteurs radio VLF avec des démodulateurs d'horloge. Par exemple, voici un syntonisé à 60 KHz peut entendre WWV dans le Colorado partout en Amérique du Nord. amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS Ce sont les mêmes modules qu'ils utilisent dans certaines horloges. Ils fonctionnent avec Arduino et Pi.
SDsolar