淘宝详情页做的比较好的网站,乾安网站建设公司,清远最新消息,交互设计作品集文章目录 1. 前言2. MicroPython介绍2.1 简介2.2 优点2.3 应用 3. WIZnet以太网芯片4. 静态IP网络设置示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 烧录验证步骤1#xff1a;将固件部署到设备步骤2#xff1a;运行network_install.py程序步骤3将固件部署到设备步骤2运行network_install.py程序步骤3Ping测试验证 5. 注意事项6. 相关链接 1. 前言 在这个智能硬件和物联网时代MicroPython和树莓派PICO正以其独特的优势引领着嵌入式开发的新潮流。MicroPython作为一种精简优化的Python 3语言为微控制器和嵌入式设备提供了高效开发和简易调试的 当我们结合WIZnet W5100S/W5500网络模块MicroPython和树莓派PICO的开发潜力被进一步放大。这两款模块都内置了TCP/IP协议栈使得在嵌入式设备上实现网络连接变得更加容易。无论是进行数据传输、远程控制还是构建物联网应用它们都提供了强大的支持。 本章我们将以WIZnet W5100S为例以MicroPython的开发方式进行设置静态网络地址信息示例。
2. MicroPython介绍
2.1 简介
Micro Python是一种紧凑且高效的Python实现可在微控制器和受限环境中运行。它包括Python 3编程语言的一小部分标准库并针对微控制器和受限环境进行了优化。MicroPython pyboard是一款紧凑的电子电路板可在裸机上运行MicroPython为您提供可用于控制各种电子项目的低级Python操作系统。MicroPython充满了高级功能例如交互式提示符、任意精度整数、闭包、列表推导式、生成器、异常处理等。但它足够紧凑可以适合仅256k的代码空间和16k的RAM。MicroPython旨在尽可能与普通Python兼容以便您可以轻松地将代码从桌面传输到微控制器或嵌入式系统。Micro Python是完整的Python编译器和运行时可在裸机上运行。您可以获得交互式提示符REPL以立即执行命令以及从内置文件系统运行和导入脚本的能力。REPL具有历史记录、制表符完成、自动缩进和粘贴模式以获得出色的用户体验。MicroPython力求尽可能与普通Python称为CPython兼容以便如果您知道Python则已经知道MicroPython。另一方面您了解MicroPython的越多就越能掌握Python。除了实现一些核心Python库之外MicroPython还包括诸如“machine”之类的模块用于访问低级硬件。
2.2 优点
Python编程语言的特性Python编程语言的学习曲线很短这使得开发人员非常容易开始使用它。Python为开发人员提供了一种高级编程语言可以用来构建简单的脚本也可以用来开发复杂的面向对象体系结构这些体系结构使用了现代软件项目的所有最佳实践。与C相比Python还提供了用于创建线程、处理错误和轻松集成到测试工具中的内置机制。库的支持MicroPython提供了一系列库为抽象出复杂性的低级微控制器功能提供控制。例如硬件工程师可以设计电路板而对微控制器或C的工作原理几乎一无所知开发高级脚本通过控制GPIO来测试电路板甚至可以与I2C设备通信。易用性MicroPython的学习曲线很短这使得开发人员非常容易开始使用它。MicroPython提供了一种高级编程语言可以用来构建简单的脚本也可以用来开发复杂的面向对象体系结构这些体系结构使用了现代软件项目的所有最佳实践。可移植性MicroPython可以在多种平台上运行包括Windows、Linux、Mac OS X、Raspberry Pi等。开源MicroPython是开源的这意味着开发人员可以自由地使用、修改和分发它。
2.3 应用
物联网设备MicroPython可以用于物联网设备的开发例如传感器、智能家居设备、智能城市设备等。机器人MicroPython可以用于机器人的开发例如机器人的控制、传感器数据的处理等。自动化MicroPython可以用于自动化系统的开发例如自动化家居、自动化工厂等。教育MicroPython可以用于教育领域例如教授编程、机器人、物联网等。科学研究MicroPython可以用于科学研究例如数据采集、数据分析等。 3. WIZnet以太网芯片
WIZnet 主流硬件协议栈以太网芯片参数对比
ModelEmbedded CoreHost I/FTX/RX BufferHW SocketNetwork PerformanceW5100STCP/IPv4 MAC PHY8bit BUS, SPI16KB4Max 25MbpsW6100TCP/IPv4/IPv6, MAC PHY8bit BUS, Fast SPI32KB8Max 25MbpsW5500TCP/IPv4, MAC PHYFast SPI32KB8Max 15Mbps
W5100S/W6100 支持 8bit数据总线接口网络传输速度会优于W5500。W6100 支持IPV6与W5100S 硬件兼容若已使用W5100S的用户需要支持IPv6可以Pin to Pin兼容。W5500 拥有比 W5100S更多的 Socket数量以及发送与接收缓存
相较于软件协议栈WIZnet的硬件协议栈以太网芯片有以下优点
硬件TCP/IP协议栈WIZnet的硬件协议栈芯片提供了一种硬件实现的TCP/IP协议栈这种硬件实现的协议栈比软件实现的协议栈具有更好的性能和稳定性。不需要额外的嵌入式系统软件栈和内存资源由于所有的以太网传输和接收操作都由独立的以太网控制器处理因此不需要额外的嵌入式系统软件栈和内存资源。抵抗网络环境变化和DDoS攻击与易受网络环境变化和DDoS攻击影响的软件TCP/IP协议栈相比硬件协议栈芯片能够提供更稳定的以太网性能。适用于低规格的嵌入式系统即使在低规格的嵌入式系统中使用WIZnet的硬件协议栈芯片也可以比使用软件TCP/IP协议栈的高规格系统显示出更高效的互联网应用操作性能。 4. 静态IP网络设置示例讲解以及使用 本例程包含RP2040和WIZnet芯片进行SPI通信通过给WIZnet芯片配置静态IP地址并通过电脑ping通。
4.1 程序流程图 4.2 测试准备
软件
Thonny
硬件
W5100S IO模块 RP2040 树莓派Pico开发板 或者 WIZnet W5100S-EVB-Pico开发板Micro USB 接口的数据线网线
4.3 连接方式
通过数据线连接PC的USB口当使用W5100S/W5500 IO模块连接RP2040时 RP2040 GPIO 16 ---- W5100S/W5500 MISORP2040 GPIO 17 ---- W5100S/W5500 CSRP2040 GPIO 18 ---- W5100S/W5500 SCKRP2040 GPIO 19 ---- W5100S/W5500 MOSIRP2040 GPIO 20 ---- W5100S/W5500 RST 通过网线直接连接PC网口或PC和设备都通过网线连接交换机或路由器LAN口
4.4 相关代码 我们直接打开network_install.py文件可以看到在w5x00_init()函数中进行了SPI的初始化。以及将spi相关引脚和复位引脚注册到库中后续则是激活网络并配置静态网络地址信息。当未配置成功时会打印出网络地址相关寄存器的信息可以帮助我们更好的排查问题。最后则是打印出配置好的网络地址信息啦。
#import library
from usocket import socket
from machine import Pin,SPI
import network
import time#LED define
led Pin(25, Pin.OUT)
W5x00 chip initialization.param: None
returns: None
def w5x00_init():#spi initspiSPI(0,2_000_000, mosiPin(19),misoPin(16),sckPin(18))nic network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pinnic.active(True)#network activenic.ifconfig((192.168.1.20,255.255.255.0,192.168.1.1,8.8.8.8))#Set static network address informationwhile not nic.isconnected():time.sleep(1)print(nic.regs())#Print register information#Print network address informationprint(IP Address:,nic.ifconfig()[0])print(Subnet Mask:,nic.ifconfig()[1])print(Gateway:,nic.ifconfig()[2])print(DNS:,nic.ifconfig()[3])return nicdef main():print(WIZnet chip network install example);nic w5x00_init()while True:led.value(1)time.sleep(1)led.value(0)time.sleep(1)print(try ping,nic.ifconfig()[0])if __name__ __main__:main()4.5 烧录验证 要测试以太网示例必须将开发环境配置为使用Raspberry Pi Pico。 所需的开发环境 Thonny 如果你必须编译MicroPython则必须使用Linux或Unix环境。
步骤1将固件部署到设备
W5100S和W5500对应的固件如下
rp2_w5100s_20221111_v2.0.0.uf2rp2_w5500_20221111_v2.0.0.uf2 必须将固件烧录到RP2040树莓派Pico中才能运行我们编写的Python脚本文件。 烧录的方式可以参考下图 步骤2运行network_install.py程序 在Thonny中打开network_install.py程序并选择开发板之后点击运行。 步骤3Ping测试验证 5. 注意事项 静态配置的IP设置应避免IP重复导致IP冲突。 如果采用的是WIZnet的W5500来实现本章的示例则只需烧录W5500的固件并运行示例程序即可。
6. 相关链接
WIZnet官网
本章例程链接
想了解更多评论留言哦