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 포트 전용입니다.