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.