class LAN – bir Ethernet arayüzünü kontrol etme

LAN sınıfı, MCU’nun çip üzerindeki Ethernet MAC’ini harici bir RMII PHY’ye karşı sürer. PHY türü, MDIO adresi ve pin düzeni tamamen karta özeldir; her OpenMV kartında makul varsayılanlar yerleşik olarak bulunur, böylece kurucu normalde argüman almaz.

Şu kartlarda kullanılabilir:

  • OpenMV Cam N6 (STM32 portu) – varsayılan PHY PHY_LAN8742.

  • Arduino Portenta H7 (STM32 portu) – varsayılan PHY PHY_LAN8742.

  • OpenMV Cam RT1062 (mimxrt portu) – varsayılan PHY PHY_KSZ8081.

Örnek kullanım:

import network

nic = network.LAN()
nic.active(True)

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Kurucular

class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None

Bir LAN arayüz nesnesi oluşturur. id sonrasındaki tüm argümanlar yalnızca anahtar sözcüktür.

id, birden fazla Ethernet portu sunan kartlarda portu seçer (mimxrt portu: 0 = ENET, 1 = ENET_1). Yalnızca tek bir MAC’e sahip olan STM32 kartlarında yok sayılır.

phy_type PHY sürücüsünü seçer (aşağıdaki PHY_* sabitlerinden biri). OpenMV kartına kablolanmış PHY’yi kullanmak için None (varsayılan) geçirin.

phy_addr, PHY’nin yönetim veri yolundaki MDIO adresidir. Kartın kablolanmış değerini kullanmak için None (varsayılan) geçirin.

ref_clk_mode (yalnızca mimxrt), RMII referans saatinin MAC tarafından mı (OUT) yoksa PHY tarafından mı (IN) sürüleceğini seçer. STM32 kartlarında yok sayılır.

Yöntemler

active(is_active: bool | None = None) bool

Ethernet MAC’i açar veya kapatır.

Argüman olmadan, geçerli PHY bağlantı durumunu doğru/yanlış (truthy/falsy) bir tam sayı olarak döndürür – kodlanmış değerlerin tam kümesi için status() bölümüne bakın.

active(True), MAC ve PHY’yi başlatır, otomatik anlaşmayı (auto-negotiation) tetikler ve lwIP netif’ini açar. Bağlantının kurulması biraz zaman alabilir – bağlantı tamamen hazır olana kadar bloke olmanız gerekiyorsa isconnected() ile yoklama yapın. Diğer tüm yöntemler (ipconfig(), config(), …) arayüzün etkin olmasını gerektirir.

active(False), MAC’i durdurur ve netif’i sökerek kapatır.

isconnected() bool

PHY bağlantı kurulumunu (link-up) görüştüğünde ve arayüz tamamen açık durumdayken (bağlantı durumu değeri 3) True döndürür.

status() int

Ham PHY bağlantı durumunu bir tam sayı olarak döndürür:

  • 0 – bağlantı kapalı.

  • 1 – bağlantı açık (yalnızca PHY, IP yığını henüz hazır değil).

  • 2 – geçiş halinde.

  • 3 – bağlantı açık ve IP yığını arayüzü açma işlemini tamamladı.

ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None

IPv4 arayüz parametrelerini (ip, subnet, gateway, dns) noktalı-dörtlü dizelerden oluşan bir 4’lü demet olarak alır veya ayarlar.

Not

Yeni kod için ipconfig() yöntemini tercih edin:

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 arayüz parametrelerini alır veya ayarlar. AbstractNIC.ipconfig() ile aynı şekilde davranır – desteklenen parametre adlarının tam listesi (dhcp4, addr4, gw4, autoconf6, addr6, …) için o yönteme bakın.

config(param: str) Any
config(**kwargs: Any) None

Ethernet’e özgü arayüz parametrelerini alır veya ayarlar.

Tek bir konumsal dize argümanıyla, o parametrenin değerini döndürür:

  • "mac" – arayüz MAC adresi, 6 baytlık bir bytes nesnesi olarak.

Anahtar sözcük argümanlarıyla, bir veya daha fazla parametreyi ayarlar:

  • trace=<int> – lwIP izlemeyi etkinleştirir. Bit alanı: 2 TX’i izler, 4 RX’i izler, 8 tam izlemeyi etkinleştirir.

  • low_power=<bool> – PHY’nin IEEE 802.3az (Energy Efficient Ethernet) düşük güç modunu etkinleştirir veya devre dışı bırakır.

Sabitler

PHY_LAN8742: int

Microchip LAN8742A 10/100 Ethernet PHY. Yalnızca STM32 portu; OpenMV Cam N6 ve Arduino Portenta H7’de varsayılan.

PHY_LAN8720: int

Microchip LAN8720 10/100 Ethernet PHY. Hem STM32 hem de mimxrt portlarında kullanılabilir.

PHY_DP83848: int

Texas Instruments DP83848 10/100 Ethernet PHY. Hem STM32 hem de mimxrt portlarında kullanılabilir.

PHY_DP83825: int

Texas Instruments DP83825 10/100 Ethernet PHY. Hem STM32 hem de mimxrt portlarında kullanılabilir.

PHY_KSZ8081: int

Microchip KSZ8081 10/100 Ethernet PHY. Yalnızca mimxrt portu; OpenMV Cam RT1062’de varsayılan.

PHY_DP83867: int

Texas Instruments DP83867 gigabit Ethernet PHY. Yalnızca mimxrt portu.

PHY_RTL8211F: int

Realtek RTL8211F gigabit Ethernet PHY. Yalnızca mimxrt portu.

IN: int

RMII referans saatinin PHY tarafından sürülmesi için ref_clk_mode argümanına geçirilir. Yalnızca mimxrt portu.

OUT: int

RMII referans saatinin MAC tarafından sürülmesi için ref_clk_mode argümanına geçirilir. Yalnızca mimxrt portu.