class LAN -- التحكم في واجهة Ethernet¶
يشغّل الصنف LAN وحدة MAC الخاصة بـ Ethernet المدمجة في المتحكم مقابل طرف 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، وتطلق التفاوض التلقائي، وترفع واجهة lwIP netif. وقد يستغرق ارتفاع الارتباط نفسه لحظة لإتمامه -- استطلِع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 كصف رباعي من السلاسل النصية رباعية النقاط
(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¶
طرف Ethernet PHY من نوع Microchip LAN8742A بسرعة 10/100. منفذ STM32 فقط؛ افتراضي على OpenMV Cam N6 و Arduino Portenta H7.
- PHY_LAN8720: int¶
طرف Ethernet PHY من نوع Microchip LAN8720 بسرعة 10/100. متوفر على منفذي STM32 و mimxrt.
- PHY_DP83848: int¶
طرف Ethernet PHY من نوع Texas Instruments DP83848 بسرعة 10/100. متوفر على منفذي STM32 و mimxrt.
- PHY_DP83825: int¶
طرف Ethernet PHY من نوع Texas Instruments DP83825 بسرعة 10/100. متوفر على منفذي STM32 و mimxrt.
- PHY_KSZ8081: int¶
طرف Ethernet PHY من نوع Microchip KSZ8081 بسرعة 10/100. منفذ mimxrt فقط؛ افتراضي على OpenMV Cam RT1062.