W55RP20-EVB-MKR 模块 MicroPython 实战 (2):10 分钟搞定以太网 DHCP 自动联网

本文为 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. 第 1 篇:静态 IP 配置与网络基础
  2. 第 2 篇:DHCP 自动联网与网络诊断(本文)
  3. 第 3 篇:TCP Client 客户端通信
  4. 第 4 篇:TCP Server 服务端通信
  5. 第 5 篇:UDP 单播数据通信
  6. 第 6 篇:UDP 组播/广播数据通信
  7. 第 7 篇:DNS 域名解析
  8. 第 8 篇:NTP 从网络获取时间
  9. 第 9 篇:HTTP Client 客户端请求
  10. 第 10 篇:HTTP Server 服务端搭建
  11. 第 11 篇:HTTP 协议与 OneNET 平台数据上云
  12. 第 12 篇:MQTT 协议基础通信验证
  13. 第 13 篇:MQTT 协议与阿里云平台对接
  14. 第 14 篇:MQTT 协议与 OneNET 平台对接
  15. 第 15 篇:MQTT 协议与 ThingSpeak 平台对接
  16. 第 16 篇:Modbus 工业协议通信

建议收藏本系列,跟随教程逐步学习,所有代码均会同步更新至官方 Gitee 仓库。


目录


1. 准备工作

1.1 软件准备

软件名称版本要求下载地址说明
Thonny4.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 固件烧录方式,操作步骤如下:

  1. 使用 USB 数据线连接开发板和电脑;
  2. 按住开发板上的 BOOTSEL 按键;
  3. 点按 RUN 按键;
  4. 电脑识别出 RPI-RP2 磁盘后松开按键;
  5. .uf2 固件文件拖入 RPI-RP2 磁盘;
  6. 开发板自动重启,固件烧录完成。

注意:如果电脑没有识别出RPI-RP2U 盘,请尝试更换 USB 数据线、重新插拔开发板,或更换电脑 USB 接口

3. 硬件连接与开发环境配置

3.1 硬件连接

W55RP20-EVB-MKR 的连接极其简单,仅需两步:

  1. 使用 USB数据线连接开发板与电脑(用于供电、代码烧录和串口调试)

  2. 使用网线连接开发板的以太网接口与路由器的 LAN 口

如图所示,此图为硬件连接示意图。

在这里插入图片描述

3.2 Thonny 开发环境配置

  1. 打开 Thonny 软件,点击顶部菜单栏「运行」→「配置解释器」

  2. 切换到「解释器」选项卡

  3. 在「解释器」下拉列表中选择 MicroPython(通用)

  4. 在「端口」下拉列表中选择 W55RP20 对应的串口(通常显示为 Board CDC @ COMx

  5. 勾选「运行代码前先重启解释器」和「同步设备的实时时钟」

  6. 点击「确定」完成配置

配置完成后的界面如下图所示:
在这里插入图片描述

如果端口列表中没有出现开发板,请尝试:

  • 重新插拔 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.129W55RP20-EVB-MKR 获取到的局域网 IP 地址
子网掩码255.255.255.0当前局域网的子网掩码
网关192.168.1.1路由器地址
DNS202.96.134.33DNS 服务器地址

如果第一个字段不是 0.0.0.0,而是类似 192.168.x.x 的有效局域网 IP,说明 DHCP 获取成功。


6.2 DHCP 自动联网 视频 演示

下面的 视频 展示了运行 dhcp.py 后,开发板通过 DHCP 自动获取 IP 地址的过程。

程序最终打印出 MAC AddressIP Address,其中 IP Address 为有效局域网地址,说明 W55RP20-EVB-MKR 已成功接入网络。

视频 演示如下:
在这里插入图片描述
通过截图和 视频 可以看到,W55RP20-EVB-MKR 已经成功通过 DHCP 获取到 IP 地址,说明开发板已正常接入局域网,后续可以进行 TCP、UDP、MQTT、HTTP 等网络通信测试。


7. 常见问题一站式排查指南

7.1 烧录相关问题

问题现象排查步骤
电脑无法识别 RPI-RP2 磁盘1. 确认按住 BOOTSEL 按键再连接 USB
2. 更换支持数据传输的 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.01. 执行上述网络连接排查步骤
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 芯片集成以太网功能,适合以下应用场景:

  1. 工业数据采集网关;
  2. 远程监控终端;
  3. 串口转网口设备;
  4. 智能楼宇控制节点;
  5. 工业 PLC 扩展模块;
  6. 传感器数据采集与上传;

10. 系列预告与资源获取

10.1 系列预告

下一篇教程可以继续讲解 W55RP20 MicroPython 开发下的 TCP Client 实现,包括连接建立、数据发送、数据接收、异常重连等内容。

10.2 资源获取

下一篇我们讲解:W55RP20-EVB-MKR 模块 MicroPython 实战 (3):TCP Client 客户端通信

如果本文对你有帮助,欢迎点赞、收藏、关注,你的支持是我们持续更新的动力!
如有任何问题,欢迎在评论区留言,我们会第一时间回复。

内容概要:本文研究了计及碳排放的多微网电能交互分布式运行策略,提出了一种基于交替方向乘子法(ADMM)的优化方法,旨在实现多微电网系统在满足能源供需平衡的同时降低碳排放。文中构建了包含分布式电源、储能系统、可控负荷及碳排放约束的多微网协同优化模型,通过ADMM算法将全局优化问题分解为各微网子系统独立求解的子问题,实现分布式协同调度,在保障各微网自治性的同时兼顾系统整体的经济性与低碳性。研究通过Matlab代码完成了算法仿真,验证了所提策略在提升能源利用效率、减少碳排放、增强系统鲁棒性与可扩展性方面的有效性,为低碳化、去中心化的能源互联网运行提供了理论支持与实践参考。; 适合人群:具备电力系统分析、优化理论及Matlab编程基础的科研人员、电气工程及相关专业的研究生,以及从事智慧能源、分布式能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于多微电网系统的分布式能量管理与协同优化调度;②支持“双碳”目标下的低碳电网运行策略设计与政策评估;③为ADMM等分布式优化算法在能源系统中的工程化应用提供完整的模型构建、算法实现与仿真验证案例。; 阅读建议:读者应结合Matlab代码深入理解ADMM算法的迭代流程、拉格朗日函数构造与收敛条件设定,重点关注模型中碳排放因子的引入方式、变量分解机制与子问题求解过程,建议通过调整微网数量、碳价参数及通信拓扑结构进行多场景仿真,以深化对分布式协同机制与环保经济权衡关系的理解。
下载代码方式:https://pan.quark.cn/s/cc130f55eddd BUCK变换器,亦称为降压型转换器,在开关电源技术中属于一种基础电路拓扑,其核心功能在于实现从高电压到低电压的转换,并且在转换过程中确保输出端电压的稳定性。本文的核心内容集中在对BUCK变换器的运行机制进行剖析、阐释电流连续模式(CCM)与断续模式(DCM)之间的差异,并深入探讨这两种模式在稳态下的相互关系,同时研究BUCK变换器的交流等效电路模型以及电压与电流补偿回路的构建方法。BUCK变换器的原理示意图如图1所示,其显著特征在于输出电压值低于输入电压值,输出电流保持连续状态,而输入电流则呈现出脉动特性。变换器的工作过程可以划分为两个主要阶段:在第一个阶段,即开关管导通期间,电感元件负责储存能量,电流呈现出线性增长的趋势,并且同时向负载提供能量;在第二个阶段,即开关管截止期间,电感通过二极管实现能量的续流,电流则表现出线性递减的态势。依据电感元件的伏秒平衡原理,可以推导出涉及开关管占空比、电感元件电感量、输入电压以及输出电压之间关系的数学公式,这些公式对于深入理解和设计BUCK变换器具有关键性的指导意义。 接下来,文章对CCM和DCM两种模式进行了详细的比较分析。在CCM模式下,电感电流在整个开关周期内均保持连续的状态,而在DCM模式下,电感电流则会出现中断现象。确定BUCK变换器工作模式的关键依据是其电感电流纹波值与输出电流值相等这一边界条件。当电流纹波值等于零,即在整个开关周期内电感电流保持完全连续时,BUCK变换器被归类为CCM模式;相对地,若电流纹波值大于零,则表明变换器处于DCM模式;介于两者之间的情况则界定为CCM与DCM的过渡状态。 在DCM模式下,对BUCK...
源码链接: https://pan.quark.cn/s/ae09e867d64c S参数指的是散射参数,其英文全称为“Scattering-Parameter”。该参数用于表征电路网络中信号传输与反射的特性,是微波领域中衡量电路网络性能的核心指标。以二端口网络为例,比如单根传输线,其包含四个S参数,分别为S11、S12、S21和S22。其中,S11代表端口1的反射系数,S12代表端口1至端口2的反向传输系数,S21代表端口2至端口1的正向传输系数,而S22则表示端口2的反射系数。在高速电路设计领域,S参数是评估电路网络性能的关键依据。对于互易性网络,存在S12=S21的关系;对于对称性网络,满足S11=S22的条件;而对于无耗性网络,则有S11*S11+S21*S21=1,即网络不产生能量损耗,从端口1输入的能量要么被反射回端口1,要么被传输至端口2。在实际应用场景中,S参数能够用于评估电路网络的性能表现,例如,S11体现回波损耗,即有多少能量被反射回源端(Port1),该值越小越好,通常推荐S11<0.1,即-20dB。S21则反映插入损耗,即有多少能量被传输到目的端(Port2),该值越大越优,理想值为1,即0dB,传输效率越高,一般建议S21>0.7,即-3dB。此外,S参数还可用于判断电路网络的互易性与对称性。在高速电路设计过程中,这些参数具有显著意义,因为它们对电路网络的性能和稳定性具有直接影响。S参数是评估电路网络性能的核心指标,能够衡量电路网络的信号传输和反射能力,对于高速电路设计而言至关重要。关于Z参数和Smith圆图,Z参数属于阻抗参数,而Smith圆图是反射系数(以符号Γ表示)的极坐标图形。Smith圆图可用于评估电路网络的阻抗匹配状况...
内容概要:本文围绕基于序贯蒙特卡洛模拟法的配电网可靠性评估展开研究,系统阐述了该方法在电力系统中的应用原理与实现路径。通过Matlab代码实现了系统状态抽样、状态分析、可靠性指标计算等关键环节,并结合IEEE标准测试系统进行仿真验证,有效评估配电网在不同运行工况下的可靠性水平。研究不仅提供了完整的算法实现框架,还拓展至阶梯式碳交易、供需响应、N-k安全约束等多种复杂场景,体现了其在现代综合能源系统优化中的广泛适用性。配套资源丰富,涵盖多个电力系统前沿研究方向的技术实现与论文复现案例。; 适合人群:具备电力系统基础知识和Matlab编程能力的科研人员与工程技术人员,特别适用于从事配电网可靠性分析、综合能源系统优化、电力系统仿真等领域的高校研究生、科研机构研究人员及电力行业工程师。; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在配电网可靠性评估中的建模与仿真方法;②学习利用Matlab进行电力系统随机模拟与数据分析;③为电网规划、运行风险评估及故障恢复策略制定提供量化依据;④拓展对智能优化算法、机器学习及多能协同调度在电力系统中集成应用的理解。; 阅读建议:此资源不仅提供可运行的Matlab代码,还融合了大量科研实践案例,建议读者结合文中仿真模型与实际算例进行动手复现,深入理解算法细节与工程背景,同时关注相关领域如微电网优化、故障诊断、路径规划等交叉技术的发展,以提升综合科研与工程应用能力。
源码直接下载地址: https://pan.quark.cn/s/9af8b9f95652 ### Multisim模型的导入和使用 ### 一、引言 随着电子设计自动(EDA)工具的进步,Multisim已经成为电子工程师进行电路仿真、分析和设计的关键工具之一。借助Multisim,工程师们能够便捷地构建电路模型,并对电路进行仿真验证。本文将系统阐述如何在Multisim中导入并运用芯片仿真模型,这对于提升电子产品的研发效能具有显著价值。 ### 二、Multisim中构建新元器件 构建新元器件是Multisim中的核心功能,特别是对于那些需要特定模型或无法从Multisim库中直接获取的元器件来说更为关键。以下为构建新元器件的具体流程: ##### 步骤1:录入元器件信息 在Multisim中启动“Component Wizard”,即元器件向导,开始创建新的元器件。首先需要录入元器件的基本资料,包括型号、主要功能、类型等。这些资料将有助于用户更高效地管理和检索元器件。 ##### 步骤2:录入封装信息 接下来需要设定元器件的封装信息。在这一环节中,用户需要依据实际芯片的封装规格来选择适宜的引脚数量。同时,还需明确是构建单一部件元器件还是复合部件元器件。如果是复合部件元器件,则必须确保引脚数量与符号中使用的引脚数量保持一致。 ##### 步骤3:录入符号信息 在此步骤中,用户可以编辑元器件在仿真过程中的显示符号。编辑符号可以通过三种途径进行:直接编辑、从数据库中复制现有符号或复制当前符号以备将来使用。编辑符号时应注重其在电路图中的可辨识度和清晰度。 ##### 步骤4:设定管脚参数 在该步骤中,用户需要参照数据手册上的管脚顺序为每个管脚命名,并选择恰当的类型。...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值