Tradução automática, não revista por um falante nativo. O inglês é a referência.

TemporizaçãoEditar no GitHubFonte: docs/SLOT-TIMING.md

Temporização de intervalos

O tipo de cenário slot-timing responde a três perguntas para um relógio em marcha livre entre sincronizações, que tem de manter o tráfego dentro de um slot indexado no tempo: um slot de encaminhamento, de atribuição de tarefas ou de contacto cuja guarda é o maior erro de tempo absoluto, de qualquer dos lados, com o qual o slot ainda funciona.

  1. Quando é que a guarda se rompe? Segundos desde o último acerto até o erro de tempo previsto atingir a guarda, com todos os termos contributivos discriminados e o dominante identificado.
  2. Quanto tempo resta agora? O mesmo valor menos o tempo já decorrido desde o acerto.
  3. Com que frequência tem o relógio de receber um acerto? O maior intervalo entre acertos que mantém o erro dentro da guarda, descontada a latência antes de um acerto produzir efeito.

Uma secção spoofing opcional acrescenta o nível de proteção de temporização (TPL) para um recetor em órbita; ver Spoofing de um recetor em órbita.

Execute o exemplo incluído com kshana example slot-timing-ocxo-leo.

Abreviaturas: GNSS, Global Navigation Satellite System; TCXO, temperature-compensated crystal oscillator; OCXO, oven-controlled crystal oscillator; RAFS, rubidium atomic frequency standard; CSAC, chip-scale atomic clock; USO, ultra-stable oscillator; DSAC, deep-space atomic clock; ADEV, desvio de Allan; FM, modulação de frequência (aqui, ruído na frequência do relógio); PM, modulação de fase (ruído na sua fase); IEEE, Institute of Electrical and Electronics Engineers; ITU-T, o Setor de Normalização das Telecomunicações da União Internacional das Telecomunicações; TIE, erro de intervalo de tempo; MTIE, erro máximo de intervalo de tempo; TDEV, desvio de tempo; max|TE|, erro de tempo absoluto máximo; CUSUM, detetor de alterações por soma cumulativa; TPL, nível de proteção de temporização; LEO, órbita terrestre baixa; NIST SP, National Institute of Standards and Technology Special Publication; UFFC, Ultrasonics, Ferroelectrics, and Frequency Control (uma IEEE Transactions); IGS, International GNSS Service; GPS, Global Positioning System; Block IIF, os satélites GPS Block II Follow-on; SHA-256, o Secure Hash Algorithm de 256 bits; PPS, pulso por segundo.

O modelo de erro#

O erro de tempo previsto após t segundos em marcha livre desde um acerto é

E(t) = k·√(σ₀² + (σ_f·t)² + σ_x²(t))  +  (|y₀| + |c_T·ΔT|)·t  +  ½·|D|·t²
σ_x²(t) = σ_PM² + q_wf·t + h_F·t² + q_rw·t³/3 + q_rr·t⁵/20
Símbolo Significado
k fator de cobertura (3 corresponde a cerca de 99,7 % de um erro gaussiano)
σ₀ erro de tempo de um sigma do acerto
σ_f erro de um sigma da frequência conhecida no acerto; uma frequência estimada numa janela W tem cerca de σ_y(W)
σ_PM² variância do ruído de fase branco: jitter do erro de tempo, um patamar constante
q_wf, q_rw, q_rr densidades de FM branca, de passeio aleatório e de corrida aleatória (os termos de van Loan de holdover::coast_phase_variance)
h_F patamar de FM de cintilação da variância de Allan
y₀ desvio de frequência fracionário residual deixado após o acerto
c_T·ΔT desvio de frequência devido a uma variação de temperatura ΔT através do coeficiente de temperatura c_T
D taxa de envelhecimento linear

Cada termo de FM é igual a t²·σ_y²(t) para o seu próprio tipo de ruído, com σ_y²(τ) = 3σ_PM²/τ² + q_wf/τ + h_F + q_rw·τ/3 + q_rr·τ³/20 (Zucca e Tavella, IEEE Trans. UFFC 52(2), 2005). Para a FM branca, de passeio aleatório e de corrida aleatória, essa relação é exata. Para a FM de cintilação, é a estimativa convencional do erro de previsão de tempo (Riley, NIST SP 1065): a FM de cintilação não tem forma fechada sem um corte de baixa frequência. Os desvios de frequência somam-se em módulo porque os seus sinais são desconhecidos, pelo que a parte determinista é um pior caso. Todos os termos são não negativos e não decrescentes em t, pelo que E(t) = guard tem uma só raiz, encontrada por delimitação e bissecção.

De onde vem o relógio#

Fonte Chave do cenário O que é Nível
Predefinição da classe oscillator.class um ADEV a um segundo citado e um patamar de ruído vermelho sintetizado duas e quatro décadas abaixo dele MODELLED: a resposta para um relógio estável é governada pelo patamar assumido
Predefinição de ficha técnica oscillator.preset as predefinições de temporização de telecomunicações (ocxo, rubidium, caesium, csac), cada uma uma ficha técnica Microchip com nome MODELLED: uma envolvente de máximos de fichas técnicas
Ficha técnica em linha oscillator.datasheet a tabela de ADEV, o envelhecimento e o coeficiente de temperatura do próprio cliente MODELLED: uma envolvente dos máximos indicados
Registo medido oscillator.record um registo de fase; o seu ADEV sobreposto é ajustado por mínimos quadrados ponderados a inversão é VALIDATED num registo real reservado (abaixo)

As três classes acrescentadas na 0.28.0 citam, cada uma, uma ficha técnica pública:

Classe ADEV a um segundo Fonte
tcxo 2.0e-10 EndRun Technologies, Disciplined Oscillator Options, coluna TCXO básica
ocxo 5e-12 Ficha técnica Microchip OX-208, Rev 12-1-2021
rafs 3e-11 Ficha técnica Microchip 8040C Rubidium Frequency Standard, DS00003047A

As linhas de tempos de média longos da EndRun convergem ao longo dessa tabela (4e-13 para todos os osciladores exceto o TCXO, 8e-13, a 10 000 s, e 6e-14 para todos eles a 100 000 s), o que sugere que descrevem o produto disciplinado e não o oscilador em marcha livre, pelo que não são utilizadas.

O ajuste ao registo é ponderado. Uma estimativa da variância de Allan com edf graus de liberdade equivalentes tem variância de cerca de 2σ⁴/edf, pelo que cada ponto entra com o resíduo √(edf/2)·(model/σ² − 1). Um ajuste não ponderado deixava os tempos de média curtos decidir os termos de tempos de média longos: num registo de teste de FM branca, produziu um patamar de cintilação espúrio que encurtou em 30 % uma violação de 2 000 s. Uma ficha técnica ou um registo só sustenta tempos de média até ao seu ponto mais longo; uma violação para além disso é assinalada como extrapolated.

Validação: a inversão num relógio real reservado#

tests/slot_timing_cs5071a_holdout.rs usa o registo de 556 990 amostras de um padrão de césio 5071A medido face a um maser de hidrogénio (A. Wallin, distribuído com allantools; o mesmo registo que a referência independente do estimador tests/cs5071a_reference.rs usa). Com o maser como referência, o registo é uma marcha livre de 6,4 dias.

  1. Ajustar o modelo de ruído apenas ao primeiro terço do registo.
  2. Prever, a partir desse modelo, o tempo de marcha livre em que o erro de tempo de um sigma atinge 0,5, 0,75, 1, 1,5, 2 e 2,5 ns.
  3. Nos outros dois terços, seguir em marcha livre a partir de um ponto de sincronização a cada 997 s, com a frequência estimada a partir do terço anterior, e medir onde o erro quadrático médio em marcha livre atinge cada limiar.

O limiar de passagem, fixado antes de o teste ser executado pela primeira vez, é que cada violação prevista fique dentro de um fator de 1,5 da medida. Um controlo, o ADEV a um segundo lido como FM branca, tem de falhar esse limiar, para que o limiar consiga distinguir um bom modelo de um mau. O teste imprime a sua tabela; uma mutação que reduza para metade o nível de FM branca faz-no falhar. O registo bruto são dados de terceiros ignorados pelo git: scripts/fetch_cs5071a.sh descarrega-o, e o fluxo de trabalho realdata-clock executa o teste com KSHANA_REQUIRE_REALDATA=1, pelo que um ficheiro em falta provoca aí uma falha em vez de ser ignorado.

O que isto valida: o percurso de ajuste e inversão, num padrão atómico dominado por FM branca, em marchas livres de até cerca de 50 000 s. O que não valida: as fontes de ficha técnica e de classe, os termos deterministas e um oscilador de cristal (secção seguinte).

A mesma previsão num oscilador de cristal real: conservadora, não validada#

tests/slot_timing_ocxo_holdout.rs usa um OCXO medido: 19 982 leituras de frequência de um segundo do oscilador de 10 MHz num analisador de impedância HP, face a um maser de hidrogénio (A. Wallin, 2015, distribuído com allantools; scripts/fetch_ocxo.sh). O modelo de ruído e uma deriva linear são ajustados no primeiro terço; cada marcha livre nos outros dois terços parte de uma frequência estimada nos 100 s anteriores, e o modelo transporta a incerteza dessa estimativa (fix_frequency_sigma, o próprio desvio de Allan do modelo a 100 s).

Ajustado em Violação prevista ÷ medida, de 0,2 a 10 ns Leitura
o primeiro terço (reservado) 0,59 a 0,70 conservador: nunca mais tarde do que o medido, em grande parte fora do limiar de 1,5
o próprio segmento de avaliação (diagnóstico) 0,98 a 1,17 a inversão está certa; a diferença no conjunto reservado deve-se à alteração do oscilador

O patamar de ruído do oscilador reduziu-se para metade durante o registo: o desvio de Allan do primeiro terço estabiliza perto de 7.5e-12, e o do resto perto de 3.5e-12. Um modelo ajustado cedo sobrestima o ruído, que é o sentido seguro. O caso do cristal não está, por isso, validado, e continua MODELLED. Para um cristal, ajustar num registo estabilizado e reajustar à medida que a peça envelhece.

Como o protocolo foi escolhido, declarado porque não foi cego. Uma primeira execução exploratória reutilizou o protocolo do césio (frequência a partir do terço anterior, sem termo de frequência) e previu violações 1,4 a 2,5 vezes mais tarde do que as medidas: otimista, o sentido perigoso. A frequência de um cristal varia, pelo que uma frequência estimada horas antes do acerto está desatualizada, e o modelo não tinha termo para o grau de conhecimento da frequência no acerto. O termo fix_frequency_sigma foi acrescentado por esse motivo e este protocolo foi fixado antes de o teste ser escrito; o limiar de passagem não foi alterado. O teste também verifica que, sem o termo, a previsão na própria amostra é otimista em todos os limiares, pelo que o termo é essencial.

A mesma previsão em relógios atómicos em órbita: 8 de 10, não validada#

tests/slot_timing_igs_holdout.rs usa os relógios combinados finais do IGS a 30 s durante 14 dias (de 17 a 30 de agosto de 2025; scripts/fetch_igs_clocks.sh, cada ficheiro fixado por SHA-256): o relógio de cada satélite GPS Block IIF face à escala de tempo do IGS. O protocolo (conjunto de satélites, regra de lacunas, janela de ajuste, um acerto a cada 3 570 s com a frequência da hora anterior, limiares de 1 a 20 ns, o limiar de 1,5, e a regra de que a classe só passa se todos os satélites passarem) foi redigido antes de qualquer dado ser descarregado.

Satélites Violação prevista ÷ medida Veredicto
G06, G08, G09, G10, G24, G26, G27, G32 0,76 a 1,46 dentro do limiar
G25 1,51 a 1,99 otimista
G30 1,20 a 1,61 otimista
G03 não avaliado excluído pela regra de lacunas (um dia em falta)

Oito em dez é uma evidência útil, mas prevê-se que dois satélites se mantenham mais tempo do que se mantiveram, que é o sentido perigoso, e o protocolo exige que todos os satélites passem. O caso orbital continua, por isso, MODELLED. Os satélites Block IIF transportam padrões de rubídio e de césio e os ficheiros do IGS não dizem qual está ativo, pelo que o resultado é enunciado para os satélites, e não para um tipo de relógio. Não foi investigado porque é que G25 e G30 diferem.

Uma execução em bench para uma peça representativa de voo (delimitada, não realizada)#

O registo público do OCXO tem 5,5 horas, de um instrumento de laboratório, com o oscilador ainda a estabilizar. O que validaria o caso do cristal é uma marcha livre medida mais longa de um OCXO representativo de voo ou de um CSAC face a uma referência:

  • um contador de intervalos de tempo a comparar o 1 PPS do oscilador com uma referência disciplinada por GNSS ou por maser, durante pelo menos 10 dias, a uma amostra por segundo, com a temperatura registada;
  • o mesmo protocolo de conjunto reservado: ajustar no primeiro terço, prever as violações, medir no resto, com o mesmo limiar e o mesmo controlo;
  • o registo e o seu resumo publicados junto do teste, para que a linha seja reproduzível.

Está bloqueada pelo acesso a hardware de referência e não é prometida.

Face a que métrica de deriva se deve aceitar um slot?#

As normas de temporização oferecem três famílias de métricas. Para um slot indexado no tempo, apenas uma delas mede o que rompe o slot.

  • O MTIE (ITU-T G.810) é o maior TIE pico a pico dentro de qualquer janela de um dado comprimento. É cego a um desvio constante: um relógio que esteja 1 µs desfasado mas perfeitamente estável tem um MTIE próximo de zero e falha todos os slots. Mede quanto o erro varia, e não onde ele está.
  • O TDEV (ITU-T G.810) é construído a partir de segundas diferenças da fase média. Remove um desvio constante e um erro de frequência constante, que são exatamente os termos que dominam uma marcha livre. Caracteriza o tipo de ruído; não é uma métrica de aceitação para temporização absoluta.
  • O max|TE| (ITU-T G.8260; a métrica de orçamento da G.8271) é o maior erro de tempo absoluto face à escala de tempo de referência. Compara-se diretamente com uma guarda.

Conclusão. Aceitar um slot face ao max|TE| relativo à escala de tempo de referência da rede, avaliado como uma envolvente prevista desde o último acerto, com um fator de cobertura declarado. É isso que E(t) é: como todos os termos crescem com t, o máximo ao longo de uma marcha livre de duração T é E(T). O MTIE e o TDEV continuam a ser úteis como diagnóstico: o TDEV para identificar que termo de ruído atacar, o MTIE(L) para limitar quanto o erro se move durante um slot de duração L.

Dois refinamentos que a escolha da métrica implica:

  • A guarda aplica-se ao erro relativo entre dois nós. Se o emissor e o recetor seguirem ambos em marcha livre de forma independente, os seus erros estocásticos somam-se em quadratura e os seus erros deterministas somam-se em módulo. Quando domina a parte estocástica, pode atribuir-se a cada nó guard/√2; quando domina o envelhecimento ou a temperatura, guard/2.
  • O fator de cobertura é uma escolha de projeto, e não uma propriedade do relógio. k = 3 limita cerca de 99,7 % dos erros gaussianos num instante, e não em todos os slots de um dia; um plano de encaminhamento com muitos slots por dia precisa do risco por slot que consegue tolerar.

Spoofing de um recetor em órbita#

A secção spoofing avalia orbital_timing::orbital_timing para o mesmo relógio:

  • Geometria. Um spoofer em terra só alcança um satélite LEO enquanto o satélite está acima do seu horizonte: a 550 km, no máximo cerca de doze minutos por passagem sobre o local. Um spoofer com uma rampa de taxa ρ pode, por isso, deslocar o relógio no máximo ρ vezes essa janela, ou vezes o intervalo até à verificação independente seguinte, se este for mais curto (ramp_limited_pull_ns).
  • Dinâmica. Um deslocamento de tempo em modo comum desloca igualmente todas as pseudodistâncias e é absorvido pelo desvio do relógio, e não pela posição, pelo que uma verificação de posição por propagador de órbita não conta como verificação cruzada de temporização.
  • Verificações cruzadas. Um satélite raramente tem um segundo recetor de temporização independente. Tem a marcha livre do seu próprio relógio (o monitor de tpl), uma transferência de tempo bidirecional com uma estação terrestre durante os contactos, e comparações de tempo através de ligações entre satélites. Uma ligação cruzada só é independente de um spoofer em terra se o vizinho estiver fora da área de cobertura desse spoofer no mesmo momento, o que o relatório verifica a partir do número de satélites por plano.
  • Limite condicional. O patamar do monitor mais a marcha livre do relógio durante a latência de deteção do CUSUM, reduzindo-se exatamente a tpl::timing_protection_level_ns quando o relógio não tem termo de cintilação, de fase branca nem de corrida aleatória. Tal como esse limite, só é válido se houver deteção.

Tudo isto é MODELLED: uma Terra esférica e sem rotação, uma passagem sobre o local, um spoofer terrestre com uma taxa de rampa máxima declarada. A direção de chegada dos sinais a uma antena apontada ao zénite é uma verificação cruzada real que precisa de um diagrama de antena e não é modelada. DECEIVED-TIME.md explica por que razão uma mensagem de controlo assinada não elimina esta ameaça.

Não modelado#

Saltos de frequência, efeitos da radiação e desvios de frequência relativistas; um modelo térmico (a variação de temperatura é um degrau no acerto); o próprio protocolo de sincronização (um acerto repõe o erro em fix_sigma_ns).