class LAN – contrôle d’une interface Ethernet

La classe LAN pilote le MAC Ethernet intégré au microcontrôleur avec un PHY RMII externe. Le type de PHY, l’adresse MDIO et le brochage dépendent tous de la carte ; des valeurs par défaut judicieuses sont intégrées à chaque carte OpenMV, de sorte que le constructeur ne prend normalement aucun argument.

Disponible sur :

  • OpenMV Cam N6 (port STM32) – PHY par défaut PHY_LAN8742.

  • Arduino Portenta H7 (port STM32) – PHY par défaut PHY_LAN8742.

  • OpenMV Cam RT1062 (port mimxrt) – PHY par défaut PHY_KSZ8081.

Exemple d’utilisation

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Constructeurs

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

Construit un objet d’interface LAN. Tous les arguments après id sont passés uniquement par mot-clé.

id sélectionne le port Ethernet sur les cartes qui en exposent plusieurs (port mimxrt : 0 = ENET, 1 = ENET_1). Ignoré sur les cartes STM32, qui ne possèdent qu’un seul MAC.

phy_type sélectionne le pilote PHY (l’une des constantes PHY_* ci-dessous). Passez None (la valeur par défaut) pour utiliser le PHY câblé sur la carte OpenMV.

phy_addr est l’adresse MDIO du PHY sur le bus de gestion. Passez None (la valeur par défaut) pour utiliser la valeur câblée de la carte.

ref_clk_mode (mimxrt uniquement) détermine si l’horloge de référence RMII est pilotée par le MAC (OUT) ou par le PHY (IN). Ignoré sur les cartes STM32.

Méthodes

active(is_active: bool | None = None) bool

Active ou désactive le MAC Ethernet.

Sans argument, renvoie l’état actuel du lien PHY sous forme d’entier vrai/faux – voir status() pour l’ensemble complet des valeurs encodées.

active(True) démarre le MAC et le PHY, lance l’auto-négociation et active le netif lwIP. L’établissement du lien lui-même peut prendre un moment – interrogez isconnected() si vous devez bloquer jusqu’à ce que le lien soit complètement prêt. Toutes les autres méthodes (ipconfig(), config(), …) nécessitent que l’interface soit active.

active(False) arrête le MAC et démonte le netif.

isconnected() bool

Renvoie True lorsque le PHY a négocié l’établissement du lien et que l’interface est dans l’état entièrement actif (valeur d’état du lien 3).

status() int

Renvoie l’état brut du lien PHY sous forme d’entier :

  • 0 – lien inactif.

  • 1 – lien actif (PHY uniquement, pile IP pas encore prête).

  • 2 – en transition.

  • 3 – lien actif et la pile IP a fini d’activer l’interface.

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

Lit ou définit les paramètres IPv4 de l’interface sous forme de 4-tuple de chaînes en notation décimale pointée (ip, subnet, gateway, dns).

Note

Préférez ipconfig() pour le nouveau code

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

Lit ou définit les paramètres IPv4 / IPv6 de l’interface. Se comporte de la même manière que AbstractNIC.ipconfig() – voir cette méthode pour la liste complète des noms de paramètres pris en charge (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Lit ou définit les paramètres d’interface spécifiques à Ethernet.

Avec un unique argument positionnel de type chaîne, renvoie la valeur de ce paramètre :

  • "mac" – l’adresse MAC de l’interface sous forme d’objet bytes de 6 octets.

Avec des arguments par mot-clé, définit un ou plusieurs paramètres :

  • trace=<int> – active le traçage lwIP. Champ de bits : 2 trace l’émission (TX), 4 trace la réception (RX), 8 active le traçage complet.

  • low_power=<bool> – active ou désactive le mode basse consommation IEEE 802.3az (Energy Efficient Ethernet) du PHY.

Constantes

PHY_LAN8742: int

PHY Ethernet 10/100 Microchip LAN8742A. Port STM32 uniquement ; valeur par défaut sur l’OpenMV Cam N6 et l’Arduino Portenta H7.

PHY_LAN8720: int

PHY Ethernet 10/100 Microchip LAN8720. Disponible sur les ports STM32 et mimxrt.

PHY_DP83848: int

PHY Ethernet 10/100 Texas Instruments DP83848. Disponible sur les ports STM32 et mimxrt.

PHY_DP83825: int

PHY Ethernet 10/100 Texas Instruments DP83825. Disponible sur les ports STM32 et mimxrt.

PHY_KSZ8081: int

PHY Ethernet 10/100 Microchip KSZ8081. Port mimxrt uniquement ; valeur par défaut sur l’OpenMV Cam RT1062.

PHY_DP83867: int

PHY Ethernet gigabit Texas Instruments DP83867. Port mimxrt uniquement.

PHY_RTL8211F: int

PHY Ethernet gigabit Realtek RTL8211F. Port mimxrt uniquement.

IN: int

À passer à ref_clk_mode pour que l’horloge de référence RMII soit pilotée par le PHY. Port mimxrt uniquement.

OUT: int

À passer à ref_clk_mode pour que l’horloge de référence RMII soit pilotée par le MAC. Port mimxrt uniquement.