文章目录
1 前言
随着科技的不断进步和应用需求的不断变化,SNTP协议也面临着一些挑战和机遇。随着网络技术的普及和物联网设备的增多,对于更精确的时间同步和更高效的同步方法的需求也将增加。
W5100S/W5500是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。本教程将介绍W5100S/W5500以太网SNTP应用的基本原理、使用步骤、应用实例以及注意事项,帮助读者更好地掌握这一技术。
2 协议简介
2.1 什么是SNTP
SNTP(Simple Network Time Protocol)是网络时间协议的简化版,它是一种用于在网络计算机上同步计算机时间的协议。
SNTP协议采用客户端/服务器的工作方式,可以单播或者广播模式操作。SNTP服务器通过接收GPS信号或自带的原子钟作为系统的时间基准。在单播模式下,SNTP客户端能够通过定期访问SNTP服务器获得准确的时间信息,用于调整客户端自身所在系统的时间,达到同步时间的目的。
2.2 SNTP的优点
SNTP的优点主要包括:
- 高度精确性:SNTP可以提供高度精确的时间同步,它可以将计算机时钟与全球卫星网络同步。这个同步可以达到10毫秒的精度,这对于计算机系统的日志、文件备份和还原等操作都非常重要。
- 网络延迟自适应:SNTP可以自动适应网络延迟的变化。当网络延迟变化时,SNTP可以自动调整时间戳,确保所有计算机都同步到正确的时间。
- 轻量级:与NTP相比,SNTP是一个轻量级的协议,它在网络中传输的数据量很小。这使得SNTP非常适合于低带宽、高延迟的网络环境中
2.3 SNTP原理
工作原理是采用客户端/服务器的工作方式,可以通过单播(点对点)或者广播(一点对多点)模式操作。SNTP服务器通过接收GPS信号或自带的原子钟作为系统的时间基准。
在单播模式下,SNTP客户端可以通过定期访问SNTP服务器获得准确的时间信息,用于调整客户端自身所在系统的时间,达到同步时间的目的。
而在广播模式下,SNTP服务器会周期性地发送消息给指定的IP广播地址或者IP多播地址,SNTP客户端通过监听这些地址来获得时间信息。
网络中一般存在很多台SNTP服务器,客户端会通过一定的算法选择最好的几台服务器使用。如果一台SNTP服务器在工作过程中失去了外部时间源,此时该SNTP服务器会告诉SNTP客户端“我失去了外部时间”。当SNTP客户端收到这个信息时,就会丢弃发生故障的SNTP服务器发给它的时间信息,然后重新选择其他的SNTP服务器。
2.4 应用场景
SNTP协议广泛应用于以下场景:
- 网络设备时间同步:路由器、交换机等网络设备使用SNTP协议来同步时间,确保网络设备具有一致的时间标准。
- 日志记录:服务器、计算机等系统使用SNTP协议来同步时间,确保日志记录的时间准确无误。
- 电子商务:电子商务系统使用SNTP协议来同步时间,确保订单、交易等操作的时间一致性。
除上述外,SNTP还被应用于计算机网络仿真、军事仿真和城市仿真等领域,SNTP计算方法可以用于模拟各种网络拓扑结构、协议和流量,以及战场环境和作战行动,为这些领域的网络设计和优化、军事决策、城市交通等提供支持。
3 WIZnet以太网芯片
WIZnet 主流硬件协议栈以太网芯片参数对比
| Model | Embedded Core | Host I/F | TX/RX Buffer | HW Socket | Network Performance |
|---|---|---|---|---|---|
| W5100S | TCP/IPv4, MAC & PHY | 8bit BUS, SPI | 16KB | 4 | Max.25Mbps |
| W6100 | TCP/IPv4/IPv6, MAC & PHY | 8bit BUS, Fast SPI | 32KB | 8 | Max.25Mbps |
| W5500 | TCP/IPv4, MAC & PHY | Fast SPI | 32KB | 8 | Max 15Mbps |
- W5100S/W6100 支持 8bit数据总线接口,网络传输速度会优于W5500。
- W6100 支持IPV6,与W5100S 硬件兼容,若已使用W5100S的用户需要支持IPv6,可以Pin to Pin兼容。
- W5500 拥有比 W5100S更多的 Socket数量以及发送与接收缓存。
4 SNTP网络设置示例概述以及使用
4.1 流程图
程序的运行框图如下所示:

4.2 准备工作核心
软件
- Visual Studio Code
- WIZnet UartTool
硬件
- W5100SIO模块 + RP2040 树莓派Pico开发板 或者 WIZnet W5100S-EVB-Pico开发板
- Micro USB 接口的数据线
- TTL 转 USB
- 网线
4.3 连接方式
- 通过数据线连接PC的USB口(主要用于烧录程序,也可以虚拟出串口使用)
- 通过TTL串口转USB,连接UART0 的默认引脚:
- RP2040 GPIO0(UART0 TX) <----> USB_TTL_RX
- RP2040 GPIO1(UART0 RX) <----> USB_TTL_TX
- 使用模块连接RP2040进行接线时
- RP2040 GPIO16 <----> W5100S MISO
- RP2040 GPIO17 <----> W5100S CS
- RP2040 GPIO18 <----> W5100S SCK
- RP2040 GPIO19 <----> W5100S MOSI
- RP2040 GPIO20 <----> W5100S RST
- 通过PC和设备都通过网线连接路由器LAN口
4.4 主要代码概述
我们使用的是WIZnet官方的ioLibrary_Driver库。该库支持的协议丰富,操作简单,芯片在硬件上集成了TCP/IP协议栈,该库又封装好了TCP/IP层之上的协议,我们只需简单调

本文介绍了W5100S/W5500以太网芯片如何应用SNTP协议进行精确时间同步,包括协议原理、优点、网络设置示例和注意事项,适合嵌入式系统开发者参考。
最低0.47元/天 解锁文章
2302

被折叠的 条评论
为什么被折叠?



