Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26

STM32F105 транслировать из CAN1 в CAN2

11.02.2020, 14:30. Показов 5640. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Кан1 и Кан2 по отдельности я завел, передают, прерывание на прием работает. Фильтры не установлены. Хочу сделать Кан фильтр для разных авто, в основном со скоростью 500к. Задача транслировать все пакеты из одного кана в другой, но с определенным id не пускать, а отсылать свой с нужными данными. Реально ли это организовать на аппаратном уровне или придется каждый пакет проверять на условие и отпускать его с миром ? Хватит ли скорости все это в цикле делать без потерь пакетов ? Данных порой очень много. Мк больше ничего делать не будет, это его единственная задача.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2020, 14:30
Ответы с готовыми решениями:

CAN2 STM32F105
Пытаюсь настроить Can 2. Передает почему то только в LoopBack, а прерывания по приему не срабатывают. Can1 завелся без проблем. я просто...

Транслировать или не транслировать
Открыла один сайтец с ежедневным наполнением контентом. Решила зарегить в rss каталогах, но пришла одна такая мысль...стоит или не стоит с...

Запуск CAN2 на STM32F429
Подскажите, будьте добры, можно ли использовать ТОЛЬКО CAN2 для общения (туда-обратно) и, если есть, поделитесь, пожалуйста, рабочим...

19
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
17.02.2020, 00:24
Цитата Сообщение от RomaBars Посмотреть сообщение
Реально ли это организовать на аппаратном уровне или придется каждый пакет проверять на условие и отпускать его с миром ?
второе, для общего случая. В общем же - в настройках есть маски, можно попробовать воспользоваться ими.
Цитата Сообщение от RomaBars Посмотреть сообщение
Хватит ли скорости все это в цикле делать без потерь пакетов ?
хватит. На максимальной скорости МК (72МГц) будет работать.
Цитата Сообщение от RomaBars Посмотреть сообщение
в основном со скоростью 500к
а где вы встретили 500к? Вы о CAN2.0 говорите?
Цитата Сообщение от RomaBars Посмотреть сообщение
Данных порой очень много.
обычно шина автомобиля проектируется с загрузкой ~20% от максимального бодрейта. Но в реалиях по шине бегает очень много повторов из-за помех. Так что, по всей видимости вы видите их, а не реальные данные. Так что имейте ввиду - задача, которую вы себе предполагаете, может банально "не получиться", потому что надо знать настройки устройств шины КАН, для арбитража. Если вы их не знаете - сеть начнет глючить.
0
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26
17.02.2020, 08:50  [ТС]
Цитата Сообщение от Voland_ Посмотреть сообщение
обычно шина автомобиля проектируется с загрузкой ~20% от максимального бодрейта. Но в реалиях по шине бегает очень много повторов из-за помех. Так что, по всей видимости вы видите их, а не реальные данные. Так что имейте ввиду - задача, которую вы себе предполагаете, может банально "не получиться", потому что надо знать настройки устройств шины КАН, для арбитража. Если вы их не знаете - сеть начнет глючить.
Да, видимо речь про CAN2.0, по крайней мере в тойоте именно такая скорость. Про фильтра это понятно, но если я включу фильтр пакетов, то они тупо будут отсеиваться, а мне то их пересылать нужно. Я насколько понял, тут только вариант пропускать весь траффик, а условие типа ID пакета или его содержимого, проверять в коде. По другому я никак не вижу.

А арбитраж он не в спецификации самого кана ? Т.е. я думал я на это не могу влиять, да и не зачем.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
17.02.2020, 10:43
Цитата Сообщение от RomaBars Посмотреть сообщение
Да, видимо речь про CAN2.0
CAN2.0 это 29ти-битный адрес, и просто скорость немного выше. Обычно использовался в грузовиках. Как сейчас - просто не знаю. Спросил из любопытства, думал, вы в курсе. (сорри, еще раз вернулся к теме - 29бит, это CAN2.0B)

Цитата Сообщение от RomaBars Посмотреть сообщение
включу фильтр пакетов, то они тупо будут отсеиваться, а мне то их пересылать нужно.
тут нужен опыт работы с CAN-контроллером в STM32. У него фильтры в принципе гибкие. Но имеют свои ньюансы. Пересылку настраивать придется софтверно.
Цитата Сообщение от RomaBars Посмотреть сообщение
А арбитраж он не в спецификации самого кана ? Т.е. я думал я на это не могу влиять, да и не зачем.
Он то в спецификации. Но в настройках CAN (на STM32) есть фазы арбитража. И соответственно если вы их выставите другими, не такими как на шине - то арбитраж будет работать не корректно - или терять приоритет, или перехватывать чужой (как мне думается).

PS: лет 5 назад я писал подобную задачу. Но она получилась на 99,9% - то есть на столе работала, а в машине нет.

PPS: на сегодня есть более интересная идея, как можно обойти подобное ограничение ). Но... это ноу-хау, и к вашему вопросу дела не имеет
0
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26
18.02.2020, 05:24  [ТС]
Цитата Сообщение от Voland_ Посмотреть сообщение
PS: лет 5 назад я писал подобную задачу. Но она получилась на 99,9% - то есть на столе работала, а в машине нет.
Попробую на авто, отпишусь. Подозреваю что не будет работать.
0
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26
19.02.2020, 13:38  [ТС]
Цитата Сообщение от Voland_ Посмотреть сообщение
PS: лет 5 назад я писал подобную задачу. Но она получилась на 99,9% - то есть на столе работала, а в машине нет.
На удивление изделие заработало как и планировалось. Фильтры все поодключал, в коде поставил условие на ID пакета, сделал проверку на предмет того,будет ли успевать принимать и отправлять без затыков, все успевал. Код получился простой, даже не ожидал. Однако есть потери пакетов. Из 1000, теряется примерно 5, т.е. 0.5% есть. Хотя что интересно, ошибок ни на прием, ни на передачу нет. Где они теряются я так и не понял.
1
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
19.02.2020, 18:05
Цитата Сообщение от RomaBars Посмотреть сообщение
Из 1000, теряется примерно 5, т.е. 0.5% есть.
это могут быть коллизии на шине, если вы работаете на оной.
Цитата Сообщение от RomaBars Посмотреть сообщение
заработало

Не по теме:

мои поздравления ). Мой код на Volvo не поехал. На столе работало все согласно описанию. а на машине не завелось.

0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
24.03.2020, 16:40
RomaBars, RomaBars,
а нет образца как реализовал ?
0
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26
30.03.2020, 04:30  [ТС]
http://we.easyelectronics.ru/S... celey.html

Я за основу взял этот проект. Сейчас детали не помню, но общий смысл простой, инициализируем и настраиваем кан1 и кан2, практически аналогично, только для кан2 есть еще доп строчка, там у чувака написано. Приняли пакет из кан1, отправили в кан2, можно для начала не замарачиваться прерываниями и обработкой ошибок, так все заработает.
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
30.03.2020, 07:59
этот уже смотрел, благодарю, вот как раз задержка на отправку интересует, а то из за большого трафика в сети и прерываний по приему пакеты отправляются без контрольно
0
6 / 6 / 1
Регистрация: 24.06.2016
Сообщений: 26
30.03.2020, 09:08  [ТС]
я сделал пару устройств, которые работают в авто на 500к скорости, без прерываний и контроля ошибок, мало того что машине все нравиться, так еще и в регистрах ни одной ошибки ни по приему, ни по отправке, так что сильно дальше я не копал, хотя потеря пакетов есть, я их считал до фильтра и после, но процент небольшой
1
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
30.03.2020, 09:38
а на период приема - передачи пакетов из "фильтра" внимание обращал?
у меня прием 20 мс, а передача в два раза чаще, в машине еще не проверял, но на столе такие цифры, вот и думаю понравится машине это или нет, точнее авто мозг не начнет загибатся из за более частого приема пакетов
наверняка в нем прием организован так же

Добавлено через 1 минуту
а как у тебя организован прием - передача? без прерываний?
0
51 / 37 / 14
Регистрация: 05.08.2016
Сообщений: 187
01.04.2020, 18:08
RomaBars, добрый день! В STM32F1xx на прием только 3 mailbox'a, по умолчанию, если не успели вычитать, то они начинают затираться. Я делал кольцевой буфер и в прерывании копировал сообщения в него, чтобы максимально разгрузить прерывание, а лучше наверное дма + если не успевает, то прерывание по переполнению всего ящика. А разбирайте буфер уже в основном коде. Это поможет, когда прилетает сразу несколько сообщений. Ну все зависит от шины и вашей обработки. Можете просто в прерывании поставить только счетчик и сравнить теряете ли вы что-нибудь из-за долгой обработки.

Добавлено через 2 минуты
В моем случае кольцевая очередь не стояла на месте, а значит я не всегда успевал обработать все пакеты. скорость была всего 250.
1
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
03.04.2020, 09:34
благодарю, наталкнул на решение с флагами, уже красивее работать начало
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
04.04.2020, 08:29
в общем отчасти железка заработала, но как то странно, при включенном зажигании но не заведенном моторе все работает как задумано, но после запуска мотора в сети авто появляется ошибка связи в ecu, мысли кончаются, а результата нет,
в чем может быть проблема? и как ее выявить
я полагаю раз при заглушенном моторе в сети проблем нет, значит прием - передача пакетов настроена верно
смушает один момент в последнии библиотеке hal не могу наити информации о "подтверждение приема посылки" и судя по всему поумолчанию эта функция отключенна, но по идее если бы из за этого возникала ошибка то, в сети должны были возникать ошибки сразу же при включении всех устроист то есть при включении зажигания, а не после запуска мотора
подтолкните в нужную сторону, что и куда еще можно глянуть
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
04.04.2020, 16:26
нашел причину, испраавил
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
10.04.2020, 08:44
Цитата Сообщение от invite1 Посмотреть сообщение
нашел причину, испраавил
так в чем же причина была?
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
10.04.2020, 10:31
терм. резистор
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
10.04.2020, 14:11
ну то есть к CAN'у отношения не имеет?
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
10.04.2020, 14:50
тоесть к софту, отношения не имеет, а к железу и кан сетке непосредственное отношение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2020, 14:50
Помогаю со студенческими работами здесь

Stm32f105 CAN
Добрый вечер.Появилась идея запрогать CAN на stm32f105 Вот у есть 105 и 407 камни,Соединённые между собой по юарту.На первый камень я по...

STM32F105 и CAN
Делаю адаптер USB-CAN. в режиме CAN_MODE_NORMAL не отправляются и не принимаются сообщения. но в режиме CAN_MODE_LOOPBACK все работает как...

stm32f105 помогите с USB
Приветствую Гуру форума. Месяц пытаюсь победить usb на 105 камне, перечитал доки, примеры, форумы и т.д., каша в голове стала полная. ...

STM32F105: прошивка по USB
Доброго времени суток! Кто сможет подсказать как прошивать сей камень (F105) через USB с бутлоадером? Или где почитать? :)

STM32F105 что-то нездоровое с CAN...
Всем привет! Не выходит каменный цветок. После TJA1050 на CAN_RX сигнал 2 вольта, с заваленным передним фронтом. На CAN_TX 3.2V,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru