|
Bootloader STM32 + CAN, Давайте подумаем как прошить контроллер через CAN |
|
|
|
Apr 19 2013, 09:50
|
Группа: Участник
Сообщений: 11
Регистрация: 23-01-12
Пользователь №: 69 816

|
Доброго времени суток всем! Возникла необходимость прошивать (обновлять) прошивку удаленно для камней STM32. В проекте планирую использовать CAN для связи подчиненного устройства с мастером. Подчиненные устройства (контроллеры) могут быть далеко, и много. Возможно ли прошить камень через CAN?? Есть ли у кого каке соображения/идеи по этому поводу? Мне приходит пока такая мысль: использовать драйвер CAN для передачи прошивки на UART MK, предварительно скомутировав ключами вход/выход драйвера CAN на соответствующие RX/TX UART
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 26)
|
Apr 19 2013, 10:27
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 19-02-07
Пользователь №: 25 487

|
Для обновления прошивки нужно две вещи: передать данные, положить в нужное место. Если для обмена данными с устройствами планируется CAN(настоящий), что мешает через него и передать массив с прошивкой?
|
|
|
|
|
Apr 19 2013, 10:31
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
надо написать обычный загрузчик, который данные с прошивкой пришедшие откуда угодно запишет во флэшку, и запустить программу. Загрузчиков написано великое множество, через езернет, через усб, через уарт, посмотрите как они пишутся да и сделайте также на носителе КАН!
Общая схема - выбор режима работы (нормальная работа/Ожидание прошивки) В случае нормальной работы - запуск программы из места хранения (там откуда программа запускается по умолчанию лежит загрузчик, а он запускает программу из другого сегмента) в случае ожидания прошивки - сбор прошивки, проверка целостности, запись в место хранения программы и рестарт.
Кстати для справки кан это сеть с равноценными узлами, в общем смысле для нее не выделяют мастера и слейва.
|
|
|
|
|
Apr 19 2013, 19:15
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(wellcom @ Apr 19 2013, 12:50)  Доброго времени суток всем! Возникла необходимость прошивать (обновлять) прошивку удаленно для камней STM32. У меня есть проект загрузчика по CAN для STM32. Могу поделиться, но обсуждать не имею возможности. Система такая. Загрузчик всегда сидит в контроллере и запускается первым. В течении некоторого времени он ждет прихода сигнала по CAN от том, что кто-то хочет его перепрограммировать. Если сигнала нет он проверяет целостность основной программы по CRC или MD5(в варианте с толстым микроконтроллером) и передает ей управление. Если сигнал есть, то начинается прием и программирование пакетов во Flash. Потом отдельная команда на переход к основному приложению.
|
|
|
|
|
May 22 2013, 20:18
|
Группа: Участник
Сообщений: 5
Регистрация: 22-04-08
Пользователь №: 36 989

|
Цитата(AlexandrY @ Apr 19 2013, 23:15)  У меня есть проект загрузчика по CAN для STM32. Могу поделиться, но обсуждать не имею возможности. Очень надо! Заранее спасибо!
|
|
|
|
|
Jul 3 2013, 10:40
|
Группа: Новичок
Сообщений: 1
Регистрация: 20-01-09
Пользователь №: 43 672

|
Цитата(AlexandrY @ Apr 19 2013, 23:15)  У меня есть проект загрузчика по CAN для STM32. Могу поделиться, но обсуждать не имею возможности. Добрый день - был бы очень признателен - если бы вы поделились и со мной исходниками - хотя мне надо через USB для STM32F103 - попробую переделать
|
|
|
|
|
Aug 13 2013, 11:18
|
Группа: Новичок
Сообщений: 1
Регистрация: 13-08-13
Из: Екб
Пользователь №: 77 898

|
Уважаемый AlexandrY, не могли бы Вы и со мной поделиться загрузчиком? Заранее благодарен!
|
|
|
|
|
Oct 25 2013, 11:12
|
Группа: Новичок
Сообщений: 7
Регистрация: 20-12-07
Пользователь №: 33 494

|
Цитата(colossus21 @ Aug 13 2013, 14:18)  Уважаемый AlexandrY, не могли бы Вы и со мной поделиться загрузчиком? Заранее благодарен! Есть вопросы по своему bootloader'y AlexandrY, также прошу Вас поделиться со мной загрузчиком. Спасибо
Сообщение отредактировал bumborashik - Oct 25 2013, 11:14
|
|
|
|
|
Dec 3 2013, 12:17
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342

|
Цитата(AlexandrY @ Apr 19 2013, 21:15)  У меня есть проект загрузчика по CAN для STM32. Могу поделиться, но обсуждать не имею возможности. Доброго времени суток! Поделитесь пожалуйста и со мной загрузчиком, заранее приношу благодарности!!!
|
|
|
|
|
Jan 5 2014, 18:24
|
Группа: Новичок
Сообщений: 1
Регистрация: 25-01-07
Пользователь №: 24 771

|
Уважаемый AlexandrY, Здравствуйте. Пожалуйста поделитесь исходниками загрузчика по CAN. Спасибо.
|
|
|
|
|
Jan 5 2014, 19:52
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(deugene @ Jan 5 2014, 20:24)  Уважаемый AlexandrY, Здравствуйте. Пожалуйста поделитесь исходниками загрузчика по CAN. Спасибо. О, немного опоздал. Но вот к концу года бывает делаю какую-нибудь праздничную иллюминацию. Здесь прект (использовался KEIL) модуля светодиодной иллюминации на шине CAN. Отдельно загрузчик, отдельно приложение. По JTAG прошивается загрузчик, а уж приложение потом программируется по CAN-у. [attachment=82036:LEDLighting.zip] А вот здесь собственно проект под центральную плату на STM32F103ZE которая сама прошивается через RS232, а остальные узлы прошивает по CAN. Используется протокол Y-modem и Y-modem поверх CAN с криптозащитой шифром AES 256 бит и проверкой по MD5 или CRC по выбору. (Осторожно! Использовалась RTOS  ) [attachment=82037:Ymodem_t...N_loader.zip]
|
|
|
|
|
Aug 18 2014, 18:39
|
Группа: Участник
Сообщений: 11
Регистрация: 23-01-12
Пользователь №: 69 816

|
Цитата(AlexandrY @ Jan 5 2014, 22:52)  О, немного опоздал. Но вот к концу года бывает делаю какую-нибудь праздничную иллюминацию. Здесь прект (использовался KEIL) модуля светодиодной иллюминации на шине CAN. Отдельно загрузчик, отдельно приложение. По JTAG прошивается загрузчик, а уж приложение потом программируется по CAN-у. [attachment=82036:LEDLighting.zip] А вот здесь собственно проект под центральную плату на STM32F103ZE которая сама прошивается через RS232, а остальные узлы прошивает по CAN. Используется протокол Y-modem и Y-modem поверх CAN с криптозащитой шифром AES 256 бит и проверкой по MD5 или CRC по выбору. (Осторожно! Использовалась RTOS  ) [attachment=82037:Ymodem_t...N_loader.zip] Большое спасибо!  ...буду разбираться!
|
|
|
|
|
Sep 8 2015, 07:54
|

Группа: Участник
Сообщений: 9
Регистрация: 2-07-15
Из: Москва/Дубна
Пользователь №: 87 376

|
Цитата(AlexandrY @ Jan 5 2014, 22:52)  А вот здесь собственно проект под центральную плату на STM32F103ZE которая сама прошивается через RS232, а остальные узлы прошивает по CAN. Используется протокол Y-modem и Y-modem поверх CAN с криптозащитой шифром AES 256 бит и проверкой по MD5 или CRC по выбору. (Осторожно! Использовалась RTOS  ) [attachment=82037:Ymodem_t...N_loader.zip] Александр, вы не могли бы перевыложить второй файл ([attachment=82037:Ymodem_t...N_loader.zip]). Не могу его скачать...
--------------------
|
|
|
|
|
Jan 6 2016, 22:02
|

Группа: Участник
Сообщений: 9
Регистрация: 2-07-15
Из: Москва/Дубна
Пользователь №: 87 376

|
x893Не могли бы поделиться протоколом для прошивки через CAN для OpenBLT? Снял бы сам, но под рукой нет платки PCAN-USB что они рекомендуют. Очень нужно для нашего проекта УД https://sites.google.com/site/cansmarthouse/
--------------------
|
|
|
|
|
May 17 2016, 10:36
|
Группа: Новичок
Сообщений: 1
Регистрация: 17-05-16
Пользователь №: 91 763

|
Цитата(AlexandrY @ Apr 19 2013, 22:15)  У меня есть проект загрузчика по CAN для STM32. Могу поделиться, но обсуждать не имею возможности.
Система такая. Загрузчик всегда сидит в контроллере и запускается первым. В течении некоторого времени он ждет прихода сигнала по CAN от том, что кто-то хочет его перепрограммировать. Если сигнала нет он проверяет целостность основной программы по CRC или MD5(в варианте с толстым микроконтроллером) и передает ей управление. Если сигнал есть, то начинается прием и программирование пакетов во Flash. Потом отдельная команда на переход к основному приложению. Если это еще возможно, не могли бы вы поделиться проектом,пожалуйста?
|
|
|
|
|
May 8 2018, 09:05
|

Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-04-05
Из: Russia, Moscow
Пользователь №: 4 581

|
Цитата(vlad_new @ May 8 2018, 10:56)  Вот вычитал, что в STM32F412xxx штатный загрузчик может грузить по CAN2 , PB5, PB13. Для всех типов корпусов. ( п. 3.16 Boot modes ). Да, но это когда к ней подключен только один контроллер. Иными словами, если у меня 100 девайсов на шине CAN и потребуется одному из них сказать "а перейди-ка в режим обновления прошивки, сейчас буду тебе данные новой прошивки слать" - не выйдет. Видимо прийдется свое заново корячить.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|