概述
之前介绍过PPS TOD信号(飞灵码农:PPS TOD授时信号详解)。
这是笔者工作中经常用到的授时信号之一,而且经常需要对PPS信号进行测试,以检验其长期的准确性。有时候甚至要同时进行很多路的测试。所以,笔者想设计并制作一款PPS测试仪,提高测试效率。
方案要点
- 作为PPS测试仪,出于高精度和易实现的考虑,采用GNSS模块 + 驯服钟晶振作为参考时间源。(目前有现成的时间源)
- 使用内置MCU核的FPGA,作为处理单元。以驯服晶振的时钟,设计一个计数器。采集输入的PPS,捕获计数器时间戳,和参考时间源PPS做相位比对,支持一路测试。
- 测试仪不需要花哨,不需要机箱显示屏,直接使用PCB板,以串口输出测试结果就可以了。
- 参考时间源和处理单元,可以分两个PCB做。这样如果有多路测试的需要,可以采用1个参考时间源 + 多个处理单元的形式使用。
方案框图
方案实现
其实初衷是想做一个PPS TOD的测试仪,但是手上刚好有现成的FPGA模块,引出管脚不够用,又懒得重新画板。所以就减配,做个PPS测试仪。这个模块原本是PPS/TOD转IRIG-B码模块,直接把FPGA刷了做成我需要的PPS测试仪。
- 输入信号
- PPS/10MHz (10MHz是和PPS同步的)
- 被测PPS
- 输出信号
- 串口:输出测试结果
方案验证
驯服晶振PPS自测
PPS测试仪参考时间源为驯服钟晶振输出的PPS/10MHz,我们第一次测试来用驯服晶振输出的PPS作为被测PPS,做一次自测。自测结果跟预期相符,计数器时间戳都是整秒时间,脉冲宽度100ms,相位偏差0。
这个FPGA很便宜,速度等级很低,目前计数器倍频到50MHz,20ns粒度,已经是极致了。
GNSS PPS测试
第二个测试我们把驯服钟的GNSS PPS作为被测信号进行测试。这个测试结果其实就是驯服钟和GNSS PPS同步偏差。短期测试结果效果还不错,同步偏差基本在20ns,注意我们计数器粒度就是20ns。但是这个脉冲宽度看上去不是标准的100ms,大概差个40ns。
结束语
验证了这个PPS秒脉冲信号测试仪,应该可以搭建正式测试平台了。后期其实还可以做更多工作,比如自动化测试,数据处理和科学绘图。