class LAN -- 控制以太网接口¶
LAN 类驱动 MCU 片上以太网 MAC,搭配外部 RMII PHY 工作。PHY 类型、MDIO 地址和引脚分配都是特定于开发板的;合理的默认值已内置到每块 OpenMV 开发板中,因此构造函数通常无需任何参数。
可用于:
OpenMV Cam N6(STM32 移植版)-- 默认 PHY
PHY_LAN8742。Arduino Portenta H7(STM32 移植版)-- 默认 PHY
PHY_LAN8742。OpenMV Cam RT1062(mimxrt 移植版)-- 默认 PHY
PHY_KSZ8081。
用法示例:
import network
nic = network.LAN()
nic.active(True)
while not nic.isconnected():
pass
print(nic.ipconfig("addr4"))
构造函数¶
- class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None¶
构造一个
LAN接口对象。id之后的所有参数均为仅关键字参数。id在拥有多个以太网端口的开发板上选择端口(mimxrt 移植版:0= ENET,1= ENET_1)。在仅有单个 MAC 的 STM32 开发板上会被忽略。phy_type选择 PHY 驱动(下列PHY_*常量之一)。传入None(默认值)以使用连接到 OpenMV 开发板的 PHY。phy_addr是 PHY 在管理总线上的 MDIO 地址。传入None(默认值)以使用开发板的接线值。ref_clk_mode(仅限 mimxrt)选择 RMII 参考时钟由 MAC 驱动(OUT)还是由 PHY 驱动(IN)。在 STM32 开发板上会被忽略。方法¶
- active(is_active: bool | None = None) bool¶
启用或停用以太网 MAC。
无参数时,以真/假整数形式返回当前 PHY 链路状态 -- 完整的编码值集合参见
status()。active(True)启动 MAC 和 PHY,开始自动协商,并使 lwIP netif 上线。链路建立本身可能需要片刻才能完成 -- 如果你需要阻塞直到链路完全就绪,可轮询isconnected()。所有其他方法(ipconfig()、config(),……)都要求接口处于激活状态。active(False)停止 MAC 并拆除 netif。
- status() int¶
以整数形式返回原始的 PHY 链路状态:
0-- 链路断开。1-- 链路建立(仅 PHY,IP 协议栈尚未就绪)。2-- 正在转换中。3-- 链路建立且 IP 协议栈已完成接口上线。
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None¶
以
(ip, subnet, gateway, dns)点分四段字符串四元组的形式获取或设置 IPv4 接口参数。备注
新代码建议优先使用
ipconfig():nic.ipconfig(addr4="192.168.0.4/24", gw4="192.168.0.1") network.ipconfig(dns="8.8.8.8")
- ipconfig(param: str) Any¶
- ipconfig(**kwargs: Any) None
获取或设置 IPv4 / IPv6 接口参数。其行为与
AbstractNIC.ipconfig()相同 -- 完整的受支持参数名列表(dhcp4、addr4、gw4、autoconf6、addr6,……)参见该方法。
常量¶