class LAN – controla uma interface Ethernet¶
A classe LAN controla o MAC Ethernet integrado ao MCU contra um PHY RMII externo. O tipo do PHY, o endereço MDIO e a pinagem são todos específicos da placa; valores padrão sensatos estão embutidos em cada placa OpenMV, de modo 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 uso:
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 apósidsão somente nomeados.idseleciona a porta Ethernet em placas que expõem mais de uma (porta mimxrt:0= ENET,1= ENET_1). Ignorado em placas STM32, que possuem apenas um único MAC.phy_typeseleciona o driver do PHY (uma das constantesPHY_*abaixo). PasseNone(o padrão) para usar o PHY ligado à placa OpenMV.phy_addré o endereço MDIO do PHY no barramento de gerenciamento. PasseNone(o padrão) para usar o valor cabeado da placa.ref_clk_mode(somente mimxrt) seleciona se o clock de referência RMII é gerado pelo MAC (OUT) ou pelo PHY (IN). Ignorado em placas STM32.Métodos¶
- active(is_active: bool | None = None) bool¶
Ativa ou desativa o MAC Ethernet.
Sem argumento, retorna o status atual do link do PHY como um inteiro verdadeiro/falso – veja
status()para o conjunto completo de valores codificados.active(True)inicia o MAC e o PHY, dispara a auto-negociação e ativa o netif do lwIP. A subida do link em si pode levar um momento para completar – consulteisconnected()em loop se precisar bloquear até o link estar totalmente pronto. Todos os outros métodos (ipconfig(),config(), …) exigem que a interface esteja ativa.active(False)para o MAC e desmonta o netif.
- isconnected() bool¶
Retorna
Truequando o PHY negociou a subida do link e a interface está no estado totalmente ativo (valor de status do link3).
- status() int¶
Retorna o status 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 uma 4-tupla de strings em quádruplo decimal
(ip, subnet, gateway, dns).Nota
Prefira
ipconfig()para código novo: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 IPv4 / IPv6 da interface. Comporta-se da mesma forma que
AbstractNIC.ipconfig()– veja 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 parâmetros específicos da interface Ethernet.
Com um único argumento posicional do tipo string, retorna o valor desse parâmetro:
"mac"– o endereço MAC da interface como um objetobytesde 6 bytes.
Com argumentos nomeados, define um ou mais parâmetros:
trace=<int>– habilita o rastreamento do lwIP. Campo de bits:2rastreia TX,4rastreia RX,8habilita o rastreamento completo.low_power=<bool>– habilita ou desabilita o modo de baixo consumo IEEE 802.3az (Energy Efficient Ethernet) do PHY.
Constantes¶
- PHY_LAN8742: int¶
PHY Ethernet Microchip LAN8742A 10/100. Somente porta STM32; padrão na OpenMV Cam N6 e na Arduino Portenta H7.
- PHY_LAN8720: int¶
PHY Ethernet Microchip LAN8720 10/100. Disponível tanto na porta STM32 quanto na mimxrt.
- PHY_DP83848: int¶
PHY Ethernet Texas Instruments DP83848 10/100. Disponível tanto na porta STM32 quanto na mimxrt.
- PHY_DP83825: int¶
PHY Ethernet Texas Instruments DP83825 10/100. Disponível tanto na porta STM32 quanto na mimxrt.
- PHY_KSZ8081: int¶
PHY Ethernet Microchip KSZ8081 10/100. Somente porta mimxrt; padrão na OpenMV Cam RT1062.