Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Основы CAN в автомобиле
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > АВТО электроника
vitan
Приветствую!

Есть желание разобраться в принципах построения электронных систем с шиной CAN, применяемых в автомобилях.

Лет 10 назад делал что-то с can-интерфейсом, но сейчас уже все забыл. sad.gif
Из памяти удалось вытащить только то, что CAN устойчив к проблемам типа замыкания проводов на +, на - и между собой (возможно, не во всех версиях).

Стандарты читать пока не хочется (нету прямого резона), поэтому рассчитываю на снисходительную помощь форума.
Вопрос: can похож на ethernet? Там пакетная передача? Какой формат кадра? Он стандартный, или может отличаться для разных марок?
Помню также, что там достигается гарантированная реакция той подсистемы, которой командуют. Как это реализовано? Или я все перепутал?

Далее. Видимо во всех современных авто есть некий блок, называемый ECU. Это, очевидно, сердце системы управления двигателем.
Вопрос: протокол обмена с ним стандартизирован? Если да, то где этот стандарт? Если нет, то, опять же, как его узнать?

Спасибо.
galjoen
Цитата(vitan @ Jun 26 2011, 16:28) *
Есть желание разобраться в принципах построения электронных систем с шиной CAN, применяемых в автомобилях.

Если на грузовиках, то велкам на местный FTP стандарт J1939 качать. С легковыми сложнее, там всё проприетарное засекречено.
А вообще, это в тему для начинающих вопрос.
vitan
Цитата(galjoen @ Jun 26 2011, 17:42) *
С легковыми сложнее, там всё проприетарное засекречено.

Да, с легковыми. Я так понимаю, если засекречено, то протоколы обмена у всех разные, хотя физический уровень один. Ну ничего, начнем с начала. Да и секреты, как я понял, можно раздобыть. Делают же угонщики всякие заводилки, не стесняются даже на форумах общаться открыто.
В общем, для каждой марки свой протокол, я прав?
galjoen
Цитата(vitan @ Jun 26 2011, 18:39) *
В общем, для каждой марки свой протокол, я прав?

Кроме пары десятков стандартизированных OBD сообщений, у каждого своё.
Если найдёте, выкладывайте - я первый в очереди biggrin.gif
vitan
Цитата(galjoen @ Jun 26 2011, 18:52) *
Кроме пары десятков стандартизированных OBD сообщений, у каждого своё.

Ладно, уже кое-что. А понятие сервиса (обслуживания) у блоков ECU есть? Помимо принципов построения меня еще интересуют вопросы безопасности... Так вот, перешить, например, блок ECU можно стандартным путем, или там все свое опять?
galjoen
Цитата(vitan @ Jun 26 2011, 18:59) *
Так вот, перешить, например, блок ECU можно стандартным путем, или там все свое опять?

В J1939, как правило, можно, там всё по стандарту, но пароль нужно знать. Без пароля таких блоков ни разу не встречал, причём там можно завалить блок так, что потом не восстановишь. Но есть и исключения - всё своё.
У некоторых легковых легко шьётся, прямо без снятия блока через разъём, оборудование для этого недорого стоит и паролей никаких нет, у других только на дилерском оборудовании.
На эту тему лучше на авто форумах посмотреть.

А что такое обслуживание блока? Чего там можно обслужить? Контакты спиртом протереть?
vitan
Цитата(galjoen @ Jun 26 2011, 19:24) *
В J1939, как правило, можно, там всё по стандарту, но пароль нужно знать. Без пароля таких блоков ни разу не встречал, причём там можно завалить блок так, что потом не восстановишь. Но есть и исключения - всё своё.
У некоторых легковых легко шьётся, прямо без снятия блока через разъём, оборудование для этого недорого стоит и паролей никаких нет, у других только на дилерском оборудовании.
На эту тему лучше на авто форумах посмотреть.

Я так понимаю, J1939 преднащначено для коммерческого транспорта. Меня больше интересуют легковые.
На авто форумах спрашивать надо что-то конкретное, например, как перешить блок такой-то, или как прочитать датчик такой-то у машины такой-то.
Я же хочу понять идеологию, датчики и прошивки я и сам освою, если надо будет.
Однако, про пароли видел, что всякие нехорошие люди постоянно спрашивают друг у друга некие пин-коды. Видимо, у них есть некие приборы а-ля сервисный сканер, которые позволяют перешивать эти блоки (понятно зачем). При этом надо ввести пин-код, т.к. в блок тоже не совсем тупой, и пытается защититься. Я правильно понимаю, что обмены этих приборов с блоками происходят по тому же интерфейсу, что и диагностика? Неужели никто ни разу не попробовал определить хотя бы этот протокол (перешивки)?

Цитата(galjoen @ Jun 26 2011, 19:24) *
А что такое обслуживание блока? Чего там можно обслужить? Контакты спиртом протереть?

Это я про перешивку как раз и говорю. Можно, например, проапгрейдить ECU?
galjoen
Цитата(vitan @ Jun 26 2011, 19:59) *
Можно, например, проапгрейдить ECU?

Можно конечно. С легковыми дело имел крайне мало, а с современными вообще не имел, только один раз из интереса подключился к Форду Транзиту и всё. Вот здесь вариант программатора для легковых продают:
http://chiptuner.ru/content/combildr/
Там же и на форуме можно посмотреть.
Я с грузовыми/промышленными двигателями работаю. Сотрудничаем с Камминзом, поэтому по нему больше всего информации. У него проапгрейтить прошивку на более новую версию (последние 2 цифры больше) можно без проблем - для этого даже пароль никто не спросит. Если нужно другую прошивку в этот блок залить, то нужно у дистибьютора для этого пароль попросить. Даже более того - купить. Причём даже дилер (а у других, по идее и программы такой быть не должно, хотя у всех кому надо есть) должен дистрибьютору за это деньги заплатить. Но есть обходные пути...
У Детройт Дизеля по идее пароль для любой перепрошивки нужен, но там с ним просто biggrin.gif
Другие движки пока не попадались, поэтому не интересовался.
vitan
Цитата(galjoen @ Jun 26 2011, 20:27) *

Спасибо за наводку, нашел там по исходным моим вопросам хорошую статью, как раз для ознакомления с шиной.
А ведь он, действительно, похож на ethernet! sm.gif Понятно, почему там такое разнообразие.

Теперь возникают более практические вопросы. Например, захотел я подключиться к шине. Помню делал давно некий девайс, там был контроллер типа 82527, что ли...
В общем, на чем сейчас можно сделать адаптер (для начала без проца, просто для подключения к компу)? И, самое главное, как понять, какие используются протоколы в конкретной машине?
galjoen
Цитата(vitan @ Jun 27 2011, 00:28) *
И, самое главное, как понять, какие используются протоколы в конкретной машине?

Купить мультисканер, и подключаться. Из дешёвых, например, Сканматик.
Можно и осциллографом посмотреть, всё будет понятно - там штук 5 вариантов всего. А у современных, фактически, только CAN 500 кбод 11 бит ID.
Или что вы под протоколом подразумеваете?
Juray
Совсем без проца (то есть контроллера) не получится, слишком разные форматы фреймов с любым из ПК-интерфейсов.
Нужен хотя бы отдельный (standalone) CAN-контроллер, типа MCP2510, а к нему уже преобразователь USB-SPI на FT2232H
vitan
Цитата(galjoen @ Jun 27 2011, 15:17) *
Купить мультисканер, и подключаться. Из дешёвых, например, Сканматик.
Можно и осциллографом посмотреть, всё будет понятно - там штук 5 вариантов всего. А у современных, фактически, только CAN 500 кбод 11 бит ID.
Или что вы под протоколом подразумеваете?

Я бы как раз хотел выяснить. Очевидно, CAN - это только физический уровень, т.е. должны быть уровни выше. Какие они в современных машинах?

Цитата(Juray @ Jun 27 2011, 15:21) *
Совсем без проца (то есть контроллера) не получится, слишком разные форматы фреймов с любым из ПК-интерфейсов.

Т.е. Вы хотите сказать, что в любом контроллере есть некое вычислительное ядро, которое преобразует форматы кадров? Т.е. для них нужен еще и софт самостоятельный?
galjoen
Цитата(vitan @ Jun 27 2011, 16:14) *
Какие они в современных машинах?

OBD сообщения (500 кбод 11 бит ID) стандартизированы, но их крайне мало. J1939 (250 кбод 29 бит ID) стандартизирован, но у легковых не применяется.
Всё остальное у каждого своё, хотя какое то сходство с J1939 есть, конечно. Почитайте этот стандарт для начала - потом хоть вопросы понятные будете задавать.
vitan
Попробую более понятно выразиться. sm.gif
Сообщения, в т.ч. и диагностические, передаются непосредственно в кадрах CAN без упаковки в другой протокол более высокого уровня? Если нет, то какие используются протоколы?
galjoen
Большинство в кадрах, а если уж 8 байт не хватает, то мультипакетом. 7 байт в кадре + N кадра. В J1939 если мало ошибок, то по кадру на ошибку, если много - мультипакетом. У легковых мультипакета с ошибками ни разу не видел, хотя какие то сообщения таким способом передавались.
Есть процедуры запрос-ответ в т.ч. и ко всем устройствам в сети, и ответ типа NAK бывает. И ответ мультипакетом тоже.

Пример запроса (от дилерского сканера) параметров у ЭБУ 16-ти цилиндрового дизеля.
Запрос "ток обр. связи синхронизации":
J1939 - 18 EF 00 F9 : 4A 00 80 81 26 02 FF FF
Ответ "ток обр. связи синхронизации" =0
J1939 - 18 EF F9 00 : 4B 00 80 81 26 02 00 00
Где:
00 - Engine #1
F9 - Off Board Diagnostic-Service Tool #1
vitan
Спасибо. Т.о. получается, что уровней всего два: сам CAN (физика) и сообщения, формат которых либо стандартизируется вещами типа J1939, либо какой-то фименный. Так?
Если да, то как мне, например, не зная этих всех форматов сообщений создать что-нибудь для включения в сеть автомобиля? Или считается, что это не мое дело? Кстати, это не считается вмешательством в конструкцию, которую надо регистрировать в ГАИ?
galjoen
Нужно как то узнать формат - подглядеть, своровать и т.п.
К салонному CAN подключаться можно. Его ещё A-CAN называют. Он для этого и сделан. А вот к другим CAN сетям (их там штук 5 бывает) - нельзя.
vitan
Цитата(galjoen @ Jun 27 2011, 18:23) *
Нужно как то узнать формат - подглядеть, своровать и т.п.
К салонному CAN подключаться можно. Его ещё A-CAN называют. Он для этого и сделан. А вот к другим CAN сетям (их там штук 5 бывает) - нельзя.

Салонный CAN - это диагностический разъем? Или просто к любому месту, где он есть?
Что означают буквы A-CAN?
И почему нельзя подключаться к другим? sm.gif
zltigo
QUOTE (vitan @ Jun 26 2011, 22:28) *
А ведь он, действительно, похож на ethernet!

Обалдеть sad.gif.! Это может значить только одно, любые интерфейсы где передается более одного байта оказываются являются Ethernet.
Punk
Цитата(vitan @ Jun 27 2011, 18:36) *
Салонный CAN - это диагностический разъем? Или просто к любому месту, где он есть?
Что означают буквы A-CAN?
И почему нельзя подключаться к другим? sm.gif


Иногда салонный CAN выходит в диагностический разъем, например в Ford и некоторый Volvo. Но в большинстве своем в OBDшнике CAN моторный а диагностика салона осуществляется через гейт. Помимо салонного и моторного CANа в Мерседесах,например, есть еще телеметрический. А скажем в VAG-ах, на диагностику выходит чисто диагностический CAN, который через приборную панель,которая является гейтом, подключается к моторному CAN. Вобчем вариантов масса
vitan
Цитата(Punk @ Jul 6 2011, 09:52) *
Вобчем вариантов масса

Ага. Я-то по-серости думал, что там все в одну сеть объединено. Т.е. сеть разделена на зоны, между которыми стоят шлюзы, а иногда может быть несколько параллельных сетей?
А расскажите про эти шлюзы поподробнее. Они делят сеть на логические участки, как в езернете?
Вот, сказали, что к другим подключаться нельзя. Это потому, что шлюз не позволит просто так обратиться к устройствам, стоящим за ним? Т.е. надо знать, как с этим шлюзом работать. Как эти шлюзы устроены?
KARLSON
Подключиться можно к любой шине и в любом месте. Возмите анализатор сан шины с ноутом, подключите, соберите данные за неделю от одной шине, затем анализируйте лог файл, когда придёт озорение вы узнаете протокол конкретной шины))))) Если шин 5 то 5 недель)))) Всего-то. Только лог наверное в гигабайт соберётся)))
vitan
Цитата(KARLSON @ Jul 6 2011, 10:39) *
Подключиться можно к любой шине и в любом месте. Возмите анализатор сан шины с ноутом, подключите, соберите данные за неделю от одной шине, затем анализируйте лог файл, когда придёт озорение вы узнаете протокол конкретной шины))))) Если шин 5 то 5 недель)))) Всего-то. Только лог наверное в гигабайт соберётся)))

Веселенькое занятие... А там, случайно, шифрования никакого нет? sm.gif
Отдельно интересует возможность перепрошивки ECU. Этот протокол, как я понимаю, ловить анализатором бессмысленно. Как его узнать?
KARLSON
Поставить цистерну пива с гамбургерами какому нибудь ботанику инженеру на заводе производителя ECU))))
Punk
Цитата(vitan @ Jul 6 2011, 11:37) *
Веселенькое занятие... А там, случайно, шифрования никакого нет? sm.gif
Отдельно интересует возможность перепрошивки ECU. Этот протокол, как я понимаю, ловить анализатором бессмысленно. Как его узнать?


Шифрование есть только в некоторых отдельных случаях, например обмен данными между замком зажигания и блоком управления двигателем у Мерсов в 221 кузове. По поводу перепрошивки: Если я правильно понял Вы хотите прошивать блок управления двигателем, для этого можете купить какой нибудь китайский OBD-II флэшер с поддержкой CAN и помониторить его в работе, если конечно есть подопытный автомобиль.
FAV
Посмотрите вот этот блог, там чел доступно рассказывает как "работать" с CAN шиной авто.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.