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_LAN8720: int

Microchip LAN8720‏ Ethernet PHY‏ 10/100. זמין הן בפורט STM32 והן בפורט mimxrt.

PHY_DP83848: int

Texas Instruments DP83848‏ Ethernet PHY‏ 10/100. זמין הן בפורט STM32 והן בפורט mimxrt.

PHY_DP83825: int

Texas Instruments DP83825‏ Ethernet PHY‏ 10/100. זמין הן בפורט STM32 והן בפורט mimxrt.

PHY_KSZ8081: int

Microchip KSZ8081‏ Ethernet PHY‏ 10/100. פורט mimxrt בלבד; ברירת מחדל ב-OpenMV Cam RT1062.

PHY_DP83867: int

Texas Instruments DP83867‏ Ethernet PHY גיגה-ביט. פורט mimxrt בלבד.

PHY_RTL8211F: int

Realtek RTL8211F‏ Ethernet PHY גיגה-ביט. פורט mimxrt בלבד.

IN: int

העבר ל-ref_clk_mode כך ששעון הייחוס של RMII מונע על ידי ה-PHY. פורט mimxrt בלבד.

OUT: int

העבר ל-ref_clk_mode כך ששעון הייחוס של RMII מונע על ידי ה-MAC. פורט mimxrt בלבד.