class LAN – egy Ethernet interfész vezérlése¶
A LAN osztály az MCU csipen belüli Ethernet MAC-jét vezérli egy külső RMII PHY ellenében. A PHY típusa, MDIO-címe és lábkiosztása mind kártyafüggő; minden OpenMV kártyába ésszerű alapértékek vannak beépítve, így a konstruktor általában nem vesz át argumentumot.
Elérhető a következőkön:
OpenMV Cam N6 (STM32 port) – alapértelmezett PHY:
PHY_LAN8742.Arduino Portenta H7 (STM32 port) – alapértelmezett PHY:
PHY_LAN8742.OpenMV Cam RT1062 (mimxrt port) – alapértelmezett PHY:
PHY_KSZ8081.
Példa a használatra:
import network
nic = network.LAN()
nic.active(True)
while not nic.isconnected():
pass
print(nic.ipconfig("addr4"))
Konstruktorok¶
- class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None¶
Egy
LANinterfészobjektum létrehozása. Azidutáni összes argumentum csak kulcsszavas.Az
idválasztja ki az Ethernet portot azokon a kártyákon, amelyek egynél többet tesznek elérhetővé (mimxrt port:0= ENET,1= ENET_1). Az STM32 kártyákon figyelmen kívül marad, mivel azoknak csak egyetlen MAC-jük van.A
phy_typeválasztja ki a PHY-illesztőprogramot (az alábbiPHY_*konstansok egyike). Add át aNoneértéket (az alapértelmezést), hogy az OpenMV kártyára bekötött PHY-t használja.A
phy_addra PHY MDIO-címe a kezelőbuszon. Add át aNoneértéket (az alapértelmezést), hogy a kártya bekötött értékét használja.A
ref_clk_mode(csak mimxrt) választja ki, hogy az RMII referencia-órajelet a MAC (OUT) vagy a PHY (IN) hajtja-e meg. Az STM32 kártyákon figyelmen kívül marad.Metódusok¶
- active(is_active: bool | None = None) bool¶
Az Ethernet MAC be- vagy kikapcsolása.
Argumentum nélkül visszaadja az aktuális PHY-kapcsolat állapotát igaz/hamis egészként – a kódolt értékek teljes halmazához lásd a
status()metódust.Az
active(True)elindítja a MAC-et és a PHY-t, megkezdi az automatikus egyeztetést, és felhozza az lwIP netif-et. Maga a kapcsolat felépülése eltarthat egy ideig – ellenőrizd azisconnected()metódust, ha blokkolni szeretnél, amíg a kapcsolat teljesen kész nincs. Az összes többi metódus (ipconfig(),config(), …) megköveteli, hogy az interfész aktív legyen.Az
active(False)leállítja a MAC-et és lebontja a netif-et.
- isconnected() bool¶
Trueértéket ad vissza, amikor a PHY kiegyezett a kapcsolat felépüléséről és az interfész teljesen aktív állapotban van (a kapcsolat állapotának értéke3).
- status() int¶
Visszaadja a nyers PHY-kapcsolat állapotát egészként:
0– a kapcsolat le van bontva.1– a kapcsolat felépült (csak a PHY, az IP-verem még nem áll készen).2– átmeneti állapot.3– a kapcsolat felépült, és az IP-verem befejezte az interfész felhozását.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None¶
Az IPv4 interfészparaméterek lekérése vagy beállítása
(ip, subnet, gateway, dns)pontozott négyesekből álló négyelemű rendezett n-esként.Megjegyzés
Új kódhoz inkább az
ipconfig()metódust használd: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
Az IPv4 / IPv6 interfészparaméterek lekérése vagy beállítása. Ugyanúgy viselkedik, mint az
AbstractNIC.ipconfig()– a támogatott paraméternevek teljes listájához (dhcp4,addr4,gw4,autoconf6,addr6, …) lásd azt a metódust.
- config(param: str) Any¶
- config(**kwargs: Any) None
Az Ethernet-specifikus interfészparaméterek lekérése vagy beállítása.
Egyetlen pozicionális karakterlánc-argumentummal visszaadja az adott paraméter értékét:
"mac"– az interfész MAC-címe 6 bájtosbytesobjektumként.
Kulcsszavas argumentumokkal egy vagy több paraméter beállítása:
trace=<int>– az lwIP nyomkövetésének engedélyezése. Bitmező: a2a TX-et követi, a4az RX-et követi, a8a teljes nyomkövetést engedélyezi.low_power=<bool>– a PHY IEEE 802.3az (Energy Efficient Ethernet) kis fogyasztású módjának engedélyezése vagy letiltása.
Konstansok¶
- PHY_LAN8742: int¶
Microchip LAN8742A 10/100 Ethernet PHY. Csak STM32 port; alapértelmezett az OpenMV Cam N6 és az Arduino Portenta H7 kártyákon.
- PHY_LAN8720: int¶
Microchip LAN8720 10/100 Ethernet PHY. Mind az STM32, mind a mimxrt porton elérhető.
- PHY_DP83848: int¶
Texas Instruments DP83848 10/100 Ethernet PHY. Mind az STM32, mind a mimxrt porton elérhető.
- PHY_DP83825: int¶
Texas Instruments DP83825 10/100 Ethernet PHY. Mind az STM32, mind a mimxrt porton elérhető.
- PHY_KSZ8081: int¶
Microchip KSZ8081 10/100 Ethernet PHY. Csak mimxrt port; alapértelmezett az OpenMV Cam RT1062 kártyán.