1

Тема: Прошу помощи с проектом

Добрый день!

К сожалению вообще не могу разобраться как правильно построить программу обработки, посмотрел много примеров, пытался выбрать что-то похожее и совместить, но не получается.
Суть проекта в передаче другого VIN на CAN1.
На CAN0 приходит VIN в трех пакетах с адресом 0x65f, надо эти данные заменить на другой и отправить в CAN1.
Все остальные пакеты в обе стороны оставить без изменения.
Все пакеты 8 байтовые, в первом 3 знака, в остальных по 7.


Прошу помощи натолкнуть на толковую мысль, либо просто помочь написать схему.

Заранее спасибо.

P.S. Несмотря на то, что сам программирую, но в данном проекте тяжело разобраться. Логика совсем другая

2

Re: Прошу помощи с проектом

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

3

Re: Прошу помощи с проектом

Пример решения во вложении.
Нужно установить правильную скорость CAN и задать нужные значения (в правильном порядке) в регистрах "замена-значения" каждого из трех отборов.

Вложений в сообщении

Иконка вложения c72duo_static_brg_vin.cfd 4.57 кб, скачивался 231 раз, последний раз 2020-03-20 

4

Re: Прошу помощи с проектом

Денис, CANNY пишет:

Пример решения во вложении.
Нужно установить правильную скорость CAN и задать нужные значения (в правильном порядке) в регистрах "замена-значения" каждого из трех отборов.


Спасибо огромное. Кажется разобрался в механике работы. Я думал строить в виде диаграммы это, а оказывается есть вариант проще.
Заодно я так понимаю тут используется CAN L, чтобы дублировать тоже самое на CAN H нужно скопировать механику, поправить в +3 номера отборов и изменить в скопированном CAN IDL -> CAN IDH?

5

Re: Прошу помощи с проектом

Нет, CAN IDL - это младшая часть идентификатора, ничего дублировать не нужно.
Есть стандартные, 11 битные, ID и расширенные, 29 битные.
В данном случае идентификатор сообщения - стандартный, использование старшей части (регистр CAN IDH) не требуется.

6

Re: Прошу помощи с проектом

Добрый день!

В машине не захотел работать. При запуске светодиод никак не реагирует, магнитола не просыпается, видимо не доходят пакеты до нее. Добавил в схему 1-Красный светодиод, залил в плату и при включении светодиод загорелся, т.е. схема заливается. Но вот отбор и трансляция остальных данных видимо не работают.
На плате в режиме монитора подключился, получил 500 кбит и пакеты с VIN имеют другой индекс, в программе поправил.

7

Re: Прошу помощи с проектом

из пожеланий наверное для отладки хотелось бы чтобы светодиод зеленый моргал при получении любого пакета на кан0, а красный при отправке на кан1

8

Re: Прошу помощи с проектом

Но вот отбор и трансляция остальных данных видимо не работают.

Запишите контроллер диаграммой "прозрачного шлюза" (см изображение)
Если работать не будет - проверьте правильность подключения контроллера и наличие терминирующего резистора между CAN-H CAN-L со стороны магнитолы. Если отсутствует - установите.

из пожеланий наверное для отладки хотелось бы чтобы светодиод зеленый моргал при получении любого пакета на кан0, а красный при отправке на кан1

Так как шлюз у вас асинхронный (асинхронен диаграмме), то именно такой алгоритм реализовать не получится. Но некоторое приближение, без учета ваших исправлений, рискну предложить (см вложение). Попробуйте реализовать дальнейшие пожелания самостоятельно.

Несмотря на то, что сам программирую...

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

https://wiki.canny.ru/

И особенно:

https://wiki.canny.ru/index.php?title=C … %D0%B0_CAN

И большей самостоятельности в доработке вашей диаграммы.

Вложений в сообщении

Иконка вложения c72duo_static_brg_vin-1_2.cfd 5.11 кб, скачивался 240 раз, последний раз 2020-03-22 

transp.png, 3.92 кб, 456 x 73
transp.png 3.92 кб, скачивался 217 раз, последний раз 2020-03-22 

9

Re: Прошу помощи с проектом

Доброго вечера!

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

10

Re: Прошу помощи с проектом

Доброго утра!

Правильно я понимаю, чтобы сделать аналогичную замену в обратную сторону с CAN 1 на CAN 0, требуется скопировать все начиная с линий Отбор и до конца и просто поместить ниже.
А также отправить 1 вместо 0 в новые скопированные блоки Шлюз CAN, Отбор N. Номер интерфейса?
И конечно поставить новые значения

11

Re: Прошу помощи с проектом

Если я правильно понял вопрос - правильно.