Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Синхронізація часуРедагувати на GitHubДжерело: docs/SLOT-TIMING.md

Часові слоти

Тип сценарію slot-timing відповідає на три запитання для годинника, що вільно ходить між синхронізаціями й має утримувати трафік у межах часового слота: слота маршрутизації, постановки завдань або контакту, чий захисний інтервал (guard) — це найбільша абсолютна похибка часу з будь-якого боку, за якої слот ще працює.

  1. Коли захисний інтервал буде порушено? Секунди від останнього уточнення до моменту, коли прогнозована похибка часу сягає захисного інтервалу, з поелементним розписом усіх внесків і зазначенням домінантного.
  2. Скільки часу залишилося зараз? Той самий показник мінус час, що минув від уточнення.
  3. Як часто годинник має отримувати уточнення? Найбільший інтервал між уточненнями, що тримає похибку в межах захисного інтервалу, за вирахуванням затримки до набрання уточненням чинності.

Необов'язковий розділ spoofing додає рівень захисту часу (TPL) для приймача на орбіті; див. Спуфінг приймача на орбіті.

Запустіть вбудований приклад командою kshana example slot-timing-ocxo-leo.

Скорочення: GNSS — глобальна навігаційна супутникова система; TCXO — кварцовий генератор із температурною компенсацією; OCXO — кварцовий генератор із термостатуванням; RAFS — рубідієвий атомний стандарт частоти; CSAC — атомний годинник чипового масштабу; USO — надстабільний генератор; DSAC — атомний годинник для глибокого космосу; ADEV — девіація Аллана; FM — частотна модуляція (тут шум частоти годинника); PM — фазова модуляція (шум його фази); IEEE — Інститут інженерів з електротехніки та електроніки; ITU-T — сектор стандартизації електрозв'язку Міжнародного союзу електрозв'язку; TIE — похибка часового інтервалу; MTIE — максимальна похибка часового інтервалу; TDEV — девіація часу; max|TE| — максимальна абсолютна похибка часу; CUSUM — детектор змін за кумулятивною сумою; TPL — рівень захисту часу; LEO — низька навколоземна орбіта; NIST SP — спеціальна публікація Національного інституту стандартів і технологій; UFFC — Ultrasonics, Ferroelectrics, and Frequency Control (журнал IEEE Transactions); IGS — Міжнародна служба GNSS; GPS — глобальна система позиціонування; Block IIF — супутники GPS Block II Follow-on; SHA-256 — 256-бітний безпечний алгоритм гешування; PPS — імпульс на секунду.

Модель похибок#

Прогнозована похибка часу після вибігу протягом t секунд від уточнення дорівнює

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
Символ Значення
k коефіцієнт охоплення (3 — це приблизно 99,7 % гауссової похибки)
σ₀ однокрокова (одна сигма) похибка часу уточнення
σ_f однокрокова похибка частоти, відомої на момент уточнення; частота, оцінена у вікні W, має приблизно σ_y(W)
σ_PM² дисперсія білого фазового шуму: тремтіння похибки часу, постійний мінімум
q_wf, q_rw, q_rr густини білого, випадкового блукання та випадкового ходу FM (члени ван Лоана з holdover::coast_phase_variance)
h_F мерехтливий (flicker) FM-мінімум дисперсії Аллана
y₀ залишкове відносне зміщення частоти, що лишилося після уточнення
c_T·ΔT зміщення частоти внаслідок зміни температури ΔT через температурний коефіцієнт c_T
D лінійна швидкість старіння

Кожен FM-доданок дорівнює t²·σ_y²(t) для власного типу шуму, де σ_y²(τ) = 3σ_PM²/τ² + q_wf/τ + h_F + q_rw·τ/3 + q_rr·τ³/20 (Zucca та Tavella, IEEE Trans. UFFC 52(2), 2005). Для білого FM, випадкового блукання та випадкового ходу це співвідношення точне. Для мерехтливого FM це загальноприйнята оцінка похибки прогнозу часу (Riley, NIST SP 1065): без низькочастотного відсікання мерехтливий FM не має замкненої форми. Зміщення частоти додаються за модулем, бо їхні знаки невідомі, тож детермінована частина є найгіршим випадком. Кожен доданок невід'ємний і неспадний за t, тому E(t) = guard має один корінь, який знаходять охопленням і діленням навпіл.

Звідки береться годинник#

Джерело Ключ сценарію Що це Рівень
Типове значення класу oscillator.class одна наведена односекундна ADEV і мінімум червоного шуму, синтезований на два та чотири десятки порядків нижче MODELLED: відповідь для стабільного годинника визначається припущеним мінімумом
Пресет із технічного паспорта oscillator.preset пресети телекомунікаційної синхронізації (ocxo, rubidium, caesium, csac), кожен — іменований технічний паспорт Microchip MODELLED: огинаюча максимумів із технічних паспортів
Вбудований технічний паспорт oscillator.datasheet власна таблиця ADEV замовника, старіння та температурний коефіцієнт MODELLED: огинаюча наведених максимумів
Виміряний запис oscillator.record фазовий запис; його перекривна ADEV підганяється зваженим методом найменших квадратів інверсія VALIDATED на відкладеному реальному записі (нижче)

Три класи, додані в 0.28.0, посилаються кожен на один публічний технічний паспорт:

Клас Односекундна ADEV Джерело
tcxo 2.0e-10 EndRun Technologies, Disciplined Oscillator Options, стовпець базового TCXO
ocxo 5e-12 технічний паспорт Microchip OX-208, Rev 12-1-2021
rafs 3e-11 технічний паспорт рубідієвого стандарту частоти Microchip 8040C, DS00003047A

Рядки EndRun для великих часів усереднення в цій таблиці збігаються (4e-13 для кожного генератора, крім TCXO, 8e-13, при 10 000 s, і 6e-14 для всіх при 100 000 s), що вказує на те, що вони описують кероване (дисципліноване) виріб, а не вільно працюючий генератор, тому їх не використано.

Підгонка запису зважена. Оцінка дисперсії Аллана з edf еквівалентними ступенями свободи має дисперсію приблизно 2σ⁴/edf, тому кожна точка входить із нев'язкою √(edf/2)·(model/σ² − 1). Незважена підгонка давала короткочасним часам усереднення вирішувати долю членів для довгих часів усереднення: на тестовому записі з білим FM вона дала хибний мерехтливий мінімум, що скоротив порушення на 2 000 s на 30 %. Технічний паспорт чи запис підтримує лише часи усереднення до своєї найдовшої точки; порушення за її межами позначається як extrapolated.

Перевірка: інверсія на відкладеному реальному годиннику#

tests/slot_timing_cs5071a_holdout.rs використовує запис із 556 990 відліків атомного стандарту 5071A на цезії, виміряного відносно водневого мазера (A. Wallin, розповсюджується з allantools; той самий запис, який використовує оракул оцінювача tests/cs5071a_reference.rs). З мазером як еталоном запис є 6,4-добовим вільним ходом.

  1. Підігнати модель шуму лише на першій третині запису.
  2. За цією моделлю передбачити час вибігу, коли однокрокова похибка часу сягає 0,5, 0,75, 1, 1,5, 2 і 2,5 ns.
  3. На решті двох третин виконувати вибіг від точки синхронізації кожні 997 s із частотою, оціненою за попередньою третиною, і виміряти, де середньоквадратична похибка вибігу сягає кожного порога.

Поріг відповідності (pass bar), зафіксований до першого запуску тесту: кожне передбачене порушення має лежати в межах множника 1,5 від виміряного. Контроль — односекундна ADEV, прочитана як білий FM, — має не пройти цей поріг, щоб поріг міг відрізнити добру модель від поганої. Тест виводить свою таблицю; мутація, що вдвічі зменшує рівень білого FM, його не проходить. Сирий запис — це стороннє дане, виключене з git: його завантажує scripts/fetch_cs5071a.sh, а робочий процес realdata-clock запускає тест із KSHANA_REQUIRE_REALDATA=1, тож відсутній файл там призводить до помилки, а не до пропуску.

Що це підтверджує: шлях «підгонка, потім інверсія» на атомному стандарті з домінуванням білого FM для вибігів до приблизно 50 000 s. Чого не підтверджує: джерела з технічних паспортів і класів, детерміновані доданки та кварцовий генератор (наступний розділ).

Той самий прогноз на реальному кварцовому генераторі: консервативний, не перевірений за незалежним еталоном#

tests/slot_timing_ocxo_holdout.rs використовує виміряний OCXO: 19 982 односекундних відліків частоти 10 MHz генератора в імпедансному аналізаторі HP, відносно водневого мазера (A. Wallin, 2015, розповсюджується з allantools; scripts/fetch_ocxo.sh). Модель шуму та лінійний дрейф підганяються на першій третині; кожен вибіг на решті двох третин починається з частоти, оціненої за попередні 100 s, а модель враховує невизначеність цієї оцінки (fix_frequency_sigma, власна девіація Аллана моделі при 100 s).

Підігнано на Передбачене ÷ виміряне порушення, від 0,2 до 10 ns Висновок
перша третина (відкладена) від 0,59 до 0,70 консервативно: ніколи не пізніше за виміряне, здебільшого поза порогом 1,5
сам оцінюваний сегмент (діагностика) від 0,98 до 1,17 інверсія правильна; відкладений розрив — це зміна самого генератора

Шумовий мінімум генератора впав удвічі протягом запису: девіація Аллана першої третини вирівнюється біля 7.5e-12, решти — біля 3.5e-12. Модель, підігнана раніше, завищує шум, а це безпечний напрямок. Тому випадок кварцового генератора не перевірений за незалежним еталоном і лишається MODELLED. Для кварцу підганяйте модель на усталеному записі та підганяйте її заново, коли деталь старіє.

Як було вибрано протокол, сказано прямо, бо він не був сліпим. Перший пошуковий прогін повторив протокол для цезію (частота за попередньою третиною, без частотного члена) і передбачив порушення в 1,4–2,5 раза пізніше за виміряні: оптимістично, у небезпечному напрямку. Частота кварцу блукає, тож частота, оцінена за кілька годин до уточнення, застаріла, а в моделі не було члена для того, наскільки добре відома частота на момент уточнення. Член fix_frequency_sigma додано з цієї причини, а цей протокол зафіксовано до написання тесту; поріг відповідності не змінювали. Тест також перевіряє, що без цього члена прогноз на тих самих даних оптимістичний за кожного порога, тож член є несучим.

Той самий прогноз на атомних годинниках на орбіті: 8 із 10, не перевірений за незалежним еталоном#

tests/slot_timing_igs_holdout.rs використовує об'єднані остаточні годинники IGS з кроком 30 s за 14 діб (від 17 до 30 серпня 2025; scripts/fetch_igs_clocks.sh, кожен файл закріплено за SHA-256): годинник кожного супутника GPS Block IIF відносно шкали часу IGS. Протокол (набір супутників, правило пропусків, вікно підгонки, синхронізація кожні 3 570 s із частотою за попередню годину, пороги від 1 до 20 ns, поріг 1,5 і правило, що клас проходить, лише якщо проходить кожен супутник) було записано до завантаження будь-яких даних.

Супутники Передбачене ÷ виміряне порушення Вердикт
G06, G08, G09, G10, G24, G26, G27, G32 від 0,76 до 1,46 у межах порога
G25 від 1,51 до 1,99 оптимістично
G30 від 1,20 до 1,61 оптимістично
G03 не оцінювалося виключено правилом пропусків (бракує доби)

Вісім із десяти — корисний доказ, але для двох супутників передбачено, що вони тримаються довше, ніж насправді, а це небезпечний напрямок, і протокол вимагає, щоб проходив кожен супутник. Тому орбітальний випадок лишається MODELLED. Супутники Block IIF несуть і рубідієві, і цезієві стандарти, а файли IGS не вказують, який активний, тож результат сформульовано для супутників, а не для одного типу годинника. Чому G25 і G30 відрізняються, не досліджувалося.

Прогін bench для деталі, репрезентативної для польоту (окреслено, не виконано)#

Публічний запис OCXO триває 5,5 години, походить з одного лабораторного приладу, а генератор ще встановлювався. Підтвердити випадок кварцу могли б довший виміряний вільний хід репрезентативного для польоту OCXO або CSAC відносно еталона:

  • лічильник часових інтервалів, що порівнює 1 PPS генератора з еталоном, керованим GNSS або мазером, щонайменше 10 діб з одним відліком на секунду, з журналом температури;
  • той самий протокол із відкладенням: підгонка на першій третині, передбачення порушень, вимірювання на решті, з тим самим порогом і контролем;
  • запис і його геш опубліковано поруч із тестом, щоб рядок можна було відтворити.

Це залежить від доступу до еталонного обладнання й не обіцяється.

За якою метрикою блукання слід приймати слот?#

Стандарти синхронізації пропонують три родини метрик. Для часового слота лише одна з них вимірює те, що його ламає.

  • MTIE (ITU-T G.810) — це найбільший розмах TIE в будь-якому вікні заданої довжини. Вона не бачить сталого зсуву: годинник, що відхилений на 1 µs, але цілком стабільний, має MTIE близьку до нуля й промахується повз кожен слот. Вона вимірює, наскільки похибка змінюється, а не де вона перебуває.
  • TDEV (ITU-T G.810) будується з других різниць усередненої фази. Вона усуває сталий зсув і сталу похибку частоти, а саме ці доданки домінують у вибігу. Вона характеризує тип шуму; це не метрика приймання для абсолютної синхронізації часу.
  • max|TE| (ITU-T G.8260; метрика бюджету в G.8271) — це найбільша абсолютна похибка часу відносно еталонної шкали часу. Її можна безпосередньо порівнювати із захисним інтервалом.

Висновок. Приймайте слот за max|TE| відносно еталонної шкали часу мережі, обчисленої як прогнозована огинаюча від останнього уточнення за заданого коефіцієнта охоплення. Саме це і є E(t): оскільки кожен доданок зростає з t, максимум за вибіг довжиною T дорівнює E(T). MTIE і TDEV лишаються корисними як діагностика: TDEV — щоб визначити, на який шумовий доданок впливати, MTIE(L) — щоб обмежити, наскільки рухається похибка протягом слота довжиною L.

Два уточнення, які випливають із вибору метрики:

  • Захисний інтервал стосується відносної похибки між двома вузлами. Якщо передавач і приймач вибігають незалежно, їхні стохастичні похибки додаються в квадратурі, а детерміновані — за модулем. Коли домінує стохастична частина, кожному вузлу можна дати guard/√2; коли домінує старіння чи температура, — guard/2.
  • Коефіцієнт охоплення — це вибір проєктування, а не властивість годинника. k = 3 обмежує приблизно 99,7 % гауссових похибок в один момент, а не за кожен слот протягом доби; план маршрутизації з багатьма слотами на добу потребує ризику на слот, який він може допустити.

Спуфінг приймача на орбіті#

Розділ spoofing обчислює orbital_timing::orbital_timing для того самого годинника:

  • Геометрія. Наземний спуфер досягає супутника LEO, лише поки супутник над його горизонтом: на висоті 550 km це щонайбільше близько дванадцяти хвилин на прохід над головою. Спуфер, що нарощує зсув зі швидкістю ρ, може тому змістити годинник щонайбільше на ρ разів цього вікна, або на стільки разів проміжок до наступної незалежної перевірки, якщо він коротший (ramp_limited_pull_ns).
  • Динаміка. Спільний зсув часу однаково зсуває всі псевдодальності й поглинається зміщенням годинника, а не положенням, тому перевірка положення орбітальним пропагатором не вважається перехресною перевіркою часу.
  • Перехресні перевірки. Супутник рідко має другий незалежний приймач часу. Він має вибіг власного годинника (монітор tpl), двостороннє передавання часу з наземною станцією під час контактів і порівняння часу через міжсупутникові лінії. Міжсупутникова лінія незалежна від одного наземного спуфера, лише якщо сусід у той самий момент поза зоною покриття цього спуфера, що звіт перевіряє за кількістю супутників у площині.
  • Умовна межа. Мінімум монітора плюс вибіг годинника за час виявлення CUSUM, що точно зводиться до tpl::timing_protection_level_ns, коли в годинника немає мерехтливого, білого фазового чи випадково-ходового доданка. Як і ця межа, вона чинна лише за умови виявлення.

Усе це MODELLED: сферична нерухома Земля, прохід над головою, один наземний спуфер із заданою максимальною швидкістю нарощування. Напрямок надходження сигналів на антену, спрямовану в зеніт, — це реальна перехресна перевірка, яка потребує діаграми спрямованості антени й не моделюється. DECEIVED-TIME.md пояснює, чому підписане керівне повідомлення цієї загрози не усуває.

Не моделюється#

Стрибки частоти, радіаційні ефекти та релятивістські зміщення частоти; теплову модель (зміна температури — це східчастий стрибок на момент уточнення); сам протокол синхронізації (уточнення скидає похибку до fix_sigma_ns).