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 poidsą wyłącznie nazwane.idwybiera 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_typewybiera sterownik PHY (jedną ze stałychPHY_*poniżej). PrzekażNone(wartość domyślna), aby użyć PHY podłączonego do płytki OpenMV.phy_addrto 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 odpytywaniaisconnected(), 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 łącza3).
- 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 obiektbytes.
Z argumentami nazwanymi ustawia jeden lub więcej parametrów:
trace=<int>– włącza śledzenie lwIP. Pole bitowe:2śledzi TX,4śledzi RX,8włą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_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.