class LAN – ovládání ethernetového rozhraní

Třída LAN řídí Ethernet MAC integrovaný na čipu MCU proti externí RMII PHY. Typ PHY, MDIO adresa a rozložení pinů jsou závislé na konkrétní desce; do každé desky OpenMV jsou zabudovány rozumné výchozí hodnoty, takže konstruktor obvykle nevyžaduje žádné argumenty.

Dostupné na:

  • OpenMV Cam N6 (STM32 port) – výchozí PHY PHY_LAN8742.

  • Arduino Portenta H7 (STM32 port) – výchozí PHY PHY_LAN8742.

  • OpenMV Cam RT1062 (mimxrt port) – výchozí PHY PHY_KSZ8081.

Příklad použití:

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

Vytvoří objekt rozhraní LAN. Všechny argumenty po id jsou pouze klíčové (keyword-only).

id vybírá ethernetový port na deskách, které vystavují více než jeden (mimxrt port: 0 = ENET, 1 = ENET_1). Na deskách STM32, které mají pouze jediný MAC, je ignorováno.

phy_type vybírá ovladač PHY (jednu z konstant PHY_* níže). Předáním None (výchozí) se použije PHY zapojené na desce OpenMV.

phy_addr je MDIO adresa PHY na řídicí sběrnici. Předáním None (výchozí) se použije hodnota zapojená na desce.

ref_clk_mode (pouze mimxrt) volí, zda je referenční hodinový signál RMII řízen MAC (OUT) nebo PHY (IN). Na deskách STM32 je ignorováno.

Metody

active(is_active: bool | None = None) bool

Aktivuje nebo deaktivuje Ethernet MAC.

Bez argumentu vrátí aktuální stav linky PHY jako pravdivé/nepravdivé celé číslo – úplnou sadu zakódovaných hodnot najdete v status().

active(True) spustí MAC a PHY, zahájí automatické vyjednávání (auto-negotiation) a aktivuje lwIP netif. Samotné navázání linky může chvíli trvat – pokud potřebujete blokovat, dokud nebude linka plně připravena, dotazujte se na isconnected(). Všechny ostatní metody (ipconfig(), config(), …) vyžadují, aby bylo rozhraní aktivní.

active(False) zastaví MAC a zruší netif.

isconnected() bool

Vrátí True, když PHY vyjednalo navázání linky a rozhraní je v plně aktivním stavu (hodnota stavu linky 3).

status() int

Vrátí surový stav linky PHY jako celé číslo:

  • 0 – linka neaktivní.

  • 1 – linka aktivní (pouze PHY, IP stack ještě není připraven).

  • 2 – přechodový stav.

  • 3 – linka aktivní a IP stack dokončil aktivaci rozhraní.

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

Získá nebo nastaví parametry rozhraní IPv4 jako 4-tici řetězců (ip, subnet, gateway, dns) ve formátu tečkové notace.

Poznámka

Pro nový kód upřednostněte 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

Získá nebo nastaví parametry rozhraní IPv4 / IPv6. Chová se stejně jako AbstractNIC.ipconfig() – úplný seznam podporovaných názvů parametrů (dhcp4, addr4, gw4, autoconf6, addr6, …) najdete u této metody.

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

Získá nebo nastaví parametry rozhraní specifické pro Ethernet.

S jediným poziční řetězcovým argumentem vrátí hodnotu daného parametru:

  • "mac" – MAC adresa rozhraní jako 6bajtový objekt bytes.

S klíčovými argumenty nastaví jeden nebo více parametrů:

  • trace=<int> – povolí trasování lwIP. Bitové pole: 2 trasuje TX, 4 trasuje RX, 8 povolí úplné trasování.

  • low_power=<bool> – povolí nebo zakáže nízkopříkonový režim PHY IEEE 802.3az (Energy Efficient Ethernet).

Konstanty

PHY_LAN8742: int

Microchip LAN8742A 10/100 Ethernet PHY. Pouze STM32 port; výchozí na OpenMV Cam N6 a Arduino Portenta H7.

PHY_LAN8720: int

Microchip LAN8720 10/100 Ethernet PHY. Dostupné na portech STM32 i mimxrt.

PHY_DP83848: int

Texas Instruments DP83848 10/100 Ethernet PHY. Dostupné na portech STM32 i mimxrt.

PHY_DP83825: int

Texas Instruments DP83825 10/100 Ethernet PHY. Dostupné na portech STM32 i mimxrt.

PHY_KSZ8081: int

Microchip KSZ8081 10/100 Ethernet PHY. Pouze mimxrt port; výchozí na OpenMV Cam RT1062.

PHY_DP83867: int

Texas Instruments DP83867 gigabitové Ethernet PHY. Pouze mimxrt port.

PHY_RTL8211F: int

Realtek RTL8211F gigabitové Ethernet PHY. Pouze mimxrt port.

IN: int

Předejte do ref_clk_mode, aby byl referenční hodinový signál RMII řízen PHY. Pouze mimxrt port.

OUT: int

Předejte do ref_clk_mode, aby byl referenční hodinový signál RMII řízen MAC. Pouze mimxrt port.