本文为 WIZnet W55RP20 芯片 MicroPython 教程第 2 篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。
版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。
前言
上一篇文章中,我们已经完成了 W55RP20芯片 静态 IP 配置与网络基础,了解了 IP 地址、子网掩码、网关和 DNS 等基础网络参数的含义。
本篇内容继续围绕 W55RP20芯片 的以太网联网方式展开,重点介绍 DHCP 自动获取 IP 地址。
在实际项目中,如果每次都手动配置静态 IP,容易出现网段不一致、IP 地址冲突、网关填写错误等问题。DHCP 可以让开发板自动从路由器获取网络参数,降低配置难度,也更适合快速验证开发板的以太网功能。
W55RP20-EVB-MKR 开发板 已经板载以太网接口,配合 MicroPython 示例工程,只需要运行简单的 DHCP 示例代码,就可以让开发板自动获取 IP 地址。
学完本文,你将掌握:
-
静态 IP 与 DHCP 的区别
-
DHCP 自动联网的基本流程
-
如何查看 MAC 地址和 IP 地址信息
-
如何判断 DHCP 是否获取成功
-
常见联网失败问题的排查方法
系列教程学习路径
本系列共 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 仓库。
目录
- 1 准备工作
- 2 烧录 W55RP20 专属 MicroPython 固件
- 3 硬件连接与开发环境配置
- 4 DHCP 自动联网原理
- 5 核心代码解析
- 6 运行结果与网络验证
- 7 常见问题一站式排查指南
- 8 W55RP20 核心优势对比
- 9 典型应用场景
- 10 系列预告与资源获取
1. 准备工作
1.1 软件准备
| 软件名称 | 版本要求 | 下载地址 | 说明 |
|---|---|---|---|
| Thonny | 4.0 及以上 | Thonny 官方下载 | 轻量级 MicroPython IDE,支持代码编辑、运行和串口调试 |
| W55RP20 MicroPython 固件 | 最新稳定版 | WIZnet 官方固件下载 | 专为 W55RP20 编写的 MicroPython 固件 |
1.2 硬件准备
如图所示,W55RP20-EVB-MKR 开发板实物图。

需要准备以下硬件:
- W55RP20-EVB-MKR开发板× 1;
- USB 数据线 × 1;
- 标准网线 × 1;
- 已开启 DHCP 功能的路由器或交换机 × 1。
提示:
W55RP20-EVB-MKR已经板载以太网接口,已板载以太网接口,无需额外焊接飞线其他器件,即插即用。
大幅降低了接线错误和硬件故障概率。
2. 烧录 W55RP20 专属 MicroPython 固件
W55RP20-EVB-MKR 开发板兼容树莓派 Pico 的 UF2 固件烧录方式,操作步骤如下:
- 使用 USB 数据线连接开发板和电脑;
- 按住开发板上的
BOOTSEL按键; - 点按
RUN按键; - 电脑识别出
RPI-RP2磁盘后松开按键; - 将
.uf2固件文件拖入RPI-RP2磁盘; - 开发板自动重启,固件烧录完成。
注意:如果电脑没有识别出RPI-RP2U 盘,请尝试更换 USB 数据线、重新插拔开发板,或更换电脑 USB 接口
3. 硬件连接与开发环境配置
3.1 硬件连接
W55RP20-EVB-MKR 的连接极其简单,仅需两步:
-
使用 USB数据线连接开发板与电脑(用于供电、代码烧录和串口调试)
-
使用网线连接开发板的以太网接口与路由器的 LAN 口
如图所示,此图为硬件连接示意图。

3.2 Thonny 开发环境配置
-
打开 Thonny 软件,点击顶部菜单栏「运行」→「配置解释器」
-
切换到「解释器」选项卡
-
在「解释器」下拉列表中选择
MicroPython(通用) -
在「端口」下拉列表中选择
W55RP20对应的串口(通常显示为Board CDC @ COMx) -
勾选「运行代码前先重启解释器」和「同步设备的实时时钟」
-
点击「确定」完成配置
配置完成后的界面如下图所示:

如果端口列表中没有出现开发板,请尝试:
- 重新插拔 USB 数据线
- 更换支持数据传输的 USB 数据线
- 关闭其他占用串口的软件(如串口助手、Arduino IDE 等)
- 重新烧录 MicroPython 固件
4. DHCP 自动联网原理
4.1 DHCP 协议简介
DHCP,全称 Dynamic Host Configuration Protocol,中文通常称为动态主机配置协议。
它的作用是让设备接入网络后,自动从 DHCP 服务器获取网络参数。家庭或办公网络中,路由器通常就充当 DHCP 服务器。
开发板通过 DHCP 成功联网后,通常可以获得以下参数:
| 参数 | 说明 |
|---|---|
| IP 地址 | 开发板在局域网中的地址 |
| 子网掩码 | 用于判断当前设备所在网段 |
| 网关 | 通常是路由器地址 |
| DNS | 用于域名解析 |
简单理解,DHCP 就是让开发板自动向路由器申请一个可用的 IP 地址。
4.2 DHCP 工作流程
W55RP20-EVB-MKR 的 DHCP 运行流程可以理解为:
开发板上电
↓
初始化以太网硬件
↓
发送 DHCP 请求
↓
路由器分配 IP 地址
↓
开发板获取 IP、网关、DNS 等参数
↓
应用程序读取并打印网络信息
5. 核心代码解析
W55RP20 的 MicroPython 库已经封装了所有底层细节,实现 DHCP 自动联网仅需 X 行核心代码。
5.1 完整代码
打开 DHCP 例程文件,或在 Thonny 中输入以下代码:
from wiznet_init import wiznet # 导入 WIZnet 网络初始化函数
# 初始化 W55RP20-EVB-MKR 网络
# dhcp=True 表示启用 DHCP,由路由器自动分配 IP 地址、网关、DNS 等网络参数
nic = wiznet("W55RP20-EVB-MKR", dhcp=True)
5.2 扩展:静态 IP 配置(可选)
如果需要使用静态 IP 地址,可以将 dhcp=True 改为 dhcp=False,并手动传入 IP、子网掩码、网关和 DNS 参数。
from wiznet_init import wiznet # 导入 WIZnet 网络初始化函数
# 使用静态 IP 初始化网络
nic = wiznet(
"W55RP20-EVB-MKR",
dhcp=False, # 关闭 DHCP,启用静态 IP
ip="192.168.1.129", # 开发板固定 IP 地址
sn="255.255.255.0", # 子网掩码
gw="192.168.1.1", # 网关地址,通常是路由器地址
dns="8.8.8.8" # DNS 服务器地址
)
需要注意的是,静态 IP 地址需要和电脑、路由器处于同一网段。
例如路由器地址为 192.168.1.1,则开发板 IP 可以设置为 192.168.1.xxx,例如 192.168.1.129。其中 xxx 建议选择局域网中未被其他设备占用的地址。
6. 运行结果与网络验证
完成硬件连接和 Thonny 开发环境配置后,就可以运行 DHCP 示例程序,并查看 W55RP20-EVB-MKR 是否成功获取到 IP 地址。
本节主要通过 运行结果截图 和 视频演示 展示 DHCP 自动联网过程。
6.1 串口输出结果截图
在 Thonny 中点击运行按钮,或按 F5 运行程序。
运行后,Shell 窗口会输出类似以下内容:
MPY: soft reboot
Waiting for the network to connect...
Waiting for the network to connect...
Waiting for the network to connect...
Waiting for the network to connect...
MAC Address: 02:90:86:88:4d:56
IP Address: ('192.168.1.129', '255.255.255.0', '192.168.1.1', '202.96.134.33')
说明:程序运行初期打印的
Waiting for the network to connect...是正常现象,这是 W55RP20 在等待路由器分配 IP 地址,通常会打印 1-3 次,具体取决于网络环境。
实际运行结果如下图所示:

从运行结果可以看到,程序最终打印出了 MAC 地址和 IP 地址信息。
其中:
MAC Address: 02:90:86:88:4d:56
表示当前开发板的 MAC 地址。
IP Address: ('192.168.1.129', '255.255.255.0', '192.168.1.1', '202.96.134.33')
表示开发板通过 DHCP 获取到的网络参数。
字段说明如下:
| 字段 | 实际值 | 说明 |
|---|---|---|
| IP 地址 | 192.168.1.129 | W55RP20-EVB-MKR 获取到的局域网 IP 地址 |
| 子网掩码 | 255.255.255.0 | 当前局域网的子网掩码 |
| 网关 | 192.168.1.1 | 路由器地址 |
| DNS | 202.96.134.33 | DNS 服务器地址 |
如果第一个字段不是 0.0.0.0,而是类似 192.168.x.x 的有效局域网 IP,说明 DHCP 获取成功。
6.2 DHCP 自动联网 视频 演示
下面的 视频 展示了运行 dhcp.py 后,开发板通过 DHCP 自动获取 IP 地址的过程。
程序最终打印出 MAC Address 和 IP Address,其中 IP Address 为有效局域网地址,说明 W55RP20-EVB-MKR 已成功接入网络。
视频 演示如下:

通过截图和 视频 可以看到,W55RP20-EVB-MKR 已经成功通过 DHCP 获取到 IP 地址,说明开发板已正常接入局域网,后续可以进行 TCP、UDP、MQTT、HTTP 等网络通信测试。
7. 常见问题一站式排查指南
7.1 烧录相关问题
| 问题现象 | 排查步骤 |
|---|---|
电脑无法识别 RPI-RP2 磁盘 | 1. 确认按住 BOOTSEL 按键再连接 USB2. 更换支持数据传输的 USB 数据线 3. 更换电脑 USB 接口 4. 尝试使用另一台电脑 |
| 固件拖拽后开发板无反应 | 1. 确认固件与 W55RP20-EVB-MKR 匹配 2. 重新烧录固件 3. 检查 USB 供电是否稳定 |
7.2 端口识别问题
| 问题现象 | 排查步骤 |
|---|---|
| Thonny 中找不到开发板端口 | 1. 重新插拔 USB 数据线 2. 关闭其他占用串口的软件 3. 在设备管理器中查看是否有新串口设备 4. 重新烧录 MicroPython 固件 5. 安装树莓派 Pico USB 驱动 |
7.3 网络连接问题
| 问题现象 | 排查步骤 |
|---|---|
一直显示 Waiting for the network to connect... | 1. 检查网线是否插紧 2. 确认网线连接到路由器 LAN 口 3. 确认路由器 DHCP 功能已开启 4. 更换路由器 LAN 口或网线 5. 重启路由器和开发板 |
IP 地址显示为 0.0.0.0 | 1. 执行上述网络连接排查步骤 2. 确认代码中开发板型号填写正确 3. 确认使用的是匹配的 MicroPython 固件 4. 尝试重新运行程序 |
| 电脑 ping 不通开发板 | 1. 确认电脑和开发板连接到同一路由器 2. 检查开发板 IP 地址是否正确 3. 临时关闭电脑防火墙测试 4. 重启开发板和电脑 |
8. W55RP20 核心优势对比
为了让你更直观地了解 W55RP20 的价值,我们对比了目前主流的三种嵌入式以太网方案:
| 对比维度 | W55RP20 集成方案 | 外接 PHY 芯片方案 | 外接串口转以太网模块方案 |
|---|---|---|---|
| BOM 成本 | 低 (单芯片) | 中高 (MCU + 模块 + 外围器件) | 高 |
| PCB 面积 | 小 (仅需网口电路) | 大 (需预留芯片和布线空间) | 高 |
| 开发难度 | 低 (一行代码联网) | 中高 (调试协议栈、编写驱动) | 低 |
| 网络稳定性 | 极高 (WIZnet 专注硬件 TCP/IP 协议栈 25 年) | 不定 (对于研发人员要求高,熟悉协议栈与网络开发,才能调试稳定) | 不定 (视研发公司能力水平) |
| CPU 资源占用 | 0% (协议栈网络处理完全由硬件完成) | 50% 以上 (协议栈完全运行在 MCU 上,占用相关资源) | 0% |
| 硬件 Socket 数量 | 8 个独立硬件 Socket | 视 MCU 能力而定,理论支持多路拓展 | 一般为单路透传 |
| 网络吞吐量 | 最高 15Mbps | 视 MCU 能力而定 | 约 3-5Mbps |
| 接口易用性 | 单芯片集成 | 要 MCU 带有 MII/RMII 等接口 | TTL 接口 |
| 部署难度 | 低 (MicroPython 成熟固件,应用层协议绝大部分均有库文件,可灵活添加部署) | 高 (应用层协议需要手动移植开源库适配) | 视模块集成情况,无集成的功能需要自我封包拆包 |
W55RP20-EVB-MKR 已经板载以太网接口,因此非常适合新手快速完成以太网功能验证。
9. 典型应用场景
W55RP20 芯片集成以太网功能,适合以下应用场景:
- 工业数据采集网关;
- 远程监控终端;
- 串口转网口设备;
- 智能楼宇控制节点;
- 工业 PLC 扩展模块;
- 传感器数据采集与上传;
10. 系列预告与资源获取
10.1 系列预告
下一篇教程可以继续讲解 W55RP20 MicroPython 开发下的 TCP Client 实现,包括连接建立、数据发送、数据接收、异常重连等内容。
10.2 资源获取
- 本文完整代码:WIZnet Pico MicroPython 示例工程
- W55RP20 芯片手册:WIZnet 官方资料页面
下一篇我们讲解:W55RP20-EVB-MKR 模块 MicroPython 实战 (3):TCP Client 客户端通信
如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!
如有任何问题,欢迎在评论区留言,我们会第一时间回复。
409

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



