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

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

3天内不再提示

一文搞懂Air780EPM的NTP通信:LuatOS脚本开发教程

青山老竹农 来源:jf_82863998 作者:jf_82863998 2025-09-30 18:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

想在Air780EPM上用LuatOS实现NTP时间同步?这篇教程将用最通俗的方式讲解实现原理与代码实现,让你快速掌握关键技能。

一、NTP通信概述

1.1 NTP

网络时间协议(英语:Network Time Protocol,简称NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议。自1985年以来,NTP是仍在使用的最古老的互联网协议之一。NTP由特拉华大学的David L. Mills设计。 NTP意图将所有参与计算机的协调世界时(UTC)时间同步到几毫秒的误差内。它使用Marzullo算法的修改版来选择准确的时间服务器,其设计旨在减轻可变网络延迟造成的影响。NTP通常可以在公共互联网保持几十毫秒的误差,并且在理想的局域网环境中可以实现超过1毫秒的精度。不对称路由和拥塞控制可能导致100毫秒(或更高)的错误。 该协议通常描述为一种主从式架构,但它也可以用在点对点网上中,对等体双方可将另一端认定为潜在的时间源。发送和接收时间戳采用用户数据报协议(UDP)的通信端口123实现。这也可以使用广播或多播,其中的客户端在最初的往返校准交换后被动地监听时间更新。NTP提供一个即将到来闰秒调整的警告,但不会传输有关本地时区或夏时制的信息。

1.2 SNTP

简单网络时间协议(Simple Network Time Protocol),由 NTP 改编而来,主要用来同步因特网中的计算机时钟。在 RFC2030 中定义。 SNTP是简化版的NTP,NTP(Network Time Protocol,网络时间协议)是用于同步系统时间的协议。它通过网络连接多个设备,确保这些设备的系统时钟保持一致。SNTP相比较NTP主要区别在于精确度和复杂性。SNTP通常用于不需要高精度同步的设备。而NTP则用于要求较高时间精度的场景。

虽然现在的程序名字使用的是SNTP,但现在底层的实现已经改成NTP了,只是名字还没改过来。对模组来说, 没多大区别。

二、演示功能概述

本demo将演示使用NTP授时服务来同步时间。

三、准备硬件环境

参考:硬件环境清单第二章节内容,准备以及组装好硬件环境。

四、软件环境

在开始实践本示例之前,先筹备一下软件环境:

1.Luatools工具;

2. 内核固件文件(底层core固件文件):LuatOS-SoC_V2003_Air780EPM;参考项目使用的内核固件;

3. luatos需要的脚本和资源文件

脚本和资源文件:复制查看demo链接:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EPM/demo/ntp

lib脚本文件:使用Luatools烧录时,勾选 添加默认lib 选项,使用默认lib脚本文件;

准备好软件环境之后,接下来查看如何烧录项目文件到Air780EPM开发板,将本篇文章中演示使用的项目文件烧录到Air780EP开发板中。

五、代码示例介绍

5.1 API说明

5.1.1 socket.ntptm()

网络对时后的时间戳(ms级别)

参数

返回值

wKgZO2jaP9CAUvgcAAARZ59KBf8103.png


例子

wKgZPGjaQCCASGfQAAR1TK2N0u0927.png

5.1.2 socket.sntp_port(port)

设置SNTP服务器的端口

参数

wKgZO2jaQHKAATqYAAAR6AkpZ2k184.png

返回值

wKgZPGjaQIKAbxp2AAAO7pVh3Mo782.png


例子

wKgZPGjaQKKAK-iZAACSqj5wXbg348.png

5.2 使用NTP授时服务来同步时间

5.2.1 demo 介绍

wKgZO2jaQOOAbNGYAAnZtR43Cc4760.png


六、功能验证

wKgZO2jaQQyAJnN4AAcGrTZVLxA884.png

七、总结

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

常见问题

1、NTP同步时间后,这个clock精度高吗,需要多久同步一次

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

2、多长时间NTP同步一次

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

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

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

4、NTP白名单地址是什么?

默认的ntp服务器为ntp.aliyun.com,自定义ntp地址可以通过socket.sntp("ntp.aliyun.com")设置。

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


今天的内容就分享到这里了~

审核编辑 黄宇

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

    关注

    1

    文章

    270

    浏览量

    15090
  • LuatOS
    +关注

    关注

    0

    文章

    177

    浏览量

    2759
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS选型指南:基于Air780EPM的32/64位性能实测分析

    面对32位与64位LuatOS固件的选择难题,本文通过在Air780EPM开发板上的实际测试,详细解析两者在整数处理能力、浮点数精度以及系统性能方面的差异,结合应用场景给出专业建议,助力开发
    的头像 发表于 02-25 18:05 371次阅读
    <b class='flag-5'>LuatOS</b>选型指南:基于<b class='flag-5'>Air780EPM</b>的32/64位性能实测分析

    Air780EPM开发板为例:FFT应用示例核心要点全解析

    Air780EPM开发板作为实践载体,本文将对FFT应用示例的核心要点展开全面解析。从开发板的硬件特性适配、FFT算法的实现流程,到示例代码的核心模块与调试要点,逐拆解,确保
    的头像 发表于 12-16 15:28 543次阅读
    以<b class='flag-5'>Air780EPM</b><b class='flag-5'>开发</b>板为例:FFT应用示例核心要点全解析

    构建可靠USB应用:硬件设计要点与LuatOS开发技巧!

    指导。 本文以Air780EPM系列低功耗模组为例,分享USB接口的硬件设计要点以及LuatOS高效开发API,帮助开发者在设计中避开常见陷阱,快速构建稳定可靠的USB应用。 01.
    的头像 发表于 12-15 10:46 383次阅读
    构建可靠USB应用:硬件设计要点与<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>技巧!

    Air780EPM嵌入式开发LuatOS下的MQTT通信实践

    通过LuatOS脚本Air780EPM开发板上实现MQTT通信,是物联网设备开发中高效且便捷的
    的头像 发表于 09-30 16:11 2058次阅读
    <b class='flag-5'>Air780EPM</b>嵌入式<b class='flag-5'>开发</b>:<b class='flag-5'>LuatOS</b>下的MQTT<b class='flag-5'>通信</b>实践

    实战Air780EPM:构建4G共享网关,服务WiFi与有线设备!

    通过Air780EPM开发板,我们可以轻松实现4G网络作为数据出口,为周边的WiFi设备和以太网设备提供互联网共享,适用于移动办公、远程部署等场景。 、多网融合概述   Air780EPM
    的头像 发表于 09-30 16:03 1523次阅读
    实战<b class='flag-5'>Air780EPM</b>:构建4G共享网关,服务WiFi与有线设备!

    Air780EPM开发NTP对时教程:LuatOS脚本开发入门指南

    通过简单的LuatOS脚本Air780EPM即可实现NTP时间同步。本指南从零开始,带你掌握嵌入式设备联网校时的核心方法。
    的头像 发表于 09-30 16:01 1378次阅读
    <b class='flag-5'>Air780EPM</b><b class='flag-5'>开发</b>板<b class='flag-5'>NTP</b>对时教程:<b class='flag-5'>LuatOS</b><b class='flag-5'>脚本</b><b class='flag-5'>开发</b>入门指南

    LuatOS嵌入式开发实战:Air780EPM与MQTT通信

     本教程聚焦于LuatOSAir780EPM开发板上的应用,演示如何通过脚本实现MQTT协议通信,助力物联网设备快速联网。
    的头像 发表于 09-29 18:10 718次阅读
    <b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>实战:<b class='flag-5'>Air780EPM</b>与MQTT<b class='flag-5'>通信</b>

    Air780EPM开发板FTP功能实战:LuatOS嵌入式开发全解析

    本文深入讲解Air780EPM模组在LuatOS环境下的FTP应用开发,涵盖AT指令配置、网络连接与文件传输流程,助你高效完成嵌入式通信项目。
    的头像 发表于 09-29 15:37 677次阅读
    <b class='flag-5'>Air780EPM</b><b class='flag-5'>开发</b>板FTP功能实战:<b class='flag-5'>LuatOS</b>嵌入式<b class='flag-5'>开发</b>全解析

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 、HTTP 概述 1.
    的头像 发表于 09-26 20:36 1325次阅读
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780EPM</b> <b class='flag-5'>开发</b>板 HTTP 教程:原理讲解与项目实操!

    Air8101多网融合战略升级:Air780EPM模块助力4G联网落地

    应用迈向新高度。 本文将分享Air8101核心板通过外挂Air780EPM整机开发板,实现4G联网的功能示例。   、硬件准备工作   1.1  所需硬件
    的头像 发表于 06-23 16:53 768次阅读
    <b class='flag-5'>Air</b>8101多网融合战略升级:<b class='flag-5'>Air780EPM</b>模块助力4G联网落地

    优化你的设计:Air780EPM场景化ADC硬件电路指南!

    Air780EPM的ADC精度怎么样,想节约颗外挂ADC…   今天也跟大家起分享下相关内容。在设计ADC硬件电路之前,请务必先查看LuatOS二次
    的头像 发表于 06-13 18:02 1091次阅读
    优化你的设计:<b class='flag-5'>Air780EPM</b>场景化ADC硬件电路指南!

    Air780EPM — ADC硬件电路设计:场景化优化与实践!

    Air780EPM的ADC精度怎么样,想节约颗外挂ADC…   今天也跟大家起分享下相关内容。在设计ADC硬件电路之前,请务必先查看LuatOS二次
    的头像 发表于 06-11 14:40 831次阅读
    <b class='flag-5'>Air780EPM</b> — ADC硬件电路设计:场景化优化与实践!

    Air780EPM应用开发:解锁GPIO与LED的N种交互模式

    今天特别分享探索Air780EPM中GPIO与LED的多样交互!本文介绍N种交互模式,包括脉冲控制、状态切换及多LED联动,为智能设备开发提供丰富技术选型。适用于智能照明、状态指示等物联网场景。
    的头像 发表于 05-29 14:31 937次阅读
    <b class='flag-5'>Air780EPM</b>应用<b class='flag-5'>开发</b>:解锁GPIO与LED的N种交互模式

    解锁Air780EPM:N种GPIO操控LED的实战技巧!

    在物联网项目中,灵活使用Air780EPM的GPIO控制LED至关重要。本文将展示实现方式,涵盖硬件配置与软件编程,满足不同场景需求。 今天特别分享基于Air780EPM的GPIO控制LED实现方案
    的头像 发表于 05-28 16:56 1119次阅读
    解锁<b class='flag-5'>Air780EPM</b>:N种GPIO操控LED的实战技巧!

    揭秘Air780EPM开发陷阱:20个避坑指南与最佳解决方案

    :www.air780epm.cn 问题01: Air780EPM在PSM+模式下,dtimer定时器可以开几个?   答案: 同时间只能有64个定时器的任务;如果要支持超过64个定时器任务,执行完就得释放,同时继续创建定时器
    的头像 发表于 05-21 16:04 980次阅读
    揭秘<b class='flag-5'>Air780EPM</b><b class='flag-5'>开发</b>陷阱:20个避坑指南与最佳解决方案