打印
[STM32F1]

STM32网络同步时间

[复制链接]
7360|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
julonger|  楼主 | 2014-10-10 11:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32要怎么进行网络同步时间,要连接哪个服务器的,哪个端口,发送什么指令,反馈什么信息?
沙发
aozima| | 2014-10-10 12:13 | 只看该作者
关键字 SNTP

使用特权

评论回复
板凳
julonger|  楼主 | 2014-10-10 14:32 | 只看该作者
aozima 发表于 2014-10-10 12:13
关键字 SNTP

网络上有公共的SNTP服务器吗?

使用特权

评论回复
地板
arefeng| | 2014-10-10 15:54 | 只看该作者
我用山寨方法:用网上的电脑对时软件对时,监视对时软件往来的数据,解析,写到TCPIP协议栈去,实现对时。我记得好象是TIME。AC。CN?

使用特权

评论回复
5
nyszx| | 2014-10-10 16:07 | 只看该作者
NTP服务器 210.72.145.44 国家授时中心

使用特权

评论回复
6
nyszx| | 2014-10-10 16:17 | 只看该作者
还有这个129.6.15.28

使用特权

评论回复
7
julonger|  楼主 | 2014-10-10 16:18 | 只看该作者
nyszx 发表于 2014-10-10 16:17
还有这个129.6.15.28

然后就是发SNTP协议,他会返回数据是吧

使用特权

评论回复
8
nyszx| | 2014-10-10 16:24 | 只看该作者
julonger 发表于 2014-10-10 16:18
然后就是发SNTP协议,他会返回数据是吧

你可以先去看看NTP协议如何实现时间校准的资料,估计你就明白了。

使用特权

评论回复
9
nyszx| | 2014-10-10 16:26 | 只看该作者

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。

  

使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。

  

对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

  

NTP工作原理

  

NTP的基本工作原理如图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:

  

在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时钟设定为11:00:00am。

  

Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。

  

   NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。

  
  
       系统时钟同步的工作过程如下:
  

   Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。

  

  当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。

  

  当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。

  

  当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。

  

至此,Device A已经拥有足够的信息来计算两个重要的参数:

  

NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。

  

  Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。

  

这样,Device A就能够根据这些信息来设定自己的时钟,使之与Device B的时钟同步。

使用特权

评论回复
10
nyszx| | 2014-10-10 16:27 | 只看该作者
以上资料来自于网络~

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
mmuuss586 + 6 赞一个!
11
mmuuss586| | 2014-10-10 19:05 | 只看该作者

楼上正解;

使用特权

评论回复
12
julonger|  楼主 | 2014-10-11 15:15 | 只看该作者
nyszx 发表于 2014-10-10 16:27
以上资料来自于网络~

协议里面的值怎么设置,好多参数,我用TCP&UDP能与服务器建立连接吗

使用特权

评论回复
13
franki_18| | 2014-10-11 16:21 | 只看该作者
有很多大神啊  

使用特权

评论回复
14
nyszx| | 2014-10-11 16:32 | 只看该作者
julonger 发表于 2014-10-11 15:15
协议里面的值怎么设置,好多参数,我用TCP&UDP能与服务器建立连接吗

NTP协议不需要像TCP那样通过握手等建立连接。应该是你向服务器发送NTP数据包,它会自动返回数据包。协议里面包含很多时间信息,你根据你发送的包和返回的包计算你的时间与服务器时间差,经行校准的。

使用特权

评论回复
15
nyszx| | 2014-10-11 16:38 | 只看该作者
这是抓包数据:你发送到ntp服务器数据 这是服务器返回的数据

使用特权

评论回复
16
nyszx| | 2014-10-11 16:57 | 只看该作者
不知道我理解的对不对,也请大神指正

使用特权

评论回复
17
ycao24| | 2015-6-1 09:38 | 只看该作者
有没有解决啊?我现在也在弄这个,请求指导

使用特权

评论回复
18
zhuomuniao110| | 2017-3-13 20:55 | 只看该作者
有人解决了吗,学习下。
我知道微软的是 UDP
time.windows.com   
port 123

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

54

帖子

0

粉丝