Compartir a través de


Funcionalidades del dispositivo y comunicación

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

Las funcionalidades del dispositivo determinan las directivas de sistema operativo específicas del dispositivo para la comunicación entre servicios y UART . Toda la comunicación entre el equipo host y un dispositivo conectado es a través del UART del servicio. El equipo host se comunica con un dispositivo conectado para realizar operaciones en el dispositivo. Los fabricantes, desarrolladores de software y servicio de campo técnicos usan funcionalidades para desbloquear la comunicación de UART de servicio para las operaciones que requieren, a la vez que garantizan que el dispositivo está protegido contra usuarios malintencionados.

Los fabricantes de dispositivos y los OEM pueden bloquear la comunicación entre servicios y UART para evitar el uso no autorizado por parte de aquellos que tienen acceso físico al dispositivo. Bloquear dicha comunicación forma parte de la finalización del dispositivo. Después de la finalización, un usuario puede obtener el identificador de un dispositivo, pero nada más; todas las demás operaciones requieren una funcionalidad del dispositivo. La finalización se realiza normalmente en la planta de fábrica antes de que el fabricante envíe el dispositivo a un sitio de cliente.

Un archivo de funcionalidad del dispositivo contiene cero o más funcionalidades solo para un único dispositivo. El archivo de funcionalidad no funcionará si se aplica a un dispositivo que no es el para el que está previsto. Un dispositivo puede tener las siguientes funcionalidades, cada una de las cuales se describe más adelante en este tema:

Nota:

Las funcionalidades del dispositivo no están relacionadas con las funcionalidades de la aplicación. Estas últimas especifican los recursos que requiere una aplicación en tiempo de ejecución. Consulte Manifiesto de aplicación para obtener más información sobre las funcionalidades de la aplicación.

Cómo determinar las funcionalidades del dispositivo o el estado de fabricación

Para determinar la configuración de funcionalidad almacenada en el dispositivo conectado, use el comando azsphere device capability show-attached. El comando muestra las funcionalidades configuradas mediante un archivo de funcionalidad y algunas funcionalidades, pero no todas, presentes de forma predeterminada en los paneles. Para obtener una lista completa de los comandos azsphere que requieren una funcionalidad de dispositivo, consulte la tabla de información general de la CLI.

Las funcionalidades del dispositivo pueden verse afectadas por el estado de fabricación del dispositivo. Para determinar el estado de fabricación del dispositivo, use el comando azsphere device manufacturing-state show. Si el comando muestra que el dispositivo está en estado de fabricación deviceComplete o devuelve Device access is forbidden, la comunicación de service-UART está bloqueada y necesita una capacidad de dispositivo para comunicarse con el dispositivo desde el equipo. Cuando un dispositivo está en estado de fabricación deviceComplete , las operaciones de fabricación solo se permiten cuando el dispositivo se desbloquea a través de un archivo de funcionalidad.

Nota:

Si instala un dispositivo en un sitio de cliente, debe asegurarse de que el dispositivo se haya finalizado en el estado de fabricación deviceComplete antes de la instalación. Consulte Finalización del dispositivo de Azure Sphere.

El estado de manufase DeviceComplete normalmente no es adecuado para un kit de desarrollo. Para habilitar las pruebas de las operaciones de fabricación desarrolladas por ingenieros de fabricación, un kit de desarrollo debe estar en estado de fabricación en blanco o en el estado de fabricación Module1Complete .

Cómo adquieren funcionalidades los dispositivos

Los dispositivos pueden adquirir funcionalidades de una de estas tres maneras:

  • Se abre de forma predeterminada. Un dispositivo que se encuentra en estado de fabricación en blanco o en el estado de fabricación Module1Complete tiene algunas funcionalidades abiertas de forma predeterminada. Esto se hace para que los dispositivos aún en la fase de fabricación no necesiten conectarse a la nube ni reclamarse en inquilinos, tal como lo requiere el proceso de uso de archivos de funcionalidad del dispositivo para desbloquear funcionalidades. A medida que avanza la fabricación, los fabricantes pueden cambiar el estado de fabricación del dispositivo para bloquear las funcionalidades que ya no son adecuadas, como se describe en Tareas de planta de fábrica.

  • Se ha cargado localmente en el dispositivo. Un dispositivo puede tener un archivo de funcionalidad cargado localmente en el dispositivo desde el equipo host. Use el comando azsphere device capability download para recuperar el archivo de funcionalidad. Este conjunto de funcionalidades descargado localmente persiste hasta que se transfiere localmente un nuevo archivo de funcionalidad (que puede ser un archivo en blanco sin funcionalidades). Esta es la situación habitual durante el desarrollo de aplicaciones, por ejemplo, cuando se ejecuta el comando azsphere device enable-development. El desarrollo de aplicaciones se ayuda al tener el dispositivo en un estado desbloqueado en el que el desarrollador puede realizar operaciones como la depuración y eliminar e implementar fácilmente versiones transferidas localmente de la aplicación.

  • Se pasa al dispositivo con cada operación. Un dispositivo puede tener funcionalidades seleccionadas localmente aplicadas por cada operación. El comando azsphere device capability select selecciona un archivo de funcionalidad que se almacena localmente en el equipo host. Una vez ejecutado este comando, la funcionalidad seleccionada se pasa del equipo al dispositivo con cada comando posterior. Esta es la forma recomendada de usar funcionalidades para dispositivos que están en el campo porque las funcionalidades se almacenan en el equipo en lugar del dispositivo. El riesgo de que un ingeniero de campo deje accidentalmente el dispositivo en un estado no seguro olvidando quitar la funcionalidad se evita.

Antes de que un archivo de funcionalidad se pueda transferir localmente a un dispositivo o pasarlo a un dispositivo con una operación, debe descargarse desde el servicio de seguridad de Azure Sphere (AS3), como se describe en Realizar cambios en un dispositivo después de su fabricación. Los archivos de funcionalidad descargados son específicos del dispositivo; Una vez descargado, un archivo de funcionalidad se puede usar repetidamente en el dispositivo asociado.

La funcionalidad enableRfTestMode

La funcionalidad enableRfTestMode está presente de forma predeterminada en el dispositivo cuando el estado de fabricación del dispositivo es Blank. Esta funcionalidad permite la programación de fusibles electrónicos y la configuración y las pruebas de la operación rf. No es posible que los propietarios de inquilinos descarguen esta funcionalidad en un equipo host. Si necesita esta funcionalidad, póngase en contacto con su representante de Microsoft.

Cuando el estado de fabricación del dispositivo es Blank, el comando azsphere device capability show-attached muestra la funcionalidad enableRfTestMode .

La funcionalidad appDevelopment

La funcionalidad del dispositivo appDevelopment desbloquea la comunicación service-UART y cambia el tipo de firma que confía el dispositivo. Está pensada para su uso durante el desarrollo de aplicaciones.

De forma predeterminada, los dispositivos de Azure Sphere confían en los paquetes de imagen con firma de producción que descarga el servicio de seguridad de Azure Sphere, pero no confían en los paquetes de imagen con firma del SDK. Por lo tanto, no puede crear un paquete de imagen con el SDK y transferirlo localmente a su dispositivo de Azure Sphere para la depuración, a menos que el dispositivo cuente con la funcionalidad appDevelopment, que hace que el dispositivo confíe en el paquete de imagen y que permite iniciar, detener, depurar o quitar una aplicación del dispositivo.

En resumen, la funcionalidad appDevelopment desbloquea la comunicación service-UART para permitir las siguientes operaciones:

  • Transferir localmente un paquete de imágenes compilado con Visual Studio, Visual Studio Code, la CLI o el comando azsphere image-package.

  • Iniciar, detener, depurar o quitar un paquete de imagen del dispositivo de Azure Sphere, independientemente de cómo esté firmado el paquete de imagen.

Para agregar la funcionalidad appDevelopment, use el comando azsphere device enable-development. Este comando descarga la funcionalidad appDevelopment para el dispositivo conectado, descarga localmente la funcionalidad en el dispositivo y mueve el dispositivo al grupo de dispositivos de desarrollo predeterminado. Para especificar un grupo de dispositivos diferente, incluya el --device-group parámetro .

Cuando se usa azsphere device enable-development, el dispositivo permanece desbloqueado hasta que se bloquea explícitamente. Para volver a bloquear el dispositivo, use el comando azsphere device enable-cloud-test. Este comando quita la funcionalidad y cambia el grupo de dispositivos, en función de los parámetros de línea de comandos proporcionados.

Los comandos azsphere device enable-development y azsphere device enable-cloud-test realizan una secuencia de acciones que preparan un dispositivo para el desarrollo y la depuración o para implementaciones en la nube, respectivamente. En lugar de usar estos comandos, puede usar el comando azsphere device capability para descargar o actualizar una funcionalidad de dispositivo, o para averiguar qué funcionalidades tiene un dispositivo actualmente.

La funcionalidad fieldServicing

La funcionalidad fieldServicing está presente en un dispositivo de forma predeterminada cuando el dispositivo tiene un estado de fabricación de Blank o Module1Complete. Cuando un dispositivo está en estado de fabricación DeviceComplete , la funcionalidad fieldServicing se puede transferir localmente, pero normalmente se pasa al dispositivo con cada operación durante una sesión de mantenimiento. Para obtener más información sobre cómo iniciar una sesión de mantenimiento, consulte Realizar cambios en un dispositivo después de su fabricación.

Independientemente del estado de fabricación del dispositivo, la funcionalidad fieldServicing desbloquea la comunicación service-UART para permitir las siguientes operaciones:

  • Transferir localmente un paquete de imágenes firmadas por producción.
  • Iniciar, detener y eliminar un paquete de imagen firmado por producción marcado como temporal.
  • Realizar tareas de mantenimiento rutinarias, como configurar Wi-Fi.

Aunque la funcionalidad fieldServicing está presente de forma predeterminada en el dispositivo cuando el estado de fabricación del dispositivo es Blank o Module1Complete, el comando azsphere device capability show-attached no muestra la funcionalidad fieldServicing .

Dependencia del almacén de claves de confianza actualizado

Cuando AS3 crea un archivo de funcionalidad, se firma con la clave de firma de imágenes actual. Cada dispositivo tiene un almacén de claves de confianza como parte del sistema operativo donde se conservan esas claves. Sin embargo, si el dispositivo no está conectado a Internet, es posible que el dispositivo no sea de confianza si el almacén de claves de confianza del dispositivo no está actualizado.

Para solucionar este problema, un método consiste en permitir que el dispositivo se conecte a Internet para que actualice el almacén de claves de confianza. Conecte el dispositivo a Internet y presione Restablecer para desencadenar una actualización del sistema operativo.

Si esto no es posible, puede transferir localmente un almacén de claves de confianza actualizado. Para ello, acepte los términos de licencia y descargue las imágenes de recuperación del sistema operativo más recientes y, desde este archivo ZIP, extraiga solo el archivo "trusted-keystore.bin". A continuación, puede usar el comando azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> para transferir localmente el almacén de claves de confianza y la funcionalidad ahora debería ser de confianza para el dispositivo.

Un tercer método es Recuperar el software del sistema para actualizar el sistema operativo de Azure Sphere a la versión más reciente publicada, incluido el almacén de claves de confianza más reciente.