Pull to refresh

Comments 57

Отмечу, что для профессиональной разработки с использованием CAN стоит присмотреться к соответствующим продуктам, а не разрабатывать самостоятельно.
Например я использую USB-to-CAN Адаптер от Ixxat. Есть аналогичные от Vector, Марафон.
Во всех случаях такой адаптер поставляется с софтом, который обычно может гораздо больше, чем тот, что идет с различными no-name снифферами или самостоятельно разработанный. Также с адаптером идет отличный API для использования в любом софте.
Ну и естественно там нет проблем с производительностью или гальванической развязкой, если надо.

Самый дешёвый со своим API был от PCAN в своё время. :)

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

Всё никак не спрошу — а вы в итоге в automotive перешли? Или это игры с CANopen? :)

Или это игры с CANopen? :)

Нет я в автомотив не перешел. И это не игры, а вполне серьезный проект. Только в другой области.

Только не принимайте, плз, моё "игры" серьёзно — я и про себя говорю, что в embedded играюсь, хоть наше эмбеддед — вполне суровое. :)

Так и не метил я в профессиональную разработку с этим и хаб про «сделай сам». Хотя очень всё это интересно.

Ну так я и не критикую! Просто для общего развития.


Вы — молодец, что все сделали и описали!

отличное решение. спасибо
была задумка, но нет времени на это. нормальный осциллограф недавно приобрёл)

Кстати, вопрос: а сколько упомянутый адаптер от IXXAT стоит? Думаю, где-то 200-300 €?

itelma — блин, ну вот такого народ ждёт, а не стотысячную статью о миллионах строк и линуксе в мультимедиа… :/

Спасибо за статью. Вообще какие самые простые узлы автомобиля, которые работают по CAN, вы можете посоветовать новичку для экспериментов?
Тут всё очень специфично и зависит от производителя и в большей степени даже от модели автомобиля. Так как даже на ВАЗе CAN-шиной объединены довольно много узлов: ЭСУД, Блок Кузовной Электроники, АБС, Комбинация приборов, Климатконтроль и так далее. Управлять даже какими-либо устройствами без соответствующей документации — практически как тыкать палкой в небо в надежде, что что-то сработает. В интернете можно найти примеры, как управляют Комбинацией приборов. Это наверно самый безопасный способ потренироваться. Её можно запустить одельно от автомобиля и пробовать посылать ей пакеты, смотреть на её реакцию. В принципе, если подать пакет со скоростью, то как минимум должна отклоняться стрелка скорости, может даже пробег будет считаться. То же и с оборотами мотора.
Иногда, через скоростную CAN-шину в автомобиле передается даже звук между различными аудио-компонентами.

Да, если есть возможность, то наиболее наглядной будет "комбинация приборов".


Можно попробовать, к примеру, кондиционерный блок или мультимедиаблок.

Ой как вовремя вы нашлись!


  1. Есть некий софт, который зовут readlogs. Древний, зато в нем в виде текстовых файлов лежат расшифровки pid и формул к ним.
  2. Ещё не придумал, но я вас в покое не оставлю :)

P.S. пытался вчера расковырять журнал opendiag с помощью этих pid, но времени пока не хватило.

И да, читал м86 от весты. Очень похоже на м74 can.

PID-ы стандартизованы в OBD, их описание есть в Wikipedia, но лучше смотреть английскую версию, там больше подробностей. И эти PID-ы к CAN шине не имеют прямого отношения. CAN шина живёт отдельно со своими данными и протоколом. А вот PID-ы в диагностическом режиме (эдакая замена K-line) внутри пакетов CAN 0x7E0 и 0x7E8.
Вот я про замену K-Line и говорю, собственно. Меня больше прикладной уровень интересует :) И вот прикладной уровень в readlogs как раз интересен: проект вообще начинался с целью диагностики праворуких японок…

Посмотрите мои посты — может, чего накопаете. :)


Эх, может, наконец, дойдут на каникулах руки до статьи. :))))

Ваши с удовольствием посмотрел (во всяком случае, на хабре). Но это, так сказать, крупные мазки… А вот у автора этой статьи пошли интересные детали, которые приходится собирать из разрозненных источников. Сами понимаете — это не очень удобно, хоть я и не очень ленив. Потому очень-очень хотелось бы статьи и от вас.
Да по многому как раз надо бы хотя бы крупными мазками — на русском и основного самого нет.

Но, с другой стороны, вот вам подробности интересны… :)

Кстати, а что интересно?
Понимаете, я как раз играю с одним из новых изделий автоваза. Надо сказать, что оно относительно современно, много ECU на CAN-шине, но есть вещи, которые вызывают вопросы. Есть софт, который частично отвечает на эти вопросы, а есть то, что надо исследовать. Тот софт, который у нас продаётся, в общем-то тоже самописный, и ответы даёт только на начальном уровне, при этом надёжно скрывая детали.
Вот данная статья — про то, как человек наблюдает за CAN-шиной, а также объясняет что же такое ELM327 она мне была как бальзам на душу потому что в двух словах рассказано то, что размазано тонким слоем по половине рунета.
То есть мои исследования носят исключительно прикладной характер для борьбы с некоторыми неприятными повадками автомобиля, и данная статья дала очень неплохое направление в какую сторону копать дальше.
Что бы я от вас хотел узнать — не могу сказать, любой automotive будет интересен. Понимаете, я лет 15 не лез в автомобили, и только буквально вчера узнал про моментную модель управления двигателем, например. От того лично мне интересно всё, что появилось после bosch mp 7.0, в чём его ключевое отличие, и, главное, зачем :)

Тогда вам надо больше инфы по гибридам — там и двигатель по моменту, и электродвигатель во многих режимах. ;)


Постараюсь кой-чего поискать, как на работу прийду (у меня, сейчас только 08:02 утра :)

Кстати, а у вас с языками на чтение доков как? :)

Английский технический вполне. Остальные как-то… Не очень.

я не забыл — увы, некогда было


книгу по OBD взял

всё, что появилось после bosch mp 7.0, в чём его ключевое отличие, и, главное, зачем :)

Вряд-ли вы эту инфу снимите с CANа. Да и в открытом доступе ее не будет.

kolu4iy Lingvo прав — тут смотря как глубоко вы хотите закопаться


в общем случае прошивок с исходными кодами в инете не найдете — может, даркнет, но тут я вообще не в курсе :)

Смотрите: из-за особенностей CAN-стандарта чем у телеграммы меньший номер, тем более высокий приоритет она будет иметь.


Соответственно, самые важные и критичные сигналы будут в телеграммах с маленькими номерами. Что вы и обнаружили для MCU.

Пятисотые телеграммы — то, скорее всего, телеграммы для системы кондиционирования, вентиляторов и пр.


Примерно там же относительно низко будут телеграммы стеклоподъёмников.

А под "двигательными телеграммами" должны быть телеграммы ABS, иммобалайзера и пр.

Именно так, вот неполный список:
0x160 — педаль газа, дроссель
0x180 — обороты мотора, некоторые параметры по мотору
0x280 — приборы, скорость
0x481 — двери, световые приборы, подогревы
0x551 — приборы
0x555 — климат-контроль
0x560 — АКП

АБС точно не помню, кажется в районе 0x35x.
Ещё читал сигнал с датчиков АБС с каждого колеса, просто прирастающий счётчик, когда колесо вращается. Но тоже сразу номер не припомню.
Если правильно помню, то тормозная система и система стабилизации имеют наивысший приоритет

А подробнее случайно нет формата пакетов 160 и 180?

Еще, чтобы легче было находить пакеты можно строить графики по каждому ID, жмешь газ и видишь, на каком ID график полез вверх — это обороты коленвала.

… а также степень нажатия на педаль, расход и ещё 100500 параметров, которые связаны с оборотами

По сути вы сейчас пишете свой CANoe/CANalyzer (продукты фирмы Vector Informatik, упомянутой выше в комменте lingvo :)

Это сейчас программа, де-факто ставшая стандартом в разработке/отладке/тестировании сетей автомобиля. Стоит очень недёшево. :)

Вот, к примеру:

youtu.be/T4e5HQG2Vxk

Да, и поэтому я бы предложил — софт отдельно, железо отдельно. Если вы сделаете так, что ваш софт будет работать с распространенными CAN-адаптерами, а не только вашим — то это наверняка бы увеличило полезность вашего труда.


Чисто в качестве идеи

Вы, простите, готовы купить для автора "распространённые адаптеры"? Или предлагаете заниматься отладкой по переписке?

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

Ну так отлаживайте, пожалуйста :-)
Там "протокол" в отдельный модуль выделен. В принципе, ничто не мешает его подменить.


Я вот свой велосипед пилю на эту же тему (правда, сейчас забросил...).
И вот совершенно непонятно, откуда у меня должно возникнуть желание поддерживать железо, которое я никогда не видел… Мотивация "может быть, кто-нибудь когда-нибудь будет использовать" какая-то слабая.

вы зря на lingvo так — у него действительно самые распространённое железо, которым пользуется большинство в немецком и европейском автостроении


можно всякого полезного из такой совместной работы сделать :)

А подскажите какие-то готовые решения для подключения некого датчика с выходом CAN к Андроид-планшету. И датчик и Андроид надо как-то продолжать питать, поэтому USB-OTG интерфейс подойдет ли тут?
Или лучше универсальный какой-то адаптер CAN-to-WiFi (или CAN-to-Bluetooth) посоветуйте, минимально с пайкой чтобы возиться.

Датчик какой? Промышленные обычно не с простым CAN, а CANOpen или DeviceNet.

kolu4iy KruFFT

В общем очень много полезной на практике информации у Миллера и Валасека.

Смотрите в гугле запросы: «Miller Valasek», «Miller Valasek pdf» и т.д. :)
Известные личности. На всякий случай снова посмотрю их заметки.
Sign up to leave a comment.

Articles