IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 如何在MCU上通过ToD+PPS 获取同步时间 -> 正文阅读

[嵌入式]如何在MCU上通过ToD+PPS 获取同步时间

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

在很多工业使用场景中,网络内一些设备终端与设备终端,或设备终端与主控之间需要进行时间同步。 比如给传感器数据打时间戳,比如总线的时分复用等场景,相关的设备都需要一个统一的时间。

在同步精度不是很高的场景中,我们可以使用ntp等服务进行同步,精度在ms级别。 但如果想达到同步精度在us,甚至ns 级别, IEEE-1588 , PPS+ToD和 GPS 是常用的标准协议。在很多设备终端采用的是MCU作为主控的,大多数的中低端MCU并没有硬件1588的能力,所以 PPS+ToD 是成为首要选择。

?下图列举了一个 实用场景,场景中使用分别为飞灵科技的FlySync系列的主时钟和从时钟。

在上图中:

  • 主时钟与GPS进行同步,并作为IEEE 1588的主时钟。
  • 从时钟与主时钟进行同步,同步后输出四路ToD + PPS信号。
  • 四个传感器终端分别与四路ToD + PPS 相连接,用来获取时间。
  • 四个传感器采集数据后,打上时间戳后通过总线发送给PLC。

飞灵科技提供了一个方案,用来解决如何在MCU上通过ToD+PPS 获取同步时间。

ToD + PPS 的时序如下图所示:

ToD 信号在PPS上升沿1ms后发出,并且在500ms 之内发送完成。PPS+ToD配合可以获取到整秒时间,为了捕获到ns秒的时间, 我们使用一个硬件计数器,即Timer 来计时ns秒的时间。基本原理如下:

?

我们使用一个freerun的timer, 即硬件timer以一定的频率计数,比如1MHZ。同时这个timer有外部触发的捕获功能,即PPS上升沿可以锁存当前的计数值。

  • ?PPS上升沿触发timer 锁存当前计数值,上图中10.
  • 在APP 调用函数get_time()获取当前时间时,首先获取当前计数值15,然后减去上一个PPS锁存的计数值10, 转化成ns后即为我们所需的ns时间:(15-10)* 1000 = 5000ns。 需要注意Timer计数值回绕的。

在上面的原理中,需要Timer 计数值周期不能小于1秒,否则在两个PPS之间发生两次回绕的话,我们不能正确获得计数的差值。 大多数MCU仅支持16Bits的Timer, 这样如果要满足周期为1s的话,每个计数值必须大于15us。这个对我们获取的时间精度会有影响。一种改进的方法是在Timer发生回绕时产生中断,在中断里记录这个周期内回绕的次数。并且在每次PPS触发锁存的中断里清零这个回绕次数。

以上的原理的时间精度依赖于给Timer提供时钟的晶振的精度。晶振精度越高,我们获取的时间精度越高。但是不幸的是,一般MCU所使用的晶振精度都很低,并且晶振还有温漂,老化等现象。我们MCU使用的晶振一般偏差在20PPM左右。也就是说,Timer每个1秒的计数周期会有达到20us的偏差。所以基于以上方法获取的时间值精度不高,并不能满足us级别的应用。

但晶振具有短期稳定性的特点,也就是说,晶振在短期内偏差不会变化很大。所以我们只要计算出这个偏差,就可以来校准我们获取的时间了。计算的基本原理就是通过测量PPS之间的实际计数值来计算计算出晶振的偏差值。

<待续, 下一篇介绍具体校准的方法>

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:21:45  更:2021-12-26 22:23:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 16:14:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码