Загрузка прошивок на устройства Wiren Board
Загрузчик прошивок
В новых версиях наших устройств реализован механизм загрузчика прошивок (bootloader). Он позволяет обновлять микропрограммы устройств/модулей Wiren Board по RS-485/Modbus RTU. На устройства добавлен режим загрузчика, в котором возможно обновлять прошивку.
В режиме загрузчика основной функционал устройства отключается. Коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в EEPROM: 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. Это менее предпочтительный способ.