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

Основы CAN в автомобиле

Приветствую!

 

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

 

Лет 10 назад делал что-то с can-интерфейсом, но сейчас уже все забыл. :(

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

 

Стандарты читать пока не хочется (нету прямого резона), поэтому рассчитываю на снисходительную помощь форума.

Вопрос: can похож на ethernet? Там пакетная передача? Какой формат кадра? Он стандартный, или может отличаться для разных марок?

Помню также, что там достигается гарантированная реакция той подсистемы, которой командуют. Как это реализовано? Или я все перепутал?

 

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

Вопрос: протокол обмена с ним стандартизирован? Если да, то где этот стандарт? Если нет, то, опять же, как его узнать?

 

Спасибо.

Поделиться сообщением


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

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

Если на грузовиках, то велкам на местный FTP стандарт J1939 качать. С легковыми сложнее, там всё проприетарное засекречено.

А вообще, это в тему для начинающих вопрос.

Поделиться сообщением


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

С легковыми сложнее, там всё проприетарное засекречено.

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

В общем, для каждой марки свой протокол, я прав?

Поделиться сообщением


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

В общем, для каждой марки свой протокол, я прав?

Кроме пары десятков стандартизированных OBD сообщений, у каждого своё.

Если найдёте, выкладывайте - я первый в очереди :biggrin:

Поделиться сообщением


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

Кроме пары десятков стандартизированных OBD сообщений, у каждого своё.

Ладно, уже кое-что. А понятие сервиса (обслуживания) у блоков ECU есть? Помимо принципов построения меня еще интересуют вопросы безопасности... Так вот, перешить, например, блок ECU можно стандартным путем, или там все свое опять?

Поделиться сообщением


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

Так вот, перешить, например, блок ECU можно стандартным путем, или там все свое опять?

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

У некоторых легковых легко шьётся, прямо без снятия блока через разъём, оборудование для этого недорого стоит и паролей никаких нет, у других только на дилерском оборудовании.

На эту тему лучше на авто форумах посмотреть.

 

А что такое обслуживание блока? Чего там можно обслужить? Контакты спиртом протереть?

Поделиться сообщением


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

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

У некоторых легковых легко шьётся, прямо без снятия блока через разъём, оборудование для этого недорого стоит и паролей никаких нет, у других только на дилерском оборудовании.

На эту тему лучше на авто форумах посмотреть.

Я так понимаю, J1939 преднащначено для коммерческого транспорта. Меня больше интересуют легковые.

На авто форумах спрашивать надо что-то конкретное, например, как перешить блок такой-то, или как прочитать датчик такой-то у машины такой-то.

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

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

 

А что такое обслуживание блока? Чего там можно обслужить? Контакты спиртом протереть?

Это я про перешивку как раз и говорю. Можно, например, проапгрейдить ECU?

Поделиться сообщением


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

Можно, например, проапгрейдить ECU?

Можно конечно. С легковыми дело имел крайне мало, а с современными вообще не имел, только один раз из интереса подключился к Форду Транзиту и всё. Вот здесь вариант программатора для легковых продают:

http://chiptuner.ru/content/combildr/

Там же и на форуме можно посмотреть.

Я с грузовыми/промышленными двигателями работаю. Сотрудничаем с Камминзом, поэтому по нему больше всего информации. У него проапгрейтить прошивку на более новую версию (последние 2 цифры больше) можно без проблем - для этого даже пароль никто не спросит. Если нужно другую прошивку в этот блок залить, то нужно у дистибьютора для этого пароль попросить. Даже более того - купить. Причём даже дилер (а у других, по идее и программы такой быть не должно, хотя у всех кому надо есть) должен дистрибьютору за это деньги заплатить. Но есть обходные пути...

У Детройт Дизеля по идее пароль для любой перепрошивки нужен, но там с ним просто :biggrin:

Другие движки пока не попадались, поэтому не интересовался.

Поделиться сообщением


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

Спасибо за наводку, нашел там по исходным моим вопросам хорошую статью, как раз для ознакомления с шиной.

А ведь он, действительно, похож на ethernet! :) Понятно, почему там такое разнообразие.

 

Теперь возникают более практические вопросы. Например, захотел я подключиться к шине. Помню делал давно некий девайс, там был контроллер типа 82527, что ли...

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

can.pdf

Поделиться сообщением


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

И, самое главное, как понять, какие используются протоколы в конкретной машине?

Купить мультисканер, и подключаться. Из дешёвых, например, Сканматик.

Можно и осциллографом посмотреть, всё будет понятно - там штук 5 вариантов всего. А у современных, фактически, только CAN 500 кбод 11 бит ID.

Или что вы под протоколом подразумеваете?

Поделиться сообщением


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

Совсем без проца (то есть контроллера) не получится, слишком разные форматы фреймов с любым из ПК-интерфейсов.

Нужен хотя бы отдельный (standalone) CAN-контроллер, типа MCP2510, а к нему уже преобразователь USB-SPI на FT2232H

Поделиться сообщением


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

Купить мультисканер, и подключаться. Из дешёвых, например, Сканматик.

Можно и осциллографом посмотреть, всё будет понятно - там штук 5 вариантов всего. А у современных, фактически, только CAN 500 кбод 11 бит ID.

Или что вы под протоколом подразумеваете?

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

 

Совсем без проца (то есть контроллера) не получится, слишком разные форматы фреймов с любым из ПК-интерфейсов.

Т.е. Вы хотите сказать, что в любом контроллере есть некое вычислительное ядро, которое преобразует форматы кадров? Т.е. для них нужен еще и софт самостоятельный?

Поделиться сообщением


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

Какие они в современных машинах?

OBD сообщения (500 кбод 11 бит ID) стандартизированы, но их крайне мало. J1939 (250 кбод 29 бит ID) стандартизирован, но у легковых не применяется.

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

Поделиться сообщением


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

Попробую более понятно выразиться. :)

Сообщения, в т.ч. и диагностические, передаются непосредственно в кадрах CAN без упаковки в другой протокол более высокого уровня? Если нет, то какие используются протоколы?

Поделиться сообщением


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

Большинство в кадрах, а если уж 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

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

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