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ăidsunt exclusiv de tip cuvânt-cheie.idselectează 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_typeselectează driverul PHY (una dintre constantelePHY_*de mai jos). TransmitețiNone(valoarea implicită) pentru a folosi PHY-ul cablat pe placa OpenMV.phy_addreste adresa MDIO a PHY-ului pe magistrala de management. TransmitețiNone(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țiisconnected()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ă
Trueatunci când PHY-ul a negociat stabilirea legăturii și interfața se află în starea complet activă (valoarea stării legăturii3).
- 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 obiectbytesde 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:2urmărește TX,4urmărește RX,8activează 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.