class LAN – controlul unei interfețe Ethernet

Clasa LAN controlează MAC-ul Ethernet integrat al microcontrolerului împreună cu un PHY RMII extern. Tipul PHY, adresa MDIO și configurația pinilor sunt toate specifice plăcii; în fiecare placă OpenMV sunt încorporate valori implicite rezonabile, astfel încât în mod normal constructorul nu primește niciun argument.

Disponibil pe:

  • OpenMV Cam N6 (portul STM32) – PHY implicit PHY_LAN8742.

  • Arduino Portenta H7 (portul STM32) – PHY implicit PHY_LAN8742.

  • OpenMV Cam RT1062 (portul mimxrt) – PHY implicit PHY_KSZ8081.

Exemplu de utilizare:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Constructori

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

Construiește un obiect interfață LAN. Toate argumentele de după id sunt exclusiv de tip cuvânt-cheie.

id selectează portul Ethernet pe plăcile care expun mai mult de unul (portul mimxrt: 0 = ENET, 1 = ENET_1). Ignorat pe plăcile STM32, care au un singur MAC.

phy_type selectează driverul PHY (una dintre constantele PHY_* de mai jos). Transmiteți None (valoarea implicită) pentru a folosi PHY-ul cablat pe placa OpenMV.

phy_addr este adresa MDIO a PHY-ului pe magistrala de management. Transmiteți None (valoarea implicită) pentru a folosi valoarea cablată a plăcii.

ref_clk_mode (numai mimxrt) selectează dacă semnalul de ceas de referință RMII este generat de MAC (OUT) sau de PHY (IN). Ignorat pe plăcile STM32.

Metode

active(is_active: bool | None = None) bool

Activează sau dezactivează MAC-ul Ethernet.

Fără argument, returnează starea curentă a legăturii PHY ca un număr întreg adevărat/fals – vezi status() pentru setul complet de valori codificate.

active(True) pornește MAC-ul și PHY-ul, inițiază auto-negocierea și aduce interfața netif lwIP în stare activă. Stabilirea propriu-zisă a legăturii poate dura un moment până se finalizează – interogați isconnected() dacă trebuie să blocați execuția până când legătura este complet pregătită. Toate celelalte metode (ipconfig(), config(), …) necesită ca interfața să fie activă.

active(False) oprește MAC-ul și demontează netif-ul.

isconnected() bool

Returnează True atunci când PHY-ul a negociat stabilirea legăturii și interfața se află în starea complet activă (valoarea stării legăturii 3).

status() int

Returnează starea brută a legăturii PHY ca un număr întreg:

  • 0 – legătură întreruptă.

  • 1 – legătură stabilită (doar PHY, stiva IP nu este încă pregătită).

  • 2 – în tranziție.

  • 3 – legătură stabilită și stiva IP a terminat de adus interfața în stare activă.

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

Obține sau setează parametrii interfeței IPv4 ca un tuplu de 4 elemente cu șiruri în notație cu punct (ip, subnet, gateway, dns).

Notă

Preferați ipconfig() pentru cod nou:

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

Obține sau setează parametrii interfeței IPv4 / IPv6. Se comportă la fel ca AbstractNIC.ipconfig() – vezi acea metodă pentru lista completă a numelor de parametri acceptați (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Obține sau setează parametrii specifici interfeței Ethernet.

Cu un singur argument pozițional de tip șir, returnează valoarea acelui parametru:

  • "mac" – adresa MAC a interfeței ca un obiect bytes de 6 octeți.

Cu argumente de tip cuvânt-cheie, setează unul sau mai mulți parametri:

  • trace=<int> – activează urmărirea lwIP. Câmp de biți: 2 urmărește TX, 4 urmărește RX, 8 activează urmărirea completă.

  • low_power=<bool> – activează sau dezactivează modul de consum redus IEEE 802.3az (Energy Efficient Ethernet) al PHY-ului.

Constante

PHY_LAN8742: int

PHY Ethernet Microchip LAN8742A 10/100. Numai portul STM32; implicit pe OpenMV Cam N6 și Arduino Portenta H7.

PHY_LAN8720: int

PHY Ethernet Microchip LAN8720 10/100. Disponibil atât pe portul STM32, cât și pe portul mimxrt.

PHY_DP83848: int

PHY Ethernet Texas Instruments DP83848 10/100. Disponibil atât pe portul STM32, cât și pe portul mimxrt.

PHY_DP83825: int

PHY Ethernet Texas Instruments DP83825 10/100. Disponibil atât pe portul STM32, cât și pe portul mimxrt.

PHY_KSZ8081: int

PHY Ethernet Microchip KSZ8081 10/100. Numai portul mimxrt; implicit pe OpenMV Cam RT1062.

PHY_DP83867: int

PHY Ethernet gigabit Texas Instruments DP83867. Numai portul mimxrt.

PHY_RTL8211F: int

PHY Ethernet gigabit Realtek RTL8211F. Numai portul mimxrt.

IN: int

Transmiteți la ref_clk_mode astfel încât semnalul de ceas de referință RMII să fie generat de PHY. Numai portul mimxrt.

OUT: int

Transmiteți la ref_clk_mode astfel încât semnalul de ceas de referință RMII să fie generat de MAC. Numai portul mimxrt.