1PPS+TOD高精度时间同步
1PPS+TOD高精度时间同步
1、系统架构介绍
常见的时间同步接口规范有1588V2时间同步、1PPS+TOD时间同步这两种方式,而在实际的项目使用中采用的是时间同步设备与承载设备直接使用1588V2时间同步接口协议,而承载设备和应用设备之间采用1PPS+TOD时间同步接口协议。系统使用的架构如下:
与北斗系统进行时间同步采用的是:武汉星旗科技的XQ-750时间同步设备。这个设备硬件时间戳分辨率小于10ns,背靠背授时精度可达100ns的级别。时间同步设备通过北斗卫星得到准确时间,然后通过1588V2协议把时间信息发送到承载设备。
2、常用的TOD协议
常规用户在获得时间信息时一般是从承载设备通过1PPS+TOD协议来得到准确时间信息。
TOD 信息波特率默认为9600,无奇偶校验,1 个起始位(用低电平表示),1 个停止位(用高电平表示),空闲帧为高电平,8 个数据位,应在1PPS 上升沿1ms
后开始传送TOD 信息,并在500ms 内传完,此TOD 消息标示当前1PPS 触发上升沿时间。TOD 协议报文发送频率为每秒1 次。对于1PPS 秒脉冲,采用上升沿作为准时沿,上升时间应小于50ns,脉宽应为20ms~200ms.而在实际应用时通过改变输出PPS秒脉冲的上升沿时间来提高时间同步精度。TOD协议报文发送频率为每秒1次。
1、 协议格式
NMEA-0183协议采用ASCII码来传递信息,我们称之为帧。
帧格式如下:$aaccc,ddd,ddd,…,ddd * hh
\x0d\x0a
Ø “$”——帧命令起始位
Ø aa(识别符号)ccc(语句名)——地址域
Ø ddd…ddd——数据
Ø “*”——校验和前缀
Ø hh——校验和(check sum),$与*之间所有字符ASCII码的校验和
(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符。)
Ø CR LF 回车和换行
通用TOD报文一般支持: g p r m c 、 gprmc、 gprmc、gpzda的输入输出,格式如下:
3.1$GPRMC语句
3.1.1帧格式
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13>
-
UTC(Coordinated Universal Time)时间,hhmmss.ms(时分秒.毫秒)格式
-
定位状态,A=有效定位,V=无效定位
-
保留
-
保留
-
保留
-
保留
-
保留
-
保留
-
保留
-
UTC日期,ddmmyy(日月年)格式
-
保留
-
保留
-
校验和
3.1.2示例
报文:$GPRMC,083550.00,A, 200919,A*57
1) 083550.00 含义:当前UTC时间为8:35:50.00
2) A 含义:当前状态有效
10)200919 含义:20日9月19年
3.2$GPZDA语句
3.2.1帧格式
$GPZDA,<1>,<2>,<3>,<4>,<5>,<6>*<7>
-
UTC(Coordinated Universal Time)时间,hhmmss.ms(时分秒.毫秒)格式
-
UTC日期,dd (日)
-
UTC日期,mm(月)
-
UTC日期,yy (年)
-
保留
-
保留
-
校验和
3.2.2示例
报文:$GPZDA,083550.00,20,09,19,00,00*57
1) 083550.00 含义:当前UTC时间为8:35:50.00
2) 20 含义:当前UTC日期为20日
3) 09 含义:当前UTC日期为9月
4) 19 含义:当前UTC日期为19年
然而在实际的应用中由于TOD信息结束滞后于PPS的上升沿,因此应该注意秒脉冲和时间信息的对应关系。