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 aidsão exclusivamente por palavra-chave.idseleciona 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_typeseleciona o controlador PHY (uma das constantesPHY_*abaixo). PasseNone(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. PasseNone(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 – utilizeisconnected()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
Truequando o PHY negociou link-up e a interface está no estado completamente ativo (valor de estado do link3).
- 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 objetobytesde 6 bytes.
Com argumentos de palavra-chave, define um ou mais parâmetros:
trace=<int>– ativa o rastreamento lwIP. Campo de bits:2rastreia TX,4rastreia RX,8ativa 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_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.