Enhetsfunktioner och kommunikation
Viktigt!
Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).
Enhetsfunktionerna avgör enhetsspecifika OS-principer för service-UART-kommunikation. All kommunikation mellan värddatorn och en ansluten enhet sker via tjänstenS UART. Värddatorn kommunicerar med en ansluten enhet för att utföra åtgärder på enheten. Tillverkare, programvaruutvecklare och fältservice tekniker använder funktioner för att låsa upp service-UART-kommunikation för de åtgärder som krävs samtidigt som enheten skyddas mot skadliga användare.
Enhetstillverkare och OEM-tillverkare kan låsa service-UART-kommunikation för att förhindra obehörig användning av dem som har fysisk åtkomst till enheten. Att låsa sådan kommunikation är en del av enhetsslutsättningen. Efter slutförande kan en användare hämta ID:t för en enhet, men inget mer. alla andra åtgärder kräver en enhetsfunktion. Slutförande utförs vanligtvis på fabriksgolvet innan tillverkaren skickar enheten till en kundplats.
En enhetsfunktionsfil innehåller endast noll eller fler funktioner för en enda enhet. Kapacitetsfilen fungerar inte om den tillämpas på en enhet som inte är den som den är avsedd för. En enhet kan ha följande funktioner, som var och en beskrivs senare i det här avsnittet:
Kommentar
Enhetsfunktioner är inte relaterade till programfunktioner. Programfunktioner anger de resurser som ett program kräver vid körning. Mer information om programfunktioner finns i programmanifestet .
Så här fastställer du enhetsfunktioner eller tillverkningstillstånd
Använd kommandot azsphere device capability show-attached för att fastställa kapacitetskonfigurationen som lagras på den anslutna enheten. Kommandot visar de funktioner som konfigureras med hjälp av en funktionsfil och vissa, men inte alla, funktioner som finns som standard på tavlor. En fullständig lista över azsphere-kommandon som kräver en enhetsfunktion finns i tabellen i CLI-översikten.
Enhetsfunktionerna kan påverkas av enhetens tillverkningstillstånd. Om du vill fastställa enhetens tillverkningstillstånd använder du kommandot azsphere device manufacturing-state show. Om kommandot visar att enheten är i tillverkningstillståndet DeviceComplete eller returnerar Device access is forbidden
, är service-UART-kommunikationen låst och du behöver en enhetsfunktion för att kommunicera med enheten från datorn. När en enhet är i tillverkningstillståndet DeviceComplete tillåts tillverkningsåtgärder endast när enheten är upplåst via en kapacitetsfil.
Kommentar
Om du installerar en enhet på en kundplats bör du se till att enheten har slutförts till tillverkningstillståndet DeviceComplete före installationen. Se Slutför Azure Sphere-enheten.
DeviceComplete-manufacuring-tillståndet är normalt inte lämpligt för ett dev-kit. För att möjliggöra testning av de tillverkningsåtgärder som utvecklas av tillverkningstekniker bör ett utvecklingspaket vara i antingen tillståndet Tom tillverkning eller Module1Complete-tillverkningstillståndet .
Så här hämtar enheter funktioner
Enheter kan hämta funktioner på något av tre sätt:
Öppnas som standard. En enhet som är i antingen tillståndet Tom tillverkning eller Modul1Complete-tillverkningstillståndet har vissa funktioner öppna som standard. Detta görs så att enheter som fortfarande befinner sig i tillverkningsfasen inte behöver anslutas till molnet eller begäras till klientorganisationer, vilket krävs av processen att använda enhetsfunktionsfiler för att låsa upp funktioner. Allt eftersom tillverkningen fortskrider kan tillverkare ändra enhetens tillverkningsstatus för att låsa funktioner som inte längre är lämpliga, enligt beskrivningen i Uppgifter på fabriksgolvet.
Separat inläst på enheten. En enhet kan ha en funktionsfil separat inläst på enheten från värddatorn. Använd kommandot azsphere device capability download för att hämta kapacitetsfilen. Den här separat inlästa uppsättningen funktioner bevaras tills en ny funktionsfil (som kan vara en tom fil utan funktioner) läses in separat. Detta är den vanliga situationen under programutvecklingen, till exempel när kommandot azsphere device enable-development körs. Programutveckling underlättas genom att enheten är i ett olåst tillstånd där utvecklaren kan utföra åtgärder som felsökning och enkelt ta bort och distribuera separat inlästa versioner av programmet.
Skickades till enheten med varje åtgärd. En enhet kan ha lokalt valda funktioner som tillämpas per åtgärd. Kommandot azsphere device capability select väljer en funktionsfil som lagras lokalt på värddatorn. När kommandot har körts skickas den valda funktionen från datorn till enheten med varje efterföljande kommando. Det här är det rekommenderade sättet att använda funktioner för enheter som finns i fältet eftersom funktionerna lagras på datorn i stället för på enheten. Risken för att en fälttekniker oavsiktligt lämnar enheten i ett osäkert tillstånd genom att glömma att ta bort funktionen undviks.
Innan en funktionsfil kan läsas in separat på en enhet eller skickas till en enhet med en åtgärd måste den laddas ned från Azure Sphere Security Service (AS3), enligt beskrivningen i Gör ändringar i en enhet efter tillverkningen. Nedladdade kapacitetsfiler är enhetsspecifika. när en funktionsfil har laddats ned kan den användas upprepade gånger på den associerade enheten.
Funktionen enableRfTestMode
Funktionen enableRfTestMode finns som standard på enheten när enhetens tillverkningstillstånd är Tomt. Den här funktionen möjliggör programmering av e-säkringar och konfiguration och testning av RF-drift. Det är inte möjligt för innehavarägare att ladda ned den här funktionen till en värddator. Kontakta din Microsoft-representant om du behöver den här funktionen.
När enhetens tillverkningstillstånd är Tomt visar kommandot azsphere device capability show-attached funktionen enableRfTestMode.
Funktionen appUtveckling
Funktionen appUtvecklingsenhet låser upp service-UART-kommunikation och ändrar den typ av signering som enheten litar på. Den är avsedd att användas under programutvecklingen.
Som standard litar Azure Sphere-enheter på produktionssignerade avbildningspaket som laddas ned av Azure Sphere Security Service, men som inte litar på SDK-signerade avbildningspaket. Därför kan du inte skapa ett avbildningspaket med SDK:n och läsa in det separat på din Azure Sphere-enhet för felsökning om inte enheten har funktionen appUtveckling . Funktionen appDevelopment gör att enheten litar på avbildningspaketet och gör att du kan starta, stoppa, felsöka eller ta bort ett program från enheten.
Sammanfattningsvis låser funktionen appDevelopment upp service-UART-kommunikation för att tillåta följande åtgärder:
Separat inläsning av ett avbildningspaket som har skapats med Visual Studio, Visual Studio Code, CLI eller kommandot azsphere image-package.
Starta, stoppa, felsöka eller ta bort ett avbildningspaket från Azure Sphere-enheten, oavsett hur avbildningspaketet signeras.
Om du vill lägga till funktionen appUtveckling använder du kommandot azsphere device enable-development. Det här kommandot laddar ned funktionen appUtveckling för den anslutna enheten, läser in funktionen separat på enheten och flyttar enheten till standardgruppen Utvecklingsenhet. Inkludera parametern om --device-group
du vill ange en annan enhetsgrupp.
När du använder azsphere device enable-development förblir enheten olåst tills du uttryckligen låser den. Om du vill låsa enheten igen använder du kommandot azsphere device enable-cloud-test. Det här kommandot tar bort funktionen och ändrar enhetsgruppen, beroende på de kommandoradsparametrar som anges.
Azsphere-enheten enable-development och azsphere device enable-cloud-test-kommandon utför en sekvens med åtgärder som förbereder en enhet för utveckling och felsökning eller för molndistributioner. I stället för att använda de här kommandona kan du använda kommandot azsphere device capability för att ladda ned eller uppdatera en enhetskapacitet, eller för att ta reda på vilka funktioner en enhet för närvarande har.
Funktionen fieldServicing
Funktionen fieldServicing finns som standard på en enhet när enheten har tillverkningstillståndet Tom eller Module1Complete. När en enhet är i tillverkningstillståndet DeviceComplete kan funktionen fieldServicing läsas in separat, men skickas vanligtvis till enheten med varje åtgärd under en underhållssession. Mer information om hur du startar en servicesession finns i Göra ändringar i en enhet efter tillverkningen.
Oavsett enhetens tillverkningstillstånd låser funktionen fieldServicing upp service-UART-kommunikation för att tillåta följande åtgärder:
- Separat inläsning av ett produktionssignerat avbildningspaket.
- Starta, stoppa och ta bort ett produktionssignerat avbildningspaket som är markerat som tillfälligt.
- Utföra rutinunderhållsuppgifter som att konfigurera Wi-Fi.
Även om funktionen fieldServicing finns som standard på enheten när enhetens tillverkningsstatus är Tom eller Module1Complete, visar kommandot azsphere device capability show-attached inte funktionen fieldServicing.
Beroende av aktuellt betrott nyckelarkiv
När en funktionsfil skapas av AS3 signeras den med den aktuella avbildningssigneringsnyckeln. Varje enhet har ett betrott nyckelarkiv som en del av operativsystemet där nycklarna sparas. Men om enheten inte är ansluten till Internet är det möjligt att en funktion inte är betrodd av den enhet som den riktar in sig på om enhetens betrodda nyckelarkiv är inaktuellt.
För att åtgärda detta är en metod att tillåta att enheten ansluter till Internet så att den uppdaterar det betrodda nyckelarkivet. Anslut enheten till Internet och tryck på Återställ för att utlösa en OS-uppdatering.
Om detta inte är möjligt kan du läsa in ett uppdaterat betrott nyckelarkiv separat. För att göra detta godkänner du licensvillkoren och laddar sedan ned de senaste os-återställningsavbildningarna och extraherar bara filen "trusted-keystore.bin" från zip-filen. Sedan kan du använda kommandot azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> för att separat läsa in det betrodda nyckelarkivet, och funktionen bör nu vara betrodd av enheten.
En tredje metod är Recover the system software to update the Azure Sphere OS to the latest released version, including the latest trusted keystore.