Quanto è preciso il cronometraggio di Raspberry Pi?


17

Mi rendo conto che poiché Raspberry Pi non ha un orologio hardware in tempo reale integrato, potrebbero presentarsi alcuni problemi con un accurato cronometraggio, anche quando la persistenza tra i riavvii non è un requisito .

Ciò può essere in gran parte mitigato eseguendo un demone NTP che correggerà continuamente l'ora locale, ma NTP non è un'opzione se Raspberry Pi non è connesso a una rete.

Quindi, se lascio un Raspberry Pi acceso con l'ora esatta all'inizio, quanto dovrei aspettarmi che il tempo riportato derivi dall'ora locale attuale?

E che ne dici di riavviare?


Sarà il software a mantenere il tempo quando non connesso chi t? Direi che il mantenimento del software è intrinsecamente accurato.
Jivings

1
Stai parlando di un massimo di 10 minuti al peggio all'anno (temperature estreme di -20 e inferiori / +60 e superiori) (ottimizzato per il funzionamento a 20 gradi). Non è così male. Un orologio in tempo reale ora un giorno viene utilizzato solo per il tempo atomico ... come ... funzioni matematiche molto precise che devono misurare il tempo di esecuzione o qualcosa di frenetico. Un sacco di dispositivi rilasciano 32 kHz di cristallo perché gli oscillatori sono abbastanza buoni per generare segnali RF o segnali video senza gravi complicazioni.
Piotr Kula,

@ppumkin Hai qualche fonte per questo? Mi aspettavo un po 'meno precisione a causa dei motivi citati da Chris Stratton (interruzioni mancate e simili).

1
Siamo spiacenti, solo le mie conoscenze generali nel campo e l'esperienza di utilizzo degli oscillatori anziché dei cristalli. Gli interrupt mancanti saranno mega estremi! Se fosse così male non lo farebbero tutti.
Piotr Kula,

Questa domanda riguarda davvero più Raspbian che il Pi stesso. E l'idea di mantenere un Pi in esecuzione ininterrottamente per oltre un anno è così improbabile che rende insignificanti le statistiche di cui sopra rispetto a ciò che accade durante il riavvio.
SDsolar,

Risposte:


9

Ci sono davvero due problemi:

1) La precisione dell'oscillatore stesso - che ha variabili come unicità, età, temperatura, ecc. Un rapido esame del catalogo suggerisce che i tipici cristalli dell'orologio a microprocessore sono dell'ordine di +/- 10-100 parti per milione

2) Se c'è qualcosa che potrebbe causare errori di indicazione dell'ora relativi all'oscillatore a cristallo. Sarebbero cose come interruzioni mancate o problemi di transizione se l'orologio utilizzato è dopo un moltiplicatore PLL - o influenzato dalla limitazione dell'orologio (se utilizzato).

Per inciso, l'NTP, a meno che non sia ben implementato, può effettivamente peggiorare la precisione dei tempi relativi a sé stessi nel breve periodo, poiché significa che l'orologio locale può essere modificato per essere coerente con un'autorità esterna, piuttosto che rimanere coerente con se stesso.


8

Dipenderà dal cristallo che hanno usato, forse 10 ppm circa. Non puoi davvero contare su di esso a meno che non sia specificato da qualche parte però. Potresti essere in grado di utilizzare il GPS se non connesso a una rete. Altrimenti è possibile aggiungere un chip RTC.

Avrai bisogno di qualcosa di meglio del semplice tempo del software se c'è una possibilità che l'RPi possa perdere potenza o andare in crash.

Spero di collegare presto un RTC al GPIO


3
Kevin Sangeelee ha pubblicato un articolo dettagliato sull'aggiunta di un RTC al Raspberry Pi susa.net/wordpress/2012/06/…
Steve Robillard

1
Un'altra alternativa per un Pi non collegato in rete è l'uso dei segnali radio-tempo come discusso qui designspark.com/de/content/atomic-time-raspberry-pi
Steve Robillard

+1 Per collegare un RTC a GPIO se è necessario un tempo più preciso. Forse anche un ricevitore atomico .. :-) bel suggerimento!
Piotr Kula,

Non ho grande esperienza qui, ma vorrei dire che "stazione radio WVVB o CHU" è un descrittore più accurato di "ricevitore radio atomico" o simile. :) Buon consiglio. Per quelli a portata di CHU c'è anche un codice c là fuori per estrarre l'audio e analizzare il tempo.
Tai Viinikka,

1
OK, allora ecco una soluzione GPS: raspberrypi.stackexchange.com/questions/68816/…
SDsolar

6

Interpretazione della domanda da porre su un Raspberry Pi con Raspbian in esecuzione.

Il sistema operativo è l'influenza dominante nel modo in cui Rapberry Pi tiene il tempo.

Risposta: Senza una fonte esterna, l'orologio interno è altamente imprevedibile in termini di mantenimento del tempo da solo.


Casi di studio recenti:


Questo è un diagramma di un datalogger di Raspberry Pi 3 B che improvvisamente ha perso potenza per circa un'ora:

inserisci qui la descrizione dell'immagine

Si può vedere chiaramente che quando si riaccende, si avvia e riavvia la registrazione dei dati.

Ma l'orologio Raspbian torna indietro nel tempo.

Quindi puoi vederlo passare all'ora corretta non appena riceve un aggiornamento da time.nist.gov


Il National Bureau of Standards consiglia di utilizzare time.nist.gov perché è un URL intelligente che trova il tempo più rapido e preciso disponibile. Sia Linux (ubuntu e Raspbian) che Windows impostano per impostazione predefinita i pool che possono essere a molti passi dal Master Clock.

Come posso impostare Raspbian per utilizzare il time server primario time.nist.gov?


Ecco di nuovo una trama più recente dallo stesso sistema.

Dato che è stato interrotto ieri (vedi la trama sopra) l'ho usato sudo init 0per spegnerlo correttamente, al fine di visualizzare la scheda SD con Win32DiskImager su un PC.

Ci vuole un po ', come si può vedere qui.

inserisci qui la descrizione dell'immagine

In questo puoi vedere Raspbian inizialmente riavviato l'orologio proprio da dove era stato interrotto. Sembra che abbia registrato buoni dati (salta su) in un minuto.

Quindi mostra cosa succede quando riceve l'aggiornamento dell'ora. Salta in avanti a destra.

L'importo che salta in avanti (un paio d'ore) è il tempo che è stato perso da Raspbian durante l'imaging della scheda SD.


Ecco una svolta sorprendente.

Il sistema si è semplicemente bloccato. Accese sia le luci rosse che quelle verdi, senza sfarfallio.

Annunciato (usando espeak) in pochi minuti dal cron job basato sul ping del server principale che monitora i data logger proprio per questo caso. Quindi non è stato spento più di qualche minuto.

Potenza assorbita per alcuni secondi. Riavviato: i LED sembrano normali.

Ecco come questo glitch ha influenzato la registrazione dei dati:

inserisci qui la descrizione dell'immagine

L'orologio Raspbian è balzato in avanti di 2 ore al riavvio del sistema.

Quindi l'aggiornamento dell'ora da time.nist.gov lo ripristina.


Risposta: Senza una fonte esterna, l'orologio interno è imprevedibile in termini di mantenimento del tempo reale da solo.


Come posso impostare Raspbian per utilizzare il time server primario time.nist.gov?


1
Posso confermarlo. Senza connessione a Internet o data e ora RTC di Raspberry è inutile.
Łukasz Jakubek,

Ci sono ricevitori radio VLF con demodulatori di clock al loro interno. Ad esempio, Here is one tuned to 60 KHz può ascoltare il WWV in Colorado in tutto il Nord America. amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS Questi sono gli stessi moduli che usano in alcuni orologi. Lavorano con Arduino e Pi.
SDsolar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.