当前位置: 首页 > news >正文

Jetson-AGX-Xavier上 时间同步方案GPS+PPS+NTP+PTP

Jetson-AGX-Xavier上 时间同步方案GPS+PPS+NTP+PTP

  • GPS+PPS通过串口、gpio接入Jetson-AGX-Xavier,给Jetson-AGX-Xavier提供时间

  • Jetson-AGX-Xavier通过ptp给激光雷达等其它局域网设备提供时间

GPS+PPS 时间同步

  1. 安装pps-tools工具
    sudo apt-get update
    sudo apt-get install -y pps-tools
    
  2. 检测pps信号是否是秒脉冲
    sudo ppstest /dev/pps0
    #出现每间隔1秒种打印如下内容,即pps信号秒脉冲成功收到
    source 0 - assert xxxxx, sequence: xxx - clear xxxxx, sequence: 0
    
  3. 串口GPRMC数据检测
    #设置串口波特率115200
    stty -F /dev/ttyTHS0 ispeed 115200 ospeed 115200 cs8
    #使用cat打印串口数据
    cat /dev/ttyTHS0
    #显示有$GPRMC数据并1s接收一次,即串口成功接收授时数据。可进行时间同步
    
  4. 编译安装ntp源码

    将ntp-4.2.8p15源码拷贝到xavier上,进入到ntp源码目录下,执行以下命令进行编译

    ./configure
    make
    sudo make install
    
  5. 配置ntpd.conf
    #在xavier系统下的/etc目录下添加ntpd.conf  里面内容如下
    # OpenBSD: ntpd.conf,v 1.7 2004/07/20 17:38:35 henning Exp $
    # sample ntpd configuration file, see ntpd.conf(5)tinker panic 0# Addresses to listen on (ntpd does not listen by default)
    #listen on *
    #listen on 127.0.0.1
    #listen on ::1# sync to a single server
    #server ntp.example.org# use a random selection of 8 public stratum 2 servers
    # see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers
    #servers pool.ntp.orgdriftfile /var/lib/ntp/driftdisable monitor# NMEA refclock driver directly from serial porta,mode 80 = 460800bps
    # mode 0 = 9600
    # mode 16 = 19200
    # mode 32 = 57600
    # mode 48 = 115200
    # mode 64 = 230400
    # mode 80 = 460800
    server 127.127.20.1 mode 49 minpoll 3 iburst prefer true
    fudge 127.127.20.1 flag1 1 flag2 0 flag3 0 flag4 0 time1 0.00 refid GPS# ATOM PPS driver directly from interrupt through /dev/pps0
    server 127.127.22.1 minpoll 4 maxpoll 4 iburst true
    fudge 127.127.22.1 flag2 0 flag3 0 flag4 1 time1 0.0 refid PPS
    
  6. 在自启动脚本中添加授时自启动
    sleep 1s
    stty -F /dev/ttyTHS0 ispeed 115200 ospeed 115200 cs8
    ln -s /dev/ttyTHS0 /dev/gps1
    ln -s /dev/pps0 /dev/gpspps1
    ntpd -c /etc/ntpd.conf
    
  7. 重新给Jetson-AGX-Xavier上下电后,在终端输入ntpq -p 就可以看到GPS的授时 其中offset小于5表示时间成功同步。
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *GPS_NMEA(1)     .GPS.            0 l   49   64  377    0.000   +1.613   6.642
    

ptp时间同步

  1. xavier编译安装ptpd
    #下载ptpd 并解压
    https://github.com/ptpd/ptpd/tree/ptpd-2.3.1
    #编译
    autoreconf -vi
    ./configure
    make
    #安装
    sudo make install
    
  2. 自启动脚本文件里面添加ptpd 主设备启动命令
    sleep 2s
    ptpd2 -L -C -M -i eth0 &
    
  3. linux笔记本电脑(这里充当ptp从设备)安装ptpd
    #下载ptpd 并解压
    https://github.com/ptpd/ptpd/tree/ptpd-2.3.1
    #编译
    autoreconf -vi
    ./configure
    make
    #安装
    make install
    
  4. 自启动脚本里面添加ptpd 从设备启动命令
    sleep 2s
    ptpd2 -L -C -s -i eth0 -S /var/log/ptpd.log &
    
  5. 重新上下电Jetson-AGX-Xavier设备
  6. 在linux笔记本电脑上查看/var/log/ptpd.log,内容如下,其中Offset From Master字段为同步误差,单位为s,当同步误差小于0.001时,同步成功。
    # Timestamp, State, Clock ID, One Way Delay, Offset From Master, Slave to Master, Master to Slave, Observed Drift, Last packet Received, One Way Delay Mean, One Way Delay Std Dev, Offset From Master Mean, Offset From Master Std Dev, Observed Drift Mean, Observed Drift Std Dev, raw delayMS, raw delaySM
    2022-09-06 11:18:16.120935, init,
    2022-09-06 11:18:16.224368, lstn_init,  1
    2022-09-06 11:18:17.462962, slv, 247625fffe98ca4a(unknown)/1,  0.000000000,  0.000000000,  0.000000000,  0.000000000, 0.000000000, I, 0.000000000, 0, 0.000000000, 0, 0, 0,  0.000000000,  0.000000000
    2022-09-06 11:18:18.461847, slv, 247625fffe98ca4a(unknown)/1,  0.000000000, -8461219.047350856,  0.000000000, -8461219.047350856, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -8461219.047350856,  0.000000000
    2022-12-13 09:38:37.515919, flt,
    2022-12-13 09:38:37.516015, init,
    2022-12-13 09:38:37.618565, lstn_reset,  2
    2022-12-13 09:38:38.509269, slv, 247625fffe98ca4a(unknown)/1,  0.000000000,  0.000000000,  0.000000000,  0.000000000, 0.000000000, I, 0.000000000, 0, 0.000000000, 0, 0, 0, -8461219.047350856,  0.000000000
    2022-12-13 09:38:39.508787, slv, 247625fffe98ca4a(unknown)/1,  0.000000000, -0.000102161,  0.000000000, -0.000204322, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000204322,  0.000000000
    2022-12-13 09:38:40.519338, slv, 247625fffe98ca4a(unknown)/1,  0.000000000, -0.000148817,  0.000000000, -0.000093313, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000093313,  0.000000000
    2022-12-13 09:38:41.509062, slv, 247625fffe98ca4a(unknown)/1,  0.000000000, -0.000076180,  0.000000000, -0.000059048, -148.817000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000059048,  0.000000000
    2022-12-13 09:38:42.035599, slv, 247625fffe98ca4a(unknown)/1,  0.000131841, -0.000076180,  0.000586410, -0.000059048, -224.997000000, D, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000059048,  0.000586410
    2022-12-13 09:38:42.508640, slv, 247625fffe98ca4a(unknown)/1,  0.000131841, -0.000224606,  0.000586410, -0.000258323, -224.997000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000258323,  0.000586410
    2022-12-13 09:38:43.061501, slv, 247625fffe98ca4a(unknown)/1,  0.000167006, -0.000224606,  0.000539648, -0.000258323, -449.603000000, D, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000258323,  0.000539648
  7. 至此Jetson-AGX-Xavier的GPS+PPS+NTP+PTP时间同步配置成功。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深入理解C++中的特殊成员函数:构造函数、析构函数、拷贝构造函数与赋值操作符重载
  • 【laravel+Easyswoole】
  • 企业网三层架构
  • slf4j日志框架和logback详解
  • C++入门基础(2)
  • 论文翻译:Rethinking Interpretability in the Era of Large Language Models
  • 设计模式使用场景实现示例及优缺点(行为型模式——策略模式)
  • leetcode 147. 对链表进行插入排序
  • Kafka基础入门-代码实操
  • 易懂的吉文斯(Givens)变换(一)
  • 如何使用Gunicorn配置SSL/TLS加密Web服务
  • 序列化与反序列化及不同序列化方式的性能对比
  • 第四章 Redis(2023版本IDEA)
  • SVN 分支管理深入解析
  • 机器人三定律及伦理分析
  • [笔记] php常见简单功能及函数
  • [数据结构]链表的实现在PHP中
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 5、React组件事件详解
  • React 快速上手 - 07 前端路由 react-router
  • vue-cli在webpack的配置文件探究
  • windows下mongoDB的环境配置
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 技术胖1-4季视频复习— (看视频笔记)
  • 悄悄地说一个bug
  • 使用 Docker 部署 Spring Boot项目
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​字​节​一​面​
  • # Panda3d 碰撞检测系统介绍
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)logging(日志模块)
  • (Java入门)抽象类,接口,内部类
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (zhuan) 一些RL的文献(及笔记)
  • (二)Linux——Linux常用指令
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (算法)求1到1亿间的质数或素数
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)母版页和相对路径
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .axf 转化 .bin文件 的方法
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Core 中的路径问题
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .Net的DataSet直接与SQL2005交互
  • .NET委托:一个关于C#的睡前故事
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @SuppressWarnings注解