class LAN – een Ethernet-interface aansturen¶
De LAN-klasse stuurt de on-chip Ethernet-MAC van de MCU aan tegen een externe RMII-PHY. Het PHY-type, het MDIO-adres en de pinout zijn allemaal bordspecifiek; verstandige standaardwaarden zijn in elk OpenMV-bord ingebakken, zodat de constructor normaal gesproken geen argumenten nodig heeft.
Beschikbaar op:
OpenMV Cam N6 (STM32-port) – standaard-PHY
PHY_LAN8742.Arduino Portenta H7 (STM32-port) – standaard-PHY
PHY_LAN8742.OpenMV Cam RT1062 (mimxrt-port) – standaard-PHY
PHY_KSZ8081.
Voorbeeldgebruik:
import network
nic = network.LAN()
nic.active(True)
while not nic.isconnected():
pass
print(nic.ipconfig("addr4"))
Constructors¶
- class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None¶
Construeert een
LAN-interfaceobject. Alle argumenten naidzijn alleen-keyword.idselecteert de Ethernet-poort op borden die er meer dan één blootstellen (mimxrt-port:0= ENET,1= ENET_1). Genegeerd op STM32-borden, die slechts één MAC hebben.phy_typeselecteert de PHY-driver (een van dePHY_*-constanten hieronder). GeefNonedoor (de standaard) om de PHY te gebruiken die op het OpenMV-bord is bedraad.phy_addris het MDIO-adres van de PHY op de beheerbus. GeefNonedoor (de standaard) om de bedrade waarde van het bord te gebruiken.ref_clk_mode(alleen mimxrt) selecteert of de RMII-referentieklok wordt aangestuurd door de MAC (OUT) of door de PHY (IN). Genegeerd op STM32-borden.Methoden¶
- active(is_active: bool | None = None) bool¶
Brengt de Ethernet-MAC omhoog of omlaag.
Zonder argument geeft het de huidige PHY-linkstatus terug als een truthy/falsy geheel getal – zie
status()voor de volledige set gecodeerde waarden.active(True)start de MAC en PHY, start de auto-onderhandeling en brengt de lwIP-netif omhoog. Het linkomhoog komen zelf kan even duren – pollisconnected()als je wilt blokkeren totdat de link volledig gereed is. Alle andere methoden (ipconfig(),config(), …) vereisen dat de interface actief is.active(False)stopt de MAC en breekt de netif af.
- isconnected() bool¶
Geeft
Trueterug wanneer de PHY link-omhoog heeft onderhandeld en de interface zich in de volledig-omhoog-toestand bevindt (linkstatuswaarde3).
- status() int¶
Geeft de ruwe PHY-linkstatus terug als een geheel getal:
0– link omlaag.1– link omhoog (alleen PHY, IP-stack nog niet gereed).2– in overgang.3– link omhoog en de IP-stack heeft het omhoog brengen van de interface voltooid.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None¶
Haalt de IPv4-interfaceparameters op of stelt ze in als een 4-tuple van
(ip, subnet, gateway, dns)dotted-quad-strings.Notitie
Geef de voorkeur aan
ipconfig()voor nieuwe code: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
Haalt de IPv4-/IPv6-interfaceparameters op of stelt ze in. Gedraagt zich hetzelfde als
AbstractNIC.ipconfig()– zie die methode voor de volledige lijst met ondersteunde parameternamen (dhcp4,addr4,gw4,autoconf6,addr6, …).
- config(param: str) Any¶
- config(**kwargs: Any) None
Haalt Ethernet-specifieke interfaceparameters op of stelt ze in.
Met een enkel positioneel string-argument geeft het de waarde van die parameter terug:
"mac"– het MAC-adres van de interface als een 6-bytebytes-object.
Met keyword-argumenten stelt het een of meer parameters in:
trace=<int>– schakelt lwIP-tracering in. Bit-veld:2traceert TX,4traceert RX,8schakelt volledige tracering in.low_power=<bool>– schakelt de IEEE 802.3az (Energy Efficient Ethernet) energiebesparende modus van de PHY in of uit.
Constanten¶
- PHY_LAN8742: int¶
Microchip LAN8742A 10/100 Ethernet-PHY. Alleen STM32-port; standaard op de OpenMV Cam N6 en Arduino Portenta H7.
- PHY_LAN8720: int¶
Microchip LAN8720 10/100 Ethernet-PHY. Beschikbaar op zowel STM32- als mimxrt-ports.
- PHY_DP83848: int¶
Texas Instruments DP83848 10/100 Ethernet-PHY. Beschikbaar op zowel STM32- als mimxrt-ports.
- PHY_DP83825: int¶
Texas Instruments DP83825 10/100 Ethernet-PHY. Beschikbaar op zowel STM32- als mimxrt-ports.
- PHY_KSZ8081: int¶
Microchip KSZ8081 10/100 Ethernet-PHY. Alleen mimxrt-port; standaard op de OpenMV Cam RT1062.