GPS 卫星
GPS卫星 使用原子钟(铷原子钟,是一种计时装置,精度可以达到每2000万年才误差1秒,由接收板、铷振荡器、锁相电路、分频电路等部分组成。)
GPS 接收机
GPS接收机的时钟模块上的GPS接收机负责接收GPS天线传输的射频信号,然后进行变频解调等信号处理,向基站提供1pps信号,进行同步。
输出:
- 频率信号,1PPS 信号以及时间码信息。
- 外部频率输入和外部秒信号输入。
授时仪 与 同步时钟
GPS时钟主要分为两类,
- 一类是GPS授时仪,主要输出时标信息,包括1PPS及TOD信息;
- 一类是GPS同步时钟,后者输出利用卫星信号驯服OCXO或者铷钟得到的高稳定频率信息,以及本地恢复的更平稳的时标信号。
GPS PPS信号(pps :pulse per second)
ns级别
模块输出的高精度1PPS信号,精度优于50ns,占空比为50%,1PPS信号 上升沿为时间同步点,上升沿时间小于5ns。第一帧串口报文信息与1PPS信号同步精度约为36ms。如图所示:
1PPS信号提供精确的时钟同步信号,脉冲宽度为200-300ms,采用上升沿为准时点,上升时间△T不超过10ns。
NMEA时间数据信息包含了当前1PPS上升沿所 对应的时刻信息,在1PPS上升沿之后1ms开始传送,并在500ms内传完。
对于Ublox F9P模块,UART 输出 NEMA 数据,另外一个GPIO输出 1PPS 脉冲,有如下时序图:
NMEA信息
-
NEMA中包含有时间信息,一般是秒级别,也有部分带有毫秒
-
1PPS即每秒输出一个脉冲,图中以高电平触发为例(没画下降沿),接收及处理1PPS脉冲的时间也在ns级别
-
因为NEMA是通过串口发送和接收,而且一次NEMA数据量也有KB级别大小,处理时间远比1PPS时间长
-
通过NEMA中的秒级时间和1PPS脉冲相配合,即可实现高精度时间同步(ns级:依据1PPS的响应时间)
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的上升沿,因此应该注意秒脉冲和时间信息的对应关系。