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

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

3天内不再提示

第二十章 W55MH32 WOL示例

W55MH32 来源:W55MH32 作者:W55MH32 2025-07-24 13:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单芯片解决方案,开启全新体验——W55MH32 高性能以太网单片机

W55MH32是WIZnet重磅推出的高性能以太网单片机,它为用户带来前所未有的集成化体验。这颗芯片将强大的组件集于一身,具体来说,一颗W55MH32内置高性能Arm® Cortex-M3核心,其主频最高可达216MHz;配备1024KB FLASH与96KB SRAM,满足存储与数据处理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP协议栈、内置MAC以及PHY,拥有独立的32KB以太网收发缓存,可供8个独立硬件socket使用。如此配置,真正实现了All-in-One解决方案,为开发者提供极大便利。

在封装规格上,W55MH32 提供了两种选择:QFN100和QFN68。

W55MH32L采用QFN100封装版本,尺寸为12x12mm,其资源丰富,专为各种复杂工控场景设计。它拥有66个GPIO、3个ADC、12通道DMA、17个定时器、2个I2C、5个串口、2个SPI接口(其中1个带I2S接口复用)、1个CAN、1个USB2.0以及1个SDIO接口。如此丰富的外设资源,能够轻松应对工业控制中多样化的连接需求,无论是与各类传感器、执行器的通信,还是对复杂工业协议的支持,都能游刃有余,成为复杂工控领域的理想选择。同系列还有QFN68封装的W55MH32Q版本,该版本体积更小,仅为8x8mm,成本低,适合集成度高的网关模组等场景,软件使用方法一致。更多信息和资料请进入http://www.w5500.com/网站或者私信获取。

此外,本W55MH32支持硬件加密算法单元,WIZnet还推出TOE+SSL应用,涵盖TCP SSL、HTTP SSL以及 MQTT SSL等,为网络通信安全再添保障。

为助力开发者快速上手与深入开发,基于W55MH32L这颗芯片,WIZnet精心打造了配套开发板。开发板集成WIZ-Link芯片,借助一根USB C口数据线,就能轻松实现调试、下载以及串口打印日志等功能。开发板将所有外设全部引出,拓展功能也大幅提升,便于开发者全面评估芯片性能。

若您想获取芯片和开发板的更多详细信息,包括产品特性、技术参数以及价格等,欢迎访问官方网页:http://www.w5500.com/,我们期待与您共同探索W55MH32的无限可能。

wKgZO2iBiBmAe3DyAACpGc5mWX8613.png

第二十章 W55MH32 WOL示例

本篇文章,我们将详细介绍如何在W55MH32芯片上面实现网络唤醒(Wake-on-LAN)功能。

该例程用到的其他网络协议,例如 DHCP,请参考相关章节。有关W55MH32的初始化过程,也请参考Network Install章节,这里将不再赘述。

1 WOL简介

WOL即网络唤醒(Wake-on-LAN)是一种用于通过网络远程唤醒计算机的网络标准协议。它允许通过发送特定的网络数据包(即“魔术包”)来唤醒处于休眠或关机状态的设备。

2 WOL特点

简单性:WOL的核心是魔术包(Magic Packet),其格式非常简单且固定。魔术包由102个字节组成,前6

个字节固定为0xFF,后续是目标设备的MAC地址重复16次。

设备待机唤醒:WOL允许设备在不使用时进入低功耗状态,如待机、休眠或关机状态。当有远程唤醒需求时

设备能够通过接收魔术包快速恢复到正常运行状态,满足用户的使用需求。

广播机制:魔术包通常是通过UDP广播的形式发送,即使设备的IP地址未知或存在多台设备,也能通过广播包找到目标设备。

安全性高:WOL协议基于 MAC地址来识别目标设备,只有当魔术包中包含的 MAC地址与网卡自身的 MAC地

址匹配时,设备才会被唤醒。

3 WOL应用场景

接下来,我们了解下在W55MH32上,可以使用WOL协议完成哪些操作及应用呢?

远程唤醒嵌入式设备:设备在待机状态时,通过网络唤醒恢复工作状态,如工业设备和智能家居设备。

智能网关与家庭自动化:通过魔术包唤醒智能家居网关设备,实现控制和管理。

网络设备批量唤醒:管理员通过 WOL技术批量唤醒多个设备进行维护和升级。

低功耗 IoT设备唤醒:IoT设备在低功耗模式下被唤醒执行任务,延长电池寿命。

嵌入式系统远程管理:设备在远程环境中被唤醒进行配置、管理或故障排除。目标设备匹配,则该设备将执

行唤醒操作,恢复到活动状态。

4 WOL协议基本工作流程

1.开启 WOL功能:被唤醒设备需要在 BIOS中开启 WOL功能,或者在操作系统中启用此功能,确保网络接口卡支持并启用了 WOL。

2.开启 UDP Socket:被唤醒设备通常需要开启一个 UDP Socket监听端口,用于接收来自网络的魔术包(Magic Packet)。

3.接收魔术包:当设备接收到一个符合标准的魔术包时,魔术包中包含了目标设备的 MAC地址,设备通过比对 MAC地址来判断是否应该被唤醒。

4.唤醒操作:如果魔术包中的 MAC地址与目标设备匹配,则该设备将执行唤醒操作,恢复到活动状态。

5实现过程

接下来,我们在 W55MH32上实现WOL远程唤醒测试。

注意:测试实例需要PC端和W55MH32处于同一网段。

wol_run()函数用于处理与UDP Socket相关的操作,以监听和处理网络唤醒魔术包。这个函数需要主循环中调用,如下所示:

while (1)
{
   wol_run(SOCKET_ID, ethernet_buf, local_port);
}

wol_run()函数内容如下:

/**
* @brief  Wake on Lan run function
* @param  sn: Socket number
* @param  buf: ethernet buffer pointer
* @param  local_port: Local port
* @return none
**/
void wol_run(uint8_t sn, uint8_t *buf, uint16_t local_port)
{
   switch (getSn_SR(sn))
   {
   case SOCK_UDP:
       if (getSn_IR(sn) & Sn_IR_RECV)
       {
           setSn_IR(sn, Sn_IR_RECV);
       }
       if (getIR() & IR_MP) // Received WOL Magic packet based on UDP.
       {
           printf("get wake on linern");
           setIR(0x10);
       }
       break;
   case SOCK_CLOSED:
       setIMR(IM_IR4); // Open WOL magic pack interrupt
       setMR(MR_WOL);  // Receive WOL packets
       socket(sn, Sn_MR_UDP, local_port, 0);
       printf("%d:Opened, UDP WOL, port [%d]rn", sn, local_port);
       break;
   }
}

wol_run需要传入3个参数,分别是socket号,socket缓存以及源端口号。

wol_run()函数通过不断检查socket状态,当socket处于SOCK_CLOSED状态时,会创建一个UDP模式的socket,并开启WOL功能以及中断,当socket处于SOCK_UDP模式时,只需不断的监听中断寄存器,当W55MH32收到魔法包时,IR寄存器的MP位(0x10)生效,此时可以进行唤醒操作。

6运行结果

烧录例程运行后,首先进行了PHY链路检测,然后通过DHCP设置网络信息,通过网络调试助手发送魔术包实现远程唤醒。使用sockettest网络助手发送hex格式数据需要勾选Enable $# command选项在每个数据前面加上$符号,注意不能有空格,空格会被转换为0X20。

注:(若使用其他网络调试助手发送HEX格式即可)

如下图所示:

wKgZPGiBxy6AAWDNAAEOmkcobis686.png

wKgZO2iBxy6AFqvSAACmT9YRvEg576.png

7总结

本文讲解了如何在 W55MH32芯片上实现网络唤醒(WOL)功能,通过实战例程展示了从设置 UDP Socket监听魔术包到接收并处理魔术包实现设备唤醒的完整过程。文章详细介绍了 WOL的概念、特点、应用场景、基本工作流程,帮助读者理解其在远程设备管理和节能方面的实际应用价值。

下一篇文章将聚焦 Low Power模式,解析调节PHY速率的方法,根据场景调节不同的 PHY速率以达成低功耗目标,敬请期待!

WIZnet是一家无晶圆厂半导体公司,成立于 1998年。产品包括互联网处理器 iMCU™,它采用 TOE(TCP/IP卸载引擎)技术,基于独特的专利全硬连线 TCP/IP。iMCU™面向各种应用中的嵌入式互联网设备。

WIZnet在全球拥有 70多家分销商,在香港、韩国、美国设有办事处,提供技术支持和产品营销。

香港办事处管理的区域包括:澳大利亚、印度、土耳其、亚洲(韩国和日本除外)。

审核编辑 黄宇

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

    关注

    5209

    文章

    20645

    浏览量

    336926
  • 以太网
    +关注

    关注

    41

    文章

    6177

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第二十章 浅谈BKP

    文章介绍了W55MH32的BKP模块,其含42个16 位备份寄存器,VDD掉电后由VBAT供电,具侵入检测和RTC校准功能。例程BKP_BackupData 测试数据读写,BKP_Tamper验证篡改检测机制。
    的头像 发表于 05-29 13:50 1803次阅读
    <b class='flag-5'>第二十章</b> 浅谈BKP

    第二W55MH32 DHCP示例

    本文介绍 DHCP 协议,包括其在 IP 网络自动分配参数的功能、便捷配置等特点、工作原理、报文格式和应用场景。通过 W55MH32 实战例程展示动态获取网络地址信息过程,含注册定时器中断、启用模式和获取信息等步骤,烧录后可完成检测与信息打印,PC 端能 PING 通设备。
    的头像 发表于 07-24 09:02 1039次阅读
    <b class='flag-5'>第二</b>章 <b class='flag-5'>W55MH32</b> DHCP<b class='flag-5'>示例</b>

    第五章 W55MH32 UDP示例

    本文介绍了在 W55MH32 芯片上实现 UDP 通信及数据回环测试的方法。阐述了 UDP 协议的概念、特点、应用场景、报文传输流程和报文结构,展示了实现过程,借助网络调试工具完成测试。
    的头像 发表于 07-24 09:13 1358次阅读
    第五章 <b class='flag-5'>W55MH32</b> UDP<b class='flag-5'>示例</b>

    第九章 W55MH32 HTTP Server示例

    本文介绍了在 W55MH32 芯片上实现 HTTP Server 功能,并通过浏览器修改其网络地址信息的方法。阐述了 HTTP 协议的概念、特点、应用场景、工作流程、请求方法、响应内容,以及 Web 页面构成和交互方式。展示了在W55MH32上实现的过程。
    的头像 发表于 07-24 09:35 1384次阅读
    第九章 <b class='flag-5'>W55MH32</b> HTTP Server<b class='flag-5'>示例</b>

    十章 W55MH32 SNTP示例

    本文讲解了如何在W55MH32芯片上实现SNTP授时功能,通过实例详细展示了从SNTP服务器同步时间的实现流程,包括时间请求、响应解析和本地时间校准等核心步骤。文章还对SNTP的应用场景进行了分析,帮助读者理解其在时间同步中的实际应用价值。
    的头像 发表于 07-24 09:43 1480次阅读
    第<b class='flag-5'>十章</b> <b class='flag-5'>W55MH32</b> SNTP<b class='flag-5'>示例</b>

    第十五章 W55MH32 SNMP示例

    本文讲解了如何在 W55MH32 芯片上实现 SNMP 功能,通过实战例程展示了使用 MIB Browser 管理 W55MH32 的具体过程,涵盖在 MIB Browser 中创建分支、添加叶子
    的头像 发表于 07-24 10:43 1207次阅读
    第十五章 <b class='flag-5'>W55MH32</b> SNMP<b class='flag-5'>示例</b>

    第十六章 W55MH32 PING示例

    本文讲解了如何在 W55MH32 芯片上通过 IPRAW 模式实现 ICMP 协议中的 PING 命令,以进行网络连通性测试,通过实战例程展示了从发送 PING 请求、接收并解析回复到统计结果的完整
    的头像 发表于 07-24 11:41 1146次阅读
    第十六章 <b class='flag-5'>W55MH32</b> PING<b class='flag-5'>示例</b>

    第二十一章 W55MH32 PHY配置示例

    本文讲解了如何在 W55MH32 芯片上设置不同的 PHY 模式,通过实战例程展示了根据不同传输场景,将 PHY 模式在 100Mbps 全双工、10Mbps 半双工和掉电模式之间切换以降
    的头像 发表于 07-24 13:44 1090次阅读
    <b class='flag-5'>第二十</b>一章 <b class='flag-5'>W55MH32</b> PHY配置<b class='flag-5'>示例</b>

    第二十二章 W55MH32 MQTT&amp;Aliyun示例

    本文讲解了如何在 W55MH32 芯片上实现 MQTT 协议并连接阿里云平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT 协议的概念、特点
    的头像 发表于 07-24 14:17 1149次阅读
    <b class='flag-5'>第二十</b>二章 <b class='flag-5'>W55MH32</b> MQTT&amp;Aliyun<b class='flag-5'>示例</b>

    第二十三章 W55MH32 MQTT_OneNET示例

    本文讲解了如何在 W55MH32 芯片上实现 MQTT 协议并连接 OneNET 平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT 协议
    的头像 发表于 07-24 14:59 1338次阅读
    <b class='flag-5'>第二十</b>三章 <b class='flag-5'>W55MH32</b> MQTT_OneNET<b class='flag-5'>示例</b>

    第二十五章 W55MH32 TCP_Server_Multi_Socket示例

    本文讲解了如何在 W55MH32 芯片上使用 8 个 socket 实现 TCP 服务器模式,让多个客户端连接进行数据回环测试,通过实战例程展示了从初始化 socket 到监听端口、处理客户端连接
    的头像 发表于 07-24 16:10 1332次阅读
    <b class='flag-5'>第二十</b>五章 <b class='flag-5'>W55MH32</b> TCP_Server_Multi_Socket<b class='flag-5'>示例</b>

    第二十六章 W55MH32 上位机搜索和配置示例

    本文讲解了如何在 W55MH32 芯片上实现上位机搜索和配置功能,通过实战例程展示了使用开源上位机配置工具 SmartConfigTool 搜索局域网中的 W55MH32 并进行网络地址配置的过程
    的头像 发表于 07-24 16:13 1099次阅读
    <b class='flag-5'>第二十</b>六章 <b class='flag-5'>W55MH32</b> 上位机搜索和配置<b class='flag-5'>示例</b>

    第二十七章 W55MH32 Interrupt示例

    本文讲解了如何在 W55MH32 芯片上使用 TOE 中断功能并进行回环数据测试,通过实战例程展示了从初始化中断引脚、处理中断、开启中断功能到在主循环中运行 TCP 回环服务器的完整过程。文章详细
    的头像 发表于 07-24 16:14 861次阅读
    <b class='flag-5'>第二十</b>七章 <b class='flag-5'>W55MH32</b> Interrupt<b class='flag-5'>示例</b>

    第二十九章 W55MH32 Modbus_TCP_Server示例

    本文讲解了如何在 W55MH32 芯片上实现 Modbus TCP 协议的服务器模式,通过实战例程展示了从初始化 LED 相关函数、主循环调用处理函数到解析处理接收到的报文的完整过程。文章详细介绍了
    的头像 发表于 07-24 16:18 1193次阅读
    <b class='flag-5'>第二十</b>九章 <b class='flag-5'>W55MH32</b> Modbus_TCP_Server<b class='flag-5'>示例</b>

    第三十章 W55MH32 HTTP_Server&amp;NetBIOS示例

    本文讲解了如何在 W55MH32 芯片上实现 HTTP_Server 与 NetBIOS 功能,并通过 NetBIOS 访问 HTTP 服务器网页内容,通过实战例程展示了在主循环中并行处理 HTTP 与 NetBIOS 相关事务的过程。
    的头像 发表于 07-24 16:21 1852次阅读
    第三<b class='flag-5'>十章</b> <b class='flag-5'>W55MH32</b> HTTP_Server&amp;NetBIOS<b class='flag-5'>示例</b>