Разница между OBDII и CAN
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/25561/difference-between-obdii-and-can
OBD II — это диагностический интерфейс, утвержденный правительством США. Этот интерфейс гарантированно предоставляет определенный набор информации, включая, помимо прочего, данные с бортового компьютера и коды неисправностей бортового компьютера.
Когда был введён стандарт OBD II, правительство США не требовало от производителей стандартизации интерфейса связи с ЭБУ двигателя. Ранние версии OBD II поддерживали как минимум полдюжины протоколов связи. Позже правительство США осознало свою ошибку и постановило, что ЭБУ двигателя должен поддерживать протокол связи CAN.
Протокол связи CAN поддерживается в рамках стандарта OBD II.
Если ваш сканер OBD II поддерживает CAN, то некоторые более старые модели, выпущенные в период между появлением OBD II и введением стандарта CAN, его не поддерживают. В этом случае разницы в использовании нет. Сканер автоматически выберет нужный протокол: либо автоматически определит доступный протокол, либо, после ввода марки, модели и года выпуска, будет использовать тот, который, по его данным, доступен.
Хорошо, прежде чем я отвечу на ваши конкретные вопросы, давайте вкратце поговорим о шинных системах. Возможно, вы уже кое-что знаете об этом, но я начну с азов, чтобы люди, не имеющие или почти не имеющие знаний в области информационных технологий или электроники, тоже могли разобраться.
Шинные системы
В электронных системах сигналы передаются от одного чипа к другому по проводам (давайте на секунду забудем о беспроводных технологиях). Самый простой способ сделать это — использовать один провод для передачи одного бита информации. Один бит информации — это просто ответ на вопрос «да» или «нет», например: «Фары включены?» Если фары включены, на этом проводе есть напряжение, скажем, 5 вольт. Если фары выключены, на проводе 0 вольт.
Теперь это подходит для передачи одного бита информации. Но для передачи большего объёма данных требуется больше проводов. К сожалению, чем больше проводов, тем сложнее система. Современный автомобиль — это просто компьютер на колёсах, поэтому в нём много проводов (несколько километров или миль). Чем больше проводов, тем больше вес и стоимость, а автопроизводителям это не нравится. Поэтому нам нужен способ сократить количество проводов.
Обычно для этого используется автобусная система.
Что такое автобусная система?
Представьте себе автобус как способ передачи большего объёма информации с использованием меньшего количества проводов. У автобусных систем есть и другие преимущества, но я сосредоточусь на этом аспекте.
Пример:
Мы хотим включать и выключать четыре лампы.
Без шинной системы:
Это легко заметить: нам нужен один провод на каждую лампу.
С шинной системой:
С помощью этой примитивной шинной системы мы сократили количество проводов до двух. Независимо от количества ламп, которыми мы хотим управлять, нам нужен только один провод, чтобы сообщить другому чипу, какую лампу мы хотим включить, и второй провод, чтобы сообщить ему, хотим ли мы, чтобы лампа горела или не горела. В реальном мире мой пример будет иметь ограничения, поскольку нельзя просто повысить напряжение до 1000 В на проводе 1, чтобы включить тысячу разных ламп.
Этот пример показывает, почему в электронике в целом и в автомобилях в частности используются шинные системы. В автомобилях используется ряд шинных систем, разработанных специально для них:
CAN — это самая важная шинная система в автомобиле. Я не буду вдаваться в подробности, просто представьте, что это способ передачи больших объёмов данных по двум проводам. Подробнее о CAN можно прочитать в Википедии.
OBD-II
OBD-II — это протокол более высокого уровня, используемый в диагностических целях. OBD-II может использовать одну из (множества) различных шинных систем для передачи диагностических данных в ваш автомобиль и из него. Представьте, что OBD-II — это язык (английский), на котором вы говорите, а CAN — это устройство связи (телефон), с помощью которого вы общаетесь с кем-то (о вашем автомобиле и его техническом состоянии ;).
Многие люди называют OBD (сокращение от «бортовая диагностика») или OBD-II «стандартами». OBD-II — это стандарт, но он, опять же, состоит из множества различных стандартов, протоколов и систем шин, используемых для обмена данными, поэтому перечислить их все сложно. Однажды я сделал обзорную схему и посмотрю, смогу ли я добавить её в свой ответ позже.
Просто подключите его к порту OBD-II вашего автомобиля. CAN — это один из транспортных протоколов спецификации OBD-II, который должен поддерживаться большинством OBD-II-сканеров. Расположение порта можно найти с помощью поиска в Google (по изображению). Обычно порт находится в зоне досягаемости водителя, например под приборной панелью или спрятан в центральной консоли.