class LAN – ovládání ethernetového rozhraní¶
Třída LAN řídí Ethernet MAC integrovaný na čipu MCU proti externí RMII PHY. Typ PHY, MDIO adresa a rozložení pinů jsou závislé na konkrétní desce; do každé desky OpenMV jsou zabudovány rozumné výchozí hodnoty, takže konstruktor obvykle nevyžaduje žádné argumenty.
Dostupné na:
OpenMV Cam N6 (STM32 port) – výchozí PHY
PHY_LAN8742.Arduino Portenta H7 (STM32 port) – výchozí PHY
PHY_LAN8742.OpenMV Cam RT1062 (mimxrt port) – výchozí PHY
PHY_KSZ8081.
Příklad použití:
import network
nic = network.LAN()
nic.active(True)
while not nic.isconnected():
pass
print(nic.ipconfig("addr4"))
Konstruktory¶
- class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None¶
Vytvoří objekt rozhraní
LAN. Všechny argumenty poidjsou pouze klíčové (keyword-only).idvybírá ethernetový port na deskách, které vystavují více než jeden (mimxrt port:0= ENET,1= ENET_1). Na deskách STM32, které mají pouze jediný MAC, je ignorováno.phy_typevybírá ovladač PHY (jednu z konstantPHY_*níže). PředánímNone(výchozí) se použije PHY zapojené na desce OpenMV.phy_addrje MDIO adresa PHY na řídicí sběrnici. PředánímNone(výchozí) se použije hodnota zapojená na desce.ref_clk_mode(pouze mimxrt) volí, zda je referenční hodinový signál RMII řízen MAC (OUT) nebo PHY (IN). Na deskách STM32 je ignorováno.Metody¶
- active(is_active: bool | None = None) bool¶
Aktivuje nebo deaktivuje Ethernet MAC.
Bez argumentu vrátí aktuální stav linky PHY jako pravdivé/nepravdivé celé číslo – úplnou sadu zakódovaných hodnot najdete v
status().active(True)spustí MAC a PHY, zahájí automatické vyjednávání (auto-negotiation) a aktivuje lwIP netif. Samotné navázání linky může chvíli trvat – pokud potřebujete blokovat, dokud nebude linka plně připravena, dotazujte se naisconnected(). Všechny ostatní metody (ipconfig(),config(), …) vyžadují, aby bylo rozhraní aktivní.active(False)zastaví MAC a zruší netif.
- isconnected() bool¶
Vrátí
True, když PHY vyjednalo navázání linky a rozhraní je v plně aktivním stavu (hodnota stavu linky3).
- status() int¶
Vrátí surový stav linky PHY jako celé číslo:
0– linka neaktivní.1– linka aktivní (pouze PHY, IP stack ještě není připraven).2– přechodový stav.3– linka aktivní a IP stack dokončil aktivaci rozhraní.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None¶
Získá nebo nastaví parametry rozhraní IPv4 jako 4-tici řetězců
(ip, subnet, gateway, dns)ve formátu tečkové notace.Poznámka
Pro nový kód upřednostněte
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
Získá nebo nastaví parametry rozhraní IPv4 / IPv6. Chová se stejně jako
AbstractNIC.ipconfig()– úplný seznam podporovaných názvů parametrů (dhcp4,addr4,gw4,autoconf6,addr6, …) najdete u této metody.
- config(param: str) Any¶
- config(**kwargs: Any) None
Získá nebo nastaví parametry rozhraní specifické pro Ethernet.
S jediným poziční řetězcovým argumentem vrátí hodnotu daného parametru:
"mac"– MAC adresa rozhraní jako 6bajtový objektbytes.
S klíčovými argumenty nastaví jeden nebo více parametrů:
trace=<int>– povolí trasování lwIP. Bitové pole:2trasuje TX,4trasuje RX,8povolí úplné trasování.low_power=<bool>– povolí nebo zakáže nízkopříkonový režim PHY IEEE 802.3az (Energy Efficient Ethernet).
Konstanty¶
- PHY_LAN8742: int¶
Microchip LAN8742A 10/100 Ethernet PHY. Pouze STM32 port; výchozí na OpenMV Cam N6 a Arduino Portenta H7.
- PHY_DP83848: int¶
Texas Instruments DP83848 10/100 Ethernet PHY. Dostupné na portech STM32 i mimxrt.
- PHY_DP83825: int¶
Texas Instruments DP83825 10/100 Ethernet PHY. Dostupné na portech STM32 i mimxrt.
- PHY_KSZ8081: int¶
Microchip KSZ8081 10/100 Ethernet PHY. Pouze mimxrt port; výchozí na OpenMV Cam RT1062.