2026年8月12日星期三

RT Linux + ARM GPIO PPS 实现纳秒级 GPS 授时(Chrony RMS Offset 40ns)

 在 Zynq-7000 ARM SoC 上,通过 GPS M8N 输出 PPS 信号,经 Zynq EMIO GPIO 接入 Linux PPS Framework,使用 Chrony 驯服系统时钟。

在 PREEMPT_RT 内核和 OpenWrt Snapshot 环境下,最终 RMS Offset 稳定在 40ns 左右。

Reference ID    : 47505300 (GPS)
Stratum         : 1
Ref time (UTC)  : Thu Jun 25 22:11:38 2026
System time     : 0.000000042 seconds slow of NTP time
Last offset     : -0.000000018 seconds
RMS offset      : 0.000000040 seconds
Frequency       : 12.248 ppm slow
Residual freq   : -0.000 ppm
Skew            : 0.001 ppm
Root delay      : 0.000000001 seconds
Root dispersion : 0.000017178 seconds
Update interval : 16.0 seconds
Leap status     : Normal
root@OpenWrt:~#

RMS offset = 0.000000040 seconds

换成纳秒:= 40 ns

也就是 0.040微秒


硬件设备:MYS-7Z020-V2-0E1D-766-C

Linux kernel :7.0.1  为了尽可能减少抖动,编译了 PREEMPT_RT 模式

RootFS: OpenWrt Snapshot

GPS模组 u-blox NEO-M8N 

PPS :GPS PPS -> Zynq EMIO -> GPIO IRQ -> Linux PPS

Chrony:
Stratum-1

将 PPS 中断处理线程调整为 SCHED_FIFO 高优先级,
以降低系统负载下的调度抖动。

没有评论:

发表评论

RT Linux + ARM GPIO PPS 实现纳秒级 GPS 授时(Chrony RMS Offset 40ns)

 在 Zynq-7000 ARM SoC 上,通过 GPS M8N 输出 PPS 信号,经 Zynq EMIO GPIO 接入 Linux PPS Framework,使用 Chrony 驯服系统时钟。 在 PREEMPT_RT 内核和 OpenWrt Snapshot 环境下,...