Vorbereiten von Azure Sphere für Ethernet
Wichtig
Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.
Um über Ethernet zu kommunizieren, erfordert ein Azure Sphere-Gerät einen externen Ethernet-Adapter und ein Boardkonfigurationsimage. Die folgenden Schritte sind erforderlich, um Ihr Gerät für das Netzwerk über Ethernet vorzubereiten:
Achtung
Wenn Ihr Gerät über Ethernet verbunden ist, ist ein Netzwerk mit geringem Datenverkehr erforderlich, um Datenverluste oder schlechte Leistung zu verhindern. Das Gerät verliert Daten aus eingehenden Nicht-TCP-Paketen, wenn ein erheblicher eingehender Datenverkehr im Netzwerk vorhanden ist. Daten gehen in der Regel nicht von eingehenden TCP-Paketen verloren, unabhängig vom Datenverkehrsvolumen, da TCP verworfene Pakete erneut überweisen wird. Die Erneute Übertragung erfolgt jedoch zu Leistungskosten.
Verbinden des Adapters mit Ihrem Gerät
Eine Liste der unterstützten Ethernet-Adapter und -Module finden Sie in den unterstützten Ethernet-Adaptern und Anweisungen zum Verbinden mit einem Azure Sphere-Entwicklungsboard.
Erstellen und Bereitstellen des Boardkonfigurationsimages
Für jeden Ethernet-Adapter, der mit Azure Sphere verwendet wird, ist ein Boardkonfigurationsimage erforderlich. Das Image der Boardkonfiguration enthält Informationen, die der Azure Sphere-Sicherheitsdienst benötigt, um dem Azure Sphere-Betriebssystem Unterstützung für Ethernet hinzuzufügen. Sie müssen ein Boardkonfigurationsimagepaket für Ihren Ethernet-Adapter erstellen und zusammen mit Ihrem Anwendungsimagepaket bereitstellen. Sie können das Boardkonfigurationsimagepaket für die Entwicklung und das Debuggen querladen. Sie können auch das Boardkonfigurationsimagepaket aus der Cloud zusammen mit Ihrer Azure Sphere-Anwendung für die Feldverwendung bereitstellen. Die Boardkonfiguration zählt nicht für den Flash-Speicher oder RAM , der für High-Level-Apps reserviert ist.
Erstellen eines Imagepakets der Boardkonfiguration
Verwenden Sie zum Erstellen eines Boardkonfigurationsimagepakets den Befehl azsphere image-package pack-board-config CLI.
Durchführen des Querladens eines Imagepakets für die Boardkonfiguration
So verwenden Sie ein Imagepaket der Boardkonfiguration beim Entwickeln und Debuggen:
Bereiten Sie Ihr Gerät das Entwickeln und Debuggen vor:
azsphere device enable-development
Löschen Sie alle vorhandenen Anwendungen vom Gerät mithilfe des Befehl zum Querladen des Azsphere-Geräts. Es ist wichtig, bestehende Anwendungen zu löschen, bevor Sie das Imagepaket der Boardkonfiguration laden, um Ressourcenkonflikte zwischen bestehenden Anwendungen und der Boardkonfiguration zu vermeiden.
Führen Sie das Querladen des Imagepakets der Boardkonfiguration durch. Wenn Sie eine benutzerdefinierte Boardkonfigurationsdatei im vorherigen Abschnitt erstellt haben, kann dies jetzt quergeladen werden. Voreingestellte Optionen umfassen Folgendes:
Siehe MT3620 Ethernet Shield für Microchip ENC28J60 NIC:
azsphere device sideload deploy --image-package lan-enc28j60-isu0-int5.imagepackage
Avnet Rev1 Devkit Click Module für Wiznet W5500 NIC:
azsphere device sideload deploy --image-package lan-w5500-isu1-int2.imagepackage
Avnet Rev2 Devkit Click Module für Wiznet W5500 NIC:
azsphere device sideload deploy --image-package lan-w5500-isu0-int5.imagepackage
Führen Sie das Querladen der Anwendung entweder mit Visual Studio oder dem Befehl azsphere device sideload delete durch.
Cloudbereitstellung eines Boardkonfigurationsimagepakets
Zum Bereitstellen eines Imagepakets für die Boardkonfiguration über die Cloud muss das Gerät über ein Produkt verfügen, einer Gerätegruppe angehören, und es darf nicht die AppDevelopment-Funktion darauf installiert sein. Informationen zu deren Einrichtung finden Sie unter Erstellen einer Bereitstellung.
Sobald Ihr Gerät bereit ist, können Sie das Boardkonfigurationsimage zusammen mit dem Anwendungsimage in einer einzigen Bereitstellung verfügbar machen.
So erstellen Sie eine Bereitstellung
- Laden Sie das Bildpaket mit azsphere image add in Ihren Azure Sphere-Mandanten hoch.
- Erstellen Sie eine neue Bereitstellung für eine Gerätegruppe für die hochgeladenen Images mithilfe der Azsphere-Gerätegruppenbereitstellung.
Laden Sie das Bildpaket hoch:
azsphere image add --image <path-to-image-package>
Erstellen einer neuen Bereitstellung für eine Gerätegruppe:
azsphere device-group deployment create --device-group <device-group-ID> or '<product-name>/<device-group-name>' --images <image-ID> <image-ID>
Um mehrere Werte für --images
die Eingabe einer Liste von Werten bereitzustellen, die durch Leerzeichen getrennt sind.
Der --device-group
Parameter identifiziert die Gerätegruppe. Die Gerätegruppen-ID stellt eine GUID bereit, die die Gerätegruppe für alle Produkte eindeutig identifiziert. Alternativ können Sie das Produktnamen- und Gerätegruppennamenpaar im <Produktnamen>-/<Gerätegruppennamenformat> verwenden. Durch diese Namenskombination wird eine Gerätegruppe für ein bestimmtes Produkt eindeutig identifiziert. Ersetzen Sie <die Bild-ID> durch die Bild-ID des Bildpakets.
Entfernen einer per Querladen durchgeführten Boardkonfiguration
Wenn Sie eine Boardkonfiguration während der Entwicklung quer laden, müssen Sie diese Konfiguration möglicherweise später entfernen, damit andere Anwendungen die Ressourcen nutzen können, die das Board belegt. Wenn Sie versuchen, eine Anwendung auszuführen, die diese Ressourcen verwendet, während die Boardkonfiguration auf das Azure Sphere-Gerät geladen wird, treten Pinkonfliktfehler auf.
So entfernen Sie eine Boardkonfiguration:
Listen Sie alle auf dem Gerät installierten Images auf:
azsphere device image list-installed
Suchen Sie die Komponenten-ID für die Boardkonfiguration in der Liste:
--> lan-enc28j60-is --> Image type: Board configuration --> Component ID: 75a3dbfe-3fd2-4776-b7fe-c4c91de902c6 --> Image ID: a726b919-bdbe-4cf4-8360-2e37af9407e1
Löschen Sie das Imagepaket der Boardkonfiguration durch Angeben der Komponenten-ID:
azsphere device sideload delete --component-id 75a3dbfe-3fd2-4776-b7fe-c4c91de902c6
Starten Sie das Gerät neu, indem Sie entweder die Reset-Taste drücken oder den Befehl azsphere device restart ausführen.
Aktivieren der Ethernet-Schnittstelle
Sobald die Boardkonfiguration geladen und das Gerät neu gestartet wird, wird die Schnittstelle automatisch aktiviert. Wenn Sie die Schnittstelle deaktivieren möchten, verwenden Sie den Befehl zum Deaktivieren des Azsphere-Gerätenetzwerks, oder rufen Sie die Networking_SetInterfaceState-Funktion auf, die Teil der Netzwerkkonfigurations-API ist.
Für alle Schnittstellen werden standardmäßig dynamische IP-Adressen verwendet. Ausführliche Informationen zu den Arten von Diensten, die eine Azure Sphere-Anwendung verwenden kann, finden Sie unter Verwenden von Netzwerkdiensten .
Konfigurieren von Azure Sphere für Ethernet
Nachdem Sie Ihr Azure Sphere-Gerät mit einem unterstützten Ethernet-Adapter verbunden und das Boardkonfigurationsimage bereitgestellt haben, können Sie Ihr Azure Sphere-Gerät so konfigurieren, dass eine Verbindung mit einem Netzwerk über die Befehlszeile (CLI) oder von Ihrer Anwendung mithilfe der Azure Sphere SDK-Anwendungsbibliotheken (Applibs) hergestellt wird.
Ethernet-Konfiguration mithilfe der CLI
Um die Ethernet-Konfiguration über die Befehlszeile zu verwalten, verwenden Sie die Cli-Befehle des Azsphere-Gerätenetzwerks. Beispielsweise ermöglicht der Befehl zum Aktivieren des Gerätenetzwerks eine Ethernet-Schnittstelle auf dem angeschlossenen Gerät.
azsphere device network enable --interface "eth0"
Um das konfigurierte Ethernet-Netzwerk zu verwenden, muss die Netzwerkschnittstelle (eth0) aktiv sein. Verwenden Sie den Befehl "Gerätenetzwerklistenschnittstellen ", um zu ermitteln, ob die Schnittstelle aktiv ist.
azsphere device network list-interfaces
Verwenden Sie den Befehl zum Aktivieren des Gerätenetzwerks, um ihn bei Bedarf zu aktivieren.
azsphere device network enable --interface eth0
Ethernet-Konfiguration mit Applibs
Um Ethernet zu konfigurieren, muss Ihre Anwendung die Applibs-Netzwerk-API verwenden.
Fügen Sie diese Headerdatei in Ihre Anwendung ein:
#include <applibs/networking.h>
Das Anwendungsmanifest muss die NetworkConfig-Funktion enthalten.
"Capabilities": {
"NetworkConfig" : true
}
Mit der Networking_GetInterfaceConnectionStatus-Funktion können Sie ermitteln, ob die Netzwerkschnittstelle aktiv ist.
Networking_GetInterfaceConnectionStatus("eth0", ¤tInterfaceStatus);
Verwenden Sie zum Aktivieren der Netzwerkschnittstelle die Networking_SetInterfaceState-Funktion .
Networking_SetInterfaceState("eth0", true);
Hinweis
Wenn beide Netzwerkschnittstellen (wlan0 und eth0) aktiv und verbunden sind, ist die spezifische Schnittstelle, die das Gerät für die Kommunikation verwendet, nicht deterministisch. Wenn Sie steuern möchten, welche Netzwerkschnittstelle zu einem bestimmten Zeitpunkt verwendet wird, muss ihre Anwendung die funktion Networking_SetInterfaceState() verwenden, um die gewünschte Schnittstelle explizit zu aktivieren und die andere Schnittstelle zu deaktivieren. Das Beispiel für eine allgemeine DHCP-Client-App veranschaulicht unter anderem, wie Zwischenschnittstellen gewechselt werden kann, indem ein Wert zugewiesen wird, der eine der beiden Schnittstellen einer globalen Variable darstellt.
Beispiele
Azure IoT veranschaulicht die Verwendung der Azure IoT SDK-C-APIs in einer Azure Sphere-Anwendung für die Kommunikation mit Azure IoT Hub oder Azure IoT Central.
Die allgemeine DHCP-Client-App veranschaulicht, wie Sie die aktuelle IP-Adresse erneuern oder freigeben, die der DHCP-Server des Netzwerks dem MT3620-Gerät zugewiesen hat.
HTTPS cURL Easy veranschaulicht das Abrufen von Inhalten über HTTPS mithilfe der "easy"-API von cURL
HTTPS cURL Multi veranschaulicht das Abrufen von Inhalten über HTTPS mithilfe der "multi"-API von cURL.
Power Down-App auf hoher Ebene veranschaulicht Power Down-Funktionen für die Azure Sphere-Plattform.
Private Netzwerkdienste zeigen, wie Sie ein Azure Sphere-Gerät mit einem privaten Netzwerk verbinden und Netzwerkdienste verwenden.
WolfSSL-High-Level-App veranschaulicht die Verwendung von WolfSSL für SSL-Handshake in einer high-level-Anwendung.
Hinweis
Die folgenden Beispiele stammen aus der Azure Sphere Gallery, die eine Sammlung nicht vorhandener Software- und Hardwarebeispiele von Microsoft ist. Weitere Informationen finden Sie im Azure Sphere-Katalog.
Die MAC- und IP-Adresse der Netzwerkschnittstelle drucken die MAC- und IP-Adressen einer angegebenen Netzwerkschnittstelle.
OSNetworkRequirementChecker-HLApp führt zwei Netzwerkdiagnosetests (MT3620) durch.