Jump to content

Вопросы по разработке CAN-снифера от совсем чайника


Pajalkeen
 Share

Go to solution Solved by mr_smit,

Recommended Posts

Всем привет! Хочу разработать платку, которая расширяет возможности БК машины, не знаю с чего начать. В программировании опыта более 10 лет, но это серверное программирование

Вопросы


1) На чем лучше разработать CAN сниффер? чтобы недорого и удобно разрабатывать. У меня есть готовый образен на STM32, пока смотрю в его сторону, нашел еще варианты на Arduino
2) Как можно снять прошивку с STM32, или безопасно понять есть ли там защита?
3) Инструментарий: Что нужно для разработки кроме IDE? Какой-то переходник для прошивки? 
4) Кто печатает платы по проекту чтобы можно было на себя взять только разработку, а печать заказать?
5) может ли быть такое что плата что у меня в образце какая-то типовая и её просто надо купить по каталогу и прошить?

6) есть ли какие-то распространенные библиотеки для разработки в CAN?

7) как провести отладку? что для этого нужно? Как я понимаю надо одновременно и комп к плате подключить и плату к can-шине?

Снимок экрана 2022-08-24 в 12.30.43.png

Edited by Pajalkeen
уточнил тему
Link to comment
Share on other sites

27 минут назад, Pajalkeen сказал:

расширяет возможности БК машины

В чем заключается расширение?

 

20 минут назад, Pajalkeen сказал:

На чем лучше разработать CAN сниффер?

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

 

21 минуту назад, Pajalkeen сказал:

Как можно снять прошивку с STM32,

Программатором.

 

21 минуту назад, Pajalkeen сказал:

безопасно понять есть ли там защита?

Если есть защита, то прошивка просто не будет вычитываться. Только что вам прошивка даст, если это просто набор hex значений и адресов?

 

22 минуты назад, Pajalkeen сказал:

Что нужно для разработки кроме IDE?

Программатор.

 

22 минуты назад, Pajalkeen сказал:

Кто печатает платы по проекту

Да кто угодно, полно контор и в Китае и в РФ. Те же JLCPCB.

 

23 минуты назад, Pajalkeen сказал:

может ли быть такое

Может, плата же у вас, вам и знать.

 

23 минуты назад, Pajalkeen сказал:

есть ли какие-то распространенные библиотеки для разработки в CAN?

Поисковики в помощь. Сначала с железом определитесь.

 

24 минуты назад, Pajalkeen сказал:

как провести отладку?

Для начала купить USB to CAN адаптер и записать лог пакетов из сети авто, чтобы было понятно, с чем работать. А потом еще и понять, какой пакет за что отвечает. Да и в принципе странно, что программист с 10-летним стажем спрашивает, для чего нужна отладка.

 

От себя лишь могу добавить, что с наскока такое сваять не получится. Даже ели есть знания в программировании МК, CAN не самая простая вещь для освоения.

Link to comment
Share on other sites

48 минут назад, Pajalkeen сказал:

Хочу разработать платку, которая расширяет возможности БК машины

Ради спортивного интереса? Цена вопроса 2,5-3к на Али

Сергей.

Link to comment
Share on other sites

Выгодные LED-драйверы MOSO для индустриальных приложений

Компэл представляет выгодные светодиодные драйверы MOSO для промышленных решений с высоким классом защиты от внешних воздействующих факторов, хорошей устойчивостью к импульсным помехам и высокой надежностью. В ряде серий реализована возможность дистанционного контроля, кроме того, отдельные версии драйверов могут программироваться на работу в автономном режиме по заранее заданному сценарию. Рассмотрим подробнее их характеристики. 

Читать статью>>

ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА
Компания FANSO EVE Energy расширила номенклатуру продукции, разработав новый химический источник тока (ХИТ) – батарейку литий-тионилхлоридной электрохимической системы (Li-SOCl2; номинальное напряжение 3,6 В) типоразмера ААА – ER10450. Батарейка имеет бобинную конструкцию (тип Energy) и предназначена для долговременной работы при малых токах.
Батарейка может применяться в приборах учета ресурсов, в различных датчиках, устройствах IoT и в других приборах и устройствах, в которых требуется компактный ХИТ соответствующей емкости.
Подробнее >>

Новое семейство HRP/N3 от MEAN WELL – ИП с 350% перегрузкой для промышленных приложений

В промышленных устройствах и установках с электроприводом на двигателях постоянного тока в момент пуска требуется обеспечить повышенный ток. Для решения этой задачи MEAN WELL предлагает вместо ИП с повышенной избыточной мощностью, более оптимальное решение - источник питания с необходимой перегрузочной способностью семейства HRP/N3. 

Новое семейство, представленное в Компэл, экономичнее и расширяет уже существующее HRP/N в увеличении кратности перегрузки. Подробнее>>

Спасибо всем за ответы, 
выложу тут, может какому новичку полезно будет - мне посоветовали так сделать. Вижу в этом много логики)

"Я бы посмотрел готовые проекты CAN-снифферов на гитхабах и поиском.  По-моему этого должно быть в достатке.  Годится любой микроконтроллер с CAN-интерфейсом, но лучше ориентироваться на майнстримный STM32

 В проектах ты увидишь к  какому железу они привязаны, к какой плате.
Микроконтроллер или готовую отладочную плату именно фирменную (но их естественно клонируют китайцы), от STM можно выбрать если установить "ST MCU Finder", он есть и на андройде под мобильный телефон.  Там необходимо поискать отладочную плату чтобы на ней сразу был разведен CAN.  Либо более хардкорный вариант но я бы предпочел именно его, это взять майнстримную отладочную плату на чипе F4, H7 (DISCOVERY  или NUCLEO  на чипах STM32F407 например)  и к ней отдельную платку - трансивер CAN (аппаратный интерфейс STM <-> CAN шина) .  И отладки, и платки трансиверов  CAN все и я в том числе покупают на Aliexpress у китайцев."

Я решил заказать такую плату STM32F429-DISC1 + can module 

Вот еще что-то написанное на русском, понятное как будто человек писал)) https://istarik.ru/blog/stm32/159.html

Link to comment
Share on other sites

7 минут назад, Pajalkeen сказал:

STM32F429-DISC1

Для задач сниффера - как из пушки по воробьям. И возьмете вы ее, а дальше что? Прошивка от этого не появится. Опишите подробно, что вы хотите в итоге получить.

 

8 минут назад, Pajalkeen сказал:

H7

Ну а чего сразу уже intel не взять? Да и STM сейчас вообще смысла брать нету, очень дорого. Выгоднее в машину магнитолу в Андроидом на борту поставить и подключить CAN к ней.

Link to comment
Share on other sites

15 минут назад, BARS_ сказал:

Опишите подробно, что вы хотите в итоге получить

Хочу вывести параметры, которые есть в кан (типа температуры коробки, двигателя) на доп. штатный экран. 

Прошу еще раз внимательно отнестись к моим словам - я полный ноль в этом и сравнения "Ну а чего сразу уже intel не взять?" мне непонятны от слова совсем.  Как и рекомендации сначала с железом определиться. Есть задача и под него прошу у более опытных помочь определиться с железом. Железо нужно такое чтобы написать на нем прошивку, а потом отладить и вывести. Пусть какая-то плата будет с большим количеством возможностей чем нужно, но можно же потом эту прошивку запечатать на сделанную под заказ плату(она же дешевле будет?)

У меня уже стоит магнитола на Андроиде, купил я её 58 000 руб - гораздо дороже чем эта плата, но дело не то что бы в деньгах. Дело в интересе.  OBD решения не интересны. Интересно подсоединиться к CAN шине и вывести на штатный экран БК нужную информацию

23 часа назад, BARS_ сказал:

На том, с чем есть опыт работы.

JetBrains Goland для этого не подходит. как и PHPStorm и Pycharm

" STM сейчас вообще смысла брать нету, очень дорого."

какие есть более дешевые варианты с CAN ? 

Edited by Pajalkeen
Link to comment
Share on other sites

  • Solution

Вы не с того начали. Выше вам правильно подсказали. Начать нужно с анализатора CAN шины. Когда вы отловите все необходимые вам пакеты, поймете в каких байтах находятся нужные вам значения (и формулы перевода) вот ТОЛЬКО ТОГДА можно говорить про железо. Возможно как раз на этом этапе от затеи вы и откажитесь... Выбор платы как раз самое простое в этой задаче. Читать CAN сможет и платка Arduino с Али. Готовые библиотеки есть. Там и новичку (вам) под силу будет разобраться.

https://www.drive2.ru/c/486832413771563406/

https://canhacker.ru/

Link to comment
Share on other sites

1 минуту назад, dolmatovva сказал:

как выведете на штатный экран авто показатели ?

есть уже подобные решения, значит можно. Плата с фото первого поста это делать умеет

Link to comment
Share on other sites

14 минут назад, Pajalkeen сказал:

на доп. штатный экран.

Как хотите связаться со штатным экраном? Мало информации.

 

14 минут назад, Pajalkeen сказал:

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

Для начала требуется понять, что там за экран. Тем более он штатный и уже что-то выводит, так это придется штатное выкинуть и вкорячить туда свое. Выводить и штатное и сове на экран не получится никак.

 

14 минут назад, Pajalkeen сказал:

Железо нужно такое чтобы написать на нем прошивку, а потом отладить и вывести

Так купите сначала дешевую плату и научитесь программировать МК, а потом уже видно будет. Тут не получится дернуть пару библиотек, засунуть в код и все.

 

14 минут назад, Pajalkeen сказал:

JetBrains Goland для этого не подходит. как и PHPStorm и Pycharm

Нужен С/С++.

 

14 минут назад, Pajalkeen сказал:

какие есть более дешевые варианты с CAN ? 

Те же китайцы в виде GigaDevice. Кстати, вы же ведь все таки высокоуровневый программист. Возможно, вам будет проще взять мини ПК с полноценной ОС, тот же OrangePi, RockPi, RaspberryPi и реализовать хотелки на нем. А это сейчас еще и дешевле (тот же RockPi 3a можно в пределах 4к взять), чем брать плату с STM, да и возможностей больше намного. Там и CAN есть на борту, достаточно лишь трансивер подключить. ОС там Debian или Android. Можно и винду накатить, но смысла нет.

 

4 минуты назад, mr_smit сказал:

Читать CAN сможет и платка Arduino с Али.

Проще взять USB to CAN и сразу сливать пакеты на ПК.

4 минуты назад, Pajalkeen сказал:

есть уже подобные решения

Ну так покажите. Кроме вас ведь никто не знает, что там за экран и что за машина....

Edited by BARS_
Link to comment
Share on other sites

4 минуты назад, BARS_ сказал:

так это придется штатное выкинуть и вкорячить туда свое

Ну не совсем так. В интернете видел проект где на штатный экран мазды выводили показания парктроника. Суть в чем: штатный экран получает информацию по CAN (температура в салоне, радио станция и т.д.) и путем подмены значений в CAN шине там на экран выводилась своя информация. Устройство на МК ставится в разрыв CAN шины на экран. И если в экран летит строчка "10:30  FM 101.5" то ничто не мешает заменить ее на "< ---- 50 cm >" на время, например, движения задним ходом. А потом дальше пропускать пакеты по шине без изменений. Ну это грубо. Всё от авто и от реализации зависит.

Link to comment
Share on other sites

4 минуты назад, BARS_ сказал:

так это придется штатное выкинут

нет, там делается по другому, БК сам распознает вмешательство и экран мультимедии отдает под доп инфу - рисуй что хошь

5 минут назад, BARS_ сказал:

Нужен С/С++.

Норм, я в институте C изучал. Вспомню) Что из современного под разработку посоветуете? У меня был Борланд C,

кроме STM на такое Ардуино способен? 

вот так это выглядит.

Плата прикручена к кан проводам и проводу управления БК, плюс, минус

Снимок экрана 2022-08-25 в 13.34.27.png

Link to comment
Share on other sites

Повторюсь, начать нужно с анализа CAN шины. В вашем случае (без подобного опыта) на этом всё может и закончится. Вы просто не сможете понять где в шине нужные данные. The End. Либо повторить готовое если под ваше авто кто то уже делал такое. Это идеальный случай. Но тогда и форум не нужен, бери да повторяй.

Link to comment
Share on other sites

2 минуты назад, mr_smit сказал:

повторить готовое если под ваше авто кто то уже делал такое.

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

Link to comment
Share on other sites

2 минуты назад, Pajalkeen сказал:

кроме STM на такое Ардуино способен? 

Если это чисто подмена пакетов в CAN, то любой МК с CAN на борту способен. Вот только нафига там эта информация, вообще непонятно...

 

3 минуты назад, Pajalkeen сказал:

Вспомню

Вспомнить мало, программирование МК сильно отличается от программирования для ПК. Нужно учитывать многие вещи, о которых для ПК даже не задумываешься.

 

4 минуты назад, Pajalkeen сказал:

Что из современного под разработку посоветуете?

Зависит от МК. Лучший вариант, естественно, Visual Studio.

Link to comment
Share on other sites

12 минут назад, Pajalkeen сказал:

буду повторять саму идею, похоже с нуля

Это никак не отменяет разбора пакетов. Требуется записать лог обмена данными, найти в нем те пакеты, что интересны вам и разобраться в их структуре. И только после этого начинать делать железо. И еще раз советую взять мелкий одноплатный ПК и делать на нем. Есть версии Zero. Типа таких image.png.d124424ee8d8c18cef416513549b2a46.pngimage.png.069eb3cac46b10b933c54c9bd90003af.pngimage.png.305215251d4ea4601e09e90a1c2a5819.png

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

Edited by BARS_
Link to comment
Share on other sites

1 час назад, mr_smit сказал:

Удачи. Кстати, какая машина?

MMC Pajero

Спасибо за ответы

54 минуты назад, BARS_ сказал:

е раз советую взять мелкий одноплатный ПК и делать на нем

Спасибо за ответы

Получил исчерпывающую инфу и направление куда копать сейчас!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...