Préparer Azure Sphere pour Ethernet
Pour communiquer via Ethernet, un appareil Azure Sphere nécessite un adaptateur Ethernet externe et une image de configuration de carte. Les étapes suivantes sont nécessaires pour préparer votre appareil à la mise en réseau via Ethernet :
Attention
Si votre appareil est connecté via Ethernet, un réseau à faible trafic est nécessaire pour éviter la perte de données ou les performances médiocres. L’appareil perd les données des paquets non TCP entrants lorsqu’il y a un trafic entrant important sur le réseau. Les données ne sont généralement pas perdues des paquets TCP entrants, quel que soit le volume de trafic, car TCP retransmet les paquets supprimés. Toutefois, la retransmettre est au détriment des performances.
Connecter l’adaptateur à votre appareil
Consultez Cartes et modules d’adaptateurs Ethernet pris en charge pour obtenir la liste des adaptateurs Ethernet pris en charge et des instructions pour les connecter à une carte de développement Azure Sphere.
Créer et déployer l’image de configuration de carte
Une image de configuration de carte est requise pour chaque adaptateur Ethernet utilisé avec Azure Sphere. L’image de configuration de carte contient des informations dont le service de sécurité Azure Sphere a besoin pour ajouter la prise en charge d’Ethernet au système d’exploitation Azure Sphere. Vous devez créer un package d’image de configuration de carte pour votre adaptateur Ethernet et le déployer avec votre package d’image d’application. Vous pouvez charger une version test du package d’image de configuration de la carte pour le développement et le débogage. Vous pouvez également déployer le package d’image de configuration de carte à partir du cloud, ainsi que votre application Azure Sphere, pour une utilisation sur le terrain. La configuration de la carte n’est pas prise en compte par rapport à la mémoire Flash ou à la RAM réservée aux applications de haut niveau.
Créer un package d’image de configuration de carte
Pour créer un package d’image de configuration de carte, utilisez la commande CLI azsphere image-package pack-board-config .
Note
pack-board-config n’est actuellement pas pris en charge dans l’extension Azure CLI.
Charger une version test d’un package d’image de configuration de carte
Pour utiliser un package d’image de configuration de carte pendant le développement et le débogage :
Préparez l’appareil pour le développement et le débogage :
az sphere device enable-development --resource-group MyResourceGroup --catalog MyCatalog --device <DeviceIdValue>
Supprimez toutes les applications existantes de l’appareil à l’aide de la commande az sphere device sideload delete . Il est important de supprimer les applications existantes avant de charger le package d’image de configuration de carte pour éviter les conflits de ressources entre les applications existantes et la configuration de la carte.
Charger une version test du package d’image de configuration de la carte. Si vous avez créé un fichier de configuration de carte personnalisé dans la section précédente, vous pouvez maintenant le charger de manière indépendante. Les options prédéfinies sont les suivantes :
Protection Ethernet MT3620 pour micropuce ENC28J60 carte réseau :
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
Charger une version test de l’application, soit à l’aide de Visual Studio, soit à l’aide de la commande az sphere device sideload deploy .
Déploiement cloud d’un package d’image de configuration de carte
Pour déployer un package d’image de configuration de carte via le cloud, votre appareil doit avoir un produit, appartenir à un groupe d’appareils et ne doit pas avoir la fonctionnalité AppDevelopment installée. Pour savoir comment les configurer, consultez Créer un déploiement .
Une fois que votre appareil est prêt, vous pouvez déployer l’image de configuration de la carte avec l’image d’application dans un seul déploiement.
Pour créer un déploiement :
- Chargez le package d’images dans votre catalogue Azure Sphere à l’aide de la commande az sphere image add.
- Créez un déploiement pour un groupe d’appareils pour les images chargées à l’aide de la commande 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>
Remplacez image-ID> par <l’ID d’image du package d’image.
Supprimer une configuration de carte chargée de manière indépendante
Si vous chargez une version test d’une configuration de carte pendant le développement, vous devrez peut-être supprimer cette configuration pour que d’autres applications puissent utiliser les ressources que le tableau réserve. Si vous essayez d’exécuter une application qui utilise ces ressources pendant que la configuration de la carte est chargée sur l’appareil Azure Sphere, des erreurs de conflit d’épingle se produisent.
Pour supprimer une configuration de carte, procédez comme suit :
Répertorier les images installées sur l’appareil :
az sphere device image list-installed
Recherchez l’ID de composant pour la configuration de la carte dans la liste :
{ "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" }
L’ID du composant est l’uid associé à la configuration de la carte. Par exemple, dans la sortie ci-dessus, il démarre « 29f10... ».
Supprimez le package d’image de configuration de carte en spécifiant son ID de composant :
az sphere device sideload delete --component-id 29f10d1e-29aa-4ae0-a48c-cc24305b288a
Redémarrez l’appareil en appuyant sur le bouton Réinitialiser ou en émettant la commande az sphere device restart .
Activer l’interface Ethernet
Une fois que la configuration de la carte est chargée et que l’appareil est redémarré, l’interface est activée automatiquement. Si vous souhaitez désactiver l’interface, utilisez la commande az sphere device network disable ou appelez la fonction Networking_SetInterfaceState , qui fait partie de l’API de configuration réseau.
Toutes les interfaces utilisent des adresses IP dynamiques par défaut. Pour plus d’informations sur les types de services qu’une application Azure Sphere peut utiliser, consultez Utiliser les services réseau .
Configurer Azure Sphere pour Ethernet
Après avoir connecté votre appareil Azure Sphere à une carte Ethernet prise en charge et déployé l’image de configuration de la carte, vous pouvez configurer votre appareil Azure Sphere pour qu’il se connecte à un réseau à partir de la ligne de commande (CLI) ou de votre application à l’aide des bibliothèques d’applications du SDK Azure Sphere.
Configuration Ethernet à l’aide de l’interface CLI
Pour gérer la configuration Ethernet à partir de la ligne de commande, utilisez les commandes CLI az sphere device network. Par exemple, la commande device network enable active une interface Ethernet sur l’appareil attaché.
az sphere device network enable --interface "eth0"
Pour utiliser le réseau Ethernet configuré, l’interface réseau (eth0) doit être active. Utilisez la commande device network list-interfaces pour déterminer si l’interface est active.
az sphere device network list-interfaces
Utilisez la commande device network enable pour l’activer si nécessaire.
az sphere device network enable --interface eth0
Configuration Ethernet à l’aide de bibliothèques d’applications
Pour configurer Ethernet, votre application doit utiliser l’API réseau des bibliothèques d’applications.
Incluez ce fichier d’en-tête dans votre application :
#include <applibs/networking.h>
Le manifeste de l’application doit inclure la fonctionnalité NetworkConfig .
"Capabilities": {
"NetworkConfig" : true
}
Utilisez la fonction Networking_GetInterfaceConnectionStatus pour déterminer si l’interface réseau est active.
Networking_GetInterfaceConnectionStatus("eth0", ¤tInterfaceStatus);
Pour activer l’interface réseau, utilisez la fonction Networking_SetInterfaceState .
Networking_SetInterfaceState("eth0", true);
Note
Si les deux interfaces réseau (wlan0 et eth0) sont actives et connectées, l’interface spécifique que l’appareil utilisera pour la communication n’est pas déterministe. Si vous souhaitez contrôler l’interface réseau utilisée à un moment donné, votre application doit utiliser la fonction Networking_SetInterfaceState() pour activer explicitement l’interface souhaitée et désactiver l’autre interface. L’exemple d’application de haut niveau client DHCP montre entre autres comment basculer entre les interfaces en affectant une valeur représentant l’une des deux interfaces à une variable globale.
Échantillons
Azure IoT montre comment utiliser les API C du Kit de développement logiciel (SDK) Azure IoT dans une application Azure Sphere pour communiquer avec Azure IoT Hub ou Azure IoT Central.
L’application de haut niveau cliente DHCP montre comment renouveler ou libérer l’adresse IP actuelle que le serveur DHCP du réseau a affectée à l’appareil MT3620.
HTTPS cURL Easy illustre l’extraction de contenu via HTTPS à l’aide de l’API « facile » de cURL
HTTPS cURL Multi illustre la récupération de contenu via HTTPS à l’aide de l’API « multi » de cURL.
L’application Power Down de haut niveau illustre la fonctionnalité Power Down pour la plateforme Azure Sphere.
Les services de réseau privé montrent comment connecter un appareil Azure Sphere à un réseau privé et utiliser des services réseau.
L’application de haut niveau WolfSSL illustre l’utilisation de WolfSSL pour l’établissement d’une liaison SSL dans une application de haut niveau.
Note
Les exemples suivants proviennent de la galerie Azure Sphere, qui est une collection d’exemples logiciels et matériels non entretenus de Microsoft. Pour plus d’informations, consultez Galerie Azure Sphere.
L’impression MAC et l’adresse IP de l’interface réseau impriment les adresses MAC et IP d’une interface réseau spécifiée.
OSNetworkRequirementChecker-HLApp effectue deux tests de diagnostic réseau (MT3620).