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

Доброго времени суток всем! Возникла необходимость прошивать (обновлять) прошивку удаленно для камней STM32. В проекте планирую использовать CAN для связи подчиненного устройства с мастером. Подчиненные устройства (контроллеры) могут быть далеко, и много. Возможно ли прошить камень через CAN?? Есть ли у кого каке соображения/идеи по этому поводу?
Мне приходит пока такая мысль: использовать драйвер CAN для передачи прошивки на UART MK, предварительно скомутировав ключами вход/выход драйвера CAN на соответствующие RX/TX UART

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Для обновления прошивки нужно две вещи: передать данные, положить в нужное место.
Если для обмена данными с устройствами планируется CAN(настоящий), что мешает через него и передать массив с прошивкой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
надо написать обычный загрузчик, который данные с прошивкой пришедшие откуда угодно запишет во флэшку, и запустить программу. Загрузчиков написано великое множество, через езернет, через усб, через уарт, посмотрите как они пишутся да и сделайте также на носителе КАН!

Общая схема - выбор режима работы (нормальная работа/Ожидание прошивки)
В случае нормальной работы - запуск программы из места хранения (там откуда программа запускается по умолчанию лежит загрузчик, а он запускает программу из другого сегмента)
в случае ожидания прошивки - сбор прошивки, проверка целостности, запись в место хранения программы и рестарт.


Кстати для справки кан это сеть с равноценными узлами, в общем смысле для нее не выделяют мастера и слейва.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата
в общем смысле для нее не выделяют мастера и слейва.

В CANopen они есть. Также как там есть описание механизма обновления прошивки через CAN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
кан опен не кан, там есть менеджер сети а не мастер, что не совсем одно и тоже, ну это уже если копаться... А вот про обновление прошивки что-то не помню, надо будет перечитать....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(wellcom @ Apr 19 2013, 12:50) <{POST_SNAPBACK}>
Доброго времени суток всем! Возникла необходимость прошивать (обновлять) прошивку удаленно для камней STM32.


У меня есть проект загрузчика по CAN для STM32.
Могу поделиться, но обсуждать не имею возможности.

Система такая.
Загрузчик всегда сидит в контроллере и запускается первым.
В течении некоторого времени он ждет прихода сигнала по CAN от том, что кто-то хочет его перепрограммировать.
Если сигнала нет он проверяет целостность основной программы по CRC или MD5(в варианте с толстым микроконтроллером) и передает ей управление.
Если сигнал есть, то начинается прием и программирование пакетов во Flash.
Потом отдельная команда на переход к основному приложению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
я делал что бы загрузчик всегда проверял программу и сообщал мастеру, что программа не валидна. мастер автоматом начинает грузить текущую версию программы.
Изменено пользователем x893

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(AlexandrY @ Apr 19 2013, 22:15) <{POST_SNAPBACK}>
У меня есть проект загрузчика по CAN для STM32.
Могу поделиться, но обсуждать не имею возможности.

Поделитесь. cheers.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(AlexandrY @ Apr 19 2013, 23:15) <{POST_SNAPBACK}>
У меня есть проект загрузчика по CAN для STM32.
Могу поделиться, но обсуждать не имею возможности.


Очень надо! Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(AlexandrY @ Apr 19 2013, 23:15) <{POST_SNAPBACK}>
У меня есть проект загрузчика по CAN для STM32.
Могу поделиться, но обсуждать не имею возможности.


Добрый день - был бы очень признателен - если бы вы поделились и со мной исходниками - хотя мне надо через USB для STM32F103 - попробую переделать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Уважаемый AlexandrY, не могли бы Вы и со мной поделиться загрузчиком? Заранее благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(colossus21 @ Aug 13 2013, 14:18) <{POST_SNAPBACK}>
Уважаемый AlexandrY, не могли бы Вы и со мной поделиться загрузчиком? Заранее благодарен!

Есть вопросы по своему bootloader'y
AlexandrY, также прошу Вас поделиться со мной загрузчиком. Спасибо
Изменено пользователем bumborashik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(AlexandrY @ Apr 19 2013, 21:15) <{POST_SNAPBACK}>
У меня есть проект загрузчика по CAN для STM32.
Могу поделиться, но обсуждать не имею возможности.

Доброго времени суток!
Поделитесь пожалуйста и со мной загрузчиком, заранее приношу благодарности!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Уважаемый AlexandrY, Здравствуйте.
Пожалуйста поделитесь исходниками загрузчика по CAN.
Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(deugene @ Jan 5 2014, 20:24) <{POST_SNAPBACK}>
Уважаемый AlexandrY, Здравствуйте.
Пожалуйста поделитесь исходниками загрузчика по CAN.
Спасибо.


О, немного опоздал.
Но вот к концу года бывает делаю какую-нибудь праздничную иллюминацию.
Здесь прект (использовался KEIL) модуля светодиодной иллюминации на шине CAN.
Отдельно загрузчик, отдельно приложение.
По JTAG прошивается загрузчик, а уж приложение потом программируется по CAN-у.
[attachment=82036:LEDLighting.zip]

А вот здесь собственно проект под центральную плату на STM32F103ZE которая сама прошивается через RS232, а остальные узлы прошивает по CAN.
Используется протокол Y-modem и Y-modem поверх CAN с криптозащитой шифром AES 256 бит и проверкой по MD5 или CRC по выбору.
(Осторожно! Использовалась RTOS biggrin.gif ) santa2.gif
[attachment=82037:Ymodem_t...N_loader.zip]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация