目录

  1. 概述
  2. 系统架构
  3. 核心组件详解
  4. GPSDO实现原理
  5. 时钟同步机制
  6. 精度保证技术
  7. 硬件接口
  8. 配置与监控
  9. 性能指标
  10. 故障处理与冗余

概述

开源时钟定时卡是一个基于FPGA的高精度时间同步解决方案,实现了GPS驯服振荡器(GPSDO)功能。该系统能够提供纳秒级精度的时间基准,支持多种时间同步协议,广泛应用于电信、金融、科研等对时间精度要求极高的领域。

主要特性

  • 高精度时间同步: 纳秒级时间精度
  • GPS驯服振荡器: 基于GPS信号的频率和相位校正
  • 多时钟源支持: SMA 10MHz、MAC 10MHz、DCXO、外部时钟
  • 实时监控: 完整的状态监控和诊断功能
  • 故障自愈: 多级冗余和自动故障切换
  • 标准接口: PCIe接口,支持多种通信协议

系统架构

整体架构图

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
┌─────────────────────────────────────────────────────────────────┐
│                    时钟定时卡系统架构                              │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌──────────────┐    ┌─────────────────┐     │
│  │   GPS接收机  │────│  TOD Slave   │────│  时间调整模块    │     │
│  └─────────────┘    └──────────────┘    └─────────────────┘     │
│                                                                 │
│  ┌─────────────┐    ┌──────────────┐    ┌─────────────────┐     │
│  │  PPS信号    │────│  PPS Slave   │────│   PI伺服环路    │     │
│  └─────────────┘    └──────────────┘    └─────────────────┘     │
│                                                 │               │
│  ┌─────────────┐    ┌──────────────┐    ┌─────────────────┐     │
│  │  时钟源选择  │────│ Clock Detector│    │ Adjustable Clock│◄────┤
│  └─────────────┘    └──────────────┘    └─────────────────┘     │
│                                                 │               │
│  ┌─────────────┐    ┌──────────────┐    ┌─────────────────┐     │
│  │  信号生成    │────│Signal Generator│   │  频率计数器     │     │
│  └─────────────┘    └──────────────┘    └─────────────────┘     │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                AXI4 互连总线                             │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              │                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                PCIe接口                                  │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

核心处理流程

  1. 时钟源检测与选择: 自动检测可用时钟源,按优先级选择最佳时钟
  2. GPS时间获取: 通过UART接收GPS接收机的时间信息
  3. PPS信号处理: 高精度时间戳和相位检测
  4. 时间校正计算: PI控制算法计算偏移和漂移校正值
  5. 本地时钟调整: 平滑调整本地时钟频率和相位
  6. 状态监控: 实时监控同步状态和系统健康度

核心组件详解

1. 可调时钟 (Adjustable Clock)

可调时钟是整个系统的核心,提供高精度的时间基准。

主要功能

  • 时间格式: 秒+纳秒格式的时间计数器
  • 频率调整: 支持频率微调,实现长期稳定性
  • 相位调整: 支持相位校正,实现快速同步
  • 多源输入: 支持最多5个调整输入源
  • 平滑调整: 将大的调整分散到多个时钟周期,避免时间跳跃

工作原理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
-- 时钟调整逻辑伪代码
每个系统时钟周期:
  if 时间设置调整激活 then
    直接设置时钟时间
  elsif 正偏移调整 and 正漂移调整 then
    时钟 += 系统时钟周期 + 2ns
  elsif 偏移调整 and 漂移调整符号相反 then
    时钟 += 系统时钟周期  -- 调整相互抵消
  elsif 负偏移调整 and 负漂移调整 then
    时钟 += 系统时钟周期 - 2ns
  elsif 仅正调整 then
    时钟 += 系统时钟周期 + 1ns
  elsif 仅负调整 then
    时钟 += 系统时钟周期 - 1ns
  else
    时钟 += 系统时钟周期

质量指标

  • 同步状态: 连续4次偏移调整小于阈值时进入同步状态
  • 保持状态: 同步后超时未收到调整时进入保持状态

2. PPS从机 (PPS Slave)

PPS从机负责处理GPS的每秒脉冲信号,计算时钟偏移和漂移。

核心算法

1
2
3
4
5
偏移计算:
offset = PPS_timestamp - 最近的秒变化时间

漂移计算:
drift = (当前间隔 - 1秒) / 测量间隔

PI控制器

使用比例积分(PI)控制器实现平滑的时钟调整:

1
2
3
4
5
6
7
控制函数: u(t) = Kp × e(t) + Ki × ∫e(t)dt

其中:
- u(t): 控制变量(偏移/漂移调整)
- e(t): 误差信号
- Kp: 比例系数
- Ki: 积分系数

高精度时间戳

  • 高分辨率时钟: 使用系统时钟的整数倍频时钟
  • 延迟补偿:
    • 高分辨率延迟补偿
    • 输入延迟补偿
    • 电缆延迟补偿

3. TOD从机 (Time of Day Slave)

TOD从机处理GPS接收机的时间消息,提供绝对时间信息。

支持的协议

  • UBX协议: u-blox GPS接收机标准协议
  • TSIPv1协议: Trimble GPS接收机协议

消息处理

消息类型 提取信息 用途
UBX NAV TIMEUTC 年月日时分秒 计算TAI秒数
UBX NAV TIMELS UTC偏移和闰秒 时间转换
UBX NAV STATUS GPS定位状态 状态监控
UBX MON HW 天线状态 硬件监控
TSIP Timing Info 时间和UTC偏移 时间同步

时间转换流程

  1. UART接收: 解析串口数据流
  2. 消息验证: 校验和验证
  3. 时间提取: 提取时间信息
  4. TAI转换: 转换为TAI秒格式
  5. 时间调整: 在下一秒开始时应用调整

4. 时钟检测器 (Clock Detector)

自动检测和选择最佳时钟源。

时钟优先级

  1. SMA 10MHz 时钟 (最高优先级)
  2. MAC 10MHz 时钟
  3. DCXO1 10MHz 时钟
  4. 外部时钟 (最低优先级)

检测机制

  • 为每个时钟域创建"慢时钟"
  • 在系统时钟域检测慢时钟的翻转
  • 超时未翻转则认为时钟不可用

GPSDO实现原理

GPS驯服振荡器概念

GPSDO (GPS Disciplined Oscillator) 是一种利用GPS信号校正本地振荡器的技术,结合了GPS的长期稳定性和本地振荡器的短期稳定性。

实现架构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
GPS信号 ──┐
    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
    │ TOD Slave   │────│   时间比较   │────│  粗调整     │
    └─────────────┘    └─────────────┘    └─────────────┘
PPS信号 ──┐                                     ▼
          │                              ┌─────────────┐
          ▼                              │ Adjustable  │
    ┌─────────────┐    ┌─────────────┐   │   Clock     │
    │ PPS Slave   │────│ PI控制器    │───│             │
    └─────────────┘    └─────────────┘   └─────────────┘
本地振荡器 ────────────────────────────────────────┘

双环控制策略

外环 - TOD控制

  • 功能: 提供绝对时间基准
  • 响应: 慢响应,处理大的时间偏差
  • 调整方式: 时间跳跃调整

内环 - PPS控制

  • 功能: 提供精确的频率和相位控制
  • 响应: 快响应,处理小的偏移和漂移
  • 调整方式: 平滑的频率和相位调整

控制算法详解

偏移控制

1
2
偏移误差 = PPS时间戳 - 期望时间
偏移调整 = Kp_offset × 偏移误差 + Ki_offset × ∫偏移误差dt

漂移控制

1
2
漂移误差 = (实际周期 - 标准周期) / 测量间隔
漂移调整 = Kp_drift × 漂移误差 + Ki_drift × ∫漂移误差dt

参数优化

  • Kp (比例系数): 控制响应速度
  • Ki (积分系数): 消除稳态误差
  • 调整间隔: 平衡响应速度和稳定性

时钟同步机制

多级同步架构

第一级:时钟源选择

  • 自动检测可用时钟源
  • 按优先级选择最佳时钟
  • 故障时自动切换

第二级:粗同步

  • TOD Slave提供绝对时间
  • 处理大的时间偏差(>1秒)
  • 在秒边界进行时间跳跃

第三级:精同步

  • PPS Slave提供精确校正
  • 处理纳秒级偏差
  • 平滑的频率和相位调整

同步状态机

1
2
3
4
5
状态转换图:
初始化 ──► 获取时间 ──► 粗同步 ──► 精同步 ──► 保持同步
   ▲                                    │         │
   │                                    ▼         │
   └──────────── 失步检测 ◄──────── 监控状态 ◄─────┘

状态定义

  • 初始化: 系统启动,等待GPS信号
  • 获取时间: 接收GPS时间信息
  • 粗同步: 大偏差校正
  • 精同步: 精确调整过程
  • 保持同步: 稳定同步状态
  • 监控状态: 持续监控同步质量

同步质量评估

InSync标志

  • 连续4次偏移调整 < 阈值 → InSync = True
  • 发生时间跳跃或时钟禁用 → InSync = False

InHoldover标志

  • 已同步且超时未收到调整 → InHoldover = True
  • 失去同步或收到新调整 → InHoldover = False

精度保证技术

高分辨率时间戳

技术原理

使用高频时钟(系统时钟的整数倍)进行时间戳采集,减少量化误差。

1
2
时间戳精度 = 1 / (系统频率 × 倍频因子)
例如: 50MHz × 4 = 200MHz → 5ns精度

实现方法

  1. 移位寄存器: 高频时钟域标记事件
  2. 域同步: 同步到系统时钟域
  3. 精度计算: 计算高分辨率偏移

延迟补偿

补偿类型

  1. 高分辨率延迟: 时钟域切换延迟
  2. 输入延迟: 缓冲器等固定延迟
  3. 电缆延迟: 可配置的传输延迟

补偿公式

1
实际时间戳 = 原始时间戳 - 输入延迟 - 电缆延迟 + 高分辨率校正

抖动抑制

PI控制器优化

  • 比例项: 快速响应瞬时误差
  • 积分项: 消除长期偏差
  • 参数调优: 平衡响应速度和稳定性

平滑调整算法

将大的调整分散到多个时钟周期:

1
2
例如: 1000ns调整分散到1000个周期
每周期调整: 1ns

硬件接口

SMA连接器配置

连接器 默认功能 可选功能
SMA1 FPGA PPS输出 信号输入/输出
SMA2 GNSS PPS输出 信号输入/输出
SMA3 10MHz输入 信号输入/输出
SMA4 信号输入 信号输入/输出

通信接口

UART接口

  • GNSS1/GNSS2: GPS接收机通信
  • MAC: 网络时间协议
  • EXT: 外部设备通信

I2C接口

  • 时钟配置: 振荡器参数设置
  • 传感器读取: 温度、电压监控

PCIe接口

  • 数据传输: 高速数据交换
  • 中断处理: MSI中断机制
  • 配置访问: 寄存器读写

状态LED

LED 功能 状态指示
LED1 FPGA活动 50MHz时钟闪烁
LED2 PCIe活动 62.5MHz时钟闪烁
LED3 FPGA PPS 本地时钟PPS
LED4 MAC PPS MAC差分PPS

配置与监控

寄存器映射

核心寄存器地址

核心模块 基地址 功能
Adjustable Clock 0x0100_0000 时钟调整控制
PPS Slave 0x0104_0000 PPS同步控制
TOD Slave 0x0105_0000 时间获取控制
Clock Detector 0x0013_0000 时钟源选择
Signal Timestamper 0x0101_0000 信号时间戳

关键寄存器

Adjustable Clock控制寄存器

1
2
3
Bit[0]: Enable - 时钟使能
Bit[1]: TimeSet - 时间设置模式
Bit[7:4]: Source - 调整源选择

PPS Slave状态寄存器

1
2
3
Bit[0]: PPS Valid - PPS信号有效
Bit[1]: Period Error - 周期错误
Bit[2]: Width Error - 脉宽错误

默认配置

系统启动时的默认配置:

1
2
3
4
5
- Adjustable Clock: 使能,同步源1(TOD+PPS)
- PPS Generator: 使能,高电平输出
- PPS Slave: 使能,高电平输入
- TOD Slave: 使能,高电平UART
- SMA选择器: FPGA PPS和GNSS PPS输出

监控参数

时间精度监控

  • 偏移误差: 当前时间偏移量
  • 漂移误差: 频率漂移量
  • 同步状态: InSync/InHoldover标志

信号质量监控

  • GPS卫星数量: 可见/锁定卫星数
  • 信号强度: GPS信号质量
  • 天线状态: 天线连接状态

系统健康监控

  • 时钟源状态: 各时钟源可用性
  • 温度监控: 系统温度状态
  • 电源监控: 电压电流状态

性能指标

时间精度指标

参数 典型值 最大值
时间戳精度 5ns 10ns
同步精度 ±50ns ±100ns
频率稳定性 1×10⁻¹¹ 1×10⁻¹⁰
保持精度 ±1μs/天 ±5μs/天

系统性能指标

参数
同步时间 <300秒
重新同步时间 <60秒
最大支持频率 10MHz
工作温度范围 -40°C ~ +85°C

资源利用率

资源类型 使用量 可用量 利用率
LUTs 35,300 63,400 55.68%
触发器 29,881 126,800 23.57%
BRAM 22.5 135 22.90%
DSP 23 240 9.58%

故障处理与冗余

故障检测机制

时钟源故障

  • 检测方法: 时钟翻转监控
  • 响应: 自动切换到备用时钟源
  • 恢复: 主时钟恢复后自动切回

GPS信号故障

  • 检测方法: 消息超时检测
  • 响应: 进入保持模式
  • 恢复: GPS信号恢复后重新同步

同步质量下降

  • 检测方法: 偏移误差阈值监控
  • 响应: 调整PI参数或重新初始化
  • 恢复: 质量恢复后恢复正常模式

冗余设计

多时钟源冗余

1
2
优先级顺序:
SMA 10MHz → MAC 10MHz → DCXO → 外部时钟

多GPS接收机支持

  • 支持2个独立的GPS接收机
  • 自动选择信号质量更好的接收机
  • 故障时自动切换

双镜像设计

  • Golden镜像: 基本功能,故障恢复
  • Regular镜像: 完整功能,正常运行
  • 自动回退: Regular镜像故障时回退到Golden镜像

故障恢复流程

1
2
3
4
故障检测 ──► 故障分类 ──► 应急措施 ──► 故障恢复 ──► 正常运行
    │                                      ▲
    ▼                                      │
状态记录 ──► 告警上报 ──► 维护介入 ──────────┘

总结

开源时钟定时卡通过精心设计的FPGA固件实现了高精度的GPSDO功能。系统采用多级同步架构,结合GPS的长期稳定性和本地振荡器的短期稳定性,实现了纳秒级的时间精度。

技术优势

  1. 高精度: 纳秒级时间同步精度
  2. 高可靠: 多重冗余和故障自愈机制
  3. 高灵活: 支持多种时钟源和通信协议
  4. 高性能: 全硬件实现,低延迟响应
  5. 易维护: 完善的监控和诊断功能

应用场景

  • 电信网络: 基站时间同步
  • 金融交易: 高频交易时间戳
  • 科学研究: 精密测量和实验
  • 工业控制: 分布式控制系统同步
  • 数据中心: 服务器时间同步

该固件设计充分体现了现代FPGA技术在高精度时间同步领域的应用优势,为各种对时间精度要求极高的应用提供了可靠的解决方案。