Freigeben über


Vorbereiten von Azure Sphere für Ethernet

Für die Kommunikation über Ethernet benötigt ein Azure Sphere-Gerät einen externen Ethernet-Adapter und ein Boardkonfigurationsimage. Die folgenden Schritte sind erforderlich, um Ihr Gerät für netzwerke über Ethernet vorzubereiten:

  1. Verbinden Sie den Adapter mit Ihrem Gerät.

  2. Erstellen Sie das Boardkonfigurationsimage, und stellen Sie es bereit.

  3. Aktivieren Sie die Ethernet-Schnittstelle.

Vorsicht

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 von eingehenden Nicht-TCP-Paketen, wenn ein erheblicher Eingehender Datenverkehr im Netzwerk vorliegt. Daten gehen bei eingehenden TCP-Paketen in der Regel nicht verloren, unabhängig vom Datenverkehrsvolumen, da TCP verworfene Pakete neu übergibt. Die erneute Übertragung geht jedoch auf Kosten der Leistung.

Verbinden des Adapters mit Ihrem Gerät

Eine Liste der unterstützten Ethernet-Adapter und Anweisungen zum Verbinden mit einem Azure Sphere-Entwicklungsboard finden Sie unter Unterstützte Ethernet-Adapterboards und Module .

Erstellen und Bereitstellen des Boardkonfigurationsimages

Für jeden Ethernet-Adapter, der mit Azure Sphere verwendet wird, ist ein Boardkonfigurationsimage erforderlich. Das Boardkonfigurationsimage 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 Imagepaket für die Boardkonfiguration für Ihren Ethernet-Adapter erstellen und zusammen mit Ihrem Anwendungsimagepaket bereitstellen. Sie können das Imagepaket für die Boardkonfiguration für die Entwicklung und das Debuggen querladen. Sie können das Imagepaket für die Boardkonfiguration auch zusammen mit Ihrer Azure Sphere-Anwendung aus der Cloud für den Einsatz vor Ort bereitstellen. Die Boardkonfiguration wird nicht auf den Flashspeicher oder RAM angerechnet, der für allgemeine Apps reserviert ist.

Erstellen eines Imagepakets für die Boardkonfiguration

Verwenden Sie zum Erstellen eines Imagepakets für die Boardkonfiguration den CLI-Befehl azsphere image-package pack-board-config .

Querladen eines Boardkonfigurations-Imagepakets

So verwenden Sie ein Boardkonfigurations-Imagepaket während der Entwicklung und beim Debuggen:

  1. Bereiten Sie das Gerät für die Entwicklung und das Debuggen vor:

    azsphere device enable-development
    
  2. Löschen Sie alle vorhandenen Anwendungen mit dem Befehl azsphere device sideload delete vom Gerät. Es ist wichtig, vorhandene Anwendungen zu löschen, bevor Sie das Imagepaket für die Boardkonfiguration laden, um Ressourcenkonflikte zwischen vorhandenen Anwendungen und der Boardkonfiguration zu vermeiden.

  3. Querladen des Boardkonfigurationsimagepakets. Wenn Sie im vorherigen Abschnitt eine benutzerdefinierte Boardkonfigurationsdatei erstellt haben, kann diese 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 for Wiznet W5500 NIC:

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

    Avnet Rev2 Devkit Click Module for Wiznet W5500 NIC:

    azsphere device sideload deploy --image-package lan-w5500-isu0-int5.imagepackage
    
  4. Laden Sie die Anwendung quer, entweder mithilfe von Visual Studio oder mithilfe des Befehls azsphere device sideload deploy .

Cloudbereitstellung eines Boardkonfigurations-Imagepakets

Um ein Imagepaket für die Boardkonfiguration über die Cloud bereitzustellen, muss ihr Gerät über ein Produkt verfügen, zu einer Gerätegruppe gehören und die AppDevelopment-Funktion darf nicht installiert sein. Informationen zum Einrichten dieser Bereitstellung finden Sie unter Erstellen einer Bereitstellung .

Nachdem Ihr Gerät bereit ist, können Sie das Boardkonfigurationsimage zusammen mit dem Anwendungsimage in einer einzelnen Bereitstellung bereitstellen.

So erstellen Sie eine Bereitstellung:

  1. Laden Sie das Imagepaket mithilfe von azsphere image add in Ihren Azure Sphere-Mandanten hoch.
  2. Erstellen Sie mithilfe von azsphere device-group deployment create eine neue Bereitstellung für eine Gerätegruppe für die hochgeladenen Images.

Laden Sie das Imagepaket hoch:

azsphere image add --image <path-to-image-package>

Erstellen Sie eine neue 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 anzugeben, geben Sie eine Liste von Werten ein, 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 Paar Produktname und Gerätegruppenname im <Format product-name>/<device-group-name> verwenden. Dieses Namenspaar identifiziert eindeutig eine Gerätegruppe für ein bestimmtes Produkt. Ersetzen Sie <image-ID> durch die Image-ID des Imagepakets.

Entfernen einer quergeladenen Boardkonfiguration

Wenn Sie eine Boardkonfiguration während der Entwicklung querladen, müssen Sie diese Konfiguration möglicherweise später entfernen, damit andere Anwendungen die Ressourcen nutzen können, die das Board reserviert. 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.

Führen Sie die folgenden Schritte aus, um eine Boardkonfiguration zu entfernen:

  1. Auflisten der auf dem Gerät installierten Images:

    azsphere device image list-installed
    
  2. 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
    
  3. Löschen Sie das Imagepaket für die Boardkonfiguration, indem Sie seine Komponenten-ID angeben:

    azsphere device sideload delete --component-id 75a3dbfe-3fd2-4776-b7fe-c4c91de902c6
    
  4. Starten Sie das Gerät neu, indem Sie entweder die Schaltfläche Zurücksetzen drücken oder den Befehl azsphere device restart ausgeben .

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 azsphere device network disable , oder rufen Sie die funktion Networking_SetInterfaceState auf, die Teil der Netzwerkkonfigurations-API ist.

Alle Schnittstellen verwenden standardmäßig dynamische IP-Adressen. Ausführliche Informationen zu den Diensttypen, 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 es über die Befehlszeile (CLI) oder über Ihre Anwendung mithilfe der Azure Sphere SDK-Anwendungsbibliotheken (Applibs) eine Verbindung mit einem Netzwerk herstellt.

Ethernet-Konfiguration mithilfe der CLI

Um die Ethernet-Konfiguration über die Befehlszeile zu verwalten, verwenden Sie die CLI-Befehle azsphere device network. Der Befehl device network enable aktiviert beispielsweise eine Ethernet-Schnittstelle auf dem angeschlossenen Gerät.

azsphere device network enable --interface "eth0" 

Um das konfigurierte Ethernet-Netzwerk verwenden zu können, muss die Netzwerkschnittstelle (eth0) aktiv sein. Verwenden Sie den Befehl device network list-interfaces , um zu ermitteln, ob die Schnittstelle aktiv ist.


azsphere device network list-interfaces

Verwenden Sie den Befehl device network enable (Gerätenetzwerk aktivieren ), um ihn bei Bedarf zu aktivieren.


azsphere device network enable --interface eth0

Ethernet-Konfiguration mit Applibs

Zum Konfigurieren von Ethernet 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
}

Sie verwenden die funktion Networking_GetInterfaceConnectionStatus , um zu bestimmen, ob die Netzwerkschnittstelle aktiv ist.

Networking_GetInterfaceConnectionStatus("eth0", &currentInterfaceStatus);

Um die Netzwerkschnittstelle zu aktivieren, verwenden Sie die funktion Networking_SetInterfaceState .

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 und die andere Schnittstelle zu deaktivieren. Im Beispiel einer allgemeinen DHCP-Client-App wird unter anderem veranschaulicht, wie Sie zwischen Schnittstellen wechseln, indem Sie einer globalen Variablen einen Wert zuweisen, der eine der beiden Schnittstellen darstellt.

Proben

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 zeigt, 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 "einfachen" API von cURL

HTTPS cURL Multi veranschaulicht das Abrufen von Inhalten über HTTPS mithilfe der "Multi"-API von cURL.

Die allgemeine Power Down-App veranschaulicht die Power Down-Funktionalität für die Azure Sphere-Plattform .

Private Netzwerkdienste veranschaulichen, wie Sie ein Azure Sphere-Gerät mit einem privaten Netzwerk verbinden und Netzwerkdienste verwenden.

Die allgemeine WolfSSL-App veranschaulicht die Verwendung von WolfSSL für SSL-Handshake in einer allgemeinen Anwendung.

Hinweis

Die folgenden Beispiele stammen aus dem Azure Sphere-Katalog, bei dem es sich um eine Sammlung nicht beibehaltener Software- und Hardwarebeispiele von Microsoft handelt. Weitere Informationen finden Sie unter Azure Sphere-Katalog.

Print MAC und IP-Adresse der Netzwerkschnittstelle gibt die MAC- und IP-Adressen einer angegebenen Netzwerkschnittstelle aus.

OSNetworkRequirementChecker-HLApp führt zwei Gerätenetzwerkdiagnosetests (MT3620) durch.