[STM32F1] STM32网络同步时间

[复制链接]
8151|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?
nyszx 发表于 2014-10-10 16:07 | 显示全部楼层
NTP服务器 210.72.145.44 国家授时中心
nyszx 发表于 2014-10-10 16:17 | 显示全部楼层
还有这个129.6.15.28
 楼主| julonger 发表于 2014-10-10 16:18 | 显示全部楼层
nyszx 发表于 2014-10-10 16:17
还有这个129.6.15.28

然后就是发SNTP协议,他会返回数据是吧
nyszx 发表于 2014-10-10 16:24 | 显示全部楼层
julonger 发表于 2014-10-10 16:18
然后就是发SNTP协议,他会返回数据是吧

你可以先去看看NTP协议如何实现时间校准的资料,估计你就明白了。
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的时钟同步。

nyszx 发表于 2014-10-10 16:27 | 显示全部楼层
以上资料来自于网络~

评分

参与人数 1威望 +6 收起 理由
mmuuss586 + 6 赞一个!

查看全部评分

mmuuss586 发表于 2014-10-10 19:05 | 显示全部楼层

楼上正解;
 楼主| julonger 发表于 2014-10-11 15:15 | 显示全部楼层
nyszx 发表于 2014-10-10 16:27
以上资料来自于网络~

协议里面的值怎么设置,好多参数,我用TCP&UDP能与服务器建立连接吗
franki_18 发表于 2014-10-11 16:21 | 显示全部楼层
有很多大神啊  
nyszx 发表于 2014-10-11 16:32 | 显示全部楼层
julonger 发表于 2014-10-11 15:15
协议里面的值怎么设置,好多参数,我用TCP&UDP能与服务器建立连接吗

NTP协议不需要像TCP那样通过握手等建立连接。应该是你向服务器发送NTP数据包,它会自动返回数据包。协议里面包含很多时间信息,你根据你发送的包和返回的包计算你的时间与服务器时间差,经行校准的。
nyszx 发表于 2014-10-11 16:38 | 显示全部楼层
这是抓包数据:你发送到ntp服务器数据 1.png 这是服务器返回的数据 2.png
nyszx 发表于 2014-10-11 16:57 | 显示全部楼层
不知道我理解的对不对,也请大神指正
ycao24 发表于 2015-6-1 09:38 | 显示全部楼层
有没有解决啊?我现在也在弄这个,请求指导
zhuomuniao110 发表于 2017-3-13 20:55 | 显示全部楼层
有人解决了吗,学习下。
我知道微软的是 UDP
time.windows.com   
port 123
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部