W55RP20芯片 MicroPython 实战 (2):10 分钟搞定以太网 DHCP 自动联网
本文为 WIZnet W55RP20 芯片 MicroPython 教程第 2 篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。
版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。
前言
在嵌入式物联网开发中,网络连接永远是第一步,也是最容易踩坑的一步。
传统以太网开发面临三大普遍痛点:
- 资源占用高:软件 TCP/IP 协议栈会占用 MCU 大量 的 CPU 和内存资源,挤占主业务运行空间,实时性变差
- 开发难度大:外接以太网模块需要手动接线、调试接口时序、编写底层驱动,新手入门周期长,时间开销大
- 调试稳定门槛高:软件协议栈可参考资料少、问题定位困难,想要达到长期稳定运行,需要深度掌握网络原理与丰富的网络调试经验
W55RP20 作为 WIZnet 最新推出的 SiP 系统级芯片,它将微控制器与硬件 TCP/IP 以太网控制器集成在单一芯片中,TCP/IP协议栈处理完全由硬件完成,不占用任何 CPU 资源。
同时硬件名称 100% 兼容树莓派 Pico 的引脚和软件生态,实现了 “即插即用” 的工业级以太网开发体验。
本文将带你用 10 分钟时间,完成 W55RP20 的 MicroPython 环境搭建与 DHCP 自动联网测试。
学完本文,你将掌握:
- 硬件名称的固件烧录与环境配置
- X行代码实现以太网自动获取 IP 地址
- 网络连通性验证与常见故障排查
- W55RP20 对比传统方案的核心优势
系列教程学习路径
本系列共 16 篇,循序渐进覆盖从基础联网到工业级应用的全流程:
- 第 1 篇:静态 IP 配置与网络基础
- 第 2 篇:DHCP 自动联网与网络诊断(本文)
- 第 3 篇:TCP Client 客户端通信
- 第 4 篇:TCP Server 服务端通信
- 第 5 篇:UDP 单播数据通信
- 第 6 篇:UDP 组播/广播数据通信
- 第 7 篇:DNS 域名解析
- 第 8 篇:NTP 从网络获取时间
- 第 9 篇:HTTP Client 客户端请求
- 第 10 篇:HTTP Server 服务端搭建
- 第 11 篇:HTTP 协议与 OneNET 平台数据上云
- 第 12 篇:MQTT 协议基础通信验证
- 第 13 篇:MQTT 协议与阿里云平台对接
- 第 14 篇:MQTT 协议与 OneNET 平台对接
- 第 15 篇:MQTT 协议与 ThingSpeak 平台对接
- 第 16 篇:Modbus 工业协议通信
建议收藏本系列,跟随教程逐步学习,所有代码均会同步更新至官方 Gitee 仓库。
目录
2. 烧录 W55RP20 专属 MicroPython 固件
1. 准备工作
1.1 软件准备
| 软件名称 | 版本要求 | 下载地址 | 说明 |
|---|---|---|---|
| Thonny | 4.0 及以上 | Thonny 官方下载 | 轻量级 MicroPython IDE,支持代码编辑、烧录与串口调试 |
| W55RP20 MicroPython 固件 | 最新稳定版 | WIZnet 官方固件下载 | 专为 W55RP20 编写的固件,已集成 WIZnet 硬件驱动 |
1.2 硬件准备
[此处插入 硬件名称实物图]
- 硬件名称 × 1
- Micro USB 数据线(必须支持数据传输,不能使用纯充电线) × 1
- 标准网线 × 1
- 开启 DHCP 功能的路由器 / 交换机 × 1
硬件名称 已板载以太网接口,无需额外焊接飞线其他器件,即插即用。
大幅降低了接线错误和硬件故障概率。
2. 烧录 W55RP20 专属 MicroPython 固件
W55RP20 完全兼容树莓派 Pico 的 UF2 固件烧录方式,操作简单无需额外烧录器:
- 按住硬件名称上的BOOTSEL按键不放
- 使用 Micro USB 数据线连接开发板与电脑
- 待电脑识别出名为
RPI-RP2的 U 盘后,松开 BOOTSEL 按键 - 将下载好的
W55RP20_EVB_PICO_firmware.uf2固件文件拖拽到 U 盘中 - 开发板会自动重启,固件烧录完成
注意:如果电脑没有识别出
RPI-RP2U 盘,请尝试更换 USB 数据线、重新插拔开发板,或更换电脑 USB 接口。
3. 硬件连接与开发环境配置
3.1 硬件连接
硬件名称 的连接极其简单,仅需两步:
- 使用 Micro USB 数据线连接开发板与电脑(用于供电、代码烧录和串口调试)
- 使用网线连接开发板的以太网接口与路由器的 LAN 口
【硬件预留】此处插入硬件连接示意图
3.2 Thonny 开发环境配置
- 打开 Thonny 软件,点击顶部菜单栏「运行」→「配置解释器」
- 切换到「解释器」选项卡
- 在「解释器」下拉列表中选择
MicroPython (通用) - 在「端口」下拉列表中选择 硬件名称 对应的串口(通常显示为
Board CDC @ COMx) - 勾选「运行代码前先重启解释器」和「同步设备的实时时钟」
- 点击「确定」完成配置
如果端口列表中没有出现开发板,请尝试:
- 重新插拔 USB 数据线
- 更换支持数据传输的 USB 数据线
- 关闭其他占用串口的软件(如串口助手、Arduino IDE 等)
- 重新烧录 MicroPython 固件
4. DHCP 自动联网原理
4.1 DHCP 协议简介
自我补充
4.2 DHCP 工作流程
W55RP20 的 DHCP 代码流程如下:
开发板上电 → 硬件初始化以太网控制器 → 硬件发送DHCP发现报文
→ 路由器回复DHCP提供报文 → 硬件发送DHCP请求报文
→ 路由器回复DHCP确认报文 → 硬件自动配置网络参数
→ 应用层获取网络信息
5. 核心代码解析
W55RP20 的 MicroPython 库已经封装了所有底层细节,实现 DHCP 自动联网仅需 X 行核心代码。
5.1 完整代码
自己补充例程代码,并带有中文注释代码功能
5.2 扩展:静态 IP 配置(可选)
如果需要使用静态 IP 地址,只需将dhcp=True改为dhcp=False,并传入静态 IP 参数即可:
自己补充
6. 运行结果与网络验证
6.1 串口输出结果
在 Thonny 中点击运行按钮(或按 F5 键),Shell 窗口会输出类似以下内容:
自我补充
说明:程序运行初期打印的
Waiting for the network to connect...是正常现象,这是 W55RP20 在等待路由器分配 IP 地址,通常会打印 1-3 次,具体取决于网络环境。
6.2 网络连通性验证
打开电脑的命令提示符(Windows)或终端(Mac/Linux),输入以下命令 ping 开发板的 IP 地址:
ping 192.168.1.129
如果收到类似以下回复,说明网络连通正常:
来自 192.168.1.129 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.129 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.129 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.129 的回复: 字节=32 时间<1ms TTL=64
7. 常见问题一站式排查指南
7.1 烧录相关问题
| 问题现象 | 排查步骤 |
|---|---|
电脑无法识别RPI-RP2U 盘 | 1. 确认按住 BOOTSEL 按键再插 USB 2. 更换支持数据传输的 USB 数据线 3. 更换电脑 USB 接口(优先使用 USB 2.0 接口) 4. 尝试使用另一台电脑 |
| 固件拖拽后开发板无反应 | 1. 确认下载的是 W55RP20 专属固件,不是通用树莓派 Pico 固件 2. 重新烧录固件 3. 检查 USB 供电是否稳定 |
7.2 端口识别问题
| 问题现象 | 排查步骤 |
|---|---|
| Thonny 中找不到开发板端口 | 1. 重新插拔 USB 数据线 2. 关闭其他占用串口的软件 3. 在设备管理器中查看是否有 Board CDC设备4. 重新烧录固件 5. 安装树莓派 Pico USB 驱动 |
7.3 网络连接问题
| 问题现象 | 排查步骤 |
|---|---|
一直显示Waiting for the network to connect... | 1. 检查网线是否插紧,网口指示灯是否闪烁 2. 确认网线连接到路由器的 LAN 口,不是 WAN 口 3. 确认路由器已开启 DHCP 功能 4. 更换路由器 LAN 口或网线 5. 重启路由器和开发板 |
IP 地址显示为0.0.0.0 | 1. 执行上述网络连接排查步骤 2. 确认代码中开发板型号填写正确( "硬件名称")3. 确认使用的是 W55RP20 专属固件 4. 尝试使用静态 IP 配置 |
| 电脑 ping 不通开发板 | 1. 确认电脑和开发板连接到同一个路由器 2. 关闭电脑的防火墙和杀毒软件 3. 检查开发板的 IP 地址是否正确 4. 重启开发板和电脑 |
8. W55RP20 核心优势对比
为了让你更直观地了解 W55RP20 的价值,我们对比了目前主流的三种嵌入式以太网方案:
| 对比维度 | W55RP20 集成方案 | 外接 PHY芯片 方案 | 外接 串口转以太网模块 方案 |
|---|---|---|---|
| BOM 成本 | 低 | 中高 | 高 |
| PCB 面积 | 小 | 大 | 高 |
| 开发难度 | 低 | 中高 | 低 |
| 网络稳定性 | 极高(WIZnet 专注硬件 TCP/IP协议栈25年) | 不定(对于研发人员要求高,熟悉协议栈与网络开发,才能调试稳定) | 不定 |
| CPU 资源占用 | 0%(协议栈网络处理完全由硬件完成) | 50%以上(协议栈完全运行在MCU上,占用相关资源) | 0% |
| 硬件 Socket 数量 | 8 个独立硬件 Socket | 视MCU能力而定,理论支持多路拓展 | 一般为单路透传 |
| 网络吞吐量 | 最高 15Mbps | 视MCU能力而定 | 约 3-5Mbps |
| 接口易用性 | 单芯片集成 | 要MCU带有MII/RMII等接口 | TTL接口 |
| 部署难度 | 低( | 高(应用层协议需要手动移植开源库适配) | 视模块集成情况,无集成的功能需要自我封包拆包 |
9. 典型应用场景
W55RP20 芯片集成以太网功能,结合其工业级稳定性,非常适合以下应用场景:
- 工业数据采集网关:简化现场部署,实现传感器数据的稳定上传
- 远程监控终端:用于工厂、机房、变电站等环境的设备状态远程监控
- 串口转网口设备:将传统 RS232/RS485 串口设备快速升级为以太网设备
- 智能楼宇节点:用于照明、空调、门禁等楼宇设备的网络控制
- 工业 PLC 扩展模块:为 PLC 增加以太网通信能力,实现远程编程和数据采集
10. 系列预告与资源获取
10.1 系列预告
下一篇教程我们将讲解 W55RP20 MicroPython开发下的 TCP Client 实现,带你了解连接建立、心跳包维护、异常重连等关键机制,掌握嵌入式以太网通信的基础能力。
10.2 资源获取
- 本文完整代码:WIZnet 官方 Gitee 仓库
- W55RP20 芯片手册:WIZnet 官方资料网址
如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!
如有任何问题,欢迎在评论区留言,我们会第一时间回复。
更多推荐



所有评论(0)