class LAN -- kendali antarmuka Ethernet

Kelas LAN mengendalikan MAC Ethernet on-chip MCU terhadap PHY RMII eksternal. Jenis PHY, alamat MDIO, dan susunan pin semuanya bergantung pada board; nilai default yang masuk akal sudah tertanam di setiap board OpenMV sehingga konstruktor biasanya tidak memerlukan argumen.

Tersedia pada:

  • OpenMV Cam N6 (port STM32) -- PHY default PHY_LAN8742.

  • Arduino Portenta H7 (port STM32) -- PHY default PHY_LAN8742.

  • OpenMV Cam RT1062 (port mimxrt) -- PHY default PHY_KSZ8081.

Contoh penggunaan:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Konstruktor

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

Membuat objek antarmuka LAN. Semua argumen setelah id hanya dapat digunakan sebagai kata kunci.

id memilih port Ethernet pada board yang memiliki lebih dari satu (port mimxrt: 0 = ENET, 1 = ENET_1). Diabaikan pada board STM32 yang hanya memiliki satu MAC.

phy_type memilih driver PHY (salah satu dari konstanta PHY_* di bawah). Berikan None (default) untuk menggunakan PHY yang terhubung ke board OpenMV.

phy_addr adalah alamat MDIO dari PHY pada bus manajemen. Berikan None (default) untuk menggunakan nilai yang sudah terhubung ke board.

ref_clk_mode (khusus mimxrt) memilih apakah clock referensi RMII dikendalikan oleh MAC (OUT) atau oleh PHY (IN). Diabaikan pada board STM32.

Metode

active(is_active: bool | None = None) bool

Menghidupkan atau mematikan MAC Ethernet.

Tanpa argumen, mengembalikan status link PHY saat ini sebagai bilangan bulat truthy/falsy -- lihat status() untuk kumpulan nilai yang dikodekan secara lengkap.

active(True) memulai MAC dan PHY, memulai auto-negotiation, dan menghidupkan netif lwIP. Link-up itu sendiri mungkin memerlukan waktu sebentar -- polling isconnected() jika Anda perlu memblokir sampai link benar-benar siap. Semua metode lain (ipconfig(), config(), ...) mengharuskan antarmuka dalam keadaan aktif.

active(False) menghentikan MAC dan meruntuhkan netif.

isconnected() bool

Mengembalikan True ketika PHY telah bernegosiasi link-up dan antarmuka berada dalam status fully-up (nilai status link 3).

status() int

Mengembalikan status link PHY mentah sebagai bilangan bulat:

  • 0 -- link down.

  • 1 -- link up (PHY saja, tumpukan IP belum siap).

  • 2 -- dalam proses transisi.

  • 3 -- link up dan tumpukan IP telah selesai menghidupkan antarmuka.

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

Mendapatkan atau mengatur parameter antarmuka IPv4 sebagai 4-tuple berisi string dotted-quad (ip, subnet, gateway, dns).

Catatan

Utamakan ipconfig() untuk kode baru:

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

Mendapatkan atau mengatur parameter antarmuka IPv4 / IPv6. Berperilaku sama seperti AbstractNIC.ipconfig() -- lihat metode tersebut untuk daftar lengkap nama parameter yang didukung (dhcp4, addr4, gw4, autoconf6, addr6, ...).

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

Mendapatkan atau mengatur parameter antarmuka khusus Ethernet.

Dengan satu argumen string posisional, mengembalikan nilai parameter tersebut:

  • "mac" -- alamat MAC antarmuka sebagai objek bytes 6-byte.

Dengan argumen kata kunci, mengatur satu atau beberapa parameter:

  • trace=<int> -- mengaktifkan tracing lwIP. Bidang bit: 2 melacak TX, 4 melacak RX, 8 mengaktifkan tracing penuh.

  • low_power=<bool> -- mengaktifkan atau menonaktifkan mode daya rendah IEEE 802.3az (Energy Efficient Ethernet) pada PHY.

Konstanta

PHY_LAN8742: int

Microchip LAN8742A PHY Ethernet 10/100. Khusus port STM32; default pada OpenMV Cam N6 dan Arduino Portenta H7.

PHY_LAN8720: int

Microchip LAN8720 PHY Ethernet 10/100. Tersedia di port STM32 dan mimxrt.

PHY_DP83848: int

Texas Instruments DP83848 PHY Ethernet 10/100. Tersedia di port STM32 dan mimxrt.

PHY_DP83825: int

Texas Instruments DP83825 PHY Ethernet 10/100. Tersedia di port STM32 dan mimxrt.

PHY_KSZ8081: int

Microchip KSZ8081 PHY Ethernet 10/100. Khusus port mimxrt; default pada OpenMV Cam RT1062.

PHY_DP83867: int

Texas Instruments DP83867 PHY Ethernet gigabit. Khusus port mimxrt.

PHY_RTL8211F: int

Realtek RTL8211F PHY Ethernet gigabit. Khusus port mimxrt.

IN: int

Diberikan ke ref_clk_mode agar clock referensi RMII dikendalikan oleh PHY. Khusus port mimxrt.

OUT: int

Diberikan ke ref_clk_mode agar clock referensi RMII dikendalikan oleh MAC. Khusus port mimxrt.