Вопрос

Разница между OBDII и CAN

Что такое CAN (сеть контроллеров)?



В чём разница между протоколом OBD-II и настройкой CAN?



Как использовать сканер OBD-II в автомобиле с системой CAN?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/25561/difference-between-obdii-and-can

12 Комментариев

  1. Хорошо, прежде чем я отвечу на ваши конкретные вопросы, давайте вкратце поговорим о шинных системах. Возможно, вы уже кое-что знаете об этом, но я начну с азов, чтобы люди, не имеющие или почти не имеющие знаний в области информационных технологий или электроники, тоже могли разобраться.


    Шинные системы


    В электронных системах сигналы передаются от одного чипа к другому по проводам (давайте на секунду забудем о беспроводных технологиях). Самый простой способ сделать это — использовать один провод для передачи одного бита информации. Один бит информации — это просто ответ на вопрос «да» или «нет», например: «Фары включены?» Если фары включены, на этом проводе есть напряжение, скажем, 5 вольт. Если фары выключены, на проводе 0 вольт.


    Теперь это подходит для передачи одного бита информации. Но для передачи большего объёма данных требуется больше проводов. К сожалению, чем больше проводов, тем сложнее система. Современный автомобиль — это просто компьютер на колёсах, поэтому в нём много проводов (несколько километров или миль). Чем больше проводов, тем больше вес и стоимость, а автопроизводителям это не нравится. Поэтому нам нужен способ сократить количество проводов.


    Обычно для этого используется автобусная система.


    Что такое автобусная система?


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


    Пример:


    Мы хотим включать и выключать четыре лампы.


    Без шинной системы:



    • Лампа 1: +5 В на проводе 1 = лампа горит; 0 В на проводе 1 = лампа не горит

    • Лампа 2: +5 В на проводе 2 = лампа горит; 0 В на проводе 2 = лампа не горит

    • Лампа 3: ...

    • Лампа 4: ...


    Это легко заметить: нам нужен один провод на каждую лампу.


    С шинной системой:



    • Лампа 1: +1 В на проводе 1 (селектор), 0 или +5 В на проводе 2 для включения и выключения (переключатель)

    • Лампа 2: +2 В на проводе 1 (селектор), 0 или +5 В на проводе 2 для включения и выключения (переключатель)

    • Лампа 3: +3 В на проводе 1 (селектор), 0 или +5 В на проводе 2 для включения и выключения (переключатель)

    • Лампа 4: +4 В на проводе 1 (селектор), 0 или +5 В на проводе 2 для включения и выключения (переключатель)


    С помощью этой примитивной шинной системы мы сократили количество проводов до двух. Независимо от количества ламп, которыми мы хотим управлять, нам нужен только один провод, чтобы сообщить другому чипу, какую лампу мы хотим включить, и второй провод, чтобы сообщить ему, хотим ли мы, чтобы лампа горела или не горела. В реальном мире мой пример будет иметь ограничения, поскольку нельзя просто повысить напряжение до 1000 В на проводе 1, чтобы включить тысячу разных ламп.


    Этот пример показывает, почему в электронике в целом и в автомобилях в частности используются шинные системы. В автомобилях используется ряд шинных систем, разработанных специально для них:




    Что такое CAN (сеть контроллеров)?



    CAN — это самая важная шинная система в автомобиле. Я не буду вдаваться в подробности, просто представьте, что это способ передачи больших объёмов данных по двум проводам. Подробнее о CAN можно прочитать в Википедии.


    OBD-II



    В чём разница между протоколом OBD-II и системой CAN?



    OBD-II — это протокол более высокого уровня, используемый в диагностических целях. OBD-II может использовать одну из (множества) различных шинных систем для передачи диагностических данных в ваш автомобиль и из него. Представьте, что OBD-II — это язык (английский), на котором вы говорите, а CAN — это устройство связи (телефон), с помощью которого вы общаетесь с кем-то (о вашем автомобиле и его техническом состоянии ;).


    Многие люди называют OBD (сокращение от «бортовая диагностика») или OBD-II «стандартами». OBD-II — это стандарт, но он, опять же, состоит из множества различных стандартов, протоколов и систем шин, используемых для обмена данными, поэтому перечислить их все сложно. Однажды я сделал обзорную схему и посмотрю, смогу ли я добавить её в свой ответ позже.



    Как использовать сканер OBD-II в автомобиле с шиной CAN?



    Просто подключите его к порту OBD-II вашего автомобиля. CAN — это один из транспортных протоколов спецификации OBD-II, который должен поддерживаться большинством OBD-II-сканеров. Расположение порта можно найти с помощью поиска в Google (по изображению). Обычно порт находится в зоне досягаемости водителя, например под приборной панелью или спрятан в центральной консоли.


  1. OBD II — это диагностический интерфейс, утвержденный правительством США. Этот интерфейс гарантированно предоставляет определенный набор информации, включая, помимо прочего, данные с бортового компьютера и коды неисправностей бортового компьютера.



    Когда был введён стандарт OBD II, правительство США не требовало от производителей стандартизации интерфейса связи с ЭБУ двигателя. Ранние версии OBD II поддерживали как минимум полдюжины протоколов связи. Позже правительство США осознало свою ошибку и постановило, что ЭБУ двигателя должен поддерживать протокол связи CAN.



    Протокол связи CAN поддерживается в рамках стандарта OBD II.



    Если ваш сканер OBD II поддерживает CAN, то некоторые более старые модели, выпущенные в период между появлением OBD II и введением стандарта CAN, его не поддерживают. В этом случае разницы в использовании нет. Сканер автоматически выберет нужный протокол: либо автоматически определит доступный протокол, либо, после ввода марки, модели и года выпуска, будет использовать тот, который, по его данным, доступен.


  1. @tdrury Я загружу изображение, но, к сожалению, не смог его найти, поэтому создаю новое.
  1. Пожалуйста, добавьте обзорную схему!
  1. Что касается пункта «автомобиль с CAN», то автомобиль может использовать или не использовать CAN для передачи данных между различными «чёрными ящиками» в автомобиле (доступны и другие протоколы, и производитель может использовать тот, который ему больше нравится); он может поддерживать или не поддерживать CAN через порт OBD-II (стандарт OBD-II предусматривает выбор из трёх протоколов, из которых CAN — только один. Именно поэтому это 20-контактный разъём, а остальные контакты можно использовать для других протоколов). Но у него всегда будет порт OBD-II, и ваш сканер всегда будет подключаться к нему.
  1. Мне нравится идея компьютера, который поставляется с шинами в комплекте. ;-)
  1. Прямо СЕЙЧАС !!!!!!!
  1. Это отличный, исчерпывающий ответ! +1, конечно! :D
  1. Текущие определения протоколов OBD11 см. в документе SAE J1979. С момента первоначальной реализации в 1996 году детали протокола неоднократно менялись.
  1. @PeterMortensen Я отредактировал свой ответ
  1. Какое правительство? Правительств много.
  1. У меня было преимущество в виде работы с OBDI для одного производителя, а также возможность работать с CAN в электромобилях. Достаточно сказать, что я уже немолод, но я определённо ценю ясность и информативность.
Вы уже ответили на этот вопрос