Actualizaciones de OTA descendentes con Azure Sphere
Muchas soluciones de Azure Sphere incorporan una MCU certificada de Azure Sphere y otros procesadores como parte de una solución de IoT completa. Estos otros procesadores necesitan actualizaciones de firmware normales. En esta guía se describe cómo habilitar las actualizaciones de OTA de bajada mediante Azure Sphere.
Dependiendo del escenario de aplicación en particular, hay varias maneras diferentes de lograrlo. Cada solución tiene un flujo común:
- Desencadene la actualización del firmware.
- Adquiera la actualización del firmware.
- Determine una ubicación de descarga intermedia.
- Valide el firmware y actualice el procesador de bajada.
Fase 1: Desencadenar la actualización del firmware
Problema: ¿Cómo se inicia el proceso de actualización de firmware?
Opciones:
Cada versión de aplicación de Azure Sphere está vinculada a una versión de firmware de bajada:
- Descripción: cuando se inicia la aplicación de Azure Sphere, la versión de firmware admitida se compara con la versión implementada en el procesador de bajada. Si las versiones no coinciden, se necesita una actualización.
- Ventajas: contrato de soporte técnico definido entre la aplicación de Azure Sphere y la versión de firmware. Además, aprovecha el proceso de actualización de aplicaciones de Azure Sphere existente.
- Desventajas: debe actualizar la aplicación de Azure Sphere para desencadenar una actualización de firmware aunque no haya cambios en la aplicación de Azure Sphere. Además, debe agregar la supervisión del progreso de la actualización.
Actualización del firmware de administración de dispositivos de Azure IoT Hub:
- Descripción: cuando una actualización de firmware está lista, un operador de solución de IoT crea una nueva configuración de administración de dispositivos con el firmware actualizado. La aplicación de Azure Sphere recibe la solicitud de actualización de firmware y puede comenzar la actualización.
- Ventajas: solución de administración sencilla para definir, desencadenar y supervisar una actualización.
- Desventajas: debe usar Azure IoT Hub, no se admite ningún otro punto de conexión en la nube.
Comprobación de firmware independiente (solución personalizada):
- Descripción: cree una comprobación de firmware personalizada en la aplicación de Azure Sphere. Compruebe periódicamente un punto de conexión definido para una nueva versión y, si se detecta, inicie una actualización.
- Ventajas: funciona con cualquier punto de conexión en la nube para descargar firmware.
- Desventajas: debe agregar la supervisión del proceso de actualización. Solución compilada personalizada, por lo que no aprovecha las rutas de actualización existentes.
Solución recomendada: si desencadenar actualizaciones para procesadores de bajada a través de las actualizaciones de aplicaciones de Azure Sphere funciona para su escenario, se recomienda este enfoque. Esta solución garantiza que las versiones de firmware de Azure Sphere y de bajada siempre coincidan y no requiere la creación de otro sistema para desencadenar actualizaciones. De lo contrario, si la aplicación ya usa Azure IoT Hub, ioT Administración de dispositivos es la solución recomendada, de lo contrario, se requiere una solución personalizada.
Ejemplos:
- La solución de referencia ExternalMcuUpdate muestra cómo requerir una versión de firmware específica en un dispositivo de bajada para cada versión de aplicación de Azure Sphere.
- Azure Sphere External MCU OTA implementa una actualización de firmware para Azure Sphere mediante la administración de dispositivos de Azure IoT Hub.
- El tutorial de actualización de firmware de Azure IoT Hub describe cómo desencadenar actualizaciones a través de las propiedades del dispositivo gemelo de Azure IoT Hub.
Fase 2: Adquisición de la actualización de firmware
Problema: ¿Cómo se debe descargar el firmware según las restricciones de memoria de Azure Sphere MT3620?
Opciones:
Incluya el firmware de bajada en el paquete de imágenes implementado en MT3620. Esto es posible si el tamaño total del software MT3620, incluida la imagen de bajada, no supera el límite de flash documentado.
Descargue el firmware de una ubicación hospedada, por ejemplo, mediante Azure Blob Storage. Puede ser necesario descargar el firmware en fragmentos, ya que el límite de RAM de MT3620 puede impedir que toda la imagen se descargue en ram. Es importante validar el servidor usado para la descarga de firmware (por ejemplo, mediante HTTPS) para asegurarse de que solo se descargue y aplique firmware de confianza en el procesador de bajada. Tenga en cuenta que, en este caso, es posible que un dispositivo esté en línea mientras se actualiza la aplicación de Azure Sphere, pero luego se desconecta antes de que la nueva aplicación pueda descargar el nuevo firmware de bajada. Si se trata de una posibilidad para su caso de uso, es importante mantener la compatibilidad entre la aplicación de Azure Sphere y las versiones anteriores del firmware de nivel inferior.
Solución recomendada: si la imagen de firmware se ajusta al límite flash del paquete de imágenes de Azure Sphere y si es aceptable actualizar el software MT3620 cada vez que se necesita una actualización de bajada, se recomienda incluir la imagen de bajada en el paquete de imágenes MT3620. De lo contrario, deberá descargar la imagen de firmware desde la ubicación hospedada.
Ejemplos:
- La solución de referencia ExternalMcuUpdate muestra cómo incluir una imagen de firmware de bajada como parte de un paquete de imágenes de Azure Sphere.
- Https Curl Easy Sample muestra cómo realizar una descarga fragmentada mediante un búfer de RAM de tamaño fijo.
Fase 3: Determinar una ubicación de descarga intermedia
Problema: este problema solo es relevante si no usa una imagen de firmware incorporada en el paquete de imágenes de Azure Sphere y donde el firmware descargado es mayor que la RAM disponible en MT3620.
Opciones:
- Flash externo conectado a Azure Sphere.
- Almacenamiento de MCU o PC de bajada.
No hay ninguna respuesta correcta o incorrecta para dónde almacenar el firmware descargado. Esta opción depende de la configuración y el costo del hardware. ¿Cuál es la mejor opción para usted? Puede considerar la posibilidad de conectar memoria flash externa al dispositivo de Azure Sphere o seleccionar un procesador de bajada con almacenamiento lo suficientemente grande como para recibir la actualización de firmware.
Solución recomendada: seleccione la mejor opción para la configuración.
Ejemplos:
Fase 4: Validación del firmware y actualización del procesador de bajada
Problema: ¿Cómo se valida y aplica la actualización del firmware al procesador de bajada?
Opciones: cada procesador tendrá una solución diferente. La mayoría de los fabricantes de procesadores tienen ejemplos que muestran cómo realizar actualizaciones de firmware en sus dispositivos y debe seguir los procedimientos recomendados para su solución específica. La descarga y actualización del firmware deben realizar una comprobación de integridad para validar el firmware antes de iniciar la actualización.
Solución recomendada: difiere para cada procesador. Consulte el ejemplo del fabricante del procesador.
Ejemplo: La solución de referencia ExternalMcuUpdate muestra cómo actualizar un nRF52 nórdico a través de una interfaz UART de MT3620.