fix(pps): align firmware TOW with current RTL

This commit is contained in:
2026-07-28 21:53:33 +03:00
parent 988f9686e7
commit a697284bff
18 changed files with 1002 additions and 960 deletions
+17 -10
View File
@@ -76,9 +76,9 @@ python3 -m unittest pps_end_to_end_validation/test_pps_end_to_end.py
```text
scenario bits correction reference error DUT - trusted PPS
current-rtl/180ms 9 180 ms -0.000032 ms +0.000032 ms
current-rtl/160ms 9 160 ms -20.000032 ms +20.000032 ms
current-bit/160ms 8 160 ms -0.000032 ms +0.000032 ms
current-rtl/180ms 9 180 ms -0.000032 ms +0.000032 ms
```
Kısa veya farklı PI koşusu:
@@ -167,10 +167,11 @@ bias_drift =
uydunun transmit subframe sınırı etiketidir. Full-subframe interrupt'ının
receiver'a ulaştığı an değildir.
Mevcut hardware, subframe doğrulama/parity akışında takip eden subframe'den
8 bit daha bekler. Navigation data 50 bit/s olduğu için bu sabit readout
gecikmesi `8 × 20 ms = 160 ms` olur ve yazılımda `POSTPONE_TOW=0.160` ile
temsil edilir. Bu yüzden ilk teslim edilen subframe için:
Mevcut hardware, subframe doğrulama/parity akışında eski shift register'i
okuduğu için takip eden subframe'in dokuzuncu bitinde teslim yapar. Navigation
data 50 bit/s olduğu için sabit readout gecikmesi `9 × 20 ms = 180 ms` olur ve
production yazılımda `POSTPONE_TOW=0.180` ile temsil edilir. Bu yüzden ilk
teslim edilen subframe için:
```text
transmit_epoch_TOW = HOW_TOW + POSTPONE_TOW
@@ -187,6 +188,10 @@ epoch-aligned transmit time'ı baremetal navigation katmanında tam bir kez
oluşturmalıdır. PPS APB periferiki kendisine verilen GPS reference time'a
`POSTPONE_TOW` değerini tekrar eklememelidir.
Tracking RTL ileride current-bit candidate window ile sekizinci bitte validate
edecek şekilde düzeltilirse aynı release'de firmware değeri 160 ms'ye geri
alınmalıdır; RTL ve firmware düzeltmeleri birbirinden bağımsız uygulanamaz.
İlk HOW'un hangi kanaldan geleceği sadece uydunun yakınlığına bağlı değildir.
Acquisition tamamlanma anı, bit lock ve bir sonraki tam subframe sınırı çoğu
zaman propagation delay farkından daha baskındır. Monte Carlo startup modeli
@@ -195,8 +200,9 @@ bu üç etkiyi ayrı gösterir.
Önerilen ownership:
1. Raw 125 MHz counter resetten itibaren free-running çalışır.
2. İlk geçerli HOW week/6-second mutlak zaman etiketini sağlar; ilk hardware
delivery epoch'u için 160 ms sabit readout düzeltmesi ayrıca eklenir.
2. İlk geçerli HOW week/6-second mutlak zaman etiketini sağlar; mevcut RTL'nin
ilk hardware delivery epoch'u için 180 ms sabit readout düzeltmesi ayrıca
eklenir.
3. İlk coherent WLS çözümünde minimum corrected-ABS kanalı datum olarak
seçilir; aynı SVID mevcut kaldığı sürece onun uçuş süresi
`STARTOFFSET - b/c` ile elde edilir.
@@ -325,9 +331,10 @@ yapar.
çözümde minimum corrected ABS kanalı seçiliyor ve aynı SVID coherent
snapshot'ta kaldığı sürece datum sabit tutuluyor. O kanalın TOW'u ve aynı
nav-solve olayındaki C125 capture'ı birlikte taşınıyor.
5. `POSTPONE_TOW=0.160`, hardware'ın mevcut subframe'i doğrulamak için takip
eden subframe'den 8 bit daha beklemesinden oluşan sabit readout gecikmesidir.
Uydu konum/saat epoch'u buna göre 160 ms ileri alınır. Bu değer signal
5. `POSTPONE_TOW=0.180`, hardware'ın mevcut subframe'i eski shift register
üzerinden doğrulayıp dokuzuncu takip eden bitte teslim etmesinden oluşan
sabit readout gecikmesidir. Uydu konum/saat epoch'u buna göre 180 ms ileri
alınır. Bu değer signal
flight time veya WLS receiver clock bias ile birleştirilmemelidir. Mevcut
`satpos()` zaten kullanım anında bir kez ekler; PPS peripheral tekrar eklemez.
6. 125 MHz timestamp `ABS_SAMPLE` ve `REM_CODE_PHASE` ile aynı hardware