Temporización de franjas
El tipo de escenario slot-timing responde a tres preguntas sobre un reloj que funciona en marcha libre entre sincronizaciones y debe mantener el tráfico dentro de una ranura indexada en el tiempo: una ranura de encaminamiento, de asignación de tareas o de contacto cuya guarda es el mayor error de tiempo absoluto, a cualquiera de los dos lados, con el que la ranura aún funciona.
- ¿Cuándo se rompe la guarda? Segundos desde la última solución hasta que el error de tiempo previsto alcanza la guarda, con cada término contribuyente detallado y el dominante nombrado.
- ¿Cuánto tiempo queda ahora? La misma cifra menos el tiempo ya transcurrido desde la solución.
- ¿Con qué frecuencia debe el reloj tomar una solución? El mayor intervalo entre soluciones que mantiene el error dentro de la guarda, descontada la latencia antes de que una solución surta efecto.
Una sección spoofing opcional añade el nivel de protección de temporización (TPL) para un receptor en órbita; véase Spoofing de un receptor en órbita.
Ejecute el ejemplo incluido con kshana example slot-timing-ocxo-leo.
Abreviaturas: GNSS, Sistema Global de Navegación por Satélite; TCXO, oscilador de cuarzo con compensación de temperatura; OCXO, oscilador de cuarzo con control de horno; RAFS, patrón de frecuencia atómico de rubidio; CSAC, reloj atómico a escala de chip; USO, oscilador ultraestable; DSAC, reloj atómico de espacio profundo; ADEV, desviación de Allan; FM, modulación de frecuencia (aquí, ruido en la frecuencia del reloj); PM, modulación de fase (ruido en su fase); IEEE, Instituto de Ingenieros Eléctricos y Electrónicos; ITU-T, el Sector de Normalización de las Telecomunicaciones de la Unión Internacional de Telecomunicaciones; TIE, error de intervalo de tiempo; MTIE, error máximo de intervalo de tiempo; TDEV, desviación de tiempo; max|TE|, error de tiempo absoluto máximo; CUSUM, detector de cambios por suma acumulada; TPL, nivel de protección de temporización; LEO, órbita terrestre baja; NIST SP, Publicación Especial del Instituto Nacional de Estándares y Tecnología; UFFC, Ultrasonics, Ferroelectrics, and Frequency Control (una revista IEEE Transactions); IGS, Servicio Internacional de GNSS; GPS, Sistema de Posicionamiento Global; Block IIF, los satélites GPS Block II Follow-on; SHA-256, el algoritmo de hash seguro de 256 bits; PPS, pulso por segundo.
El modelo de error#
El error de tiempo previsto tras avanzar por inercia t segundos desde una solución es
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 |
factor de cobertura (3 es aproximadamente el 99,7 % de un error gaussiano) |
σ₀ |
error de tiempo de una sigma de la solución |
σ_f |
error de una sigma de la frecuencia conocida en la solución; una frecuencia estimada sobre una ventana W lleva aproximadamente σ_y(W) |
σ_PM² |
varianza de ruido de fase blanco: jitter del error de tiempo, un suelo constante |
q_wf, q_rw, q_rr |
densidades de FM blanca, de paseo aleatorio y de carrera aleatoria (los términos de van Loan de holdover::coast_phase_variance) |
h_F |
suelo de FM de flicker de la varianza de Allan |
y₀ |
desfase fraccionario de frecuencia residual que queda tras la solución |
c_T·ΔT |
desfase de frecuencia por un cambio de temperatura ΔT a través del coeficiente de temperatura c_T |
D |
tasa de envejecimiento lineal |
Cada término de FM equivale a t²·σ_y²(t) para su propio tipo de ruido, con σ_y²(τ) = 3σ_PM²/τ² + q_wf/τ + h_F + q_rw·τ/3 + q_rr·τ³/20 (Zucca y Tavella, IEEE Trans. UFFC 52(2), 2005). Para la FM blanca, de paseo aleatorio y de carrera aleatoria, esa relación es exacta. Para la FM de flicker es la estimación convencional del error de predicción de tiempo (Riley, NIST SP 1065): la FM de flicker no tiene forma cerrada sin un corte de baja frecuencia. Los desfases de frecuencia se suman en módulo porque se desconocen sus signos, de modo que la parte determinista es un peor caso. Todos los términos son no negativos y no decrecientes en t, por lo que E(t) = guard tiene una única raíz, hallada por acotación y bisección.
De dónde procede el reloj#
| Fuente | Clave del escenario | Qué es | Nivel |
|---|---|---|---|
| Valor predeterminado de la clase | oscillator.class |
una ADEV de un segundo citada y un suelo de ruido rojo sintetizado dos y cuatro décadas por debajo de ella | MODELLED: la respuesta para un reloj estable la determina el suelo supuesto |
| Perfil de hoja de datos | oscillator.preset |
los perfiles de temporización de telecomunicaciones (ocxo, rubidium, caesium, csac), cada uno una hoja de datos de Microchip con nombre |
MODELLED: una envolvente de los máximos de la hoja de datos |
| Hoja de datos en línea | oscillator.datasheet |
la propia tabla de ADEV, de envejecimiento y de coeficiente de temperatura del cliente | MODELLED: una envolvente de los máximos dados |
| Registro medido | oscillator.record |
un registro de fase; su ADEV solapada se ajusta por mínimos cuadrados ponderados | la inversión está VALIDATED con un registro real reservado (más abajo) |
Las tres clases añadidas en la 0.28.0 citan cada una una hoja de datos pública:
| Clase | ADEV de un segundo | Fuente |
|---|---|---|
tcxo |
2.0e-10 | EndRun Technologies, Disciplined Oscillator Options, columna del TCXO básico |
ocxo |
5e-12 | Hoja de datos Microchip OX-208, Rev 12-1-2021 |
rafs |
3e-11 | Hoja de datos del patrón de frecuencia de rubidio Microchip 8040C, DS00003047A |
Las filas de tiempos de promediado largos de EndRun convergen en toda esa tabla (4e-13 para todos los osciladores salvo el TCXO, 8e-13, a 10.000 s, y 6e-14 para todos ellos a 100.000 s), lo que sugiere que describen el producto disciplinado y no el oscilador en marcha libre, por lo que no se usan.
El ajuste del registro es ponderado. Una estimación de la varianza de Allan con edf grados de libertad equivalentes tiene una varianza de aproximadamente 2σ⁴/edf, por lo que cada punto entra con el residuo √(edf/2)·(model/σ² − 1). Un ajuste sin ponderar dejó que los tiempos de promediado cortos decidieran los términos de los tiempos de promediado largos: en un registro de prueba de FM blanca produjo un suelo de flicker espurio que acortó en un 30 % una superación de 2.000 s. Una hoja de datos o un registro solo respalda tiempos de promediado hasta su punto más largo; una superación más allá se marca como extrapolated.
Validación: la inversión sobre un reloj real reservado#
tests/slot_timing_cs5071a_holdout.rs usa el registro de 556 990 muestras de un patrón de cesio 5071A medido frente a un máser de hidrógeno (A. Wallin, distribuido con allantools; el mismo registro que usa la referencia independiente del estimador tests/cs5071a_reference.rs). Con el máser como referencia, el registro es una marcha libre de 6.4 días.
- Ajustar el modelo de ruido solo sobre el primer tercio del registro.
- Predecir, a partir de ese modelo, el tiempo de deriva en el que el error de tiempo de una sigma alcanza 0,5, 0,75, 1, 1,5, 2 y 2,5 ns.
- Sobre los otros dos tercios, avanzar por inercia desde un punto de sincronización cada 997 s con la frecuencia estimada a partir del tercio anterior, y medir dónde alcanza cada umbral el error de deriva cuadrático medio.
El umbral para superar la prueba, fijado antes de la primera ejecución de la prueba, es que cada superación predicha quede dentro de un factor de 1,5 de la medida. Un control, la ADEV de un segundo leída como FM blanca, debe incumplir ese umbral, de modo que el umbral sepa distinguir un modelo bueno de uno malo. La prueba imprime su tabla; una mutación que reduzca a la mitad el nivel de FM blanca la hace fallar. El registro en bruto son datos de terceros excluidos de git: scripts/fetch_cs5071a.sh lo descarga y el flujo de trabajo realdata-clock ejecuta la prueba con KSHANA_REQUIRE_REALDATA=1, de modo que un archivo ausente hace fallar allí la prueba en lugar de omitirla.
Lo que esto valida: la ruta de ajuste y posterior inversión, sobre un patrón atómico dominado por FM blanca, en derivas de hasta unos 50.000 s. Lo que no valida: las fuentes de hoja de datos y de clase, los términos deterministas y un oscilador de cuarzo (sección siguiente).
La misma predicción sobre un oscilador de cuarzo real: conservadora, no validada#
tests/slot_timing_ocxo_holdout.rs usa un OCXO medido: 19.982 lecturas de frecuencia de un segundo del oscilador de 10 MHz de un analizador de impedancia HP, frente a un máser de hidrógeno (A. Wallin, 2015, distribuido con allantools; scripts/fetch_ocxo.sh). El modelo de ruido y una deriva lineal se ajustan sobre el primer tercio; cada deriva sobre los otros dos tercios parte de una frecuencia estimada a lo largo de los 100 s anteriores, y el modelo incorpora la incertidumbre de esa estimación (fix_frequency_sigma, la propia desviación de Allan del modelo a 100 s).
| Ajustado sobre | Superación predicha ÷ medida, de 0,2 a 10 ns | Lectura |
|---|---|---|
| el primer tercio (reservado) | de 0,59 a 0,70 | conservador: nunca más tarde que lo medido, mayoritariamente fuera del umbral de 1,5 |
| el propio segmento de evaluación (diagnóstico) | de 0,98 a 1,17 | la inversión es correcta; la diferencia en el conjunto reservado se debe a que el oscilador cambia |
El suelo de ruido del oscilador se redujo a la mitad durante el registro: la desviación de Allan del primer tercio se aplana cerca de 7.5e-12 y la del resto cerca de 3.5e-12. Un modelo ajustado al principio sobrepredice el ruido, que es el sentido seguro. Por tanto, el caso del cuarzo no está validado y sigue siendo MODELLED. Para un cuarzo, ajuste sobre un registro estabilizado y vuelva a ajustar a medida que la pieza envejece.
Cómo se eligió el protocolo, indicado porque no fue a ciegas. Una primera ejecución exploratoria reutilizó el protocolo del cesio (frecuencia del tercio anterior, sin término de frecuencia) y predijo superaciones entre 1,4 y 2,5 veces más tarde que las medidas: optimista, el sentido peligroso. La frecuencia de un cuarzo deriva, de modo que una frecuencia estimada horas antes de la solución está obsoleta, y el modelo carecía de un término para lo bien que se conoce la frecuencia en la solución. El término fix_frequency_sigma se añadió por ese motivo y este protocolo se fijó antes de escribir la prueba; el umbral para superar la prueba no se movió. La prueba también comprueba que, sin el término, la predicción dentro de la muestra es optimista en todos los umbrales, por lo que el término es imprescindible.
La misma predicción sobre relojes atómicos en órbita: 8 de 10, no validada#
tests/slot_timing_igs_holdout.rs usa los relojes combinados finales del IGS a 30 s durante 14 días (del 17 al 30 de agosto de 2025; scripts/fetch_igs_clocks.sh, cada archivo fijado por SHA-256): el reloj de cada satélite GPS Block IIF frente a la escala de tiempo del IGS. El protocolo (conjunto de satélites, regla de huecos, ventana de ajuste, una sincronización cada 3.570 s con la frecuencia de la hora anterior, umbrales de 1 a 20 ns, el umbral de 1,5 y la regla de que la clase solo se supera si lo hace cada satélite) se redactó antes de descargar ningún dato.
| Satélites | Superación predicha ÷ medida | Veredicto |
|---|---|---|
| G06, G08, G09, G10, G24, G26, G27, G32 | de 0,76 a 1,46 | dentro del umbral |
| G25 | de 1,51 a 1,99 | optimista |
| G30 | de 1,20 a 1,61 | optimista |
| G03 | no evaluado | excluido por la regla de huecos (falta un día) |
Ocho de diez es una evidencia útil, pero se predice que dos satélites aguantan más de lo que aguantaron, que es el sentido peligroso, y el protocolo exige que todos los satélites superen la prueba. Por tanto, el caso orbital sigue siendo MODELLED. Los satélites Block IIF llevan patrones de rubidio y de cesio y los archivos del IGS no indican cuál está activo, por lo que el resultado se enuncia para los satélites, no para un tipo de reloj. No se ha investigado por qué difieren G25 y G30.
Una ejecución en bench con una pieza representativa de vuelo (delimitada, no realizada)#
El registro público de OCXO dura 5,5 horas, procede de un instrumento de laboratorio y el oscilador aún se estaba estabilizando. Lo que validaría el caso del cuarzo es una marcha libre medida más larga de un OCXO representativo de vuelo o de un CSAC frente a una referencia:
- un contador de intervalos de tiempo que compare el 1 PPS del oscilador con una referencia disciplinada por GNSS o un máser, durante al menos 10 días a una muestra por segundo, con la temperatura registrada;
- el mismo protocolo con conjunto reservado: ajustar sobre el primer tercio, predecir las superaciones y medir sobre el resto, con el mismo umbral y control;
- el registro y su hash publicados junto a la prueba para que la fila sea reproducible.
Depende del acceso a hardware de referencia y no se promete.
¿Frente a qué métrica de wander debe aceptarse una ranura?#
Las normas de temporización ofrecen tres familias de métricas. Para una ranura indexada en el tiempo, solo una de ellas mide lo que rompe la ranura.
- MTIE (ITU-T G.810) es el mayor TIE de pico a pico dentro de cualquier ventana de una longitud dada. Es ciego a un desfase constante: un reloj que está 1 µs desviado pero perfectamente estable tiene un MTIE cercano a cero y falla todas las ranuras. Mide cuánto cambia el error, no dónde está.
- TDEV (ITU-T G.810) se construye a partir de diferencias segundas de la fase promediada. Elimina un desfase constante y un error de frecuencia constante, que son exactamente los términos que dominan una deriva. Caracteriza el tipo de ruido; no es una métrica de aceptación para la temporización absoluta.
- max|TE| (ITU-T G.8260; la métrica de presupuesto de G.8271) es el mayor error de tiempo absoluto frente a la escala de tiempo de referencia. Se compara directamente con una guarda.
Conclusión. Acepte una ranura frente a max|TE| respecto de la escala de tiempo de referencia de la red, evaluada como una envolvente prevista desde la última solución con un factor de cobertura declarado. Eso es lo que es E(t): como cada término crece con t, el máximo en una deriva de duración T es E(T). MTIE y TDEV siguen siendo útiles como diagnósticos: TDEV para identificar qué término de ruido atacar y MTIE(L) para acotar cuánto se mueve el error durante una ranura de duración L.
Dos refinamientos que implica la elección de la métrica:
- La guarda se aplica al error relativo entre dos nodos. Si transmisor y receptor derivan ambos de forma independiente, sus errores estocásticos se suman en cuadratura y sus errores deterministas se suman en módulo. Cuando domina la parte estocástica, a cada nodo puede asignársele
guard/√2; cuando dominan el envejecimiento o la temperatura,guard/2. - El factor de cobertura es una decisión de diseño, no una propiedad del reloj.
k = 3acota aproximadamente el 99,7 % de los errores gaussianos en un instante, no en todas las ranuras de un día; un plan de encaminamiento con muchas ranuras al día necesita el riesgo por ranura que pueda tolerar.
Spoofing de un receptor en órbita#
La sección spoofing evalúa orbital_timing::orbital_timing para el mismo reloj:
- Geometría. Un spoofer terrestre solo alcanza un satélite LEO mientras el satélite está sobre su horizonte: a 550 km, como máximo unos doce minutos por paso cenital. Un spoofer que aplique una rampa de velocidad
ρpuede por tanto arrastrar el reloj como máximoρveces esa ventana, o veces el intervalo hasta la siguiente comprobación independiente si este es más corto (ramp_limited_pull_ns). - Dinámica. Un arrastre de tiempo en modo común desplaza todas las pseudodistancias por igual y se absorbe en el sesgo del reloj, no en la posición, por lo que una comprobación de posición con un propagador de órbita no cuenta como comprobación cruzada de temporización.
- Comprobaciones cruzadas. Un satélite rara vez tiene un segundo receptor de temporización independiente. Tiene la deriva de su propio reloj (el monitor de
tpl), una transferencia bidireccional de tiempo con una estación terrestre durante los contactos y comparaciones de tiempo por enlaces entre satélites. Un enlace cruzado es independiente de un spoofer terrestre solo si el vecino está fuera de la huella de ese spoofer en el mismo momento, lo que el informe comprueba a partir del número de satélites por plano. - Cota condicionada. El suelo del monitor más la deriva del reloj durante la latencia de detección de CUSUM, que se reduce exactamente a
tpl::timing_protection_level_nscuando el reloj no tiene término de flicker, de fase blanca ni de carrera aleatoria. Como esa cota, solo es válida si hay detección.
Todo ello es MODELLED: una Tierra esférica y sin rotación, un paso cenital, un spoofer terrestre con una velocidad máxima de rampa declarada. La dirección de llegada de las señales a una antena orientada al cenit es una comprobación cruzada real que requiere un diagrama de antena y no se modela. DECEIVED-TIME.md explica por qué un mensaje de control firmado no elimina esta amenaza.
No modelado#
Saltos de frecuencia, efectos de la radiación y desfases relativistas de frecuencia; un modelo térmico (el cambio de temperatura es un escalón en la solución); el propio protocolo de sincronización (una solución restablece el error a fix_sigma_ns).