Перейти к содержанию

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


Pajalkeen
Перейти к решению Решено mr_smit,

Рекомендуемые сообщения

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

Вопросы


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

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

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

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

Изменено пользователем Pajalkeen
уточнил тему
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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 не самая простая вещь для освоения.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

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

Сергей.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

"Я бы посмотрел готовые проекты 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

Ссылка на комментарий
Поделиться на другие сайты

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

STM32F429-DISC1

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

 

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

H7

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

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

Изменено пользователем Pajalkeen
Ссылка на комментарий
Поделиться на другие сайты

  • Решение

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

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

https://canhacker.ru/

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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 сказал:

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

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

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Нужен С/С++.

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

 

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

Вспомню

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

 

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Изменено пользователем BARS_
Ссылка на комментарий
Поделиться на другие сайты

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

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

MMC Pajero

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Имел дело с зарядкой батареек еще с советских времен. Тогда еще в магазине (!) купил специальную зарядку для ртутно-цинковых батареек, очень миниатюрная, зарядка шла от встроенного солнечного элемента (и это еще в советские времена!). Использовал для зарядки батареек для наручных часов, после первой зарядки батарейки хватало примерно на полгода, потом на 3-4 месяца. Потом (когда батарейка служила меньше двух месяцев) батарейка отправлялась на упокой. Спасала студента тогда очень эта вещица. Жалею что тогда не срисовал ее внутренности. А вот с зарядкой щелочных батареек пришлось заниматься уже значительно позже. Мне кто-то подарил такой набор (зарядка с комплектом перезаряжаемых батареек) - вот его обзор https://aphnetworks.com/reviews/pure_energy_xl  Все было нормально, но у всех этих батареек ресурс очень ограничен, примерно 25 циклов максимум. После чего емкость уменьшается и нет смысла их дальше использовать. После каждой зарядки емкость уменьшается, но не сильно. Реально раз десять заряжать можно точно без проблем. После того как выработался ресурс последней батарейки стал вопрос - а можно ли заряжать обычные батарейки тоже? Зарядка-то осталась... И как раз в то время приобрел обычные (т.е. "незаряжаемые") батарейки той же фирмы (PureEnergy). Оказалось что они заряжаются точно также, как и "заряжаемые"! Возможно что у них та же химия... Пробовал батарейки разных фирм, степени разряда. Короче говоря, фирменные всякие Дюраселлы и Энержайзеры не заряжаются вообще, и даже могут потечь во время зарядки. А вот самые дикие и дешевые нонейм чаще всего заряжаются без проблем. Насчет емкости - конечно емкость полностью не восстанавливается, но для работы в беспроводной клаве,, мышке или пульте вполне хватает и достаточно надолго.  Но занимаюсь этим нечасто, просто когда лень ехать в магазин за очередной партией батареек.  А если есть возможность, то предпочитаю переделывать питание под литий. Очень сильно достает саморазряд всяких Ni-Cd, Ni-MH - разряжаются даже те, которые якобы должны долго держать заряд. Схему зарядки еще не срисовывал (лень было разбирать), но схема сложнее чем все что я видел в Интернете. Напряжение заряда примерно 1,7в. xlaa_tds.pdf
    • Я делаю ставку на контакты NC реле запуска и NO реле торможения. Тем более они такие хлипенькие.
    • Раз смогли срисовать схему "силы", то и решить проблему для вас вряд ли сложно будет... Проверьте емкость и ЭПС C-20мкФ и сопротивление контактов этих двух реле в on/off
    • Как? Вы ж никакой информации для работы мозга не дали. Ну, что-то собрали, как-то подключили, подаёте 220 на схему с незапаянным трансформатором, лампочка моргает, защита не срабатывает... Единственный вариант - вас отодвинуть и посмотреть, что там происходит. Но вы даже где обитаете не указали... Единственное, что можно вытянуть из вашего текста: Как может работать микросхема, если у неё замкнуто питание? Перед подачей 220 вы эту перемычку сняли?  
    • Если тут нет необходимой инфы, на это можно забить. Вот если он отвечает на АТ несколькими строками, то стоит разбирать на лету (во время приема) из кольцевого буфера.
    • Так что? Помогите реализовать, нужно за меня реализовать, подскажите как реализовать?? "Барыня лягли и просють..." Вас что в школе, дома, на улице никто не учил диалог вести. 
  • Похожий контент

×
×
  • Создать...