Есть ли готовые облачные сервисы или фреймворки для обновления прошивки по воздуху?

9

У меня есть прототип устройства с ограниченными ресурсами (8-битный MCU без встроенного программного обеспечения), взаимодействующий с веб-сервером. Интересно, есть ли какие-либо решения, платформы или облачные сервисы для обновления прошивки моего устройства из Интернета. Из моего исследования есть Microsoft IoT Hub, но я боюсь, что он не подходит для таких устройств с ограниченными ресурсами. Я нашел еще одно решение - портал mbed Cloud, но я не уверен, как оно работает. Может ли кто-нибудь помочь мне с помощью какого-либо совета, может быть, есть некоторые рекомендации по внедрению обновления встроенного ПО по беспроводной сети для встроенных устройств безопасным и надежным способом?

Vadimchik
источник
На данный момент таких услуг нет. Реализация одного в целом очень утомительна, может быть реализован сервис, ориентированный на конкретный тип устройства.
бравокейл
Существует mender.io , который примерно то , что вы хотите. Но я верю, что он нацелен на встраиваемые устройства высшего класса и на 8-битные узлы.
мат

Ответы:

4

Я отвечу только на эту часть, так как я не знаю никакой «нестандартной» системы для неизвестного Фирмара.

может быть, есть некоторые рекомендации по безопасному и надежному внедрению обновления встроенного ПО по беспроводной сети для встроенных устройств?

Что касается практики, то я бы сделал следующее:

1) Иметь минимальный загрузчик, настолько глупый, насколько это возможно, только отвечающий за загрузку прошивки со следующими ограничениями:

  • Возможность записи последней успешной / неудачной загрузки (откат к рабочей версии в случае сбоя)
  • Какой-то аварийный процесс для принятия новой прошивки в случае катастрофического сбоя (необязательно, можно было бы избежать, если допустимо использование «кирпичного» устройства)

2) Установите в своем хранилище два «загрузочных банка» разумного размера, чтобы справляться с будущим развитием и ростом встроенного программного обеспечения.

3) Проверьте контрольную сумму образа микропрограммы после загрузки, чтобы убедиться, что она правильна перед записью, проверьте контрольную сумму банка назначения после записи, чтобы снова убедиться, что он не потерпит неудачу при загрузке пропавшего бита.

Обычно упускается из виду контрольная сумма загруженного образа до и после записи, что приводит к повреждению системы, записанной на устройстве. Использование двух банков и чередование обычно облегчают процесс обновления.

Tensibai
источник
5

mbed cloud предлагает полную функциональность обновления прошивки, но я думаю, у вас возникнут проблемы с переносом на вашу платформу, если вы работаете без ОС. Я не думаю, что источник открыт сегодня, поэтому вы даже не можете использовать его для справки. Я также не уверен, каковы критерии для получения доступа прямо сейчас.

Вам нужно подумать о функциях, которые вам нужны - это крупномасштабное развертывание, где вам нужно иметь возможность поэтапного развертывания прошивки, вы хотите подписать прошивку или ваша платформа полностью открыта для любого, кто имеет физический доступ? Насколько вы заботитесь о возможности восстановить устройство без кирпича без JTAG?

Реально, такие функции, как OTA-обновления, вероятно, влияют на выбор ОС и устройства, если учесть затраты на разработку.

Шон Хулихейн
источник
5

Проверьте OTA, который является сокращением По Воздуху. Ардуино обладает этим свойством .

Вы можете выполнить обновление с помощью Arduino IDE, веб-браузера или HTTP-сервера.

Опция Arduino IDE предназначена в основном для этапа разработки программного обеспечения. Две другие опции были бы более полезны после развертывания, чтобы обеспечить модуль обновлениями приложения вручную с помощью веб-браузера или автоматически с использованием http-сервера.

Мико
источник
Одна из самых неприятных вещей в этой библиотеке и в Arduino - отсутствие безопасности. Это решение подходит для DIY или школьных проектов, но не для коммерческих устройств. Особенно мне не нравится отсутствие какой-либо аутентификации: она не защищена от замены прошивки на вредоносную, с правильным дайджестом MD5.
Вадимчик
4

Вы могли бы взглянуть на Particle (IoT) . Я не уверен, что они поддерживают Arduino, но сами предлагают несколько дешевых встроенных плат.

Йерун Джейкобс
источник
3

Я обнаружил еще одну интересную платформу - DeviceDrive . Вот видео, объясняющее, как все работает. Их система OTA кажется довольно гибкой.

Vadimchik
источник