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ố sauidlà chỉ từ khóa.idchọ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_typechọn trình điều khiển PHY (một trong các hằng sốPHY_*bên dưới). TruyềnNone(mặc định) để sử dụng PHY được nối dây trên bo mạch OpenMV.phy_addrlà địa chỉ MDIO của PHY trên bus quản lý. TruyềnNone(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ề
Truekhi PHY đã đàm phán liên kết thành công và giao diện ở trạng thái hoàn toàn hoạt động (giá trị trạng thái liên kết3).
- 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ượngbytes6 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:2theo dõi TX,4theo dõi RX,8bậ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_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.