Condividi tramite


Funzionalità del dispositivo e comunicazione

Importante

Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).

Le funzionalità del dispositivo determinano i criteri del sistema operativo specifici del dispositivo per la comunicazione UART del servizio. Tutte le comunicazioni tra il computer host e un dispositivo collegato sono tramite il servizio UART. Il computer host comunica con un dispositivo collegato per eseguire operazioni sul dispositivo. Produttori, sviluppatori di software e tecnici assistenza sul campo usano funzionalità per sbloccare la comunicazione UART del servizio per le operazioni necessarie assicurando al contempo che il dispositivo sia protetto da utenti malintenzionati.

I produttori di dispositivi e gli OEM possono bloccare la comunicazione UART del servizio per impedire l'uso non autorizzato da parte di coloro che hanno accesso fisico al dispositivo. Il blocco di tali comunicazioni fa parte della finalizzazione del dispositivo. Dopo la finalizzazione, un utente può ottenere l'ID di un dispositivo, ma niente di più. Tutte le altre operazioni richiedono una funzionalità del dispositivo. La finalizzazione viene in genere eseguita sul piano della fabbrica prima che il produttore spedisa il dispositivo a un sito del cliente.

Un file di funzionalità del dispositivo contiene zero o più funzionalità solo per un singolo dispositivo. Il file di funzionalità non funzionerà se applicato a un dispositivo che non è quello per cui è previsto. Un dispositivo può avere le funzionalità seguenti, ognuna delle quali è descritta più avanti in questo argomento:

Nota

Le funzionalità del dispositivo non sono correlate alle funzionalità dell'applicazione. Le funzionalità dell'applicazione specificano le risorse richieste da un'applicazione in fase di esecuzione. Per altre informazioni sulle funzionalità dell'applicazione, vedere il manifesto dell'applicazione.

Come determinare le funzionalità del dispositivo o lo stato di produzione

Per determinare la configurazione delle funzionalità archiviata nel dispositivo collegato, usare il comando azsphere device capability show-attached. Il comando visualizza le funzionalità configurate usando un file di funzionalità e alcune funzionalità, ma non tutte, presenti per impostazione predefinita nelle schede. Per un elenco completo dei comandi azsphere che richiedono una funzionalità del dispositivo, vedere la tabella nella panoramica dell'interfaccia della riga di comando.

Le funzionalità del dispositivo possono essere interessate dallo stato di produzione del dispositivo. Per determinare lo stato di produzione del dispositivo, usare il comando azsphere device manufacturing-state show. Se il comando mostra che il dispositivo si trova nello stato di produzione DeviceComplete o restituisce Device access is forbidden, la comunicazione service-UART è bloccata e è necessaria una funzionalità del dispositivo per comunicare con il dispositivo dal computer. Quando un dispositivo si trova nello stato di produzione DeviceComplete, le operazioni di produzione sono consentite solo quando il dispositivo viene sbloccato tramite un file di funzionalità.

Nota

Se si installa un dispositivo in un sito del cliente, assicurarsi che il dispositivo venga finalizzato allo stato di produzione DeviceComplete prima dell'installazione. Vedere Finalizzare il dispositivo Azure Sphere.

Lo stato di manufacuring DeviceComplete non è in genere appropriato per un kit di sviluppo. Per abilitare i test delle operazioni di produzione sviluppate dagli ingegneri di produzione, un kit di sviluppo deve trovarsi nello stato di produzione Vuoto o nello stato di produzione Module1Complete .

Modalità di acquisizione delle funzionalità dei dispositivi

I dispositivi possono acquisire funzionalità in uno dei tre modi seguenti:

  • Aperto per impostazione predefinita. Un dispositivo che si trova nello stato di produzione Vuoto o nello stato di produzione Module1Complete ha alcune funzionalità aperte per impostazione predefinita. Questa operazione viene eseguita in modo che i dispositivi ancora nella fase di produzione non debbano essere connessi al cloud o richiesti nei tenant, come richiesto dal processo di uso dei file di funzionalità del dispositivo per sbloccare le funzionalità. Man mano che la produzione avanza, i produttori possono modificare lo stato di produzione del dispositivo per bloccare le funzionalità che non sono più appropriate, come descritto in Attività di fabbrica.

  • Trasferita localmente nel dispositivo. Un dispositivo può avere un file di funzionalità trasferita localmente nel dispositivo dal computer host. Usare il comando azsphere device capability download per recuperare il file di funzionalità. Questo set di funzionalità trasferita localmente viene mantenuto fino a quando non viene caricato localmente un nuovo file di funzionalità (che potrebbe essere un file vuoto senza funzionalità). Questa è la situazione consueta durante lo sviluppo di applicazioni, ad esempio quando viene eseguito il comando azsphere device enable-development. Lo sviluppo di applicazioni è aiutato dalla presenza del dispositivo in uno stato sbloccato in cui lo sviluppatore può eseguire operazioni come il debug e eliminare e distribuire facilmente le versioni sideload dell'applicazione.

  • Passato al dispositivo con ogni operazione. Un dispositivo può avere funzionalità selezionate localmente applicate per ogni operazione. Il comando azsphere device capability select seleziona un file di funzionalità archiviato localmente nel computer host. Una volta eseguito questo comando, la funzionalità selezionata viene passata dal computer al dispositivo con ogni comando successivo. Questo è il modo consigliato per usare le funzionalità per i dispositivi presenti nel campo perché le funzionalità vengono archiviate nel computer anziché nel dispositivo. Il rischio che un tecnico del campo lasci accidentalmente il dispositivo in uno stato non protetto dimenticando di rimuovere la funzionalità viene evitato.

Prima che un file di funzionalità possa essere trasferito localmente in un dispositivo o passato a un dispositivo con un'operazione, è necessario scaricarlo dal servizio di sicurezza di Azure Sphere (AS3), come descritto in Apportare modifiche a un dispositivo dopo la produzione. I file di funzionalità scaricati sono specifici del dispositivo; una volta scaricato, un file di funzionalità può essere usato ripetutamente nel dispositivo associato.

Funzionalità enableRfTestMode

La funzionalità enableRfTestMode è presente per impostazione predefinita nel dispositivo quando lo stato di produzione del dispositivo è Vuoto. Questa funzionalità consente la programmazione di e-fuse e la configurazione e il test dell'operazione RF. Non è possibile che i proprietari dei tenant scarichino questa funzionalità in un computer host. Se è necessaria questa funzionalità, contattare il rappresentante Microsoft.

Quando lo stato di produzione del dispositivo è Vuoto, il comando azsphere device capability show-attached visualizza la funzionalità enableRfTestMode .

Funzionalità appDevelopment

La funzionalità del dispositivo appDevelopment sblocca la comunicazione UART del servizio e modifica il tipo di firma attendibile del dispositivo. È progettata per essere usata durante lo sviluppo di applicazioni.

Per impostazione predefinita, i dispositivi Azure Sphere considerano attendibili i pacchetti immagine firmati dal produttore scaricati dal servizio di sicurezza Azure Sphere, ma non quelli firmati tramite SDK. Non è quindi possibile creare un pacchetto immagine con l'SDK e trasferirlo localmente nel dispositivo Azure Sphere per il debug, a meno che il dispositivo non disponga della funzionalità appDevelopment. La funzionalità appDevelopment fa sì che il dispositivo consideri attendibile il pacchetto immagine e consente di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo.

In sintesi, la funzionalità appDevelopment sblocca la comunicazione service-UART per consentire le operazioni seguenti:

  • Trasferimento locale di un pacchetto immagine compilato con Visual Studio, Visual Studio Code, l'interfaccia della riga di comando o il comando azsphere image-package.

  • Avviare, arrestare, eseguire il debug o rimuovere un pacchetto immagine dal dispositivo Azure Sphere, indipendentemente dal tipo di firma del pacchetto immagine.

Per aggiungere la funzionalità appDevelopment , usare il comando azsphere device enable-development . Questo comando scarica la funzionalità appDevelopment per il dispositivo collegato, trasferisce localmente la funzionalità nel dispositivo e sposta il dispositivo nel gruppo di dispositivi di sviluppo predefinito. Per specificare un gruppo di dispositivi diverso, includere il --device-group parametro .

Quando si usa azsphere device enable-development, il dispositivo rimane sbloccato fino a quando non viene bloccato in modo esplicito. Per ribloccare il dispositivo, usare il comando azsphere device enable-cloud-test. Questo comando rimuove la funzionalità e modifica il gruppo di dispositivi, a seconda dei parametri della riga di comando forniti.

I comandi azsphere device enable-development e azsphere device enable-cloud-test eseguono rispettivamente una sequenza di azioni che preparano un dispositivo per lo sviluppo e il debug o per le distribuzioni cloud. Invece di usare questi comandi, è possibile usare il comando azsphere device capability per scaricare o aggiornare una funzionalità del dispositivo oppure per scoprire quali funzionalità di un dispositivo ha attualmente.

Funzionalità fieldServicing

La funzionalità fieldServicing è presente in un dispositivo per impostazione predefinita quando il dispositivo ha uno stato di produzione Vuoto o Module1Complete. Quando un dispositivo si trova nello stato di produzione DeviceComplete , la funzionalità fieldServicing può essere trasferita localmente, ma in genere viene passata al dispositivo con ogni operazione durante una sessione di manutenzione. Per informazioni dettagliate su come avviare una sessione di manutenzione, vedere Apportare modifiche a un dispositivo dopo la produzione.

Indipendentemente dallo stato di produzione del dispositivo, la funzionalità fieldServicing sblocca la comunicazione UART del servizio per consentire le operazioni seguenti:

  • Trasferimento locale di un pacchetto di immagine firmato dall'ambiente di produzione.
  • Avvio, arresto ed eliminazione di un pacchetto di immagine firmato dall'ambiente di produzione contrassegnato come temporaneo.
  • Esecuzione di attività di manutenzione di routine, ad esempio la configurazione del Wi-Fi.

Anche se la funzionalità fieldServicing è presente per impostazione predefinita nel dispositivo quando lo stato di produzione del dispositivo è Blank o Module1Complete, il comando azsphere device capability show-attached non visualizza la funzionalità fieldServicing.

Dipendenza dall'archivio chiavi attendibile aggiornato

Quando un file di funzionalità viene creato da AS3, viene firmato usando la chiave di firma dell'immagine corrente. Ogni dispositivo ha un archivio chiavi attendibile come parte del sistema operativo in cui vengono mantenute tali chiavi. Tuttavia, se il dispositivo non è connesso a Internet, è possibile che una funzionalità non sia attendibile dal dispositivo di destinazione se l'archivio chiavi attendibile del dispositivo non è aggiornato.

Per risolvere questo problema, un metodo consiste nel consentire al dispositivo di connettersi a Internet in modo che aggiorni l'archivio chiavi attendibile. Connettere il dispositivo a Internet e premere Reimposta per attivare un aggiornamento del sistema operativo.

Se non è possibile, è possibile trasferire localmente un archivio chiavi attendibile aggiornato. A tale scopo, accettare le condizioni di licenza, quindi scaricare le immagini di ripristino del sistema operativo più recenti e da questo file ZIP estrarre solo il file "trusted-keystore.bin". È quindi possibile usare il comando azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> per trasferire localmente l'archivio chiavi attendibile e la funzionalità dovrebbe ora essere considerata attendibile dal dispositivo.

Un terzo metodo è Ripristinare il software di sistema per aggiornare il sistema operativo Azure Sphere alla versione rilasciata più recente, incluso l'archivio chiavi attendibile più recente.