class LAN – controlo de uma interface Ethernet

A classe LAN controla a MAC Ethernet integrada no MCU em conjunto com um PHY RMII externo. O tipo de PHY, o endereço MDIO e o mapeamento de pinos são específicos de cada placa; os valores predefinidos sensatos estão incorporados em cada placa OpenMV, pelo que o construtor normalmente não recebe argumentos.

Disponível em:

  • OpenMV Cam N6 (porta STM32) – PHY padrão PHY_LAN8742.

  • Arduino Portenta H7 (porta STM32) – PHY padrão PHY_LAN8742.

  • OpenMV Cam RT1062 (porta mimxrt) – PHY padrão PHY_KSZ8081.

Exemplo de utilização:

import network

nic = network.LAN()
nic.active(True)

while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

Construtores

class network.LAN(id: int = 0, *, phy_type: int | None = None, phy_addr: int | None = None, ref_clk_mode: int | None = None) None

Constrói um objeto de interface LAN. Todos os argumentos a seguir a id são exclusivamente por palavra-chave.

id seleciona a porta Ethernet em placas que expõem mais de uma (porta mimxrt: 0 = ENET, 1 = ENET_1). Ignorado nas placas STM32, que têm apenas uma única MAC.

phy_type seleciona o controlador PHY (uma das constantes PHY_* abaixo). Passe None (o valor padrão) para usar o PHY ligado na placa OpenMV.

phy_addr é o endereço MDIO do PHY no barramento de gestão. Passe None (o valor padrão) para usar o valor da placa.

ref_clk_mode (apenas mimxrt) seleciona se o relógio de referência RMII é fornecido pela MAC (OUT) ou pelo PHY (IN). Ignorado nas placas STM32.

Métodos

active(is_active: bool | None = None) bool

Liga ou desliga a MAC Ethernet.

Sem argumento, devolve o estado atual do link do PHY como um inteiro com valor verdadeiro/falso – consulte status() para o conjunto completo de valores codificados.

active(True) inicia a MAC e o PHY, lança a auto-negociação e ativa a interface lwIP. A ligação em si pode demorar um momento a concluir – utilize isconnected() se precisar de aguardar até a ligação estar completamente pronta. Todos os outros métodos (ipconfig(), config(), …) requerem que a interface esteja ativa.

active(False) para a MAC e desfaz a interface de rede.

isconnected() bool

Devolve True quando o PHY negociou link-up e a interface está no estado completamente ativo (valor de estado do link 3).

status() int

Devolve o estado bruto do link do PHY como um inteiro:

  • 0 – link inativo.

  • 1 – link ativo (apenas PHY, pilha IP ainda não pronta).

  • 2 – em transição.

  • 3 – link ativo e a pilha IP terminou de ativar a interface.

ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str] | None

Obtém ou define os parâmetros IPv4 da interface como um tuplo de 4 elementos de strings (ip, subnet, gateway, dns) em notação decimal pontuada.

Nota

Prefira ipconfig() para novo código:

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

Obtém ou define os parâmetros de interface IPv4 / IPv6. Comporta-se da mesma forma que AbstractNIC.ipconfig() – consulte esse método para a lista completa de nomes de parâmetros suportados (dhcp4, addr4, gw4, autoconf6, addr6, …).

config(param: str) Any
config(**kwargs: Any) None

Obtém ou define os parâmetros de interface específicos da Ethernet.

Com um único argumento de string posicional, devolve o valor desse parâmetro:

  • "mac" – o endereço MAC da interface como um objeto bytes de 6 bytes.

Com argumentos de palavra-chave, define um ou mais parâmetros:

  • trace=<int> – ativa o rastreamento lwIP. Campo de bits: 2 rastreia TX, 4 rastreia RX, 8 ativa o rastreamento completo.

  • low_power=<bool> – ativa ou desativa o modo de baixo consumo IEEE 802.3az (Energy Efficient Ethernet) do PHY.

Constantes

PHY_LAN8742: int

PHY Ethernet 10/100 Microchip LAN8742A. Apenas para a porta STM32; padrão no OpenMV Cam N6 e Arduino Portenta H7.

PHY_LAN8720: int

PHY Ethernet 10/100 Microchip LAN8720. Disponível nas portas STM32 e mimxrt.

PHY_DP83848: int

PHY Ethernet 10/100 Texas Instruments DP83848. Disponível nas portas STM32 e mimxrt.

PHY_DP83825: int

PHY Ethernet 10/100 Texas Instruments DP83825. Disponível nas portas STM32 e mimxrt.

PHY_KSZ8081: int

PHY Ethernet 10/100 Microchip KSZ8081. Apenas para a porta mimxrt; padrão no OpenMV Cam RT1062.

PHY_DP83867: int

PHY Ethernet gigabit Texas Instruments DP83867. Apenas para a porta mimxrt.

PHY_RTL8211F: int

PHY Ethernet gigabit Realtek RTL8211F. Apenas para a porta mimxrt.

IN: int

Passe a ref_clk_mode para que o relógio de referência RMII seja fornecido pelo PHY. Apenas para a porta mimxrt.

OUT: int

Passe a ref_clk_mode para que o relógio de referência RMII seja fornecido pela MAC. Apenas para a porta mimxrt.