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)。在 STM32 板子上會被忽略,因為它們只有單一個 MAC。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¶
取得或設定 IPv4 介面參數,以
(ip, subnet, gateway, dns)點分四段字串的 4 元組形式呈現。備註
新程式碼建議優先使用
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、...)請參閱該方法。
常數¶