class LAN – שליטה בממשק Ethernet¶
המחלקה LAN מפעילה את ה-MAC של Ethernet המוטמע בשבב ה-MCU מול 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¶
מעלה או מוריד את ה-MAC של Ethernet.
ללא ארגומנט, מחזיר את מצב קישור ה-PHY הנוכחי כמספר שלם אמיתי/שקרי – ראה
status()עבור המערך המלא של הערכים המקודדים.active(True)מפעיל את ה-MAC וה-PHY, מתחיל משא ומתן אוטומטי, ומעלה את ה-netif של lwIP. עליית הקישור עצמה עשויה לקחת רגע להשלמה – בצע סקירה (poll) שלisconnected()אם עליך לחסום עד שהקישור מוכן לחלוטין. כל שאר המתודות (ipconfig(),config(), …) דורשות שהממשק יהיה פעיל.active(False)עוצר את ה-MAC ומפרק את ה-netif.
- 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)בפורמט נקודה-רביעייה.הערה
העדף את
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 של הממשק כאובייקטbytesבן 6 בייטים.
עם ארגומנטים של מילות מפתח, מגדיר פרמטר אחד או יותר:
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 בלבד; ברירת מחדל ב-OpenMV Cam N6 וב-Arduino Portenta H7.
- PHY_DP83848: int¶
Texas Instruments DP83848 Ethernet PHY 10/100. זמין הן בפורט STM32 והן בפורט mimxrt.
- PHY_DP83825: int¶
Texas Instruments DP83825 Ethernet PHY 10/100. זמין הן בפורט STM32 והן בפורט mimxrt.