WB Modbus Devices Firmware Update: различия между версиями

Материал из Wiren Board
Строка 57: Строка 57:
| -D || Включить режим отладки ||  
| -D || Включить режим отладки ||  
|}
|}
Пример:
<pre>
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
</pre>

Версия 19:00, 26 февраля 2019

Загрузчик прошивок

В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU. На устройства добавлен режим загрузчика, в котором возможно обновлять прошивку.

В режиме загрузчика основной функционал устройства отключается. Коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2.

Переход в режим загрузчика

Индикация режима загрузчика

Устройство переходит в режим загрузчика, если:

  • на устройстве имеется корректная прошивка — первые 2 секунды после включения питания устройство работает в режиме загрузчика;
  • на устройстве корректная прошивка (например, был сбой при обновлении прошивки) — в этом случае режим загрузчика активен постоянно;
  • при работе основной программы в holding-регистр 129 (0x81) была записана 1 — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд.

Индикация режима загрузчика: индикатор Status устройства редко мигает. При заливке новой прошивки индикатор перестает менять состояние.

Прошивки

Запись прошивки в память устройства выполняется загрузчиком, который получает ее по Modbus RTU. Прошивки хранятся в файлах с расширением .wbfw.

Сигнатуры устройств

При прошивке на заводе в память устройства записывается сигнатура — наименование аппаратного типа устройства. При перезаписи прошивки текущая сигнатура сравнивается с сигнатурой прошивки. Запись новой прошивки возможна только при совпадении сигнатур.

Modbus

Загрузчик устройства получает прошивку по Modbus RTU. В режиме загрузчика коммуникационные параметры фиксированы и не зависят от значений, записанных ранее в память устройства: 9600 8N2. По протоколу Modbus устройство можно перевести в режим загрузчика, если во время работы основной программы записать 1 в holding-регистр 129 (0x81). В этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд.

Modbus-адрес устройства для прошивки в режиме загрузчика следует выбирать следующим образом:

  1. Основной адрес для прошивки — адрес, заданный в памяти устройства: то есть это стандартный адрес, на который устройство отвечает из основной программы.
  2. Прошивать устройства можно по широковещательному адресу 0. Это менее предпочтительный способ.

Утилита для прошивки wb-mcu-fw-flasher

Для передачи прошивки на устройства используется утилита wb-mcu-fw-flasher, запускаемая с контроллера Wiren Board (или компьютера с Linux). Для установки утилиты на контроллер выполните команды:

apt-get update
apt-get install wb-mcu-fw-flasher

Опции запуска утилиты wb-mcu-fw-flasher:

Параметр Описание Значение по умолчанию
-d Устройство последовательного порта
-f Файл прошивки
-a Адрес Modbus 1
-j Отправить на устройство команду перехода в режим загрузчика
-r Адрес holding-регистра для перехода в режим загрузчика 129
-D Включить режим отладки

Пример:

wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw