feat(gps): add timer-based assisted reacquisition

Remove the fixed pseudorange start offset, preserve per-PRN navigation assistance across RF loss and power cycles, and seed coherent navigation measurement phase on reacquisition. Add full LNAV almanac visibility scheduling, power-safe QSPI journaling, RF-domain reset isolation, and PPS Gray CDC hardening with Linux, sanitizer, RTL, and end-to-end coverage.
This commit is contained in:
onur
2026-08-04 02:52:35 +03:00
parent 347e1c671d
commit 30179df8e6
69 changed files with 6162 additions and 247 deletions
+10 -8
View File
@@ -30,11 +30,13 @@ davranışlarını taklit eder:
Model ve C ayni 8 ns integer mailbox yuvarlamasini kullanir.
- `gps_unwrap_corrected_abs_sample()` ile aynı signed modulo-32 unwrap.
- `gps_ip.c` ile aynı pseudorange datum'u:
- `gps_ip.c` ile aynı free-counter pseudorange datum'u:
```text
precise_ms_i = abs_i / 16367.981 - reference + 68.802
P_i = precise_ms_i * c / 1000 + satellite_clock_i * c
S_i = unwrap32(ABS_SAMPLE_i) - REM_CODE_PHASE_i / 1.023e6
P_i/c = (S_i - S_ref) / 16.367981e6
- (transmit_i - transmit_ref)
+ satellite_clock_i
```
- `NavEquations.c` ile aynı dört state:
@@ -132,13 +134,13 @@ Mevcut observation denkleminde WLS bias doğrudan PPS fazı değildir. İlk
ilişki:
```text
b/c = STARTOFFSET - signal_flight_time_ref
b/c = -signal_flight_time_ref + satellite_clock_ref
```
Bu nedenle doğru GPS referansı:
```text
GPS_TIME_AT_CAPTURE = transmit_epoch_TOW + STARTOFFSET - b/c
GPS_TIME_AT_CAPTURE = transmit_epoch_TOW - b/c
```
ile kurulur ve referans kanala ait `tracking_tick_125` ile eşlenir. Referans
@@ -176,7 +178,7 @@ teslim edilen subframe için:
```text
transmit_epoch_TOW = HOW_TOW + POSTPONE_TOW
GPS_TIME_AT_CAPTURE = transmit_epoch_TOW + STARTOFFSET - b/c
GPS_TIME_AT_CAPTURE = transmit_epoch_TOW - b/c
```
`POSTPONE_TOW` signal flight time veya receiver clock bias değildir; hardware
@@ -205,8 +207,8 @@ bu üç etkiyi ayrı gösterir.
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.
seçilir; aynı SVID mevcut kaldığı sürece onun uçuş süresi `-b/c` ile elde
edilir (referans satellite clock correction'i dahil).
4. Bu receive GPS zamanı aynı kanalın yakalanmış 125 MHz timestamp'ıyla
eşlenerek PPS accumulator coarse-align edilir.
5. Sonraki çözümler aynı eşleşmeden residual phase error üretip PI'yi besler.