class LAN -- điều khiển giao diện Ethernet

Lớp LAN điều khiển MAC Ethernet tích hợp trên MCU thông qua một PHY RMII ngoài. Loại PHY, địa chỉ MDIO và sơ đồ chân đều phụ thuộc vào bo mạch; các giá trị mặc định hợp lý đã được tích hợp vào mỗi bo mạch OpenMV nên hàm khởi tạo thông thường không cần đối số.

Có sẵn trên:

  • OpenMV Cam N6 (cổng STM32) -- PHY mặc định PHY_LAN8742.

  • Arduino Portenta H7 (cổng STM32) -- PHY mặc định PHY_LAN8742.

  • OpenMV Cam RT1062 (cổng mimxrt) -- PHY mặc định PHY_KSZ8081.

Ví dụ sử dụng:

import network

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

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Hàm khởi tạo

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

Khởi tạo đối tượng giao diện LAN. Tất cả các đối số sau id là chỉ từ khóa.

id chọn cổng Ethernet trên các bo mạch có nhiều hơn một cổng (cổng mimxrt: 0 = ENET, 1 = ENET_1). Bị bỏ qua trên các bo mạch STM32, vốn chỉ có một MAC duy nhất.

phy_type chọn trình điều khiển PHY (một trong các hằng số PHY_* bên dưới). Truyền None (mặc định) để sử dụng PHY được nối dây trên bo mạch OpenMV.

phy_addr là địa chỉ MDIO của PHY trên bus quản lý. Truyền None (mặc định) để sử dụng giá trị nối dây của bo mạch.

ref_clk_mode (chỉ mimxrt) chọn xem đồng hồ tham chiếu RMII được điều khiển bởi MAC (OUT) hay bởi PHY (IN). Bị bỏ qua trên các bo mạch STM32.

Phương thức

active(is_active: bool | None = None) bool

Khởi động hoặc tắt MAC Ethernet.

Khi không có đối số, trả về trạng thái liên kết PHY hiện tại dưới dạng số nguyên truthy/falsy -- xem status() để biết toàn bộ tập giá trị được mã hóa.

active(True) khởi động MAC và PHY, khởi tạo tự đàm phán và đưa netif lwIP lên. Bản thân việc liên kết có thể mất một lúc để hoàn tất -- hãy thăm dò isconnected() nếu bạn cần chặn cho đến khi liên kết hoàn toàn sẵn sàng. Tất cả các phương thức khác (ipconfig(), config(), ...) yêu cầu giao diện phải đang hoạt động.

active(False) dừng MAC và phá bỏ netif.

isconnected() bool

Trả về True khi PHY đã đàm phán liên kết thành công giao diện ở trạng thái hoàn toàn hoạt động (giá trị trạng thái liên kết 3).

status() int

Trả về trạng thái liên kết PHY thô dưới dạng số nguyên:

  • 0 -- liên kết xuống.

  • 1 -- liên kết lên (chỉ PHY, ngăn xếp IP chưa sẵn sàng).

  • 2 -- đang chuyển đổi.

  • 3 -- liên kết lên và ngăn xếp IP đã hoàn thành việc đưa giao diện lên.

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

Lấy hoặc đặt các tham số giao diện IPv4 dưới dạng 4-tuple gồm các chuỗi dấu chấm-quad (ip, subnet, gateway, dns).

Ghi chú

Ưu tiên dùng ipconfig() cho code mới:

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

Lấy hoặc đặt các tham số giao diện IPv4 / IPv6. Hoạt động giống như AbstractNIC.ipconfig() -- xem phương thức đó để biết danh sách đầy đủ các tên tham số được hỗ trợ (dhcp4, addr4, gw4, autoconf6, addr6, ...).

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

Lấy hoặc đặt các tham số giao diện đặc thù Ethernet.

Với một đối số chuỗi vị trí duy nhất, trả về giá trị của tham số đó:

  • "mac" -- địa chỉ MAC giao diện dưới dạng đối tượng bytes 6 byte.

Với các đối số từ khóa, đặt một hoặc nhiều tham số:

  • trace=<int> -- bật truy vết lwIP. Trường bit: 2 theo dõi TX, 4 theo dõi RX, 8 bật truy vết đầy đủ.

  • low_power=<bool> -- bật hoặc tắt chế độ tiết kiệm điện IEEE 802.3az (Energy Efficient Ethernet) của PHY.

Hằng số

PHY_LAN8742: int

PHY Ethernet 10/100 Microchip LAN8742A. Chỉ cổng STM32; mặc định trên OpenMV Cam N6 và Arduino Portenta H7.

PHY_LAN8720: int

PHY Ethernet 10/100 Microchip LAN8720. Có sẵn trên cả cổng STM32 và mimxrt.

PHY_DP83848: int

PHY Ethernet 10/100 Texas Instruments DP83848. Có sẵn trên cả cổng STM32 và mimxrt.

PHY_DP83825: int

PHY Ethernet 10/100 Texas Instruments DP83825. Có sẵn trên cả cổng STM32 và mimxrt.

PHY_KSZ8081: int

PHY Ethernet 10/100 Microchip KSZ8081. Chỉ cổng mimxrt; mặc định trên OpenMV Cam RT1062.

PHY_DP83867: int

PHY Ethernet gigabit Texas Instruments DP83867. Chỉ cổng mimxrt.

PHY_RTL8211F: int

PHY Ethernet gigabit Realtek RTL8211F. Chỉ cổng mimxrt.

IN: int

Truyền vào ref_clk_mode để đồng hồ tham chiếu RMII được điều khiển bởi PHY. Chỉ cổng mimxrt.

OUT: int

Truyền vào ref_clk_mode để đồng hồ tham chiếu RMII được điều khiển bởi MAC. Chỉ cổng mimxrt.