|
Адресация и фильтрация CAN сообщений на STM32F4 |
|
|
|
Oct 2 2016, 08:45
|
Группа: Участник
Сообщений: 7
Регистрация: 27-09-16
Пользователь №: 93 508

|
Добрый день!
У меня CAN-шиной соединены 4 устройства STM32F4. Каждое из них подсоединено к компьютеру по USART для возможности вывода на экран входящих и исходящих сообщений. При отправке данных от одного устройства к конкретному другому, сообщение всё равно отображают все 4 устройства. Объясните, пожалуйста, каким образом правильно настроить адресацию и фильтрацию сообщений на STM32F4.
|
|
|
|
|
 |
Ответов
|
Jul 31 2018, 11:28
|

Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474

|
У Вас есть кристалл с уникальным ID, прошитым на производстве. Напишите что-то совместимое с CAN шиной, что будет использовать какой-нибудь специфический канал для настройки именно ведомых. Допустим, при запуске все кристаллы одновременно ломятся в шину с сообщением и посылают свой номер в какое-то поле. Происходит коллизия. Коллизия решается, выигравший забирает первый диапазон адресов. Повторить до окончания коллизий. Допустим, адреса 0x00 ~ 0xFF, каналы по 16 адресов (0x10) Посылка -> Коллизия -> Разрешение -> Выигравший забирает адреса 0x00 ~ 0x0F и замолкает. Посылка -> Коллизия -> Разрешение -> Второй выигравший забирает 0x10 ~ 0x1F и тоже замолкает. И так далее.
UPD: Я тут подумал. Эту же процедуру можно проводить только в случае возникновения коллизии при ответе контроллера. То есть, сеть может организовываться полностью сама. Разве что мастер не будет знать кто где. Настройка можно хранить в выделеной странице (двух) Flash-памяти, либо на врешней EEPROM микросхеме, а перенастраиваться только при обнаружении ошибки.
Я сейчас мыслю, абстрагировавшись от работы шины данных. Есть знатоки работы CAN протокола? Как можно реализовать подобное, используя стандартные методы?
Хотя, в моём случае, при построении сети, работа ведётся исключительно между мастером и ведомыми. И он же выдаёт им сетевые адреса. Да, слизано с больших сетей с DHCP сервером. При этом работает по двухпроводной схеме (нет, не RS-485).
Сообщение отредактировал AlanDrakes - Jul 31 2018, 13:58
|
|
|
|
|
Jul 31 2018, 17:00
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(AlanDrakes @ Jul 31 2018, 16:28)  Разве что мастер не будет знать кто где. В самую точку....
Сообщение отредактировал nanorobot - Jul 31 2018, 17:01
|
|
|
|
Сообщений в этой теме
DmitryG Адресация и фильтрация CAN сообщений на STM32F4 Oct 2 2016, 08:45 amiller Если не ошибаюсь, то в стандарте Can нет такого по... Oct 2 2016, 09:38 DmitryG Цитата(amiller @ Oct 2 2016, 12:38) .
... Oct 2 2016, 10:05  amiller Цитата(DmitryG @ Oct 2 2016, 13:05) Главн... Oct 2 2016, 11:50  Непомнящий Евгений Цитата(DmitryG @ Oct 2 2016, 13:05) Хорош... Oct 3 2016, 08:52 редактор Не скажу конкретно про ваш STM, но в CAN-модуле с ... Oct 3 2016, 06:16 SasaVitebsk Цитата(редактор @ Oct 3 2016, 09:16) Поэт... Oct 3 2016, 09:12  nanorobot Цитата(SasaVitebsk @ Oct 3 2016, 14:12) Т... Jul 30 2018, 12:55   jcxz Цитата(nanorobot @ Jul 30 2018, 15:55) Ра... Jul 30 2018, 13:26    nanorobot Цитата(jcxz @ Jul 30 2018, 18:26) Ну если... Jul 30 2018, 13:34   DmitryM Цитата(nanorobot @ Jul 30 2018, 15:55) Ра... Jul 31 2018, 05:21    nanorobot Цитата(DmitryM @ Jul 31 2018, 10:21) Лини... Jul 31 2018, 08:42 Obam А мастер почему простаивает, пусть он распределит.... Jul 30 2018, 16:10 nanorobot Цитата(Obam @ Jul 30 2018, 21:10) А масте... Jul 30 2018, 16:22  Obam Цитата(nanorobot @ Jul 30 2018, 19:22) Вс... Jul 30 2018, 16:29  jcxz Цитата(nanorobot @ Jul 30 2018, 19:22) Вс... Jul 30 2018, 16:32  dimka76 Цитата(nanorobot @ Jul 30 2018, 19:22) Вс... Jul 31 2018, 19:47  jcxz Цитата(nanorobot @ Jul 31 2018, 20:00) В ... Aug 1 2018, 08:44 yes если невнимательно читал - извиняйте
есть стандар... Aug 6 2018, 13:36
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|