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.