class LAN – styr ett Ethernet-gränssnitt

LAN-klassen driver mikrokontrollerns inbyggda Ethernet-MAC mot en extern RMII-PHY. PHY-typen, MDIO-adressen och stiftkonfigurationen är alla kortspecifika; rimliga standardvärden är inbakade i varje OpenMV-kort så att konstruktorn normalt inte tar några argument.

Tillgänglig på:

  • OpenMV Cam N6 (STM32-port) – standard-PHY PHY_LAN8742.

  • Arduino Portenta H7 (STM32-port) – standard-PHY PHY_LAN8742.

  • OpenMV Cam RT1062 (mimxrt-port) – standard-PHY PHY_KSZ8081.

Exempel på användning:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Konstruktorer

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

Konstruera ett LAN-gränssnittsobjekt. Alla argument efter id är endast nyckelordsargument.

id väljer Ethernet-porten på kort som exponerar fler än en (mimxrt-port: 0 = ENET, 1 = ENET_1). Ignoreras på STM32-kort, som endast har en enda MAC.

phy_type väljer PHY-drivrutinen (en av PHY_*-konstanterna nedan). Skicka None (standardvärdet) för att använda den PHY som är kopplad på OpenMV-kortet.

phy_addr är PHY:ns MDIO-adress på hanteringsbussen. Skicka None (standardvärdet) för att använda kortets kopplade värde.

ref_clk_mode (endast mimxrt) väljer om RMII-referensklockan drivs av MAC:en (OUT) eller av PHY:n (IN). Ignoreras på STM32-kort.

Metoder

active(is_active: bool | None = None) bool

Aktivera eller inaktivera Ethernet-MAC:en.

Utan argument returneras PHY:ns aktuella länkstatus som ett sant/falskt heltal – se status() för hela uppsättningen av kodade värden.

active(True) startar MAC:en och PHY:n, sätter igång autoförhandlingen och aktiverar lwIP-netif:en. Att länken kommer upp kan ta ett ögonblick att slutföra – pollar isconnected() om du behöver blockera tills länken är helt klar. Alla andra metoder (ipconfig(), config(), …) kräver att gränssnittet är aktivt.

active(False) stoppar MAC:en och river ned netif:en.

isconnected() bool

Returnera True när PHY:n har förhandlat fram en uppe länk och gränssnittet är i fullt uppe-tillståndet (länkstatusvärdet 3).

status() int

Returnera PHY:ns råa länkstatus som ett heltal:

  • 0 – länken nere.

  • 1 – länken uppe (endast PHY, IP-stacken är inte klar ännu).

  • 2 – under övergång.

  • 3 – länken uppe och IP-stacken har slutfört aktiveringen av gränssnittet.

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

Hämta eller ange IPv4-gränssnittsparametrar som en 4-tupel av punktnoterade strängar (ip, subnet, gateway, dns).

Anteckning

Föredra ipconfig() för ny kod:

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

Hämta eller ange IPv4-/IPv6-gränssnittsparametrar. Beter sig på samma sätt som AbstractNIC.ipconfig() – se den metoden för den fullständiga listan över parameternamn som stöds (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Hämta eller ange Ethernet-specifika gränssnittsparametrar.

Med ett enda positionellt strängargument returneras värdet för den parametern:

  • "mac" – gränssnittets MAC-adress som ett 6-byte bytes-objekt.

Med nyckelordsargument anges en eller flera parametrar:

  • trace=<int> – aktivera lwIP-spårning. Bitfält: 2 spårar TX, 4 spårar RX, 8 aktiverar fullständig spårning.

  • low_power=<bool> – aktivera eller inaktivera PHY:ns lågeffektläge enligt IEEE 802.3az (Energy Efficient Ethernet).

Konstanter

PHY_LAN8742: int

Microchip LAN8742A 10/100 Ethernet-PHY. Endast STM32-port; standard på OpenMV Cam N6 och Arduino Portenta H7.

PHY_LAN8720: int

Microchip LAN8720 10/100 Ethernet-PHY. Tillgänglig på både STM32- och mimxrt-portar.

PHY_DP83848: int

Texas Instruments DP83848 10/100 Ethernet-PHY. Tillgänglig på både STM32- och mimxrt-portar.

PHY_DP83825: int

Texas Instruments DP83825 10/100 Ethernet-PHY. Tillgänglig på både STM32- och mimxrt-portar.

PHY_KSZ8081: int

Microchip KSZ8081 10/100 Ethernet-PHY. Endast mimxrt-port; standard på OpenMV Cam RT1062.

PHY_DP83867: int

Texas Instruments DP83867 gigabit Ethernet-PHY. Endast mimxrt-port.

PHY_RTL8211F: int

Realtek RTL8211F gigabit Ethernet-PHY. Endast mimxrt-port.

IN: int

Skicka till ref_clk_mode så att RMII-referensklockan drivs av PHY:n. Endast mimxrt-port.

OUT: int

Skicka till ref_clk_mode så att RMII-referensklockan drivs av MAC:en. Endast mimxrt-port.