Gerätefunktionen und Kommunikation
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.
Die Gerätefunktionen bestimmen gerätespezifische Betriebssystemrichtlinien für die Dienst-UART-Kommunikation . Die gesamte Kommunikation zwischen dem Hostcomputer und einem angeschlossenen Gerät erfolgt über den Dienst UART. Der Hostcomputer kommuniziert mit einem angeschlossenen Gerät, um Vorgänge auf dem Gerät auszuführen. Hersteller, Softwareentwickler und Außendienst-Service Techniker verwenden Funktionen, um die Service-UART-Kommunikation für die vorgänge, die sie benötigen, zu entsperren und gleichzeitig sicherzustellen, dass das Gerät vor böswilligen Benutzern geschützt ist.
Gerätehersteller und OEMs können die Dienst-UART-Kommunikation sperren, um unbefugte Verwendung durch diejenigen zu verhindern, die physischen Zugriff auf das Gerät haben. Das Sperren einer solchen Kommunikation ist Teil der Geräteabschlussung. Nach der Fertigstellung kann ein Benutzer die ID eines Geräts abrufen, aber keine anderen Informationen. Für alle anderen Vorgänge wird eine Gerätefunktion benötigt. Die Fertigstellung erfolgt in der Regel auf dem Werksboden, bevor der Hersteller das Gerät an einen Kundenstandort liefert.
Eine Gerätefunktionsdatei enthält nur null oder mehr Funktionen für ein einzelnes Gerät. Die Funktionsdatei funktioniert nicht, wenn sie auf ein Gerät angewendet wird, für das es nicht vorgesehen ist. Ein Gerät kann über die folgenden Funktionen verfügen, die jeweils weiter unten in diesem Thema beschrieben werden:
Hinweis
Gerätefunktionen sind keine Anwendungsfunktionen. Mit Anwendungsfunktionen werden die Ressourcen angegeben, die von einer Anwendung zur Laufzeit benötigt werden. Weitere Informationen zu Anwendungsfunktionen finden Sie unter Anwendungsmanifest.
Ermitteln der Gerätefunktionen oder des Fertigungszustands
Um die auf dem angeschlossenen Gerät gespeicherte Funktionskonfiguration zu ermitteln, verwenden Sie den befehl "azsphere device show-attached ". Der Befehl zeigt die Funktionen an, die mithilfe einer Funktionsdatei konfiguriert sind, und einige, aber nicht alle Funktionen, die standardmäßig auf Boards vorhanden sind. Eine vollständige Liste der Azsphere-Befehle , die eine Gerätefunktion erfordern, finden Sie in der Tabelle in der CLI-Übersicht.
Die Gerätefunktionen können vom Fertigungszustand des Geräts beeinflusst werden. Verwenden Sie den Befehl "Azsphere device manufacturing-state show ", um den Herstellungszustand des Geräts zu ermitteln. Wenn der Befehl anzeigt, dass sich das Gerät im Fertigungszustand "DeviceComplete " befindet oder zurückgibt Device access is forbidden
, ist die Dienst-UART-Kommunikation gesperrt, und Sie benötigen eine Gerätefunktion, um mit dem Gerät von Ihrem Computer zu kommunizieren. Wenn sich ein Gerät im Fertigungszustand "DeviceComplete " befindet, sind Fertigungsvorgänge nur zulässig, wenn das Gerät über eine Funktionsdatei entsperrt wird.
Hinweis
Wenn Sie ein Gerät an einem Kundenstandort installieren, sollten Sie sicherstellen, dass das Gerät vor der Installation in den Produktionszustand "DeviceComplete " abgeschlossen ist. Siehe Fertigstellen des Azure Sphere-Geräts.
Der DeviceComplete-Manufacuring-Zustand ist normalerweise nicht für ein Dev Kit geeignet. Um das Testen der Fertigungsvorgänge zu ermöglichen, die von Fertigungsingenieuren entwickelt werden, sollte sich ein Dev Kit entweder im Zustand "Blank Manufacturing" oder " Module1Complete " befinden.
So erwerben Geräte Funktionen
Geräte können Funktionen auf drei Arten erwerben:
Standardmäßig geöffnet. Ein Gerät, das sich entweder im Zustand " Leer " oder im Fertigungszustand "Module1Complete " befindet, weist standardmäßig einige Funktionen auf. Dies geschieht, damit Geräte, die sich noch in der Herstellungsphase befinden, nicht mit der Cloud verbunden oder in Mandanten beansprucht werden müssen, wie dies durch den Prozess der Verwendung von Gerätefunktionsdateien zum Entsperren von Funktionen erforderlich ist. Da die Fertigung fortschreitet, können Hersteller den Fertigungszustand des Geräts ändern, um funktionen zu sperren, die nicht mehr geeignet sind, wie in Werksbodenaufgaben beschrieben.
Quergeladen auf dem Gerät. Ein Gerät verfügt möglicherweise über eine Funktionsdatei, die vom Hostcomputer auf das Gerät quergeladen wurde. Verwenden Sie den Downloadbefehl der Azsphere-Gerätefunktion, um die Funktionsdatei abzurufen. Dieser quergeladene Satz von Funktionen bleibt bestehen, bis eine neue Funktionsdatei (die eine leere Datei ohne Funktionen sein kann) quergeladen wird. Dies ist die übliche Situation während der Anwendungsentwicklung, z. B. wenn der Azsphere-Befehl für die Aktivierungsentwicklung des Geräts ausgeführt wird. Die Anwendungsentwicklung wird unterstützt, indem das Gerät in einem entsperrten Zustand ausgeführt wird, in dem der Entwickler Vorgänge ausführen kann, z. B. Debuggen und einfaches Löschen und Bereitstellen quergeladener Versionen der Anwendung.
Wird mit jedem Vorgang an das Gerät übergeben. Ein Gerät kann lokal ausgewählte Funktionen auf Vorgangsbasis anwenden. Der Befehl zum Auswählen der Azsphere-Gerätefunktion wählt eine Funktionsdatei aus, die lokal auf dem Hostcomputer gespeichert ist. Sobald dieser Befehl ausgeführt wird, wird die ausgewählte Funktion mit jedem nachfolgenden Befehl vom Computer an das Gerät übergeben. Dies ist die empfohlene Methode der Verwendung von Funktionen für Geräte, die sich im Feld befinden, da die Funktionen auf dem Computer und nicht auf dem Gerät gespeichert werden. Das Risiko, dass ein Feldtechniker versehentlich das Gerät in einem unsicheren Zustand verlässt, indem vergessen wird, die Funktion zu entfernen, wird vermieden.
Bevor eine Funktionsdatei auf ein Gerät quergeladen oder an ein Gerät mit einem Vorgang übergeben werden kann, muss sie vom Azure Sphere Security Service (AS3) heruntergeladen werden, wie in " Änderungen an einem Gerät nach der Herstellung vornehmen" beschrieben. Heruntergeladene Funktionsdateien sind gerätespezifisch; nach dem Herunterladen kann eine Funktionsdatei wiederholt auf dem zugehörigen Gerät verwendet werden.
Die enableRfTestMode-Funktion
Die enableRfTestMode-Funktion ist standardmäßig auf dem Gerät vorhanden, wenn der Fertigungszustand des Geräts leer ist. Diese Funktion ermöglicht die Programmierung von E-Fuses und die Konfiguration und Prüfung des RF-Betriebs. Es ist nicht möglich, dass Mandantenbesitzer diese Funktion auf einen Hostcomputer herunterladen können. Wenn Sie diese Funktion benötigen, wenden Sie sich an Ihren Microsoft-Vertreter.
Wenn der Fertigungszustand des Geräts leer ist, zeigt der befehl "azsphere device show-attached" die enableRfTestMode-Funktion an.
Funktion „appDevelopment“
Die AppDevelopment-Gerätefunktion entsperrt die Dienst-UART-Kommunikation und ändert den Typ der Signatur, die dem Gerät vertraut. Sie ist für die Verwendung während der Anwendungsentwicklung gedacht.
Standardmäßig sehen Azure Sphere-Geräte für die Produktion signierte Imagepakete als vertrauenswürdig an, die vom Azure Sphere-Sicherheitsdienst heruntergeladen werden, aber dies gilt nicht für vom SDK signierte Imagepakete. Aus diesem Grund können Sie mit dem SDK kein Imagepaket erstellen und zum Debuggen auf Ihr Azure Sphere-Gerät querladen, wenn das Gerät nicht über die Funktion appDevelopment verfügt. Die Funktion appDevelopment bewirkt, dass das Imagepaket vom Gerät als vertrauenswürdig eingestuft wird, und Sie können eine Anwendung für das Gerät starten, beenden, debuggen oder entfernen.
Zusammenfassend entsperrt die AppDevelopment-Funktion die Dienst-UART-Kommunikation, um die folgenden Vorgänge zu ermöglichen:
Querladen eines Bildpakets, das mit Visual Studio, Visual Studio Code, der CLI oder dem Azsphere-Imagepaketbefehl erstellt wird.
Starten, Beenden, Debuggen oder Entfernen eines Imagepakets aus dem Azure Sphere-Gerät, und zwar unabhängig davon, wie das Paket signiert wurde.
Um die AppDevelopment-Funktion hinzuzufügen, verwenden Sie den Azsphere Device Enable-Development-Befehl. Dieser Befehl lädt die AppDevelopment-Funktion für das angefügte Gerät herunter, querlädt die Funktion auf das Gerät und verschiebt das Gerät in die Standardmäßige Entwicklungsgerätegruppe. Um eine andere Gerätegruppe anzugeben, schließen Sie den --device-group
Parameter ein.
Bei Verwendung von azsphere device enable-development bleibt das Gerät entsperrt, bis Sie es wieder explizit sperren. Verwenden Sie zum erneuten Sperren des Geräts den Befehl azsphere device enable-cloud-test. Mit diesem Befehl wird die Funktion entfernt und die Gerätegruppe basierend auf den angegebenen Befehlszeilenparametern geändert.
Die Azsphere-Geräte-Enable-Development - und Azsphere-Geräte-Enable-Cloud-Testbefehle führen eine Abfolge von Aktionen aus, die ein Gerät für die Entwicklung und das Debuggen bzw. für Cloudbereitstellungen vorbereiten. Anstatt diese Befehle zu verwenden, können Sie den Azsphere-Gerätefunktionsbefehl verwenden, um eine Gerätefunktion herunterzuladen oder zu aktualisieren, oder um herauszufinden, welche Funktionen ein Gerät derzeit besitzt.
Funktion „fieldServicing“
Die FieldServicing-Funktion ist auf einem Gerät standardmäßig vorhanden, wenn das Gerät über einen Fertigungszustand von "Blank " oder "Module1Complete" verfügt. Wenn sich ein Gerät im Fertigungszustand "DeviceComplete" befindet, kann die FieldServicing-Funktion quergeladen werden, wird jedoch in der Regel während einer Wartungssitzung mit jedem Vorgang an das Gerät übergeben. Ausführliche Informationen zum Starten einer Wartungssitzung finden Sie unter "Änderungen an einem Gerät nach der Herstellung vornehmen".
Unabhängig vom Fertigungszustand des Geräts entsperrt die FieldServicing-Funktion die Service-UART-Kommunikation, um die folgenden Vorgänge zu ermöglichen:
- Querladen eines produktionssignierten Imagepakets.
- Starten, Beenden und Löschen eines produktionssignierten Bildpakets, das als temporär gekennzeichnet ist.
- Ausführen von Routinewartungsaufgaben wie dem Konfigurieren von WLAN.
Obwohl die FieldServicing-Funktion standardmäßig auf dem Gerät vorhanden ist, wenn der Fertigungszustand des Geräts leer oder Module1Complete ist, zeigt der befehl "azsphere device show-attached" nicht die FieldServicing-Funktion an.
Abhängigkeit vom aktuellen vertrauenswürdigen Schlüsselspeicher
Wenn eine Funktionsdatei von AS3 erstellt wird, wird sie mit dem aktuellen Imagesignaturschlüssel signiert. Jedes Gerät verfügt über einen vertrauenswürdigen Schlüsselspeicher als Teil des Betriebssystems, in dem diese Schlüssel aufbewahrt werden. Wenn das Gerät jedoch nicht mit dem Internet verbunden ist, ist es möglich, dass eine Funktion nicht vom Gerät als vertrauenswürdig eingestuft wird, wenn der vertrauenswürdige Schlüsselspeicher dieses Geräts veraltet ist.
Um dies zu beheben, besteht eine Methode darin, dem Gerät das Herstellen einer Internetverbindung zu ermöglichen, damit er den vertrauenswürdigen Schlüsselspeicher aktualisiert. Schließen Sie Ihr Gerät mit dem Internet an, und drücken Sie die ZURÜCK-TASTE , um ein Betriebssystemupdate auszulösen.
Wenn dies nicht möglich ist, können Sie einen aktualisierten vertrauenswürdigen Schlüsselspeicher querladen. Akzeptieren Sie dazu die Lizenzbedingungen , und laden Sie dann die neuesten Wiederherstellungsimages des Betriebssystems herunter, und extrahieren Sie aus dieser ZIP-Datei nur die Datei "trusted-keystore.bin". Anschließend können Sie das Befehl azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> verwenden, um den vertrauenswürdigen Keystore querzuladen, und die Funktion sollte jetzt vom Gerät als vertrauenswürdig eingestuft werden.
Eine dritte Methode ist die Wiederherstellung der Systemsoftware , um das Azure Sphere-Betriebssystem auf die neueste veröffentlichte Version zu aktualisieren, einschließlich des neuesten vertrauenswürdigen Schlüsselspeichers.