TSync时钟同步开发板开发指南

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。

本文介绍在TSync时钟同步开发板上如何进行二次开发。
在这里插入图片描述

开发板环境

硬件环境:

  • 处理器i.MX6ULL:ARM Cortex-A7 800MHz
  • 内存:512MB
  • eMMC:8GB
  • 外设:百兆双网口,USB host,SD,miniUSB串口,GNSS接口,PPS输出,其他扩展信号

软件环境:

  • Linux 5.4.3
  • Ubuntu 18.04.5 LTS

二次开发指南

开发板用户手册见:https://flyelf-tech.gitee.io/docs/tsync/manual/

1. 丰富的Ubuntu软件源

Ubuntu系统支持丰富的软件包,可以命令安装所需软件包,

apt update
apt install <package>

2. 通过NodeRED快速实现想要的Web UI

Node-RED是一款基于Node.js的编程工具,用新颖有趣的方式将硬件设备,API和在线服务连接在一起。它提供了一个基于浏览器的编辑器,可以使用面板中的各种节点轻松地将流连接在一起,只需单击即可将其部署运行。

我们选择这款工具,一方面是为了通过Dashboard UI界面展示PTP的功能,另一方面也为了使用者可以在Node-RED上快速开发自己需要的功能和界面。

开发板Web UI
在这里插入图片描述
Web UI编辑器
在这里插入图片描述
3. 基于PTP API开发自己的应用

开发板虽然对GNSS授时/PTP同步做了新特性的支持,稳定性和性能的提升,但依旧沿用Linux内核标准的PTP API。基于PTP API,用户可以开发自己的应用。前面已经有两篇博文对软件架构,接口,如何学习,做了介绍了。

在这里提供PTP API的示例应用程序,帮助使用者在开发板上验证和开发,可以从这里下载https://flyelf-tech.gitee.io/docs/tsync/dl/。两个示例程序分别用于PTP clock的操作,和网络报文收发硬件时间戳。将示例程序压缩包拷贝到板子上,解压,编译。

tar zxvf ptp-api-test.tar.gz
cd ptp-api-test/
gcc testptp.c -o testptp
gcc timestamping.c -o timestamping

PTP clock的基本操作

# 获取PTP时间
root@TSync:~/ptp-api-test# ./testptp -d /dev/ptp0 -g
clock time: 1640492382.339218833 or Sun Dec 26 04:19:42 2021

# 将系统时间设置为PTP时间
root@TSync:~/ptp-api-test# ./testptp -d /dev/ptp0 -s
set time okay

# 调整频率+1000ppb
root@TSync:~/ptp-api-test# ./testptp -d /dev/ptp0 -f 1000
frequency adjustment okay

网络报文收发时间戳

在两块板子上分别运行timestamping,一块测试发送硬件时间戳,一块测试接收硬件时间戳。接收端运行,

root@TSync:~/ptp-api-test# ./timestamping eth0 SOF_TIMESTAMPING_RX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE

发送端运行如下命令,HW raw 1640492773.415471564就是发送的硬件时间戳,接收端也能捕获接收报文时间戳。

root@TSync:~/ptp-api-test# ./timestamping eth0 SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RAW_HARDWARE
SIOCSHWTSTAMP: tx_type 1 requested, got 1; rx_filter 0 requested, got 0
SO_TIMESTAMP 0
SO_TIMESTAMPNS 0
SO_TIMESTAMPING 65
1640492773.424175: sent 124 bytes
1640492773.424220: select 1575780us
1640492773.424403: select returned: 1, success
ready for reading
recvmsg regular: Resource temporarily unavailable
1640492773.424565: received error data, 166 bytes from 1.0.0.0, 80 bytes control messages
   cmsg len 36: SOL_SOCKET SO_TIMESTAMPING SW 0.000000000 HW raw 1640492773.415471564
   cmsg len 44: IPPROTO_IP IP_RECVERR ee_errno 'No message of desired type' ee_origin 4 => bounced packet => GOT OUR DATA BACK (HURRAY!)

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值