1.简介
基于SNTP协议的网络授时模组,主要用来解决单片机等嵌入式设备与卫星或互联网的时间同步问题。本模组具备两种工作模式,
(1) 作为SNTP客户端:向SNTP服务器索取时间,并通过串口输出时间;
(2) 作为SNTP时间服务器:以脉冲和串口数据作为基准时间,对SNTP客户端进行网络授时;
2.功能
2.1 SNTP Client模式
模组工作在SNTP Client模式,时钟源是SNTP服务器,模组向SNTP服务器获取时间,校时间隔客户自己可以设置(默认是10min),出错会重试3次,每次等待时间为500ms。获取时间出错时,会返回相应错误码,串口每给模组发送一次时间获取指令,模组向SNTP服务器获取1次当前时间。
2.2 SNTP Server模式
模组工作在SNTP Server模式,时钟源是脉冲时,用来给SNTP客户端提供授时服务。当模组2S未检测到有脉冲输入,即为出错,在下一次检测到脉冲则恢复。此时如果串口依然可以收到时间数据(其他系统发送过来的,例如GPS/BD模组)则更新时间,在客户端校时时,将返回未同步的时间信息。
2.3 秒脉冲输出
模组提供1S脉冲输出功能,每秒钟发出100ms脉宽的方波脉冲,1S精度系统误差不到万分之0.28,与时间源的相对误差为10ms,脉冲会在下一次时间同步时校准,校准的同步误差依然是10ms以内。
3.设计
主控采用江苏沁恒的单芯片方案,具体电路如下图:
3.1主控
3.2RJ45网口
3.3串口
3.4电源
4.测试
样板如下图所示:
具体测试过程如下:
首先,将PC和模组接入同一个局域网,修改PC网络参数(IP、子网掩码、网关)使PC与模组处于同一子网。在PC端运行“SNTPModuleCFG.EXE”配置工具,如下图所示:
在“适配器”一栏的下拉列表选择电脑使用的网卡,点击“搜索模块”按钮,模块列表会显示出目前局域网中所有的模组,双击“模块列表”里的任意一个模组,获取模组当前参数,如下图所示:
根据实际需求修改相应参数,此处以模组作为SNTP Client模式为例,通过SNTP方式获取阿里云NTP服务器时间,查找可知阿里云NTP服务器(ntp2.aliyun.com)IP地址为203.107.6.88,故修改模组目的IP为此IP,协议类型选择SNTP_Client即可,其他均为默认,点击左侧“配置模块参数”按钮,软件左下方提示“配置成功”,到此配置完毕,如下图所示:
此时就可以通过串口获取当前北京时间。
使用网线将模组连接到已接入互联网的路由器。使用USB转串口线缆,连接模组与PC,在PC端打开串口调试助手,根据模块当前串口配置,选择调试助手的相应串口参数,点击“打开串口”。
获取北京时间的串口指令为16进制数“57 AB 61”,所以勾选调试助手的“16进制发送”和“16进制显示”复选框。在串口调试助手发送窗口输入“57 AB 61”,点击“发送”按钮,此时接收框中返回时间数据,如下图所示:
接收到的时间数据为BCD码格式,故“19 06 10 19 43 20”表示的意思是“2019年06月10日,19时43分20秒”。
上面是以产品可以接入网互联网为例的配置,如果产品不可接入互联网,必须在局域网使用,只需要在局域网配置一台SNTP服务器,将模组的目标IP配置为SNTP服务器IP,其他与上述配置方法均相同。
5.资料下载地址
链接:https://pan.baidu.com/s/1pqB_6S8E8ohi3sWWhp-OFg
提取码:nffq
https://shop150191998.taobao.com/