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

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

Мне приходит пока такая мысль: использовать драйвер CAN для передачи прошивки на UART MK, предварительно скомутировав ключами вход/выход драйвера CAN на соответствующие RX/TX UART

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


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

Для обновления прошивки нужно две вещи: передать данные, положить в нужное место.

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

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


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

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

 

Общая схема - выбор режима работы (нормальная работа/Ожидание прошивки)

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

в случае ожидания прошивки - сбор прошивки, проверка целостности, запись в место хранения программы и рестарт.

 

 

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

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


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

в общем смысле для нее не выделяют мастера и слейва.

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

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


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

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

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


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

Доброго времени суток всем! Возникла необходимость прошивать (обновлять) прошивку удаленно для камней STM32.

 

У меня есть проект загрузчика по CAN для STM32.

Могу поделиться, но обсуждать не имею возможности.

 

Система такая.

Загрузчик всегда сидит в контроллере и запускается первым.

В течении некоторого времени он ждет прихода сигнала по CAN от том, что кто-то хочет его перепрограммировать.

Если сигнала нет он проверяет целостность основной программы по CRC или MD5(в варианте с толстым микроконтроллером) и передает ей управление.

Если сигнал есть, то начинается прием и программирование пакетов во Flash.

Потом отдельная команда на переход к основному приложению.

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


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

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

Изменено пользователем x893

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


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

У меня есть проект загрузчика по CAN для STM32.

Могу поделиться, но обсуждать не имею возможности.

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

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


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

У меня есть проект загрузчика по CAN для STM32.

Могу поделиться, но обсуждать не имею возможности.

 

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

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


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

У меня есть проект загрузчика по CAN для STM32.

Могу поделиться, но обсуждать не имею возможности.

 

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

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


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

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

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


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

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

Есть вопросы по своему bootloader'y

AlexandrY, также прошу Вас поделиться со мной загрузчиком. Спасибо

Изменено пользователем bumborashik

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


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

У меня есть проект загрузчика по CAN для STM32.

Могу поделиться, но обсуждать не имею возможности.

Доброго времени суток!

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

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


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

Уважаемый AlexandrY, Здравствуйте.

Пожалуйста поделитесь исходниками загрузчика по CAN.

Спасибо.

 

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


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

Уважаемый AlexandrY, Здравствуйте.

Пожалуйста поделитесь исходниками загрузчика по CAN.

Спасибо.

 

О, немного опоздал.

Но вот к концу года бывает делаю какую-нибудь праздничную иллюминацию.

Здесь прект (использовался KEIL) модуля светодиодной иллюминации на шине CAN.

Отдельно загрузчик, отдельно приложение.

По JTAG прошивается загрузчик, а уж приложение потом программируется по CAN-у.

 

 

А вот здесь собственно проект под центральную плату на STM32F103ZE которая сама прошивается через RS232, а остальные узлы прошивает по CAN.

Используется протокол Y-modem и Y-modem поверх CAN с криптозащитой шифром AES 256 бит и проверкой по MD5 или CRC по выбору.

(Осторожно! Использовалась RTOS :biggrin: ) :santa2:

 

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...