Перейти к содержанию

Навигация

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

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


<!--T:3-->
<!--T:3-->
Строка 18: Строка 17:
<!--T:5-->
<!--T:5-->
[[File:Bootloader.gif||right||Индикация режима загрузчика]]
[[File:Bootloader.gif||right||Индикация режима загрузчика]]
Устройство переходит в режим загрузчика, если:
 
* на устройстве имеется корректная прошивка первые 2 секунды после включения питания устройство работает в режиме загрузчика;
* Если на устройстве имеется корректная прошивка, то первые 2 секунды после включения питания устройство работает в режиме загрузчика;
* на устройстве нет корректной прошивки (например, был сбой при обновлении прошивки) — в этом случае режим загрузчика активен постоянно;
* Если на устройстве нет корректной прошивки (например, был сбой при обновлении прошивки), то режим загрузчика активен постоянно;
* при работе основной программы в holding-регистр 129 (0x81) была записана 1 — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд.
* При записи 1 в holding-регистр 129 (0x81) при работе основной программы — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд.


<!--T:6-->
<!--T:6-->
Строка 27: Строка 26:


== Автоматическое обновление прошивки с контроллера Wiren Board ==
== Автоматическое обновление прошивки с контроллера Wiren Board ==
Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты wb-mcu-fw-updater. Утилита проверяет наличиие новой версии прошивки для всех подключенных устройств и, при необходимости, обновляет их.  
Прошивку устройств, подключенных к контроллеру Wiren Board можно обновить с помощью утилиты [[wb-mcu-fw-updater]]. Утилита проверяет наличие новой версии прошивки для всех подключенных устройств и, при необходимости, обновляет их.  
 
Подробная информация об утилите доступна [[Wb-mcu-fw-updater | здесь.]]


Для установки выполните в консоли:
Для установки выполните в консоли:
Строка 36: Строка 33:
</pre>
</pre>


Чтобы обновить прошивки всех устройств, описанных в разделе Serial Devices Configuration (файл /etc/wb-mqtt-serial.conf), выполните:
Для обновления прошивки всех устройств, описанных в разделе Serial Devices Configuration (файл /etc/wb-mqtt-serial.conf), выполните:
<pre>
<pre>
wb-mcu-fw-updater update-all
wb-mcu-fw-updater update-all
</pre>
</pre>


Для обновления прошивки конкретного устройства, нужно указать порт и его адрес Modbus:
Для обновления прошивки конкретного устройства, укажите порт и его адрес Modbus:
<pre>
<pre>
wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70
wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a70
Строка 51: Строка 48:
</pre>
</pre>


<gallery mode="packed" heights="300px">
<gallery mode="packed" heights="200px">
File:Wb-fw-mcu-updater example 1.png|Пример работы wb-fw-mcu-updater
File:Wb-fw-mcu-updater example 1.png|Пример работы wb-fw-mcu-updater
</gallery>
</gallery>
Строка 57: Строка 54:
== Выбор прошивки ==
== Выбор прошивки ==


Прошивки публикуются на сайте [http://fw-releases.wirenboard.com/?prefix=fw/ '''fw-releases.wirenboard.com'''] и представляют собой файлы с расширением '''.wbfw'''.
Прошивки публикуются на сайте [http://fw-releases.wirenboard.com/?prefix=fw/ '''fw-releases.wirenboard.com'''] в виде файлов с расширением '''.wbfw'''.


Прошивки сгруппированы по версиям и сигнатурам устройств.
Прошивки сгруппированы по версиям и сигнатурам (типам) устройств.


Каждое Modbus устройство Wirenboard имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки.
Каждое Modbus устройство Wirenboard имеет сигнатуру — наименование аппаратного типа устройства. Перезапись прошивки возможна только при совпадении сигнатур устройства и прошивки.


Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290.
Сигнатура устройства хранится в формате строки из 12 ASCII символов, по одному символу в регистре, и доступна по адресу 290.
 
Получить можно командой:
Получить сигнатуру устройства в виде текстовой строки можно командой:


<code>
<code>
Строка 76: Строка 72:


== Modbus == <!--T:11-->
== Modbus == <!--T:11-->
При записи 1 в holding-регистр 129 (0x81) устройство перезагружается и остается в режиме загрузчика 120 секунд.


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


<!--T:13-->
<!--T:13-->
Modbus-адрес устройства для прошивки в режиме загрузчика следует выбирать следующим образом:
Прошивать устройство лучше по стандартному адресу (на который устройство отвечает из основной программы).
 
<!--T:14-->
# Основной адрес для прошивки — адрес, заданный в памяти устройства: то есть это стандартный адрес, на который устройство отвечает из основной программы.
# Если устройство находится в бутлоадере, прошивать можно по широковещательному адресу 0. Это менее предпочтительный способ.
# Перевести устройство в бутлоадер по широковещательному адресу 0 - '''нельзя'''!
 
=== Прошивка устройств по широковещательному Modbus-адресу 0 === <!--T:34-->
 
<!--T:35-->
Bootloader позволяет загружать прошивку на устройства по Modbus-адресу 0. Для этого устройство должно быть единственным устройством на шине и находиться в режиме загрузчика.


=== Прошивка нескольких устройств на шине === <!--T:36-->
Так же можно прошивать по широковещательному адресу 0, если у вас одно устройство на шине в режиме загрузчика.


<!--T:37-->
Поэтому для прошивки нескольких устройств на шине можно:
Возможна прошивка нескольких устройств, подключенных к шине. Устройства должны быть переведены в режим загрузчика и прошиваться по отдельности с указанием нешироковещательного Modbus-адреса. Прошивка устройств с одинаковым адресом возможна, если в режиме загрузчика находится только одно из них. Устройства прошиваются по очереди.
#переводить в режим загрузчика (перезагрузкой по питанию или записью в регистр) и прошивать по отдельности с указанием нешироковещательного Modbus-адреса.
#переводить '''по очереди''' в режим загрузчика (перезагрузкой по питанию) и прошивать по адресу 0.


<!--T:38-->
'''Внимание!''' Одновременная прошивка устройств невозможна; имеющаяся прошивка на устройствах будет испорчена.
'''Внимание!''' Прошивка устройств, находящимся в режиме загрузчика и имеющим одинаковый modbus-адрес, или же прошивка нескольких устройств, находящихся в режиме загрузчика по адресу 0 не будет выполнена; имеющаяся прошивка на устройствах будет испорчена.
* Перевести устройство в бутлоадер по широковещательному адресу 0 - '''нельзя'''!


== Утилита для прошивки wb-mcu-fw-flasher == <!--T:15-->
== Утилита для прошивки wb-mcu-fw-flasher == <!--T:15-->