Partilhar via


Preparar o Azure Sphere para Ethernet

Para comunicar através de Ethernet, um dispositivo do Azure Sphere requer um adaptador Ethernet externo e uma imagem de configuração do quadro. São necessários os seguintes passos para preparar o dispositivo para a rede através de Ethernet:

  1. Ligue o adaptador ao seu dispositivo.

  2. Criar e implementar a imagem de configuração do quadro.

  3. Ative a interface Ethernet.

Atenção

Se o dispositivo estiver ligado através de Ethernet, é necessária uma rede de tráfego reduzido para evitar perdas de dados ou desempenho fraco. O dispositivo perderá dados de pacotes não TCP recebidos quando houver tráfego de entrada significativo na rede. Normalmente, os dados não são perdidos dos pacotes TCP recebidos, independentemente do volume de tráfego, porque o TCP irá repetir a atribuição de pacotes removidos. No entanto, a re-transmissão está à custa do desempenho.

Ligar o adaptador ao seu dispositivo

Veja Quadros e módulos de adaptadores Ethernet suportados para obter uma lista de adaptadores Ethernet suportados e instruções sobre como ligá-los a um quadro de desenvolvimento do Azure Sphere.

Criar e implementar a imagem de configuração do quadro

É necessária uma imagem de configuração de quadro para cada adaptador Ethernet utilizado com o Azure Sphere. A imagem de configuração do quadro contém informações de que o Serviço de Segurança do Azure Sphere necessita para adicionar suporte para o Ethernet ao SO do Azure Sphere. Tem de criar um pacote de imagem de configuração de quadro para o adaptador Ethernet e implementá-lo juntamente com o pacote de imagem da aplicação. Pode fazer sideload do pacote de imagem de configuração do quadro para desenvolvimento e depuração. Também pode implementar o pacote de imagem de configuração do quadro a partir da cloud, juntamente com a sua aplicação do Azure Sphere, para utilização de campos. A configuração do quadro não conta com a memória Flash ou a RAM reservada para aplicações de alto nível.

Criar um pacote de imagem de configuração de quadro

Para criar um pacote de imagem de configuração de quadro, utilize o comando da CLI azsphere image-package pack-board-config .

Nota

pack-board-config não é atualmente suportado na extensão da CLI do Azure.

Sideload a board configuration image package (Sideload a board configuration image package)

Para utilizar um pacote de imagem de configuração de quadro durante o desenvolvimento e a depuração:

  1. Preparar o dispositivo para desenvolvimento e depuração:

    az sphere device enable-development --resource-group MyResourceGroup --catalog MyCatalog --device <DeviceIdValue>
    
  2. Elimine todas as aplicações existentes do dispositivo com o comando az sphere device sideload delete . É importante eliminar aplicações existentes antes de carregar o pacote de imagem de configuração do quadro para evitar conflitos de recursos entre as aplicações existentes e a configuração do quadro.

  3. Carregue em sideload o pacote de imagem de configuração do quadro. Se tiver criado um ficheiro de configuração de quadro personalizado na secção anterior, este pode ser sideloaded agora. As opções predefinidas incluem o seguinte:

    Seeed MT3620 Ethernet Shield for Microchip ENC28J60 NIC:

    az sphere device sideload deploy --image-package lan-enc28j60-isu0-int5.imagepackage
    

    Avnet Rev1 Devkit Click Module for Wiznet W5500 NIC:

    az sphere device sideload deploy --image-package lan-w5500-isu1-int2.imagepackage
    

    Avnet Rev2 Devkit Click Module for Wiznet W5500 NIC:

    az sphere device sideload deploy --image-package lan-w5500-isu0-int5.imagepackage
    
  4. Faça sideload da aplicação com o Visual Studio ou com o comando az sphere device sideload deploy .

Cloud deploy a board configuration image package (Implementar um pacote de imagem de configuração do quadro)

Para implementar um pacote de imagem de configuração de quadro através da cloud, o seu dispositivo tem de ter um produto, pertencer a um grupo de dispositivos e não pode ter a capacidade AppDevelopment instalada. Veja Criar uma implementação para saber como configurá-las.

Depois de o dispositivo estar pronto, pode implementar a imagem de configuração do quadro juntamente com a imagem da aplicação numa única implementação.

Para criar uma implementação:

  1. Carregue o pacote de imagens para o catálogo do Azure Sphere com az sphere image add.
  2. Crie uma nova implementação para um grupo de dispositivos para as imagens carregadas com az sphere deployment create.
az sphere deployment create --resource-group <resource-group-name> --catalog <catalog-name> --product <product-name> --device-group <device-group-name> --images <image-ID>

Substitua <image-ID> pelo ID da imagem do pacote de imagem.

Remover uma configuração de quadro sideloaded

Se carregar de lado uma configuração de quadro durante o desenvolvimento, poderá ter de remover essa configuração posteriormente para que outras aplicações possam utilizar os recursos que o quadro reserva. Se tentar executar uma aplicação que utiliza estes recursos enquanto a configuração do quadro é carregada no dispositivo do Azure Sphere, ocorrerão erros de conflito de afixação.

Para remover uma configuração de quadro, siga estes passos:

  1. Liste as imagens instaladas no dispositivo:

    az sphere device image list-installed
    
  2. Localize o ID do componente para a configuração do quadro na lista:

     {
     "does_image_type_require_restart": true,
     "image_type": "Board configuration",
     "images": [
       {
         "length_in_bytes": 428,
         "replica_type": 0,
         "uid": "839e699a-1b23-44de-bc56-f2b19e472098",
         "uncompressed_length_in_bytes": 428
       }
     ],
     "is_update_staged": false,
     "name": "lan-enc28j60-isu0-int5_29f10d",
     "uid": "29f10d1e-29aa-4ae0-a48c-cc24305b288a"
     }
    

    O ID do componente é o uid associado à configuração do quadro, por isso, por exemplo, na saída acima, inicia "29f10...".

  3. Elimine o pacote de imagem de configuração do quadro ao especificar o respetivo ID de componente:

    az sphere device sideload delete --component-id 29f10d1e-29aa-4ae0-a48c-cc24305b288a
    
  4. Reinicie o dispositivo premindo o botão Repor ou emitindo o comando az sphere device restart .

Ativar a interface Ethernet

Assim que a configuração do quadro for carregada e o dispositivo for reiniciado, a interface será ativada automaticamente. Se quiser desativar a interface, utilize o comando az sphere device network disable ou chame a função Networking_SetInterfaceState , que faz parte da API de configuração de rede.

Por predefinição, todas as interfaces utilizam endereços IP dinâmicos. Veja Utilizar serviços de rede para obter detalhes sobre os tipos de serviços que uma aplicação do Azure Sphere pode utilizar.

Configurar o Azure Sphere para Ethernet

Depois de ligar o dispositivo do Azure Sphere a um adaptador Ethernet suportado e implementar a imagem de configuração do quadro, pode configurar o dispositivo do Azure Sphere para ligar a uma rede a partir da linha de comandos (CLI) ou da sua aplicação com as Bibliotecas de Aplicações do SDK do Azure Sphere (Applibs).

Configuração da Ethernet com a CLI

Para gerir a configuração de Ethernet a partir da linha de comandos, utilize os comandos da CLI de rede do dispositivo az sphere. Por exemplo, o comando ativar a rede do dispositivo ativa uma interface ethernet no dispositivo anexado.

az sphere device network enable --interface "eth0" 

Para utilizar a rede Ethernet configurada, a interface de rede (eth0) tem de estar ativa. Utilize o comando device network list-interfaces para determinar se a interface está ativa.


az sphere device network list-interfaces

Utilize o comando ativar a rede do dispositivo para ativá-lo, se necessário.


az sphere device network enable --interface eth0

Configuração da Ethernet com o Applibs

Para configurar o Ethernet, a aplicação tem de utilizar a API de rede applibs.

Inclua este ficheiro de cabeçalho na sua aplicação:

#include <applibs/networking.h>

O manifesto da aplicação tem de incluir a capacidade NetworkConfig .

 "Capabilities": {
  "NetworkConfig" : true
}

Utilize a função Networking_GetInterfaceConnectionStatus para determinar se a interface de rede está ativa.

Networking_GetInterfaceConnectionStatus("eth0", &currentInterfaceStatus);

Para ativar a interface de rede, utilize a função Networking_SetInterfaceState .

Networking_SetInterfaceState("eth0", true);

Nota

Se ambas as interfaces de rede (wlan0 e eth0) estiverem ativas e ligadas, a interface específica que o dispositivo utilizará para comunicação não é determinista. Se quiser controlar que interface de rede é utilizada a qualquer momento, a sua aplicação tem de utilizar a função Networking_SetInterfaceState() para ativar explicitamente a interface pretendida e a outra interface desativada. O exemplo de aplicação de alto nível do cliente DHCP demonstra, entre outras coisas, como alternar entre interfaces ao atribuir um valor que representa uma das duas interfaces a uma variável global.

Exemplos

O Azure IoT demonstra como utilizar as APIs C do SDK do Azure IoT numa aplicação do Azure Sphere para comunicar com Hub IoT do Azure ou com o Azure IoT Central.

A aplicação de alto nível do cliente DHCP demonstra como renovar ou libertar o endereço IP atual que o servidor DHCP da rede atribuiu ao dispositivo MT3620.

HTTPS cURL Easy demonstra como obter conteúdo através de HTTPS com a API "fácil" do cURL

O HTTPS cURL Multi demonstra a obtenção de conteúdo através de HTTPS com a API "multi" da cURL.

A aplicação de alto nível do Power Down demonstra a funcionalidade Power Down para a plataforma do Azure Sphere.

Os serviços de rede privada demonstram como ligar um dispositivo do Azure Sphere a uma rede privada e utilizar serviços de rede.

A aplicação wolfSSL de alto nível demonstra a utilização do handshake WolfSSL para SSL numa aplicação de alto nível.

Nota

Os exemplos seguintes são da Galeria do Azure Sphere, que é uma coleção de exemplos de software e hardware não suportados da Microsoft. Para obter mais informações, veja Galeria do Azure Sphere.

Imprimir o MAC e o endereço IP da interface de rede imprime os endereços MAC e IP de uma interface de rede especificada.

OSNetworkRequirementChecker-HLApp realiza dois testes de diagnóstico de rede de dispositivos (MT3620).