class LAN – Ethernet-rajapinnan ohjaus

LAN-luokka ohjaa mikro-ohjaimen sirulla olevaa Ethernet-MAC-osaa ulkoista RMII-PHY:tä vasten. PHY-tyyppi, MDIO-osoite ja nastajärjestys ovat kaikki korttikohtaisia; järkevät oletukset on sisäänrakennettu jokaiseen OpenMV-korttiin, joten konstruktori ei yleensä ota argumentteja.

Saatavilla:

  • OpenMV Cam N6 (STM32-portti) – oletus-PHY PHY_LAN8742.

  • Arduino Portenta H7 (STM32-portti) – oletus-PHY PHY_LAN8742.

  • OpenMV Cam RT1062 (mimxrt-portti) – oletus-PHY PHY_KSZ8081.

Esimerkkikäyttö:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Konstruktorit

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

Luo LAN-rajapintaolio. Kaikki argumentit id-argumentin jälkeen ovat vain avainsanoina annettavia.

id valitsee Ethernet-portin korteilla, joilla niitä on useampi kuin yksi (mimxrt-portti: 0 = ENET, 1 = ENET_1). Sivuutetaan STM32-korteilla, joilla on vain yksi MAC.

phy_type valitsee PHY-ajurin (yksi alla olevista PHY_*-vakioista). Anna None (oletus) käyttääksesi OpenMV-korttiin johdotettua PHY:tä.

phy_addr on PHY:n MDIO-osoite hallintaväylällä. Anna None (oletus) käyttääksesi kortin johdotettua arvoa.

ref_clk_mode (vain mimxrt) valitsee, ohjaako RMII-referenssikelloa MAC (OUT) vai PHY (IN). Sivuutetaan STM32-korteilla.

Metodit

active(is_active: bool | None = None) bool

Käynnistää tai sammuttaa Ethernet-MAC-osan.

Ilman argumenttia palauttaa PHY:n nykyisen linkkitilan tosi/epätosi-tyyppisenä kokonaislukuna – katso status() koodattujen arvojen täydellisen joukon osalta.

active(True) käynnistää MAC:n ja PHY:n, aloittaa automaattineuvottelun ja nostaa lwIP-netifin ylös. Itse linkin nousu voi viedä hetken – pollaa isconnected(), jos haluat estyä, kunnes linkki on täysin valmis. Kaikki muut metodit (ipconfig(), config(), …) vaativat, että rajapinta on aktiivinen.

active(False) pysäyttää MAC:n ja purkaa netifin.

isconnected() bool

Palauttaa True, kun PHY on neuvotellut linkin nousun ja rajapinta on täysin ylhäällä olevassa tilassa (linkkitilan arvo 3).

status() int

Palauttaa raa’an PHY:n linkkitilan kokonaislukuna:

  • 0 – linkki alhaalla.

  • 1 – linkki ylhäällä (vain PHY, IP-pino ei vielä valmis).

  • 2 – siirtymässä.

  • 3 – linkki ylhäällä ja IP-pino on saanut rajapinnan noston valmiiksi.

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

Hakee tai asettaa IPv4-rajapinnan parametrit 4-monikkona (ip, subnet, gateway, dns) pisteneliömuotoisina merkkijonoina.

Muista

Suosi ipconfig()-metodia uudessa koodissa:

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

Hakee tai asettaa IPv4 / IPv6 -rajapinnan parametrit. Toimii samoin kuin AbstractNIC.ipconfig() – katso kyseinen metodi tuettujen parametrinimien täydellisen luettelon osalta (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Hakee tai asettaa Ethernet-kohtaiset rajapinnan parametrit.

Yksittäisellä positionaalisella merkkijonoargumentilla palauttaa kyseisen parametrin arvon:

  • "mac" – rajapinnan MAC-osoite 6-tavuisena bytes-oliona.

Avainsana-argumenteilla asettaa yhden tai useamman parametrin:

  • trace=<int> – ottaa käyttöön lwIP-jäljityksen. Bittikenttä: 2 jäljittää lähetyksen (TX), 4 jäljittää vastaanoton (RX), 8 ottaa käyttöön täyden jäljityksen.

  • low_power=<bool> – ottaa käyttöön tai poistaa käytöstä PHY:n IEEE 802.3az (Energy Efficient Ethernet) -virransäästötilan.

Vakiot

PHY_LAN8742: int

Microchip LAN8742A 10/100 Ethernet-PHY. Vain STM32-portti; oletus OpenMV Cam N6:lla ja Arduino Portenta H7:llä.

PHY_LAN8720: int

Microchip LAN8720 10/100 Ethernet-PHY. Saatavilla sekä STM32- että mimxrt-porteilla.

PHY_DP83848: int

Texas Instruments DP83848 10/100 Ethernet-PHY. Saatavilla sekä STM32- että mimxrt-porteilla.

PHY_DP83825: int

Texas Instruments DP83825 10/100 Ethernet-PHY. Saatavilla sekä STM32- että mimxrt-porteilla.

PHY_KSZ8081: int

Microchip KSZ8081 10/100 Ethernet-PHY. Vain mimxrt-portti; oletus OpenMV Cam RT1062:lla.

PHY_DP83867: int

Texas Instruments DP83867 gigabitin Ethernet-PHY. Vain mimxrt-portti.

PHY_RTL8211F: int

Realtek RTL8211F gigabitin Ethernet-PHY. Vain mimxrt-portti.

IN: int

Anna ref_clk_mode-parametrille, jotta PHY ohjaa RMII-referenssikelloa. Vain mimxrt-portti.

OUT: int

Anna ref_clk_mode-parametrille, jotta MAC ohjaa RMII-referenssikelloa. Vain mimxrt-portti.