0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用NTP,该如何同步时间?一文详解!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-10-29 13:44 次阅读

一、NTP通信概述

很多场景中,由于业务需要,模块需要保持正确的系统时钟,才能正常工作。但是模块上电后的初试时间戳是946713600(即2000/01/01,16:00:00),所以同步时钟成为了开发者要解决的重要问题。对于Cat.1模块,移动/电信卡,通常会下发基站时间,那么sntp就不是必要的,而联通卡通常不会下发,就需要sntp了。

NTP(NetworkTimeProtocol,网络时间协议) 是用于同步系统时间的协议。它通过网络连接多个设备,确保这些设备的系统时钟保持一致。

本例程展示了如何使用SNTP授时服务来同步时间。

NTP和简化版的SNTP主要区别在于精确度和复杂性。

SNTP(SimpleNetworkTimeProtocol)通常用于不需要高精度同步的设备,如嵌入式系统。而NTP则用于要求较高时间精度的场景。

二、演示功能概述

本demo将连接NTP服务器进行时间同步。

三、准备硬件环境

3.1 Air780E开发板一套

包括天线USB数据线;

3.2 PC电脑

WINDOWS系统。

3.3 SIM卡

请准备一张可正常上网的SIM卡,该卡可以是物联网卡或您的个人手机卡。

特别提醒:请确保SIM卡未欠费且网络功能正常,以便顺利进行后续操作。

3.4 数据通信线

typec接口USB数据线即可。

四、软件环境

4.1 下载调试工具

使用说明参考Luatools下载和详细使用

五、获取NTP授时软硬件资料

5.1 文档和工具

  • 780E模块使用固件:SDK&Demo-合宙文档中心,本demo使用的固件版本是:
    LuatOS-SoC_V1112_EC618_FULL.soc
  • 教程使用的demo:
    https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/sntp
  • 将固件和脚本烧录到模块中:Luatools下载和使用教程-合宙模组资料中心
  • 源码和固件已打包,如下所示:右键点我,另存为,下载完整压缩文件包

5.2 demo使用api介绍

socket.sntp(sntp_server)

作用:sntp时间同步

传入值类型解释
string/tablesntp服务器地址选填
int适配器序号,只能是socket.ETH0(外置以太网),socket.LWIP_ETH(内置以太网),socket.LWIP_STA(内置WIFI的STA),socket.LWIP_AP(内置WIFI的AP),socket.LWIP_GP(内置蜂窝网络的GPRS),socket.USB(外置USB网卡), 如果不填,优先选择soc平台自带能上外网的适配器,若仍然没有,选择最后一个注册的适配器。

返回值

os.time(mytime)

作用:时间戳函数

参数

传入值类型解释
table日期时间的table
return时间戳

返回值

os.date(fmt,time)

作用:日期函数

参数

传入值类型解释
string格式化字符串,可以是nil
table日期时间的table

返回值

返回值类型解释
table/string根据fmt的不同,返回值不同

json.encode(obj,t)

作用:将对象序列化为json字符串

参数

传入值类型解释
obj需要序列化的对象
string浮点数精度和模式,这项不存在的时候,为默认值”7f”,数字只支持”0~14”,模式只支持”f/g”

返回值

返回值类型解释
string序列化后的json字符串,失败的话返回nil
string序列化失败的报错信息

json.decode(str)

作用:将字符串反序列化为对象

参数

传入值类型解释
string需要反序列化的json字符串

返回值

返回值类型解释
obj反序列化后的对象(通常是table),失败的话返回nil
result成功返回1,否则返回0
err反序列化失败的报错信息

六、代码示例

6.1 使用ntp服务器,同步时间

6.1.1 demo介绍

图片

6.1.2 将程序下载到开发板

参考:将固件和脚本烧录到模块中:Luatools下载和使用教程-合宙模组资料中心

七、功能验证

图片

八、总结

本demo介绍了如何使用ntp服务器同步时间。

九、扩展

常见问题

9.1 多长时间ntp同步一次?

正常使用,一小时一次,已经足够了,甚至1天一次也可以。

9.2 ntp同步时间后,这个clock精度高吗,需要多久同步一次?

并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能则不要使用本功能模块,建议使用自己的应用服务器来同步时间。

9.3 这个函数socket.sntp()后每次在程序中调用os.time也是实时时间了吗?

是的,只要时间同步成功了,就是实时时间了。

​审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2909

    文章

    44557

    浏览量

    372750
  • NTP
    NTP
    +关注

    关注

    1

    文章

    169

    浏览量

    13890
  • sntp
    +关注

    关注

    0

    文章

    5

    浏览量

    3703
收藏 人收藏

    评论

    相关推荐

    通过NTP获取Epoch/Unix时间NTP代表网络时间

    通过NTP获取 Epoch/Unix时间NTP代表“网络时间协议”,它是用于在计算机系统之间进行时钟同步的网络协议。 换句话说,它用于
    发表于 01-27 06:03

    求解关于AT ESP8266 无法实现NTP时间同步的问题?

    联网,本以为可以大功时,却发现NTP无法同步。关于NTP配置的各种文档看了很多,使用都很简单,没有特殊的配置要求。但是搞了下午没有任何进展。希望各位前辈帮忙分析。如上图,组件全部加载
    发表于 03-15 14:36

    NTP网络时间服务器在大型局域网的同步技术

    本章利用双机互备型ntp网络时间服务器实现局域网的时间同步解决方案。 1时间同步系统的配置全网
    发表于 07-24 15:48 1955次阅读

    实现嵌入式linux自动同步网络时间---NTP

    因为ARM板断电重启问题,为保证能获取到准确的实时时间,所以需要实现自动从网络上获取时间,这就需要用到NTPNTP是网络时间协议(Netw
    发表于 11-02 09:36 12次下载
    实现嵌入式linux自动<b class='flag-5'>同步</b>网络<b class='flag-5'>时间</b>---<b class='flag-5'>NTP</b>

    详解 NTP网络时间服务器:时间同步协议

    、摘要 NTP网络时间协议创建于1988年,协议标准用于世界上绝大多数计算机和电子设备的超精确时钟同步。 二、
    的头像 发表于 08-02 16:12 1105次阅读
    <b class='flag-5'>详解</b> <b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器:<b class='flag-5'>时间</b><b class='flag-5'>同步</b>协议

    NTP网络时间服务器,实现安防系统时间同步

    按 NTP服务器的等级传播。 NTP网络时间服务器是以校正终端设备时间款标准服务器,其标准协议NTP
    的头像 发表于 08-16 15:49 748次阅读
    <b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器,实现安防系统<b class='flag-5'>时间</b><b class='flag-5'>同步</b>

    Linux上怎么配置NTP时间同步呢?

    Linux上怎么配置NTP时间同步呢? NTP种用于同步计算机系统时钟的网络协议。在Linu
    的头像 发表于 01-16 16:03 2942次阅读

    ntp同步原理是什么

    NTP(Network Time Protocol,网络时间协议)是种用于同步计算机系统时间的协议。那么
    的头像 发表于 01-19 17:24 1594次阅读
    <b class='flag-5'>ntp</b>的<b class='flag-5'>同步</b>原理是什么

    分享 | PTP、NTP时间同步服务器的部署与搭建过程

    分享 | PTP、NTP时间同步服务器的部署与搭建过程
    的头像 发表于 05-15 10:01 1024次阅读
    分享 | PTP、<b class='flag-5'>NTP</b><b class='flag-5'>时间</b><b class='flag-5'>同步</b>服务器的部署与搭建过程

    时间同步——NTP网络时间服务器

    的Internet协议之。它的目的是在国际互联网上传递统、标准的时间。具体的实现方案是在网络上指定若干时钟源网站,为用户提供授时服务,并且这些网站间应该能够相互比对,提高准确度。 NTP
    的头像 发表于 06-06 14:08 449次阅读
    <b class='flag-5'>时间</b><b class='flag-5'>同步</b>——<b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器

    京准电钟 | NTP网络时间同步协议原理及其应用介绍

    京准电钟 NTP网络时间同步协议原理及其应用介绍
    的头像 发表于 06-12 15:22 499次阅读
    京准电钟 | <b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b><b class='flag-5'>同步</b>协议原理及其应用介绍

    安徽京准 | PLC时钟同步NTP网络时间服务器)的重要性

    安徽京准、PLC时钟同步-ntp网络时间服务器的重要性
    的头像 发表于 06-19 10:38 471次阅读
    安徽京准 | PLC时钟<b class='flag-5'>同步</b>(<b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器)的重要性

    解读网络时间协议NTP,带你领略NTP的魅力!

      时间是我们日常生活的重要组成部分,而在数字时代,时间同步也在计算机和网络系统中扮演着至关重要的角色。网络时间协议(Network Time Protocol,
    的头像 发表于 06-27 16:52 626次阅读
    解读网络<b class='flag-5'>时间</b>协议<b class='flag-5'>NTP</b>,带你领略<b class='flag-5'>NTP</b>的魅力!

    NTP网络时间服务器能带同步多少客户端?

    NTP网络时间服务器能带同步多少客户端
    的头像 发表于 09-04 10:43 420次阅读
    <b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器能带<b class='flag-5'>同步</b>多少客户端?

    以RK3568为例,ARM核心板如何实现NTP精准时间同步?

    网络时间协议NTP(Network TimeProtocol)是用于互联网中时间同步的标准互联网协议,可以把计算机的时间
    的头像 发表于 11-07 10:20 291次阅读
    以RK3568为例,ARM核心板如何实现<b class='flag-5'>NTP</b>精准<b class='flag-5'>时间</b><b class='flag-5'>同步</b>?