Способ удаленной прошивки микроконтроллера автономного устройства
METHOD FOR REMOTE FIRMWARE OF THE MICROCONTROLLER OF AN AUTONOMOUS DEVICE

Изобретение относится к телекоммуникационным технологиям, в частности, к мобильным устройствам и может быть использовано для удаленной прошивки микроконтроллеров автономных устройств в беспроводных сетях, работающих в стандартах GSM, NB-IoT, LoRaWAN.
В основу изобретения положено решение технической задачи удаленного обновления программного обеспечения автономного устройства, заключающееся в использовании для буферизации и временного хранения области памяти модуля связи, предназначенную для скачивания и хранения прошивки самого модуля связи.
Известно техническое решение [RU 200930, U1, G06F 1/28, 19.11.2020] в области средств питания ИТ оборудования, в котором обеспечивается возможности добавлять поддержку новых потребителей путем смены прошивки микроконтроллера без изменений в составе аппаратной части платы логики за счет подключения микроконтроллера в шину I2C в качестве посредника между цифровыми микросхемами платы логики и коммутатором, для чего плата логики содержит микросхему защиты, микроконтроллер для реализации функции самодиагностики и обмена данными с коммутатором по шине I2C, микросхему генератора тактовых импульсов и микросхему памяти для хранения служебных данных.
Недостатком реализованного в этом техническом решении способа является относительно узкая область применения, поскольку не предусмотрена возможность удаленной прошивки микроконтроллера.
Наиболее близким по технической сущности к предложенному является способ удаленной прошивки микроконтроллера, реализованный в устройстве, представленном в техническом решении [RU 178204, U1, G04G 9/00, 21/07/2017] и которое снабжено модулем беспроводной связи, связанным с микроконтроллером по интерфейсу RS232. В качестве модуля беспроводной связи предпочтительно используется микроконтроллер ESP8266, поддерживающий стандарты беспроводной связи IEEE 802.11b/g/n и стек сетевых протоколов ТСР/IP. Модуль работает по стандарту IEEE 802.11n на частоте 2,4 ГГц. Модуль ESP8266 выполнен с возможностью отправлять на устройства, подключенные к нему по беспроводной связи, веб-страницу, на которой размещены показания датчиков температуры, давления и влажности, а также элементы управления часами на газоразрядных индикаторах. Кроме того, модуль ESP8266 выполнен с возможностью поддержки обновления прошивки по беспроводному соединению, а именно по сети Wi-Fi.
Таким образом, в известном устройстве используется распространенный способ прошивки микроконтроллера через модуль связи ESP8266, заключающийся в том, что прошивка осуществляется подачей управляющего сигнала модулю связи от главного микроконтроллера, по которому он проверяет наличие новой прошивки по определенному адресу в интернете и, при ее наличии, побитно по интерфейсу RS232 записывает новую прошивку в загрузочную область памяти главного микроконтроллера.
Недостатком наиболее близкого технического решения является относительно узкая область применения, поскольку реализованный в нем способ и используемый для этого модуль ESP8266 может быть использован только в сетях стандарта Wi-Fi и не может быть использован для систем и устройств, работающих в стандартах GSM, NB-IoT, LoRaWAN, модули связи в которых существенно отличаются своими техническими характеристиками и возможностями.
Так модуль ESP8266 имеет встроенную память для пользовательских целей (до 1 МБайта), которая доступна для хранения любой информации, в том числе прошивки микроконтроллера. В модулях связи, работающих в стандартах GSM, NB-IoT, LoRaWAN такого объема энергонезависимой памяти для пользовательских целей нет. Поэтому мы предлагаем использовать раздел памяти, который недоступен для непосредственной с ней работы, а именно раздел памяти, предназначенный для буферизации и временного хранения прошивки самого модуля связи.
Задача, которая решается в изобретении, направлена на создание способа, обеспечивающего удаленную прошивку микроконтроллеров для систем, работающих в стандартах GSM, NB-IoT, LoRaWAN.
Требуемый технический результат заключается в расширении области применения способа удаленной прошивки микроконтроллера путем обеспечения такой операции в системах, работающих в стандартах GSM, NB-IoT, LoRaWAN.
Поставленная задача решается, а требуемый технический результат достигается тем, что в способе, заключающемся в том, что данные для обновления прошивки главного микроконтроллера скачиваются в область памяти модуля связи, предназначенную для буферизации и хранения прошивки самого модуля связи, согласно полезной модели, данные для обновления прошивки главного микроконтроллера скачиваются в область памяти модуля связи, предназначенную для буферизации и хранения прошивки самого модуля связи, по сетям, работающих в стандартах GSM, NB-IoT, LoRaWAN, в виде данных прошивки микроконтроллера с прикрепленными к ним данными о CRC-сумме, которые формируются на стороне пользовательского приложения и скачивание которых производится главным микроконтроллером из модуля связи по АТ-команде от самого микроконтроллера, который формирует ее после получения соответствующей команды от удаленного пользовательского приложения, а обновление программного обеспечения микроконтроллера производится после полного скачивания прошивки и проверки на совпадение полученной CRC-суммы с рассчитанной в самом микроконтроллере при получении данных прошивки микроконтроллера с прикрепленными к ним данными о CRC-сумме, при этом, если CRC суммы не совпадают, то данные прошивки удаляются из области памяти модуля связи и в пользовательское приложение отправляется сообщение о неудачной попытке обновления прошивки.
На чертеже представлено устройство, иллюстрирующего пример реализации предложенного способа.
На чертеже обозначены:
1 - модуль связи;
2 - микроконтроллер;
3 - измеритель расстояния;
4 - акселерометр;
5 - датчик температуры;
6 - модуль геолокации.
Устройство предназначено для измерения уровня наполненности различных емкостей и сосудов различными материалами, твердыми коммунальными отходами, жидкостями и др. Оно включает в себя помимо измерителя расстояния 3 и модуля связи 1, предназначенного для передачи данных в пользовательское приложение, акселерометр 4 для измерения фактов опустошения емкостей и сосудов, а также вандальных действий в их отношении, если это требуется, также содержит датчик температуры 5 для регистрации фактов возгорания внутри емкостей и сосудов, и модуль геолокации, предназначенный для определения местоположения емкостей и сосудов, если это необходимо.
Удаленное пользовательское приложение может быть реализовано в WEB-интерфейсе в виде отдельного приложения для ПК под управлением Windows или MacOS, а также в виде отдельного приложения для смартфона на базе Android или iOS и предназначено для приема и передачи данных в сети Интернет.
Предложенный способ удаленной прошивки микроконтроллера автономного устройства реализуется следующим образом.
Особенностью работы устройства является то, что в нем не установлена дополнительная энергонезависимая память и памяти в установленных микросхемах недостаточно для хранения прошивки для устройства.
В модуле связи возможен доступ к области памяти, предназначенной для скачивания и хранения прошивки самого модуля связи 1. Скачивание данных прошивки главного микроконтроллера производится через аппаратные возможности модуля связи 1 после получения АТ-команды от микроконтроллера 2, который формирует ее после получения соответствующей команды от пользовательского приложения. Удаленное пользовательское приложение, которое может быть реализовано в WEB-интерфейсе в виде отдельного приложения для ПК под управлением Windows или MacOS, а также в виде отдельного приложения для смартфона на базе Android или iOS. Оно предназначено для приема и передачи данных в сети Интернет. Данные прошивки могут скачиваться как целиком, так и частями. В мобильных сетях может происходить разрыв соединения и может наблюдаться низкая пропускная способность канала связи. Поэтому предлагается делить данные прошивки на части и докачивать только те, которые «потерялись», тем самым экономить трафик и расходы на передачу данных.
Обновление программного обеспечения производится только после полного скачивания прошивки и проверки CRC суммы. Если CRC сумма не совпадает, то прошивка удаляется из области памяти модуля связи 1 и в пользовательское приложение отправляется соответствующее сообщение.
После успешного обновления программного обеспечения в энергонезависимую память микроконтроллера 2 записывается индикатор, который проверяется микроконтроллером 2 каждый раз при переходе в рабочий режим. Если обнаруживается наличие такого индикатора, то микроконтроллер 2 формирует команду на удаление данных прошивки и направляет ее в модуль связи 1, который, в свою очередь, выполняет очистку области памяти, в которой хранились данные прошивки. После отправки команды микроконтроллер 2 удаляет из своей памяти индикатор.
Таким образом, в предложенном техническом решении достигается требуемый технический результат, который заключается в расширении области применения способа удаленной прошивки микроконтроллера путем обеспечения такой операции в системах, работающих в стандартах GSM, NB-IoT, LoRaWAN.