单芯片解决方案,开启全新体验——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的无限可能。

第二十章 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格式即可)
如下图所示:


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 DHCP示例
第五章 W55MH32 UDP示例
第九章 W55MH32 HTTP Server示例
第十章 W55MH32 SNTP示例
第十五章 W55MH32 SNMP示例
第十六章 W55MH32 PING示例
第二十一章 W55MH32 PHY配置示例
第二十二章 W55MH32 MQTT&Aliyun示例
第二十三章 W55MH32 MQTT_OneNET示例
第二十五章 W55MH32 TCP_Server_Multi_Socket示例
第二十六章 W55MH32 上位机搜索和配置示例
第二十七章 W55MH32 Interrupt示例
第二十九章 W55MH32 Modbus_TCP_Server示例
第三十章 W55MH32 HTTP_Server&NetBIOS示例
第二十章 W55MH32 WOL示例
评论