Jump to content

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


 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

Секреты депассивации литиевых батареек FANSO EVE Energy
При длительном хранении в литиевых ХИТ происходит процесс пассивации. Он обратим, однако информации о том, как это правильно организовать, практически нет. Известный производитель батареек FANSO EVE Energy делится рекомендациями, как активировать первичный литиевый элемент питания.

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

Сравнительное тестирование алкалиновых батареек POWER FLASH 

В потребительском и промышленном сегментах российского рынка химических источников тока имеется множество щелочных (алкалиновых) батареек различных производителей и ценовых категорий. Но велика ли разница в их качестве?

Провели небольшой сравнительный тест, чтобы понять, могут ли источники тока POWER FLASH эффективно заменить продукцию таких известных производителей, как Duracell и GP, вычислить, чему равна стоимость одного часа работы батареек, а также сравнить полученные данные со значениями, указанными в технической документации.  Подробнее>>

Новые источники питания на DIN-рейку класса High End от MORNSUN
Компания MORNSUN разработала новую линейку ИП с креплением на DIN-рейку класса High End. Линейка состоит из двух семейств однофазных ИП, различающихся функционалом (LIMF и LIHF) и одного семейства на трехфазное напряжение (LITF). У всех этих ИП печатная плата с компонентами имеет лаковое покрытие. Продукция работоспособна в температурном диапазоне -40...85ºС (для однофазных) и -30...70ºС (для трехфазных). Кроме того, однофазные ИП соответствуют требованиям ATEX и могут использоваться во взрывоопасных зонах. Семейство LIMF имеет стандартный функционал (ККМ, сухой контакт реле, 150% перегрузочная способность), а семейство LIHF – максимальный функционал с доп. функциями селективной защиты (SFB) и возможностью дистанционного управления (может заменить серию QUINT от Phoenix Contact).

Подробнее >>

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

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

Posted (edited)
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.
  • Сообщения

    • Сигнал от сетевого трансформатора 50 Гц, цифра на экране 20, подозреваю что это миллисекунды (видно две точки ближе к вершинам) тут еще странность заметил когда выбрано время развертки 100ms то полоса развертки становится прирывистой и быстро бежит слева на право, и если есть сигнал он тоже начинает мигать. поэтому на фотографии как бы сигнал не прорисован, на самом деле он мигает. а вот когда время выбрано 1ms или 10us такого нет, полоса четкая и сигнал четкий, это неисправность или на низких частотах нормальное поведение?
    • Присмотритесь на платы которые он опубликовал совместно со схемой. Если вы смогли бы внимательно их проверить на соответствие (и автор на то указывал сразу), то смогли бы заметить ещё тогда, что разница была бы существенной. Обратите внимание. Индуктивность первичной обмотки 176мкГн, вторичной обмотки 6мкГн. Легко проверить. Витки первички =13+19=32вит. Проверяем. 176мкГн делим на 32 в квадрате и умножаем на 6 витков вторички в квадрате получаем примерно 6,2мкГн. Соответствует коэффициенту трансформации даже при ручном расчете. Хотя, почему то, автор указал 5,5 витков, и как это возможно в обратноходом преобразователе ... Что намотано у вас, согласно строго исполняемой схеме, не понятно, и не указано вами. Вы ведь придерживались именно её? Имея готовый магнитопровод с зазором 1,3мм, автор, видимо, указал зазор только по центральному керну. Зазор 1,3мм готовый в одном из половинке магнитопровода (технологический в ТПИ-4-3) и плюс ещё 0,4мм - такой же зазор, он же добавляется автоматически в двух крайним по бокам того же магнитопровода. Тогда суммарный зазор по магнитопроводу =1,3+0,4+2*0,4=2,5мм Сходится примерно с индуктивностью как первички так и вторички указанной автором. Зачем он такой большой для выбранной мощности - на совести автора. Программа Старичка подказывает, что достаточно и имеющегося уже с запасом. Материал магнитопровода в программе выбран не М3000НМС, а имеющийся и худший, в сравнении с реальным по потерям на такой частоте. Идем дальше. Сопротивление датчика тока. Ни как не подходит в расчете со схемой, но ближе к элементной базе на плате автора 0,3/2=0,15 Ом. Мы имеем дело все таки с токовым контроллером и как правило амплитуда напряжения ограничения напряжения на шунте при макс. мощности и мин. напряжении питания не должна превышать 70-80% амплитуды ограничения ширины управляющих импульсов (1В для такого типа котроллера). Автор добавил в схеме С22. Возможно так он решил исправить проблемы ОС с помощью подмешивании пилы генератора на токовый вход, когда необходимо стабильное управление ОС при малом заполнении управляющего сигнала - когда стабилизация тока и напряжения выставленны на мин. уровень. Но на авторской плате его нет. Но на плате есть разведенная емкость 0,1мкФ между выводами 1 и 5 контроллера (параллельно выводам оптопрары DA1) в помощь ОС. Параллельно RCD снабберу (на схеме R8, C9, VD10) первичной обмотке на плате автора стоит сапрессор (1,5КЕ200) в помощь последнему. Есть и еще один на плате (1,5КЕ420) последовательно с указанным снаббером. Решения такого не встречал - честно признаюсь, но суммарно по характеристикам получается они ограничивают максимальное напряжение на управляющем ключе. Интересное решение! Скорее всего автор тут экспериментировал, но не отразил это в схеме ни как. Смотрим дальше на ваши скрины с ослика. При закрытии ключа, амплитуда на нем (без учета выброса от индуктивности рассеивания в начальный момент) равна 600В (примерно). Эта амплитуда напряжения должна быть равна амплитуде выпрямленного сетевого напряжения + выходное напряжение умноженное на коэффициент трансформации (или соотношения первичной и вторичной обмотки). А это, предположим, 230В в розетке умноженное на корень из двух + 24В выходного напряжения умноженное на 32вит/6вит, что в итоге равно 453В. Что же там у вас намотано тогда? Приложу вам и известный документ для самостоятельного разбирательства Flyback-R01.pdf. Не зайдет с первого раза - совет, прочитайте его еще раз. У вас есть готовый преобразователь и ослик - т.е. кому как не вам! Это однозначно сократит объем вопросов на тут потом. Ведь и один конденсатор, сразу после выходного диода при выходном токе в 7А не справится долго ... Обратите внимание и на то, что автор не правильно (не относится к плате) указал на схеме где подключена земля сдвоенного ОУ относительно шунта. Возможно на схеме есть и еще ошибки. Для решения вашей задачи, вам, так или иначе, необходимы мин. понятия как работает обратноходовый преобразователь. Это только поможет в дальнейшем
    • Давно заметил: выспался - все получается, не выспался - начинают посещать мысли о дурдуме.
    • Опаньки - источник тока стал усилителем. Всегда был просто динамической нагрузкой. Когда это его повысили в звании?
    • Ты языком мелешь,  я тебе результаты расчётов дал. А может ты думаешь, что калькуляторы с ошибками считают? Или пацаны из LT не знают математику? Доктор тебе в картинках расчёт мощностей показал, может так надо? Ну смотри, обтекай: Выходная 100, 50 и 10 Вт. По две картинки, на одной выходная мощность, на другой мощность, рассеиваемая одним транзистором: Только не говори, что это неправда потому, что ты тут ничего не понял.
    • Спасибо, от сетевого трансформатора проверю, или даже кверцевый генератор сделаю. но у меня кварц с минимальной частотой 2 МГц, думаю тоже нормально будет. Я тут его еще покрутил и вот что интересного нашел. Если отжать кнопку N и нажать кнопку t то на экране появляются две точки, которые можно двигать вверх вниз и увеличивать расстояние между ними. Так же появляется время в виде цифр которое показывает время между этими двумя точками, если вращать ручку t то сигнал растягивается\ сужается и две точки так же привязаны к сигналу (например к вершинам синуса), время (цифры на экране) тоже увеличиваются \ уменьшается крайние ручки справа - позиция цифр на экране и их размер ручки левее - положение точек на экране и расстояние между ними мой вопрос с ручкой t решен, осталось понять какое время цифры показывают, нажата 1 ms и 1 в крайнем правом неподписанном ряду кнопок, левый ряд кнопок это делитель входного сигнала
    • Ручкой потенциометра R7 не получается?
  • Similar Content

×
×
  • Create New...