class LAN – керування інтерфейсом Ethernet

Клас LAN керує вбудованим у MCU контролером Ethernet MAC у зв’язці із зовнішнім PHY через RMII. Тип PHY, адреса MDIO та розводка виводів залежать від конкретної плати; розумні значення за замовчуванням вбудовані в кожну плату OpenMV, тому конструктор зазвичай не потребує аргументів.

Доступно на:

  • OpenMV Cam N6 (порт STM32) – PHY за замовчуванням PHY_LAN8742.

  • Arduino Portenta H7 (порт STM32) – PHY за замовчуванням PHY_LAN8742.

  • OpenMV Cam RT1062 (порт mimxrt) – PHY за замовчуванням PHY_KSZ8081.

Приклад використання:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Конструктори

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

Створює об’єкт інтерфейсу LAN. Усі аргументи після id є лише ключовими.

id вибирає порт Ethernet на платах, що мають більше одного (порт mimxrt: 0 = ENET, 1 = ENET_1). Ігнорується на платах STM32, які мають лише один MAC.

phy_type вибирає драйвер PHY (одна з констант PHY_* нижче). Передайте None (за замовчуванням), щоб використовувати PHY, підключений до плати OpenMV.

phy_addr — адреса MDIO PHY на шині управління. Передайте None (за замовчуванням), щоб використовувати значення, вбудоване в плату.

ref_clk_mode (лише для mimxrt) вибирає, чи тактовий сигнал RMII генерується MAC (OUT) або PHY (IN). Ігнорується на платах STM32.

Методи

active(is_active: bool | None = None) bool

Вмикає або вимикає Ethernet MAC.

Без аргументу повертає поточний стан зв’язку PHY як цілочисельне значення, яке можна інтерпретувати як істинне/хибне – повний набір закодованих значень описано в status().

active(True) запускає MAC і PHY, ініціює автоузгодження та піднімає мережевий інтерфейс lwIP. Встановлення зв’язку може зайняти деякий час – опитайте isconnected(), якщо потрібно заблокуватися до повного готовності зв’язку. Усі інші методи (ipconfig(), config(), …) вимагають активного інтерфейсу.

active(False) зупиняє MAC і розбирає мережевий інтерфейс.

isconnected() bool

Повертає True, якщо PHY успішно узгодив з’єднання та інтерфейс перебуває у повністю активному стані (значення статусу зв’язку 3).

status() int

Повертає сирий статус зв’язку PHY у вигляді цілого числа:

  • 0 – зв’язок відсутній.

  • 1 – зв’язок встановлено (лише PHY, IP-стек ще не готовий).

  • 2 – перехідний стан.

  • 3 – зв’язок встановлено і IP-стек завершив підняття інтерфейсу.

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

Отримує або встановлює параметри інтерфейсу IPv4 у вигляді 4-кортежу рядків (ip, subnet, gateway, dns) у форматі dotted-quad.

Примітка

Для нового коду рекомендуємо використовувати 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

Отримує або встановлює параметри інтерфейсу IPv4 / IPv6. Поводиться так само, як AbstractNIC.ipconfig() – дивіться цей метод для повного списку підтримуваних імен параметрів (dhcp4, addr4, gw4, autoconf6, addr6, …).

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

Отримує або встановлює специфічні для Ethernet параметри інтерфейсу.

З одним позиційним рядковим аргументом повертає значення цього параметра:

  • "mac" – MAC-адреса інтерфейсу у вигляді 6-байтного об’єкта bytes.

З ключовими аргументами встановлює один або кілька параметрів:

  • trace=<int> – увімкнути трасування lwIP. Бітове поле: 2 трасує TX, 4 трасує RX, 8 вмикає повне трасування.

  • low_power=<bool> – увімкнути або вимкнути режим пониженого енергоспоживання PHY за стандартом IEEE 802.3az (Energy Efficient Ethernet).

Константи

PHY_LAN8742: int

Мікросхема Microchip LAN8742A, PHY Ethernet 10/100. Лише для порту STM32; використовується за замовчуванням на OpenMV Cam N6 та Arduino Portenta H7.

PHY_LAN8720: int

Мікросхема Microchip LAN8720, PHY Ethernet 10/100. Доступна на портах STM32 і mimxrt.

PHY_DP83848: int

Мікросхема Texas Instruments DP83848, PHY Ethernet 10/100. Доступна на портах STM32 і mimxrt.

PHY_DP83825: int

Мікросхема Texas Instruments DP83825, PHY Ethernet 10/100. Доступна на портах STM32 і mimxrt.

PHY_KSZ8081: int

Мікросхема Microchip KSZ8081, PHY Ethernet 10/100. Лише для порту mimxrt; використовується за замовчуванням на OpenMV Cam RT1062.

PHY_DP83867: int

Мікросхема Texas Instruments DP83867, гігабітний PHY Ethernet. Лише для порту mimxrt.

PHY_RTL8211F: int

Мікросхема Realtek RTL8211F, гігабітний PHY Ethernet. Лише для порту mimxrt.

IN: int

Передається в ref_clk_mode, щоб тактовий сигнал RMII генерувався PHY. Лише для порту mimxrt.

OUT: int

Передається в ref_clk_mode, щоб тактовий сигнал RMII генерувався MAC. Лише для порту mimxrt.