Atualizações OTA downstream com o Azure Sphere

Muitas soluções do Azure Sphere incorporam uma MCU certificada pelo Azure Sphere e outros processadores como parte de uma solução completa de IoT. Esses outros processadores precisam de atualizações regulares de firmware. Este guia descreve como habilitar atualizações OTA downstream usando o Azure Sphere.

Dependendo do cenário de aplicação específico, existem várias maneiras diferentes de conseguir isso. Cada solução tem um fluxo comum:

  1. Acione a atualização do firmware.
  2. Adquira a atualização do firmware.
  3. Determine um local de download intermediário.
  4. Valide o firmware e atualize o processador downstream.

Etapa 1: acionar a atualização do firmware

Problema: Como o processo de atualização do firmware é iniciado?

Opções:

  • Cada versão do aplicativo do Azure Sphere está vinculada a uma versão de firmware downstream:

    • Descrição: quando o aplicativo do Azure Sphere é iniciado, a versão do firmware com suporte é comparada com a versão implantada no processador downstream. Se as versões não corresponderem, uma atualização será necessária.
    • Prós: Contrato de suporte definido entre o aplicativo do Azure Sphere e a versão do firmware. Além disso, aproveita o processo de atualização de aplicativo existente do Azure Sphere.
    • Contras: Deve atualizar o aplicativo do Azure Sphere para disparar uma atualização de firmware, mesmo que não haja alterações no aplicativo do Azure Sphere. Além disso, deve adicionar monitoramento do progresso da atualização.
  • Atualização de firmware de gerenciamento de dispositivos do Hub IoT do Azure:

    • Descrição: quando uma atualização de firmware está pronta, um operador de Solução IoT cria uma nova configuração de gerenciamento de dispositivos com o firmware atualizado. O aplicativo do Azure Sphere recebe a solicitação de atualização de firmware e pode iniciar a atualização.
    • Prós: Solução de gerenciamento fácil para definir, acionar e monitorar uma atualização.
    • Contras: Deve usar o Hub IoT do Azure, não há suporte para outros pontos de extremidade de nuvem.
  • Verificação de firmware separada (solução personalizada):

    • Descrição: crie uma verificação de firmware personalizada no aplicativo do Azure Sphere. Verifique regularmente um ponto de extremidade definido para uma nova versão e, se for detectado um, inicie uma atualização.
    • Prós: Funciona com qualquer endpoint de nuvem para baixar firmware.
    • Contras: Deve adicionar monitoramento do processo de atualização. Solução personalizada, portanto, não aproveitando nenhum caminho de atualização existente.

Solução recomendada: se o disparo de atualizações para processadores downstream por meio das atualizações de aplicativo do Azure Sphere funcionar para seu cenário, essa abordagem será recomendada. Essa solução garante que as versões de firmware do Azure Sphere e downstream sejam sempre correspondidas e não requer a criação de outro sistema para disparar atualizações. Caso contrário, se o aplicativo já usar o Hub IoT do Azure, o Gerenciamento de Dispositivos IoT será a solução recomendada, caso contrário, uma solução personalizada será necessária.

Exemplos:

  • A solução de referência ExternalMcuUpdate mostra como exigir uma versão de firmware específica em um dispositivo downstream para cada versão do aplicativo do Azure Sphere.
  • O MCU externo OTA do Azure Sphere implementa uma atualização de firmware para o Azure Sphere utilizando o gerenciamento de dispositivos do Hub IoT do Azure.
  • O tutorial de atualização de firmware do Hub IoT do Azure descreve como disparar atualizações por meio das propriedades do dispositivo gêmeo do Hub IoT do Azure.

Etapa 2: adquirir a atualização de firmware

Problema: Como o firmware deve ser baixado considerando as restrições de memória do Azure Sphere MT3620?

Opções:

  • Inclua o firmware downstream no imagepackage implantado no MT3620. Isso será possível se o tamanho total do software MT3620, incluindo a imagem downstream, não exceder o limite de flash documentado.

  • Baixe o firmware de um local hospedado, por exemplo, usando o Armazenamento de Blobs do Azure. Pode ser necessário baixar o firmware em partes, pois o limite de RAM do MT3620 pode impedir que toda a imagem seja baixada para a RAM. É importante validar o servidor usado para download de firmware, por exemplo, usando HTTPS, para garantir que apenas firmware confiável seja baixado e aplicado no processador downstream. Observe que, nesse caso, é possível que um dispositivo fique online enquanto o aplicativo do Azure Sphere é atualizado, mas fique offline antes que o novo aplicativo possa baixar o novo firmware downstream. Se essa for uma possibilidade para seu caso de uso, é importante manter a compatibilidade entre o aplicativo do Azure Sphere e as versões de firmware downstream mais antigas.

Solução recomendada: se a imagem de firmware se encaixar no limite de flash do pacote de imagens do Azure Sphere e se for aceitável atualizar o software MT3620 sempre que uma atualização downstream for necessária, é recomendável incluir a imagem downstream no pacote de imagens MT3620. Caso contrário, você precisará baixar a imagem do firmware do local hospedado.

Exemplos:

  • A solução de referência ExternalMcuUpdate mostra como incluir uma imagem de firmware downstream como parte de um pacote de imagens do Azure Sphere.
  • HTTPS Curl Easy Sample mostra como executar um download em partes usando um buffer de RAM de tamanho fixo.

Etapa 3: Determinar um local de download intermediário

Problema: esse problema só será relevante se você não estiver usando uma imagem de firmware incorporada ao pacote de imagens do Azure Sphere e em que o firmware baixado for maior que a RAM disponível no MT3620.

Opções:

  • Flash externo conectado ao Azure Sphere.
  • Armazenamento downstream de MCU ou PC.

Não há resposta certa ou errada sobre onde armazenar o firmware baixado. Essa escolha depende da configuração e do custo do hardware. Qual é a melhor opção para você? Você pode considerar anexar memória flash externa ao seu dispositivo do Azure Sphere ou selecionar um processador downstream com armazenamento grande o suficiente para receber a atualização de firmware.

Solução recomendada: Selecione a melhor opção para sua configuração.

Exemplos:

Etapa 4: Validar o firmware e atualizar o processador downstream

Problema: Como você valida e aplica a atualização de firmware ao seu processador downstream?

Opções: Cada processador terá uma solução diferente. A maioria dos fabricantes de processadores tem exemplos que mostram como executar atualizações de firmware em seus dispositivos e você deve seguir as práticas recomendadas para sua solução específica. O download e a atualização do firmware devem executar uma verificação de integridade para validar o firmware antes de iniciar a atualização.

Solução recomendada: Difere para cada processador. Consulte a amostra do fabricante do processador.

Exemplo: A solução de referência ExternalMcuUpdate demonstra como atualizar um nRF52 nórdico em uma interface UART do MT3620.