Qual é a precisão das horas do Raspberry Pi?

17

Percebo que, como o Raspberry Pi não possui um relógio em tempo real de hardware, alguns problemas com cronometragem precisa podem se apresentar, mesmo quando a persistência nas reinicializações não é um requisito .

Isso pode ser mitigado pela execução de um daemon NTP que corrigirá continuamente a hora local, mas o NTP não é uma opção se o Raspberry Pi não estiver conectado a uma rede.

Portanto, se eu deixar um Raspberry Pi ativado com horário preciso no início, quanto devo esperar que o tempo relatado seja desviado do horário local real?

E entre as reinicializações?

SDsolar
fonte
Será um tempo de manutenção do software quando não estiver conectado a quem? Eu diria que o software para manter o tempo é inerentemente preciso.
Jivings
1
Você está falando de um máximo de 10 minutos, no pior dos casos, por ano (temperaturas extremas de -20 e mais baixas / +60 e mais) (otimizado para operação em 20 graus). Não é tão ruim. Um relógio em tempo real hoje em dia é usado apenas para manter o tempo atômico ... como .. funções matemáticas muito precisas que precisam medir o tempo de execução ou algo agitado. Muitos dispositivos caem cristal de 32khz porque os osciladores são bons o suficiente para gerar sinais de RF ou de vídeo sem complicações sérias.
Piotr Kula
@ppumkin Você tem alguma fonte para isso? Eu meio que esperava menos precisão devido às razões mencionadas por Chris Stratton (interrupções perdidas e outras).
1
Desculpe, apenas meu conhecimento geral em campo e experiência em usar osciladores em vez de cristais. Faltar interrupções vai ser mega extremo! Se fosse tão ruim, todo mundo não estaria fazendo isso.
Piotr Kula
Esta questão é realmente mais sobre Raspbian do que sobre o próprio Pi. E a idéia de manter um Pi funcionando continuamente por mais de um ano é tão improvável que torna as estatísticas acima insignificantes em comparação com o que acontece durante a reinicialização.
SDsolar

Respostas:

9

Existem realmente duas questões:

1) A precisão do próprio oscilador - que possui variáveis ​​como exclusividade, idade, temperatura, etc.

2) Se houver algo que possa causar erros de contagem de tempo em relação ao oscilador de cristal. Seriam coisas como interrupções perdidas ou problemas de transição se o relógio usado fosse depois de um multiplicador de PLL - ou afetado pela aceleração do relógio (se for usado).

Aliás, o NTP, a menos que seja muito bem implementado, pode piorar o tempo auto-relativo preciso a curto prazo, pois significa que o relógio local pode ser alterado para ser consistente com uma autoridade externa, em vez de permanecer consistente consigo mesmo.

Chris Stratton
fonte
8

Vai depender do cristal que eles usaram, talvez 10ppm ou mais. Você não pode realmente contar com isso, a menos que seja especificado em algum lugar. Você poderá usar o GPS se não estiver conectado a uma rede. Caso contrário, um chip RTC pode ser adicionado.

Você precisará de algo melhor do que apenas o tempo do software, se houver uma chance de o RPi perder energia ou travar.

Espero estar ligando um RTC ao GPIO em breve

John La Rooy
fonte
3
Kevin Sangeelee publicou uma descrição detalhada da adição de um RTC ao Raspberry Pi susa.net/wordpress/2012/06/…
Steve Robillard
1
Outra alternativa para uma Pi non rede está usando sinais de tempo de rádio como discutido aqui designspark.com/de/content/atomic-time-raspberry-pi
Steve Robillard
+1 Para conectar um RTC ao GPIO, se for necessário um tempo mais preciso. Talvez até um receptor atômico .. :-) boa sugestão!
Piotr Kula
Não tenho grande experiência aqui, mas gostaria de dizer que "estação de rádio WVVB ou CHU" é um descritor mais preciso do que "receptor de rádio atômico" ou similar. :) Boa sugestão. Para aqueles que estão ao alcance da CHU, existe até um código c para extrair o áudio e analisar o tempo.
Tai Viinikka
1
OK, então aqui é uma solução GPS: raspberrypi.stackexchange.com/questions/68816/...
SDsolar
6

Interpretando a pergunta a ser feita sobre um Raspberry Pi executando o Raspbian.

O sistema operacional é a influência dominante em como o Rapberry Pi mantém o tempo.

Resposta: Sem uma fonte externa, o relógio interno é altamente imprevisível em termos de manter o tempo por conta própria.


Estudos de caso recentes:


Este é um gráfico de um datalogger Raspberry Pi 3 B que de repente perdeu a energia da rede elétrica por cerca de uma hora:

insira a descrição da imagem aqui

Você pode ver claramente que, quando a energia foi ligada, ela inicializou e reiniciou o registro de dados.

Mas o relógio Raspbian volta no tempo.

Então você pode vê-lo pular para a hora correta assim que receber uma atualização de time.nist.gov


O National Bureau of Standards recomenda o uso de time.nist.gov porque é um URL inteligente que encontra o tempo mais rápido e preciso disponível. Tanto o Linux (ubuntu e Raspbian) quanto o Windows são padronizados para pools que podem estar a muitos saltos do Master Clock.

Como configuro o Raspbian para usar o servidor de horário primário time.nist.gov?


Aqui está uma nova plotagem do mesmo sistema novamente.

Como ele foi interrompido ontem (veja a plotagem acima), eu costumava sudo init 0desligá-lo corretamente, para criar uma imagem do cartão SD com o Win32DiskImager em um PC.

Demora um pouco, como pode ser visto aqui.

insira a descrição da imagem aqui

Neste, você pode ver o Raspbian reiniciar o relógio exatamente onde parou. Parece que registrou bons dados (sobe) em um minuto.

Em seguida, mostra o que acontece quando recebe a atualização de horário. Salta para a direita.

A quantidade que ele salta para frente (algumas horas) é o tempo que Raspbian perdeu enquanto o cartão SD estava sendo fotografado.


Aqui está uma reviravolta surpreendente.

O sistema simplesmente congelou. Luzes vermelhas e verdes acesas, sem tremulações.

Anunciado (usando espeak) em questão de minutos pelo trabalho cron baseado em ping do servidor principal, que monitora os registradores de dados apenas para essa ocorrência. Portanto, não demorou mais do que alguns minutos.

Energia puxada por alguns segundos. Reinicializei - os LEDs parecem normais.

Aqui está como essa falha afetou o registro de dados:

insira a descrição da imagem aqui

O relógio Raspbian avançou duas horas quando o sistema foi reiniciado.

Em seguida, a atualização de tempo de time.nist.gov o redefine.


Resposta: Sem uma fonte externa, o relógio interno é imprevisível em termos de manter o Tempo Real por conta própria.


Como configuro o Raspbian para usar o servidor de horário primário time.nist.gov?

SDsolar
fonte
1
Eu posso confirmar isso. Sem conexão à Internet ou data e hora do RTC, a framboesa é inútil.
Łukasz Jakubek
Existem receptores de rádio VLF com desmoduladores de relógio. Por exemplo, aqui está um sintonizado a 60 KHz e pode-se ouvir WWV no Colorado em toda a América do Norte. amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS Estes são os mesmos módulos usados ​​em alguns relógios. Eles trabalham com Arduino e Pi.
SDsolar