class LAN -- ควบคุมอินเทอร์เฟซ Ethernet¶
คลาส LAN ขับเคลื่อน Ethernet MAC บนชิป MCU ให้ทำงานร่วมกับ PHY แบบ RMII ภายนอก ประเภท PHY ที่อยู่ MDIO และการเชื่อมต่อพินล้วนขึ้นอยู่กับบอร์ด โดยค่าเริ่มต้นที่เหมาะสมถูกฝังไว้ในบอร์ด OpenMV แต่ละรุ่น ดังนั้นคอนสตรัคเตอร์จึงมักไม่ต้องรับอาร์กิวเมนต์ใด
รองรับบน:
OpenMV Cam N6 (STM32 port) -- PHY เริ่มต้น
PHY_LAN8742Arduino Portenta H7 (STM32 port) -- PHY เริ่มต้น
PHY_LAN8742OpenMV Cam RT1062 (mimxrt port) -- 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เป็นแบบ keyword-onlyidเลือกพอร์ต Ethernet บนบอร์ดที่มีมากกว่าหนึ่งพอร์ต (mimxrt port:0= ENET,1= ENET_1) ไม่ถูกใช้บนบอร์ด STM32 ซึ่งมี MAC เพียงตัวเดียวphy_typeเลือกไดรเวอร์ PHY (หนึ่งในค่าคงที่PHY_*ด้านล่าง) ส่งNone(ค่าเริ่มต้น) เพื่อใช้ PHY ที่เดินสายติดกับบอร์ด OpenMVphy_addrคือที่อยู่ MDIO ของ PHY บนบัสการจัดการ ส่งNone(ค่าเริ่มต้น) เพื่อใช้ค่าที่เดินสายของบอร์ดref_clk_mode(เฉพาะ mimxrt) เลือกว่านาฬิกาอ้างอิง RMII ถูกขับเคลื่อนโดย MAC (OUT) หรือโดย PHY (IN) ไม่ถูกใช้บนบอร์ด STM32เมธอด¶
- active(is_active: bool | None = None) bool¶
เปิดหรือปิด Ethernet MAC
เมื่อไม่มีอาร์กิวเมนต์ คืนค่าสถานะลิงก์ PHY ปัจจุบันเป็นจำนวนเต็มแบบ truthy/falsy -- ดู
status()สำหรับชุดค่าที่เข้ารหัสทั้งหมดactive(True)เริ่มต้น MAC และ PHY กระตุ้นการเจรจาอัตโนมัติ และเปิดใช้งาน lwIP netif การเชื่อมต่ออาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ -- โพลisconnected()หากต้องการบล็อกจนกว่าลิงก์จะพร้อมสมบูรณ์ เมธอดอื่นทั้งหมด (ipconfig(),config(), ...) ต้องการให้อินเทอร์เฟซทำงานอยู่ก่อนactive(False)หยุด MAC และยุติ netif
- isconnected() bool¶
คืนค่า
Trueเมื่อ PHY เจรจาการเชื่อมต่อแล้ว และ อินเทอร์เฟซอยู่ในสถานะ fully-up (ค่าสถานะลิงก์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-tuple ของสตริง dotted-quad
(ip, subnet, gateway, dns)Note
แนะนำให้ใช้
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 address ของอินเทอร์เฟซเป็นออบเจ็กต์bytesขนาด 6 ไบต์
เมื่อส่ง keyword arguments ตั้งค่าพารามิเตอร์หนึ่งรายการหรือมากกว่า:
trace=<int>-- เปิดใช้งานการติดตาม lwIP ฟิลด์บิต:2ติดตาม TX,4ติดตาม RX,8เปิดการติดตามแบบสมบูรณ์low_power=<bool>-- เปิดหรือปิดโหมดประหยัดพลังงาน IEEE 802.3az (Energy Efficient Ethernet) ของ PHY
ค่าคงที่¶
- PHY_LAN8742: int¶
Microchip LAN8742A Ethernet PHY ความเร็ว 10/100 เฉพาะ STM32 port เท่านั้น ค่าเริ่มต้นบน OpenMV Cam N6 และ Arduino Portenta H7
- PHY_DP83848: int¶
Texas Instruments DP83848 Ethernet PHY ความเร็ว 10/100 ใช้ได้ทั้ง STM32 และ mimxrt port
- PHY_DP83825: int¶
Texas Instruments DP83825 Ethernet PHY ความเร็ว 10/100 ใช้ได้ทั้ง STM32 และ mimxrt port
- PHY_KSZ8081: int¶
Microchip KSZ8081 Ethernet PHY ความเร็ว 10/100 เฉพาะ mimxrt port เท่านั้น ค่าเริ่มต้นบน OpenMV Cam RT1062
- PHY_DP83867: int¶
Texas Instruments DP83867 Ethernet PHY ความเร็ว Gigabit เฉพาะ mimxrt port เท่านั้น