首页> 中国专利> 全球导航卫星系统时间同步方法、装置、设备和存储介质

全球导航卫星系统时间同步方法、装置、设备和存储介质

摘要

本申请涉及一种全球导航卫星系统时间同步方法、装置、计算机设备和存储介质。所述方法包括:接收美国国家海洋电子协会协议数据包,并从数据包中读取有效的协调世界时时间,将读取到的协调世界时时间存储入时间同步控制器;接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;时间同步控制器根据上一本地时间以及对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。采用本方法能够提升时间同步的精确度。

著录项

  • 公开/公告号CN113329341A

    专利类型发明专利

  • 公开/公告日2021-08-31

    原文格式PDF

  • 申请/专利权人 黑芝麻智能科技(上海)有限公司;

    申请/专利号CN202110642301.4

  • 发明设计人 张剑锋;王子祥;高青鹏;

    申请日2021-06-09

  • 分类号H04W4/024(20180101);H04W56/00(20090101);H04W84/06(20090101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人易皎鹤

  • 地址 201206 上海市浦东新区锦绣东路2777弄36号11楼

  • 入库时间 2023-06-19 12:24:27

说明书

技术领域

本申请涉及时间同步技术领域,特别是涉及一种全球导航卫星系统时间同步方法、装置、计算机设备和存储介质。

背景技术

随着自动驾驶技术的飞速发展,道路车辆和道路设施的智能化水平提升,对全球导航卫星系统(Global Navigation Satellite System,GNSS)高精度授时的需求也日益明显。例如,在自动驾驶场景中,道路参与车辆通常需要接收路侧设施或其他车辆发布的道路信息,这些信息通常具有高度的时效性,因此要求接收信息的车辆应与路侧设施的时间保持高度一致,误差例如应低于1ms,否则极易误导道路车辆,造成交通事故。车辆与车辆之间、车辆与路侧设备之间,无法共用一个时钟源,要低成本地、高精度地、及时地、可靠地同步大量设备的时间,全球导航卫星系统授时是时间同步领域的常用技术手段。全球导航卫星系统包括全球定位系统(Global Positioning System,GPS)、北斗卫星导航系统(BeiDouNavigation Satellite System,BDS)、格洛纳斯卫星导航系统(GLONASS)、伽利略卫星导航系统(Galileo satellite navigation system,GALILEO)等卫星导航系统,全球导航卫星系统接收机成本较低,输出的秒脉冲信号误差可以控制在100ns以内,可以满足自动驾驶的时间同步需求。

在一种已知的全球导航卫星系统时间同步方法中,在对处理器芯片进行时间同步时,处理器芯片在从全球导航卫星系统接收机接收到美国国家海洋电子协会(NationalMarine Electronics Association,NMEA)协议数据包后,可以读取美国国家海洋电子协会协议数据包,解析美国国家海洋电子协会协议数据包得到协调世界时(Universal TimeCoordinated,UTC)时间后将得到的协调世界时时间直接同步到处理器芯片的本地时间。然而,全球导航卫星系统接收机输出美国国家海洋电子协会协议数据包的时间并不是确定的,可能在数据包中记载时间100ms以上才输出,此外处理器芯片对美国国家海洋电子协会协议数据包的接收和解析存在延迟,当接收和解析操作在处理器芯片的操作系统上进行时,还受系统任务调度影响,导致获取到协调世界时的时间不确定,继而使得使用该协调世界时时间对本地时间的同步精度较低。

上述现有的全球导航卫星系统时间同步方法,其时间同步精度仍然存在着提升的空间。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提升时间同步精度的全球导航卫星系统时间同步方法、装置、计算机设备和存储介质。

在一方面,提供一种全球导航卫星系统时间同步方法,包括:

接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

在一个实施例中,接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器,包括:等待美国国家海洋电子协会协议数据包;每当接收到美国国家海洋电子协会协议数据包时,解析美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间;判断当前的定位状态是否为有效定位状态;当当前的定位状态不是有效定位状态时,则返回等待美国国家海洋电子协会协议数据包的步骤;当当前的定位状态是有效定位状态时,则确定当前的协调世界时时间为有效的协调世界时时间,并将当前有效的协调世界时时间传入时间同步控制器,然后返回等待美国国家海洋电子协会协议数据包的步骤;每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间。

在一个实施例中,每当收到美国国家海洋电子协会协议数据包时,解析美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间,包括:每当收到美国国家海洋电子协会协议数据包时,若收到美国国家海洋电子协会协议数据包时上一美国国家海洋电子协会协议数据包尚未完成解析,则停止对上一美国国家海洋电子协会协议数据包的解析,转而解析当前接收的美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间;若收到美国国家海洋电子协会协议数据包时上一美国国家海洋电子协会协议数据包已完成解析,则继续解析当前接收的美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间。

在一个实施例中,每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间,包括:每当时间同步控制器接收到协调世界时时间时,时间同步控制器判断当前时间同步控制器是否处于空闲状态或忙碌状态;忙碌状态指示时间同步控制器正在使用上一本地时间以及最新协调世界时时间执行对本地时钟的校正;当时间同步控制器处于空闲状态时,保存时间值最大的协调世界时时间作为最新协调世界时时间;当时间同步控制器处于忙碌状态时,则等待时间同步控制器切换到空闲状态后,保存时间值最大的协调世界时时间作为最新协调世界时时间。

在一个实施例中,每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间,包括:每当时间同步控制器接收到协调世界时时间时,若没有已存的协调世界时时间时,则存储接收到的协调世界时时间作为最新协调世界时时间;若有已存的协调世界时时间,则在接收到的协调世界时时间大于已存的协调世界时时间时,将接收到的协调世界时时间作为最新协调世界时时间覆盖已存的协调世界时时间,在接收到的协调世界时时间小于已存的协调世界时时间时,丢弃接收到的协调世界时时间,并保留已存的协调世界时时间作为最新协调世界时时间;全球导航卫星系统时间同步方法还包括:在时间同步控制器根据上一本地时间以及最新协调世界时时间确定本地时间修正量之后,删除最新协调世界时时间。

在一个实施例中,接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器包括:等待秒脉冲信号;在接收到秒脉冲信号时,捕获秒脉冲信号产生时刻本地时钟输出的本地时间,并触发秒脉冲中断响应,在秒脉冲中断响应中,将捕获到的本地时间传入时间同步控制器;每当时间同步控制器接收到本地时间时,将本地时间通过有限长单位冲激响应低通滤波器得到低通滤波后的本地时间,保存低通滤波后的本地时间。

在一个实施例中,时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间,包括:时间同步控制器等待接收本地时间;时间同步控制器在接收到当前本地时间时,读取当前本地时间之前是否已存储有上一本地时间;若否,则时间同步控制器返回等待接收本地时间的步骤;若是,则时间同步控制器读取是否已存储有最新协调世界时时间;若时间同步控制器尚未存储有最新协调世界时时间,则时间同步控制器删除上一本地时间,并返回等待接收本地时间;若时间同步控制器已存储有最新协调世界时时间,则读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;全球导航卫星系统时间同步方法还包括:在时间同步控制器根据上一本地时间以及最新协调世界时时间确定本地时间修正量之后,删除上一本地时间。

在一个实施例中,时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,包括:时间同步控制器将上一本地时间以及与上一本地时间对应的协调世界时时间通过比例积分控制器,以得到本地时间修正量。

在另一方面,提供一种全球导航卫星系统时间同步装置,包括:

美国国家海洋电子协会协议数据包接收模块,用于接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

秒脉冲信号接收模块,用于接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间匹配模块,用于使时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

本地时钟同步模块,用于时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

在另一方面,提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

在另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

上述全球导航卫星系统时间同步方法、装置、计算机设备和存储介质,时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间,由于在收到当前秒脉冲信号捕获的本地时间时才使用上一个秒脉冲信号捕获的本地时间来执行时间校正这种滞后校正方式,并根据秒脉冲信号输出时刻对应的协调世界时时间所在的美国国家海洋电子协会协议数据包一定在该秒脉冲信号产生之后输出的特性,将最新协调世界时时间作为与上一个秒脉冲信号捕获的本地时间对应的协调世界时时间,在同样可以修正时间偏差的情况下,可以使时间更新点固定,有效避免当美国国家海洋电子协会数据包解析失败、或者因系统任务调度没有在下一个秒脉冲来临前解析完成时,直接使用当前秒脉冲信号捕获的本地时间来对应协调世界时时间可能对应到错误的协调世界时时间的情况,从而能够将秒脉冲信号捕获的本地时间和与该秒脉冲信号对应的美国国家海洋电子协会协议数据包中的协调世界时时间准确地对应起来,从而有效提升时间同步的精准度。

附图说明

图1为一个实施例中全球导航卫星系统时间同步方法的应用环境图;

图2为一个实施例中系统级芯片的嵌入式Linux系统的软件系统架构图;

图3为一个实施例中全球导航卫星系统时间同步方法的流程示意图;

图4为一个实施例中时间同步控制器的处理的流程示意图;

图5为一个应用实例中全球导航卫星系统时间同步方法的流程示意图;

图6为一个实施例中全球导航卫星系统时间同步装置的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的全球导航卫星系统时间同步方法,可以应用于如图1所示的应用环境中。其中,处理器芯片110连接全球导航卫星系统接收机120,处理器芯片110从全球导航卫星系统接收机120分别接收美国国家海洋电子协会协议数据包和秒脉冲(Pulse perSecond,PPS)信号,并执行本申请任意实施例的全球导航卫星系统时间同步方法,以对该处理器芯片110进行时间同步。处理器芯片110例如可以是系统级芯片(System on Chip,SOC),该系统级芯片例如可以装载于车辆等设备中。该系统级芯片具备秒脉冲时间捕获功能,当系统级芯片在其秒脉冲引脚处检测到秒脉冲信号时,在秒脉冲信号的上升沿或下降沿时刻,该系统级芯片能够自动快速捕获当前本地时间并存储。

在本申请各个实施例中,全球导航卫星系统接收机120的输出具有两个基本特性:特性1:只有全球导航卫星系统有效定位时,才会输出秒脉冲信号,否则,仅会输出美国国家海洋电子协会协议数据包而不会输入秒脉冲信号;特性2:秒脉冲信号输出时刻对应的协调世界时(协调世界时)时间所在的美国国家海洋电子协会协议数据包一定在该秒脉冲信号产生之后输出。

在一个实施例中,以处理器芯片110为系统级芯片为例,本申请实施例提供的全球导航卫星系统时间同步方法可以适用于工作在上述系统级芯片110的嵌入式Linux系统中。示例的,该嵌入式Linux系统可以具有如图2中所示的软件系统架构。

其中,该嵌入式Linux系统可以包括Linux系统服务层和Linux内核层。在Linux系统服务层,包括全球导航卫星系统服务模块、全球导航卫星系统定位信息接口以及系统时间接口;在Linux内核层,包括通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)驱动模块、秒脉冲驱动模块、秒脉冲中断响应模块、时间同步控制器和系统日历时间模块等模块,这些模块分别具有如下作用:

·通用异步收发传输器驱动模块:用于接收全球导航卫星系统接收机输出的美国国家海洋电子协会协议数据包。全球导航卫星系统接收机可以通过串口输出NMEA-0183协议的数据包,例如GPGGA、GPZDA、GPRMC等格式的数据包。在本申请所述的方法中,要求将全球导航卫星系统接收机配置为可以输出带有年月日和时分秒信息的美国国家海洋电子协会协议数据包;

·秒脉冲驱动模块:用于配置系统级芯片的秒脉冲时间捕获功能,配置完成后,在秒脉冲信号的产生时刻(根据秒脉冲信号的情况,秒脉冲信号产生时刻可能是上升沿或下降沿)快速捕获当前本地时钟输出的本地时间并保存;

·秒脉冲中断响应模块:用于在捕获到秒脉冲信号时,进入秒脉冲中断响应,在秒脉冲中断响应中将秒脉冲驱动模块捕获到的本地时间传递给时间同步控制器;

·时间同步控制器:用于利用秒脉冲信号产生时刻捕获到的本地时间,和对接收到的NMEA-0183协议数据包解析得到的与该本地时间对应的协调世界时时间,修正本地时钟的本地时间。

·本地时间模块:用于提供Linux内核的日历时间。

·全球导航卫星系统服务模块:用于调用Linux内核提供的通用异步收发传输器驱动接口,接收全球导航卫星系统接收机输出的美国国家海洋电子协会协议数据包,并解析美国国家海洋电子协会协议数据包以得到数据包中的定位信息和协调世界时时间。解析和校验完成后,全球导航卫星系统服务模块对应用程序提供全球导航卫星系统定位信息接口,同时把协调世界时时间通过clock_settime接口传递给Linux内核的时间同步控制器。

将美国国家海洋电子协会协议数据包的解析工作放在全球导航卫星系统服务模块的优势在于,全球导航卫星系统服务模块不仅可以完成对美国国家海洋电子协会协议数据包的解析,还能更方便应用程序根据接收机信号和实际需要配置全球导航卫星系统接收机、传输RTCM数据等,更易于实现系统上下层解耦;此外,对美国国家海洋电子协会协议数据包解析的实时性的要求不高,全球导航卫星系统服务模块在用户态中接收系统任务调度管理,避免因解析工作占用资源影响其他任务执行。

可以理解,上述图2中所示的软件系统架构中对各个模块的划分仅为示例,在其他示例中,还可以对各个软件模块的划分进行灵活的增删或变更,以使本申请的方法在不同的软件系统架构中执行,只要该软件系统架构能够实现本申请实施例的全球导航卫星系统时间同步方法即可。

在一个实施例中,如图3所示,提供了一种全球导航卫星系统时间同步方法,以该方法应用于图1中的处理器芯片为例进行说明,包括以下步骤:

步骤S310,接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

在本步骤中,美国国家海洋电子协会协议数据包可以由处理器芯片从全球导航卫星系统接收机接收到。

美国国家海洋电子协会协议是全球导航卫星系统接收机输出卫星定位结果的国际海运事业无线电技术委员会(Radio Technical Commission for Maritime services,RTCM)标准协议,美国国家海洋电子协会协议数据包内包括了协调世界时时间、经纬度、卫星星历、速度、定位状态等信息,全球导航卫星系统接收机一般配置为以预定的时间间隔输出一次(例如每1s输出一次)美国国家海洋电子协会协议数据包。

有效的协调世界时时间是指满足预定要求的协调世界时时间,该预定要求例如可以包括:该协调世界时时间是全球导航卫星系统有效定位时输出的美国国家海洋电子协会协议数据包中包含的协调世界时时间,和/或,该协调世界时时间是在预定时间段内完成对美国国家海洋电子协会协议数据包的解析所得到的协调世界时时间。

步骤S320,接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

在本步骤中,美国国家海洋电子协会协议数据包是由处理器芯片从全球导航卫星系统接收机接收到的。

由于输出的美国国家海洋电子协会协议数据包中包含了定位解算后的结果,同时通信端口(如串口)的数据传输还需要花费时间,处理器芯片接收然后解析美国国家海洋电子协会协议数据包也需要花费时间,因此还需要一个在整秒时刻输出的高精度秒脉冲信号,用于通知处理器芯片当前为整秒时刻,然后处理器芯片再接收美国国家海洋电子协会数据,获取该整秒时刻对应的实际协调世界时时间。

秒脉冲信号是在整秒时刻输出的秒脉冲信号,当接收机有效定位后,接收机输出秒脉冲信号会严格对齐卫星的协调世界时时间的整秒,因此具有很高的授时精度(纳秒级精度)。

本地时钟是处理器芯片自身记录的时间,以处理器芯片为系统级芯片为例,则其本地时钟可以是该系统级芯片内部的通用处理器上运行的嵌入式系统的系统时钟,该本地时钟输出的本地时间是该系统时钟的系统时间。

步骤S330,时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器每接收到一个本地时间,均可以将其接收到的本地时间按照接收的先后顺序存储在该时间同步控制器中,并且,时间同步控制器每接收到一个协调世界时时间,均可以在其存储的协调世界时时间中确定一个最新协调世界时时间。时间同步控制器对最新协调世界时时间的确定可以以不同方式实现,例如其可以仅保存一个最新协调世界时时间,或者其虽然保存多个协调世界时时间,但是根据这些协调世界时时间的大小仍然可以确定一个时间值最大的协调世界时时间作为最新协调世界时时间。

步骤S340,时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

在本步骤中,时间同步控制器利用根据上一本地时间以及与上一本地时间对应的协调世界时时间确定的本地时间修正量,校正本地时钟的本地时间,以完成对本地时钟的时间同步。

上述全球导航卫星系统时间同步方法中,时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间,由于在收到当前秒脉冲信号捕获的本地时间时才使用上一个秒脉冲信号捕获的本地时间来执行时间校正这种滞后校正方式,并根据秒脉冲信号输出时刻对应的协调世界时时间所在的美国国家海洋电子协会协议数据包一定在该秒脉冲信号产生之后输出的特性,将最新协调世界时时间作为与上一个秒脉冲信号捕获的本地时间对应的协调世界时时间,可以使时间更新点固定,有效避免当美国国家海洋电子协会数据包解析失败、或者因系统任务调度没有在下一个秒脉冲来临前解析完成时,直接使用当前秒脉冲信号捕获的本地时间来对应协调世界时时间可能对应到错误的协调世界时时间的情况,从而能够将秒脉冲信号捕获的本地时间和与该秒脉冲信号对应的美国国家海洋电子协会协议数据包中的协调世界时时间准确地对应起来,从而有效提升时间同步的精准度。

在一个实施例中,步骤S310中接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器,包括:

步骤S311,等待美国国家海洋电子协会协议数据包;

步骤S312,每当接收到美国国家海洋电子协会协议数据包时,解析美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间;判断当前的定位状态是否为有效定位状态;

其中,有效定位状态例如可以包括单点三维(3D)定位、实时动态(Real-timekinematic,RTK)固定解、实时动态浮动解等状态。美国国家海洋电子协会协议数据中,会包含卫星定位状态的信息。比如美国国家海洋电子协会协议的GPRMC的第二个字段即表示定位状态,A为有效定位,V为无效定位。

步骤S313,当当前的定位状态不是有效定位状态时,则返回等待美国国家海洋电子协会协议数据包的步骤;

步骤S314,当当前的定位状态是有效定位状态时,则确定当前的协调世界时时间为有效的协调世界时时间,并将当前有效的协调世界时时间传入时间同步控制器,然后返回等待美国国家海洋电子协会协议数据包的步骤;

步骤S315,每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间。

在本实施例中,根据全球导航卫星系统接收机的输出所具有的只有全球导航卫星系统有效定位时,才会输出秒脉冲信号的特性,仅在全球导航卫星系统有效定位时,即美国国家海洋电子协会协议数据包中的定位状态为有效定位时,才将该美国国家海洋电子协会协议数据包中的协调世界时时间传输到时间同步控制器,避免时间同步控制器未能接收到秒脉冲信号对应的本地时间却接收到对应的协调世界时时间,导致时间同步控制器难以将协调世界时时间对应到正确的本地时间的情况,有效提升了时间同步控制器执行时间同步的准确性。

在对美国国家海洋电子协会协议数据包进行解析时,如果解析时间过长,则解析得到的协调世界时时间的实时性较差,将该协调世界时时间用于执行对本地时钟的校对将降低时间同步的精准度。因此,可以考虑在对美国国家海洋电子协会协议数据包进行解析所花费的时间超出预定时间阈值,例如超出全球导航卫星系统输出的时间间隔时(即下一个美国国家海洋电子协会协议数据包已经来临但是尚未完成对当前美国国家海洋电子协会协议数据包的解析的情况),不使用该解析超时的美国国家海洋电子协会协议数据包的协调世界时时间来校正本地时间。

在上述步骤S315中,在时间同步控制器中保存时间值最大的协调世界时时间作为最新协调世界时时间。如此,即使超时的美国国家海洋电子协会协议数据包中的协调世界时时间被解析并被传输到时间同步控制器,该协调世界时时间也会被后续到达的美国国家海洋电子协会协议数据包的下一协调世界时时间取代作为最新协调世界时时间,以避免解析超时的协调世界时时间被用作最新协调世界时时间。

进一步地,为了确保不使用解析超时的美国国家海洋电子协会协议数据包的协调世界时时间来校正本地时间,还可以在对当前的美国国家海洋电子协会协议数据包的解析超时时,停止对该美国国家海洋电子协会协议数据包的解析,以避免将当前解析超时的数据包的协调世界时时间传输到时间同步控制器。在一个实施例中,步骤S312中每当收到美国国家海洋电子协会协议数据包时,解析美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间,包括:

步骤S3121,每当收到美国国家海洋电子协会协议数据包时,若收到美国国家海洋电子协会协议数据包时上一美国国家海洋电子协会协议数据包尚未完成解析,则停止对上一美国国家海洋电子协会协议数据包的解析,转而解析当前接收的美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间;

步骤S3122,若收到美国国家海洋电子协会协议数据包时上一美国国家海洋电子协会协议数据包已完成解析,则继续解析当前接收的美国国家海洋电子协会协议数据包以得到当前的定位状态和当前的协调世界时时间。

本实施例中,如果尚未完成对当前美国国家海洋电子协会协议数据包的解析的情况下,下一个美国国家海洋电子协会协议数据包已经来临,则放弃对当前数据包的解析,转而解析下一个美国国家海洋电子协会协议数据包,从而避免将当前解析超时的数据包的协调世界时时间传输到时间同步控制器中。

在一个实施例中,步骤S315中每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间,包括:

步骤S3151,每当时间同步控制器接收到协调世界时时间时,时间同步控制器判断当前时间同步控制器是否处于空闲状态或忙碌状态;

其中,忙碌状态指示时间同步控制器正在使用上一本地时间以及最新协调世界时时间执行对本地时钟的校正;空闲状态则指示时间同步控制器未处于正在使用上一本地时间以及最新协调世界时时间执行对本地时钟的校正的状态中;

每当时间同步控制器进入步骤S330和S340时,时间同步控制器可以将自身状态标记为处于忙碌状态,而每当时间同步控制器完成步骤S330和S340之后,则可以将自身状态标记回处于空闲状态。

步骤S3152,当时间同步控制器处于空闲状态时,保存时间值最大的协调世界时时间作为最新协调世界时时间;

步骤S3153,当时间同步控制器处于忙碌状态时,则等待时间同步控制器切换到空闲状态后,保存时间值最大的协调世界时时间作为最新协调世界时时间。

在本实施例中,当时间同步控制器接收到协调世界时时间时,时间同步控制器当前可能正在使用上一帧的协调世界时时间做时间同步,为了避免新的协调世界时时间覆盖正在做运算的协调世界时时间而导致可能的运算错误,时间同步控制器等到其自身处于空闲状态才保存和更新最新协调世界时时间在这里,鉴于上文所述的全球导航卫星系统接收机特性2,若时间同步控制器为Busy状态,则必然此时使用的是上一次秒脉冲时刻对应的协调世界时时间。

在一个实施例中,步骤S315中每当时间同步控制器接收到协调世界时时间时,保存时间值最大的协调世界时时间作为最新协调世界时时间,包括:

步骤S3154,每当时间同步控制器接收到协调世界时时间时,若没有已存的协调世界时时间时,则存储接收到的协调世界时时间作为最新协调世界时时间;

步骤S3155,若有已存的协调世界时时间,则在接收到的协调世界时时间大于已存的协调世界时时间时,将接收到的协调世界时时间作为最新协调世界时时间覆盖已存的协调世界时时间,在接收到的协调世界时时间小于已存的协调世界时时间时,丢弃接收到的协调世界时时间,并保留已存的协调世界时时间作为最新协调世界时时间;

全球导航卫星系统时间同步方法还包括:

步骤S350,在时间同步控制器根据上一本地时间以及最新协调世界时时间确定本地时间修正量之后,删除最新协调世界时时间。

在本实施例中,时间同步控制器中只保存时间值最大的一个最新协调世界时时间,当有新的协调世界时时间来临时,时间值较大的协调世界时时间将覆盖时间值较小的协调世界时时间,该最新协调世界时时间使用后即被删除,避免保存多余的协调世界时时间所造成的资源浪费和数据干扰。

可以理解,上述两个实施例可以组合执行,即在步骤S315中,时间同步控制器可以等待到其处于空闲状态时,才保存时间值最大的协调世界时时间作为最新协调世界时时间,并且只保存时间值最大的一个最新协调世界时时间,该最新协调世界时时间使用后即被删除。

在一个实施例中,步骤S320中接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器包括:

步骤S321,等待秒脉冲信号;

步骤S322,在接收到秒脉冲信号时,捕获秒脉冲信号产生时刻本地时钟输出的本地时间,并触发秒脉冲中断响应,在秒脉冲中断响应中,将捕获到的本地时间传入时间同步控制器;

步骤S323,每当时间同步控制器接收到本地时间时,将本地时间通过有限长单位冲激响应(Finite Impulse Response,FIR)低通滤波器得到低通滤波后的本地时间,保存低通滤波后的本地时间。

在本实施例中,使用有限长单位冲激响应滤波器能够平滑秒脉冲信号的噪声和系统时间捕获的噪声,并保持相位线性。

在一个实施例中,步骤S330中时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间,包括:

步骤S323,时间同步控制器等待接收本地时间;

步骤S323,时间同步控制器在接收到当前本地时间时,读取当前本地时间之前是否已存储有上一本地时间;

若当前本地时间之前未存储有上一本地时间,则执行步骤S323,时间同步控制器返回等待接收本地时间的步骤;

当前本地时间之前已存储有上一本地时间,则执行步骤S323,时间同步控制器读取是否已存储有最新协调世界时时间;

若时间同步控制器尚未存储有最新协调世界时时间,则执行步骤S323,时间同步控制器删除上一本地时间,并返回等待接收本地时间;

若时间同步控制器已存储有最新协调世界时时间,则执行步骤S323,读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

全球导航卫星系统时间同步方法还包括:

步骤S360,在时间同步控制器根据上一本地时间以及最新协调世界时时间确定本地时间修正量之后,删除上一本地时间。

在本申请前述实施例中,考虑了在对美国国家海洋电子协会协议数据包进行解析所花费的时间超出全球导航卫星系统输出的时间间隔时,不使用该解析超时的美国国家海洋电子协会协议数据包的协调世界时时间来校正本地时间。然而,该解析超时的美国国家海洋电子协会协议数据包对应的秒脉冲信号仍然能被接收到并能捕获到该秒脉冲信号产生时的本地时间。为了避免将超时的美国国家海洋电子协会协议数据包对应的秒脉冲信号捕获到的本地时间错误地对应到其他协调世界时时间,在本实施例中,如果在步骤S323中确定时间同步控制器尚未存储有最新协调世界时时间,则说明上一次秒脉冲产生后,可能因为解析失败或解析延时而没有及时收到系统解析的协调世界时时间,则在步骤S323中时间同步控制器删除上一本地时间,并返回等待接收本地时间。从而有效避免了将将超时的美国国家海洋电子协会协议数据包对应的秒脉冲信号捕获到的该上一本地时间使用到时间同步中,以进一步提升时间同步的准确性。

在一个实施例中,步骤S350中时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,包括:时间同步控制器将上一本地时间以及与上一本地时间对应的协调世界时时间通过比例积分(PI)控制器,以得到本地时间修正量。

在本实施例中,通过将上一本地时间以及与上一本地时间对应的协调世界时时间通过比例积分控制器以得到本地时间修正量,利用该本地时间修正量来修正本地时间,避免直接使用协调世界时时间来修正本地时间所可能导致的时间跳变,有效提升时间校正的准确性和平滑性。

在一个实施例中,时间同步控制器将上一本地时间以及与上一本地时间对应的协调世界时时间通过比例积分控制器,以得到本地时间修正量,包括:时间同步控制器将上一本地时间以及与上一本地时间对应的协调世界时时间通过比例积分控制器,以将上一本地时间对应的协调世界时时间减去上一本地时间得到时间差值,将该时间差值分别通过比例环节和积分环节,然后将比例环节的输出值与积分环节得到的输出值相加,得到本地时间修正量。

其中,比例积分控制器包括比例环节(P)和积分环节(I),比例环节用于调整让输入对象快速响应,积分环节用于调整让输入对象达到理想结果的程度,时间同步控制器执行的处理可以参见图4所示。

为了使本申请上述各个实施例的全球导航卫星系统时间同步方法的技术方案更加清楚和易于理解,下面列举一个具体的应用实例,在本应用实例中,结合了上述各个实施例的全球导航卫星系统时间同步方法步骤。以该方法应用于如图2中所示的嵌入式Linux系统中为例,相应地,本地时钟为嵌入式Linux系统的系统时钟,本地时间为嵌入式Linux系统的系统时间,本应用实例中的全球导航卫星系统时间同步方法的处理流程可以参见图5所示。

本应用实例中的全球导航卫星系统时间同步方法可以分为美国国家海洋电子协会响应流程和秒脉冲响应流程两部分分别在两个线程上并行执行。

在线程I中,美国国家海洋电子协会响应流程包括如下步骤:

步骤S501,Linux操作系统上电启动全球导航卫星系统服务模块,或用户的应用软件来启动全球导航卫星系统服务模块,全球导航卫星系统服务模块配置用于读取数据的端口的参数,并配置全球导航卫星系统接收机输出美国国家海洋电子协会协议数据包的参数,以使其输出的美国国家海洋电子协会协议数据包包含协调世界时时间信息,全球导航卫星系统接收机也可以配置为输出多个美国国家海洋电子协会协议数据包的组合;

步骤S502,全球导航卫星系统服务模块等待美国国家海洋电子协会协议数据包;

步骤S503,全球导航卫星系统服务模块接收到美国国家海洋电子协会协议数据包后,根据NMEA-0183协议解析美国国家海洋电子协会协议数据包以得到定位状态和当前第i个时刻的协调世界时时间T

步骤S504,全球导航卫星系统服务模块判断当前定位状态是否为有效定位状态,若不是,则返回S502,继续等待美国国家海洋电子协会协议数据包;若是,则进入步骤S505;

步骤S505,全球导航卫星系统服务模块调用clock_settime系统调用函数,以向时间同步控制器传入CLOCK_REALTIME和协调世界时时间T

步骤S506,时间同步控制器等待至其自身处于空闲状态;

具体地,时间同步控制器判断当前时间同步控制器是否处于空闲状态或忙碌状态;如果处于空闲状态,则直接进入步骤S507,如果处于忙碌状态,则等待到其自身处于空闲状态后再进入步骤S507。

在这里,鉴于上文所述的全球导航卫星系统接收机特性2,若时间同步控制器处于忙碌状态,则必然此时使用的是上一次秒脉冲时刻对应的协调世界时时间T

步骤S507,时间同步控制器更新保存的最新协调世界时时间;

时间同步控制器等到其自身处于空闲(Free)状态时,才利用协调世界时时间T

在线程II中,秒脉冲响应流程包括如下步骤:

步骤S511,全球导航卫星系统服务模块配置全球导航卫星系统接收机的秒脉冲输出参数,包括配置使能系统级芯片的秒脉冲自动捕获系统时间、秒脉冲中断响应、秒脉冲响应模式(上升沿或下降沿);

步骤S512,秒脉冲驱动模块等待秒脉冲信号;

步骤S513,秒脉冲驱动模块在接收到秒脉冲信号时,捕获秒脉冲信号产生时刻系统时钟输出的系统时间T

步骤S514,时间同步控制器将接收到的系统时间T

步骤S515,时间同步控制器依照接收时间顺序将低通滤波后的系统时间T

步骤S516,时间同步控制器判断在系统时间序列中,当前接收的系统时间T

步骤S517,时间同步控制器将其自身状态从空闲状态转为忙碌(Busy)状态,时间同步控制器检查当前是否保存有最新协调世界时时间。鉴于全球导航卫星系统接收机的特性1和特性2,此时查看的最新协调世界时时间T

步骤S518,时间同步控制器将上一系统时间T

步骤S519,时间同步控制器根据系统时间修正量调整系统时钟的系统时间,以完成对系统时钟的时间同步。完成时间同步后,时间同步控制器删除保存的协调世界时时间T

应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种全球导航卫星系统时间同步装置600,包括:

美国国家海洋电子协会协议数据包接收模块610,用于接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

秒脉冲信号接收模块620,用于接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;T

时间匹配模块630,用于使时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

本地时钟同步模块640,用于时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

关于全球导航卫星系统时间同步装置600的具体限定可以参见上文中对于全球导航卫星系统时间同步方法的限定,在此不再赘述。上述全球导航卫星系统时间同步装置600中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

其中,该计算机设备例如可以是系统级芯片。

在其他实施例中,处理器执行计算机程序时还实现如上任意实施例的全球导航卫星系统时间同步方法,并具有相应的有益效果。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收美国国家海洋电子协会协议数据包,并从美国国家海洋电子协会协议数据包中读取有效的协调世界时时间,将读取到的有效的协调世界时时间存储入时间同步控制器;

接收秒脉冲信号,并捕获在秒脉冲信号产生时刻本地时钟输出的本地时间,将本地时间存储入时间同步控制器;

时间同步控制器在接收到当前本地时间时,读取当前本地时间之前已存储的上一本地时间,并读取已存储的最新协调世界时时间作为与上一本地时间对应的协调世界时时间;

时间同步控制器根据上一本地时间以及与上一本地时间对应的协调世界时时间确定本地时间修正量,并根据本地时间修正量校正本地时钟。

在其他实施例中,计算机程序被处理器执行时还实现如上任意实施例的全球导航卫星系统时间同步方法,并具有相应的有益效果。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号