class LAN – upravljanje Ethernet sučeljem

Klasa LAN upravlja Ethernet MAC-om ugrađenim u čip MCU-a u kombinaciji s vanjskim RMII PHY-jem. Tip PHY-ja, MDIO adresa i raspored pinova ovise o ploči; razumne zadane vrijednosti ugrađene su u svaku OpenMV ploču pa konstruktor obično ne prima argumente.

Dostupno na:

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

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

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

Primjer upotrebe:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Konstruktori

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

Konstruira objekt LAN sučelja. Svi argumenti nakon id smiju se zadati samo kao ključne riječi.

id odabire Ethernet port na pločama koje ih izlažu više od jednog (mimxrt port: 0 = ENET, 1 = ENET_1). Zanemaruje se na STM32 pločama koje imaju samo jedan MAC.

phy_type odabire PHY upravljački program (jednu od konstanti PHY_* u nastavku). Proslijedite None (zadano) za korištenje PHY-ja ožičenog na OpenMV ploči.

phy_addr je MDIO adresa PHY-ja na upravljačkoj sabirnici. Proslijedite None (zadano) za korištenje vrijednosti ožičene na ploči.

ref_clk_mode (samo mimxrt) odabire upravlja li RMII referentnim taktom MAC (OUT) ili PHY (IN). Zanemaruje se na STM32 pločama.

Metode

active(is_active: bool | None = None) bool

Aktivira ili deaktivira Ethernet MAC.

Bez argumenta vraća trenutni status PHY veze kao istinit/lažan cijeli broj – pogledajte status() za potpuni skup kodiranih vrijednosti.

active(True) pokreće MAC i PHY, započinje automatsko pregovaranje i podiže lwIP netif. Samo uspostavljanje veze može potrajati trenutak – ispitujte isconnected() ako trebate blokirati dok veza ne bude potpuno spremna. Sve ostale metode (ipconfig(), config(), …) zahtijevaju da sučelje bude aktivno.

active(False) zaustavlja MAC i ruši netif.

isconnected() bool

Vraća True kada je PHY ispregovarao uspostavljenu vezu i sučelje je u potpuno podignutom stanju (vrijednost statusa veze 3).

status() int

Vraća sirovi status PHY veze kao cijeli broj:

  • 0 – veza prekinuta.

  • 1 – veza uspostavljena (samo PHY, IP stog još nije spreman).

  • 2 – u prijelazu.

  • 3 – veza uspostavljena i IP stog je dovršio podizanje sučelja.

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

Dohvaća ili postavlja parametre IPv4 sučelja kao 4-torku nizova (ip, subnet, gateway, dns) u obliku četiriju brojeva odvojenih točkama.

Napomena

Za novi kod preferirajte 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

Dohvaća ili postavlja parametre IPv4 / IPv6 sučelja. Ponaša se jednako kao AbstractNIC.ipconfig() – pogledajte tu metodu za potpuni popis podržanih naziva parametara (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Dohvaća ili postavlja parametre sučelja specifične za Ethernet.

S jednim pozicijskim argumentom u obliku niza vraća vrijednost tog parametra:

  • "mac" – MAC adresa sučelja kao 6-bajtni objekt bytes.

S argumentima u obliku ključnih riječi postavlja jedan ili više parametara:

  • trace=<int> – omogućuje praćenje lwIP-a. Polje bitova: 2 prati TX, 4 prati RX, 8 omogućuje potpuno praćenje.

  • low_power=<bool> – omogućuje ili onemogućuje PHY-jev IEEE 802.3az (Energy Efficient Ethernet) način rada s niskom potrošnjom.

Konstante

PHY_LAN8742: int

Microchip LAN8742A 10/100 Ethernet PHY. Samo STM32 port; zadano na OpenMV Cam N6 i Arduino Portenta H7.

PHY_LAN8720: int

Microchip LAN8720 10/100 Ethernet PHY. Dostupno na STM32 i mimxrt portovima.

PHY_DP83848: int

Texas Instruments DP83848 10/100 Ethernet PHY. Dostupno na STM32 i mimxrt portovima.

PHY_DP83825: int

Texas Instruments DP83825 10/100 Ethernet PHY. Dostupno na STM32 i mimxrt portovima.

PHY_KSZ8081: int

Microchip KSZ8081 10/100 Ethernet PHY. Samo mimxrt port; zadano na OpenMV Cam RT1062.

PHY_DP83867: int

Texas Instruments DP83867 gigabitni Ethernet PHY. Samo mimxrt port.

PHY_RTL8211F: int

Realtek RTL8211F gigabitni Ethernet PHY. Samo mimxrt port.

IN: int

Proslijedite u ref_clk_mode kako bi RMII referentnim taktom upravljao PHY. Samo mimxrt port.

OUT: int

Proslijedite u ref_clk_mode kako bi RMII referentnim taktom upravljao MAC. Samo mimxrt port.