| |
|
|
开发:
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系列的主时钟和从时钟。
在上图中:
飞灵科技提供了一个方案,用来解决如何在MCU上通过ToD+PPS 获取同步时间。 ToD + PPS 的时序如下图所示:
ToD 信号在PPS上升沿1ms后发出,并且在500ms 之内发送完成。PPS+ToD配合可以获取到整秒时间,为了捕获到ns秒的时间, 我们使用一个硬件计数器,即Timer 来计时ns秒的时间。基本原理如下:
? 我们使用一个freerun的timer, 即硬件timer以一定的频率计数,比如1MHZ。同时这个timer有外部触发的捕获功能,即PPS上升沿可以锁存当前的计数值。
在上面的原理中,需要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例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
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年11日历 | -2025/11/27 2:03:59- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |