首页 > 其他分享 >时间同步PPS+GPRMC

时间同步PPS+GPRMC

时间:2024-10-10 11:23:14浏览次数:8  
标签:同步 GPRMC 报文 PPS 时间 信号

介绍一下pps结合rmc报文的时间同步方案

 

  • 定义:PPS全称为每秒脉冲,即1脉冲/1秒。它是一个低功率的脉冲电平信号,通常用于提供精确的时钟同步信号。
  • 特征:PPS信号的脉冲宽度通常在20ms至200ms之间,也有说法为200ms至300ms,采用上升沿为准时点,上升时间非常短,一般在纳秒级别。PPS信号提供精确的时钟同步信号,确保时间同步的精确性。

二、RMC报文

  • 定义:RMC报文(以GPRMC为例)是一种包含UTC时间(精确到秒)以及经纬度定位数据的标准格式报文。它通常通过标准串口(如RS232)输出。
  • 内容:GPRMC报文包含年、月、日、时、分、秒等UTC时间信息,以及经度、纬度等定位数据。例如:“$GPRMC, 084048.00, A, 3030.69749, N, 11411.83508, E, 0.065, , 210722, , , D, V * 0F”。
  • 作用:GPRMC报文为接收设备提供了准确的时间信息和定位数据,是时间同步过程中的关键数据。

三、时间同步方案

  • 原理:

    1. 设备首先通过PPS信号接收到一个精确的秒脉冲。在接收到PPS信号后,设备将内部系统时间的毫秒及以下部分清零,并开始重新计算毫秒时间。
    2. 紧接着,设备通过串口接收到GPRMC报文。报文中包含了准确的UTC时间信息。
    3. 设备将接收到PPS信号到解析出GPRMC中UTC时间所用的时间(通常在毫秒级别)与UTC整秒时间相加,得到准确的系统时间。至此,一次时间同步过程完成。每秒都会进行这样的过程,以确保系统时间的准确性。
  • 优点:

    1. 高精度:PPS信号和GPRMC报文都提供了高精度的时间信息,确保时间同步的准确性。
    2. 稳定性好:PPS信号是一个稳定的秒脉冲信号,不易受到外界干扰;GPRMC报文也通过标准串口稳定输出。
    3. 可靠性高:该方案结合了PPS信号和GPRMC报文两种时间信息来源,提高了时间同步的可靠性。即使其中一个信息来源出现问题,另一个仍然可以作为备用。
  • 应用场景:该时间同步方案广泛应用于需要精确时间控制的领域。例如,在自动驾驶系统中,各个传感器和域控制器需要实现时间同步,以确保数据的准确性和一致性。PPS结合GPRMC报文的时间同步方案能够提供高精度、稳定可靠的时间同步服务,满足自动驾驶系统的需求。

综上所述,PPS结合RMC报文的时间同步方案是一种高精度、稳定可靠的时间同步方法。它通过结合PPS信号的精确秒脉冲和GPRMC报文的准确时间信息,实现了系统时间的高精度同步。

“在接收到PPS信号后,设备将内部系统时间的毫秒及以下部分清零,并开始重新计算毫秒时间 ”这句话怎么理解?pps触发之后用gettimeofday获取当前pps触发的时间不行吗?

信号,通常在每秒钟的开始时刻(UTC时间的整秒)产生。

  1. 清零毫秒及以下部分:当设备接收到PPS信号时,它会将其内部系统时间的毫秒、微秒(或更小的单位,取决于系统时间的分辨率)部分清零。这意味着,无论PPS信号到达时系统时间的毫秒部分是多少,它都会被重置为0。

  2. 重新计算毫秒时间:清零后,设备会开始从0毫秒重新计算时间。这通常是通过一个高精度的计数器来实现的,该计数器在PPS信号到达后的每个时钟周期内递增,以提供毫秒级(或更高精度)的时间信息。

使用gettimeofday获取PPS触发时间的可行性

gettimeofday是一个在Unix和类Unix系统中常用的函数,用于获取当前的时间(包括秒和微秒部分)。然而,直接使用gettimeofday来获取PPS触发时间可能并不是最准确的方法,原因如下:

  1. 系统调用延迟:gettimeofday是一个系统调用,它本身有一定的执行时间。当PPS信号到达时,如果立即调用gettimeofday,那么获取到的时间可能会稍微滞后于PPS信号的实际到达时间,因为系统调用需要一定的时间来执行。

  2. 中断处理延迟:PPS信号通常是通过中断来处理的。当中断发生时,系统需要一定的时间来保存当前上下文、执行中断处理程序并恢复上下文。这个过程中也可能引入一些延迟。

  3. 时间戳记录方式:为了更精确地记录PPS信号的到达时间,通常需要使用硬件时间戳技术。这意味着PPS信号到达时,硬件会直接记录一个精确的时间戳,而不是通过软件调用(如gettimeofday)来获取。

因此,虽然理论上可以使用gettimeofday来获取PPS触发的时间,但在实际应用中,为了获得更高的时间同步精度,通常会采用硬件时间戳技术或其他专门设计的时间同步算法。这些技术可以确保在PPS信号到达时能够更准确地记录时间戳,从而提供更可靠的时间同步服务。

那在linux中是不是意味着pps_info_t中的assert_timestamp.tv_nsec要清零?

  1. 时间同步设备或模块在接收到PPS信号时会自动记录一个精确的时间戳,并可能通过某种机制(如中断、DMA传输等)将该时间戳传递给用户空间。在这种情况下,您可能不需要手动清零tv_nsec,因为硬件已经为您处理了这些细节。

  2. 软件实现:如果您的系统或应用程序没有硬件时间戳的支持,而是依赖于软件计时器或系统调用来处理PPS信号,那么您可能需要自己实现时间戳的记录和更新逻辑。在这种情况下,您可能会选择在接收到PPS信号时清零tv_nsec,并更新tv_sec以反映新的时间基准。

  3. 精度和延迟:清零tv_nsec并更新tv_sec可能会引入一些精度上的损失,特别是如果PPS信号的到达时间不是恰好在整秒时刻。此外,由于系统调用和中断处理的延迟,您记录的时间戳可能会稍微滞后于PPS信号的实际到达时间。因此,在设计时间同步系统时,需要仔细考虑这些因素,并可能需要采用一些补偿措施来提高精度。

  4. API和文档:最重要的是,您应该查阅您正在使用的特定硬件或软件库的API文档,以了解如何正确处理PPS信号和时间戳。不同的硬件和软件库可能有不同的要求和实现方式。

总之,是否清零assert_timestamp.tv_nsec取决于您的具体需求和实现方式。如果您正在使用特定的硬件或软件库来处理PPS信号和时间同步,请务必查阅相关文档以获取准确的指导。

 

标签:同步,GPRMC,报文,PPS,时间,信号
From: https://www.cnblogs.com/hitzzq/p/18455954

相关文章

  • 基于LADRC自抗扰控制的VSG三相逆变器预同步并网控制策略(Simulink仿真实现)
     ......
  • 闲鱼商品搜索API:提升搜索结果的智能同步
    在互联网时代,二手交易平台日益受到广大消费者的青睐。作为国内领先的闲置交易平台,闲鱼为广大用户提供了丰富的商品资源。为了方便开发者更好地利用闲鱼平台进行应用开发,闲鱼推出了商品搜索Api接口。小编将为您详细介绍这一接口的功能及使用方法。闲鱼商品搜索Api接口,旨在帮助......
  • GUI图形界面 无代码开发 原理 - 属性标识链 | uiotos致敬amis、nodered、appsmith、co
    低代码饱受争议。也有例外:后端NodeRed,前端Amis。整体还是诟病为主:简单业务可以,复杂的是扯淡,不论前后端。这是一贯的认知。在GUI方面,UIOTOS发明的嵌套技术,为复杂前端的无代码开发,开辟了一条新的思路。往期文章:可视化拖拉拽?过时了!组态零代码,不能做复杂前端?嵌套原理一复杂交互......
  • 组态也能开发WEB前端 | uiotos致敬amis、nodered、appsmith、codewave、goview、datar
    WEB组态开发SCADA、HMI画面、大屏可视化,还比较常见。比如下面: UIOTOS组态示例那么常规WEB前端功能,组态能否一并做了呢?比如下面这种: UIOTOS前端示例答案是可以的!UIOTOS支持页面无限嵌套,能实现原型即应用。现在就以一个具体小示例介绍如何实现的。效果如下所示,初......
  • TS_0001:同步加载数据
    1,TS同步加载数据onMounted(async()=>{const{data}:any=awaitgetMapExtScript({page:1,page_size:50});if(data&&data.list){scriptData.value=data.list;pagination.value.total=data.total;allData=data.li......
  • 【训练记录】山东济南齐鲁工业大学ACM集训队第二次入队赛同步赛(场外VP)
    https://icpc.qlu.edu.cn/contest/66ed8b746002253a77c10d5e训练情况场外rk#2AK赛后反思A题太菜了,没看出来是01背包DP,往前缀和上面想了,写了个假做法。B题又不认真看题,忘记了\(=0\)的情况。C题博弈论乱猜D题未考虑完全导致一次WAA题分两组,两组和相同,观察数据范围我们......
  • 使用宝塔WebHook自动同步Gitlab提交的代码
    一、配置SSH创建SSH密钥打开终端。生成SSH密钥:使用以下命令生成一个新的SSH密钥对:ssh-keygen-trsa-b4096-C"[email protected]"-trsa 指定密钥类型为RSA。-b4096 指定密钥长度为4096位。-C"[email protected]" 用于添加注释(通常是......
  • cnblogs内容同步到51cto上的说明(声明)
    51CTO网站上的blog地址为:https://blog.51cto.com/u_15642578该地址是个人在博客园cnblogs上的同步账号(https://cnblogs.com/xyz),在cnblogs上发表的内容会不定期的在经过51CTO审核通过后同步到该51CTO地址下。之所以将cnblogs上的文章同步到51CTO网站上,其原因有两个:希望自己的......
  • 爬虫——同步与异步加载
     一、同步加载同步模式--阻塞模式(就是会阻止你浏览器的一个后续加载)停止了后续的解析因此停止了后续的文件加载(图像)比如hifini音乐网站二、异步加载异步加载--xhr(重点)比如腾讯新闻,腾讯招聘等三、同步加载和异步加载的区分1.网页数据返回的方式(数据返回给你客户端......
  • 前端无代码-表单页面的查看和编辑| uiotos致敬amis、appsmith、codewave、goview、dat
    上位机或管理系统,增删改查属于常规操作。其中以点击以查看和编辑,弹出表单页面,最为常见。 UIOTOS支持页面嵌套、属性继承(包括只读属性)。通过配置和连线,也能对表单页面区分查看和编辑,但有些繁琐。可以利用容器组件的表单只读属性,勾选后,连线传入表单数据,将只读显示。 文档地......