class LAN – 이더넷 인터페이스 제어#

LAN 클래스는 MCU의 온칩 이더넷 MAC을 외부 RMII PHY와 함께 구동합니다. 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는 둘 이상을 노출하는 보드에서 이더넷 포트를 선택합니다(mimxrt 포트: 0 = ENET, 1 = ENET_1). 단일 MAC만 가진 STM32 보드에서는 무시됩니다.

phy_type 은 PHY 드라이버(아래의 PHY_* 상수 중 하나)를 선택합니다. OpenMV 보드에 연결된 PHY를 사용하려면 None (기본값)을 전달하세요.

phy_addr 은 관리 버스 상의 PHY의 MDIO 주소입니다. 보드에 연결된 값을 사용하려면 None (기본값)을 전달하세요.

ref_clk_mode (mimxrt 전용)는 RMII 기준 클럭을 MAC(OUT)이 구동할지 아니면 PHY(IN)가 구동할지를 선택합니다. STM32 보드에서는 무시됩니다.

메서드#

active(is_active: bool | None = None) bool#

이더넷 MAC을 켜거나 끕니다.

인수가 없으면 현재 PHY 링크 상태를 참/거짓 정수로 반환합니다 – 인코딩된 값의 전체 집합은 status()를 참조하십시오.

active(True)는 MAC과 PHY를 시작하고 자동 협상을 개시하며 lwIP netif를 올립니다. 링크 업 자체는 완료되는 데 시간이 걸릴 수 있습니다 – 링크가 완전히 준비될 때까지 차단해야 한다면 isconnected()를 폴링하십시오. 다른 모든 메서드(ipconfig(), config(), …)는 인터페이스가 활성화되어 있어야 합니다.

active(False)는 MAC을 중지하고 netif를 해제합니다.

isconnected() bool#

PHY가 링크 업을 협상했고 동시에 인터페이스가 완전히 올라온 상태(링크 상태 값 3)일 때 True를 반환합니다.

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) 점-사분 문자열로 이루어진 4-튜플로 가져오거나 설정합니다.

참고

새 코드에는 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

이더넷 고유 인터페이스 파라미터를 가져오거나 설정합니다.

단일 위치 문자열 인수와 함께 호출하면 해당 파라미터의 값을 반환합니다:

  • "mac" – 인터페이스 MAC 주소를 6바이트 bytes 객체로 반환.

키워드 인수와 함께 호출하면 하나 이상의 파라미터를 설정합니다:

  • trace=<int> – lwIP 추적을 활성화합니다. 비트 필드: 2는 TX 추적, 4는 RX 추적, 8은 전체 추적을 활성화합니다.

  • low_power=<bool> – PHY의 IEEE 802.3az(Energy Efficient Ethernet) 저전력 모드를 활성화 또는 비활성화합니다.

상수#

PHY_LAN8742: int#

Microchip LAN8742A 10/100 이더넷 PHY. STM32 포트 전용이며, OpenMV Cam N6 및 Arduino Portenta H7의 기본값입니다.

PHY_LAN8720: int#

Microchip LAN8720 10/100 이더넷 PHY. STM32 및 mimxrt 포트 모두에서 사용 가능합니다.

PHY_DP83848: int#

Texas Instruments DP83848 10/100 이더넷 PHY. STM32 및 mimxrt 포트 모두에서 사용 가능합니다.

PHY_DP83825: int#

Texas Instruments DP83825 10/100 이더넷 PHY. STM32 및 mimxrt 포트 모두에서 사용 가능합니다.

PHY_KSZ8081: int#

Microchip KSZ8081 10/100 이더넷 PHY. mimxrt 포트 전용이며, OpenMV Cam RT1062의 기본값입니다.

PHY_DP83867: int#

Texas Instruments DP83867 기가비트 이더넷 PHY. mimxrt 포트 전용입니다.

PHY_RTL8211F: int#

Realtek RTL8211F 기가비트 이더넷 PHY. mimxrt 포트 전용입니다.

IN: int#

RMII 기준 클럭을 PHY가 구동하도록 ref_clk_mode에 전달합니다. mimxrt 포트 전용입니다.

OUT: int#

RMII 기준 클럭을 MAC이 구동하도록 ref_clk_mode에 전달합니다. mimxrt 포트 전용입니다.