class LAN – sterowanie interfejsem Ethernet

Klasa LAN steruje wbudowanym w MCU kontrolerem Ethernet MAC współpracującym z zewnętrznym układem PHY RMII. Typ PHY, adres MDIO oraz wyprowadzenia są zależne od płytki; w każdej płytce OpenMV zaszyte są rozsądne wartości domyślne, więc konstruktor zwykle nie przyjmuje żadnych argumentów.

Dostępne na:

  • OpenMV Cam N6 (port STM32) – domyślny PHY PHY_LAN8742.

  • Arduino Portenta H7 (port STM32) – domyślny PHY PHY_LAN8742.

  • OpenMV Cam RT1062 (port mimxrt) – domyślny PHY PHY_KSZ8081.

Przykładowe użycie:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Konstruktory

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

Tworzy obiekt interfejsu LAN. Wszystkie argumenty po id są wyłącznie nazwane.

id wybiera port Ethernet na płytkach, które udostępniają więcej niż jeden (port mimxrt: 0 = ENET, 1 = ENET_1). Ignorowane na płytkach STM32, które mają tylko jeden MAC.

phy_type wybiera sterownik PHY (jedną ze stałych PHY_* poniżej). Przekaż None (wartość domyślna), aby użyć PHY podłączonego do płytki OpenMV.

phy_addr to adres MDIO układu PHY na magistrali zarządzającej. Przekaż None (wartość domyślna), aby użyć wartości podłączonej na płytce.

ref_clk_mode (tylko mimxrt) wybiera, czy zegar referencyjny RMII jest sterowany przez MAC (OUT), czy przez PHY (IN). Ignorowane na płytkach STM32.

Metody

active(is_active: bool | None = None) bool

Włącza lub wyłącza kontroler Ethernet MAC.

Bez argumentu zwraca bieżący status łącza PHY jako liczbę całkowitą prawdziwą/fałszywą – pełny zestaw zakodowanych wartości znajdziesz w status().

active(True) uruchamia MAC i PHY, rozpoczyna autonegocjację i podnosi interfejs sieciowy lwIP. Samo nawiązanie łącza może chwilę potrwać – użyj odpytywania isconnected(), jeśli chcesz zablokować wykonanie do pełnej gotowości łącza. Wszystkie pozostałe metody (ipconfig(), config(), …) wymagają, aby interfejs był aktywny.

active(False) zatrzymuje MAC i likwiduje interfejs sieciowy.

isconnected() bool

Zwraca True, gdy PHY wynegocjował nawiązanie łącza oraz interfejs jest w pełni podniesionym stanie (wartość statusu łącza 3).

status() int

Zwraca surowy status łącza PHY jako liczbę całkowitą:

  • 0 – łącze nieaktywne.

  • 1 – łącze aktywne (tylko PHY, stos IP jeszcze niegotowy).

  • 2 – w trakcie zmiany stanu.

  • 3 – łącze aktywne, a stos IP zakończył podnoszenie interfejsu.

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

Pobiera lub ustawia parametry interfejsu IPv4 jako 4-elementową krotkę łańcuchów (ip, subnet, gateway, dns) w notacji kropkowej.

Informacja

W nowym kodzie preferuj 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

Pobiera lub ustawia parametry interfejsu IPv4 / IPv6. Działa tak samo jak AbstractNIC.ipconfig() – pełną listę obsługiwanych nazw parametrów (dhcp4, addr4, gw4, autoconf6, addr6, …) znajdziesz w opisie tej metody.

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

Pobiera lub ustawia parametry interfejsu specyficzne dla Ethernet.

Wywołana z pojedynczym pozycyjnym argumentem łańcuchowym, zwraca wartość tego parametru:

  • "mac" – adres MAC interfejsu jako 6-bajtowy obiekt bytes.

Z argumentami nazwanymi ustawia jeden lub więcej parametrów:

  • trace=<int> – włącza śledzenie lwIP. Pole bitowe: 2 śledzi TX, 4 śledzi RX, 8 włącza pełne śledzenie.

  • low_power=<bool> – włącza lub wyłącza tryb niskiego poboru mocy IEEE 802.3az (Energy Efficient Ethernet) układu PHY.

Stałe

PHY_LAN8742: int

Układ PHY Ethernet Microchip LAN8742A 10/100. Tylko port STM32; domyślny w OpenMV Cam N6 i Arduino Portenta H7.

PHY_LAN8720: int

Układ PHY Ethernet Microchip LAN8720 10/100. Dostępny w portach STM32 i mimxrt.

PHY_DP83848: int

Układ PHY Ethernet Texas Instruments DP83848 10/100. Dostępny w portach STM32 i mimxrt.

PHY_DP83825: int

Układ PHY Ethernet Texas Instruments DP83825 10/100. Dostępny w portach STM32 i mimxrt.

PHY_KSZ8081: int

Układ PHY Ethernet Microchip KSZ8081 10/100. Tylko port mimxrt; domyślny w OpenMV Cam RT1062.

PHY_DP83867: int

Gigabitowy układ PHY Ethernet Texas Instruments DP83867. Tylko port mimxrt.

PHY_RTL8211F: int

Gigabitowy układ PHY Ethernet Realtek RTL8211F. Tylko port mimxrt.

IN: int

Przekaż do ref_clk_mode, aby zegar referencyjny RMII był sterowany przez PHY. Tylko port mimxrt.

OUT: int

Przekaż do ref_clk_mode, aby zegar referencyjny RMII był sterowany przez MAC. Tylko port mimxrt.