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:
@@ -112,6 +112,12 @@ make FPGA_BOARD=genesys2 APP=gps_system \
|
||||
kullanir; ikinci build birincinin ciktisinin uzerine yazar. Iki profili
|
||||
saklamak gerekiyorsa her build'den sonra dosyayi profil adiyla kopyalayin.
|
||||
|
||||
Cold scan, sky-guided search, independent unknown-orbit discovery, hot
|
||||
reacquisition, ephemeris cache ve mevcut almanak siniri dahil acquisition
|
||||
algoritmasinin tam aciklamasi
|
||||
[`soc/software/gps_system/README.md`](soc/software/gps_system/README.md#acquisition-engine-algoritmasi)
|
||||
altindadir.
|
||||
|
||||
`fpga-mcs` mevcut `.bit` dosyasini kullanip bootloader ve uygulamayi yeniden
|
||||
derler. Yalniz software profili veya baud degisikligi icin sentez gerekmez.
|
||||
Tracking/PPS RTL veya Chisel degistiyse once:
|
||||
@@ -171,12 +177,24 @@ birimindeki ortak etkisidir. Ornegin `0.1 ppm` yaklasik `29.98 m/s` eder;
|
||||
Doppler WLS bu ortak terimi uydu yonune gore degisen gercek `vx/vy/vz`
|
||||
hareketinden ayirir.
|
||||
|
||||
Bu projede onemli bir datum farki vardir: position WLS'e verilen capture
|
||||
zamanlarindan ortak receiver zamani cikarilir ve `STARTOFFSET` eklenir. Bu
|
||||
nedenle `solution.clock_bias_m`, saf `c*delta_t_r` degil, yaklasik
|
||||
`c*STARTOFFSET - reference_range` olan referans-uyduya bagli goreli
|
||||
datumdur. Doppler WLS'nin dorduncu bilinmeyeni yine uydulara ortak receiver
|
||||
clock/frequency drift'tir; fakat iki fit arasinda
|
||||
Bu projede position WLS gozlemleri, ortak RF sample counter ve ayni anda
|
||||
yakalanan fractional code-NCO residue ile decode edilmis satellite transmit
|
||||
time'in sabit bir referans kanala gore farkindan uretilir:
|
||||
|
||||
```text
|
||||
S_i = unwrap32(ABS_SAMPLE_i) - REM_CODE_PHASE_i / 1.023e6
|
||||
P_i/c = (S_i - S_ref)/16.367981e6 - (T_tx_i - T_tx_ref)
|
||||
```
|
||||
|
||||
16.367981 MHz integer counter tek basina 61.095 ns/18.31 m adimlidir;
|
||||
fractional NCO residue bu sample quantization'ini giderir. 64-bit 125 MHz
|
||||
counter position range'i yerine epoch assembly, GPS-time/PPS ankraji ve
|
||||
holdover icin kullanilir. Bu nedenle startup'a bagli sabit bir flight-time
|
||||
offset'i yoktur.
|
||||
`solution.clock_bias_m`, saf `c*delta_t_r` degil, yaklasik
|
||||
`-reference_range + c*reference_satellite_clock_correction` olan
|
||||
referans-uyduya bagli goreli datumdur. Doppler WLS'nin dorduncu bilinmeyeni
|
||||
yine uydulara ortak receiver clock/frequency drift'tir; fakat iki fit arasinda
|
||||
`clock_bias_m(t+dt)=clock_bias_m(t)+clock_drift_mps*dt` kisiti kurulmaz.
|
||||
Fit'ler ayri measurement/normal-equation kullanir. Doppler WLS, LOS
|
||||
vektorleri icin position WLS'nin guncel receiver konumuna baglidir.
|
||||
|
||||
Reference in New Issue
Block a user