Подключение к can шине через obd2
Каковы различия между протоколом OBD-II и настройкой CAN?
Как использовать сканер OBD-II на автомобиле с CAN?
Хорошо, прежде чем я отвечу на ваши конкретные вопросы, давайте немного познакомимся с системами шин. Возможно, вы знакомы с некоторыми частями этих вещей, но я начну здесь с того, что люди, которые мало или совсем не имеют знаний в области ИТ или электроники, должны быть в состоянии это понять.
Автобусные Системы
В электронных системах сигналы передаются от одного чипа к другому с помощью проводов (давайте на секунду забудем о беспроводных вещах). Самый простой способ сделать это - использовать один провод на бит информации, которую вы хотите передать. Один бит информации - это просто ответ на вопрос « да / нет» типа «Включены ли фары?» Если фары включены, то на этом проводе есть напряжение, скажем, 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 (изображение). Обычно порт расположен в пределах досягаемости водителя , например, под приборной панелью или скрыт в центральной консоли .
На выходных плотно позанимался самообразованием в вопросах диагностики на низком уровне. Исследовал диагностическую шину, в том плане, как сканер работает с машиной через диагностический разъем.
Итак, во внутренних CAN шинах идет интенсивный межблочный обмен, а в диагностическом разъеме, абсолютная тишина, что наталкивает на мысль о том, что он напрямую с внутренними шинами никак не связан и несет особую функцию, которая очевидна из его названия. И функция эта, как ни странно — диагностика. :) А современная диагностика на этой планете начинается с 1996 года, когда все продаваемые в США автомобили обязали соответствовать стандарту SAE J1979, а европейские, с 2000 года, стандарту ISO 15031-5, разработанному на основе SAE J1979. Тогда и появился во всех автомобилях 16 пиновый разъем OBD-II, вытеснивший ранее существовавший зоопарк нестандартных разъемов.
OBD (On Board Diagnostics), описана в стандарте SAE J1979. Стандарт предусматривает различные физические реализации интерфейса, в частности CAN, стандарт ISO 15765, во второй части которого (ISO 15765-2) и описан протокол транспортного уровня. Он достаточно простой и определяет порядок обмена по шине, его описание умещается буквально в трех табличках и абзаце текста, но очень важный, тк позволяет сегментировать и передавать по шине блоки данных большие чем 7 байт, а тот же VIN код имеет 16 знаков. Полезная же нагрузка состоит непосредственно из запросов PID (Parameter ID) и возвращаемых значений.
Те, простыми словами, в CAN шине диагностического разъема нельзя напрямую увидеть никаких данных, таких, как мы можем видеть на внутренней шине, мало того, что данные упакованы в дополнительный протокол обмена, но и сам обмен идет исключительно по принципу клиент-сервер. Сканер (клиент) отправляет в машину (сервер) запрос, получает и итерпретирует ответ. Для того, чтобы через диагностическую шину что-то получить, нужно знать, что, как и у кого запросить, нужно знать CAN ID электронного блока (ECU), номер сервиса и, непосредственно, PID.
Дальше — больше, все стандарты, как известно, нестандартны, SAE J1979 очень сильно устарел и описаные в нем стандартные PID-ы покрывают лишь малую толику того, что заложено в мозги современных автомобилей. Большинство используемых в диагностике PID-ов — нестандартны и доступ к их описанию закрыт. Часть автопроизводителей продает их разработчикам диагностического оборудования напрямую, часть через институт ETI, но, в любом случае, эти данные энтузиастам недоступны из-за стоимости, цена вопроса — десятки тысяч долларов для крупных производителей, да и кому попало их уж точно не продают. Думаю, что крайслер — не исключение. Теперь понятно, откуда берется такая цена на мультимарочные сканеры (мой Gscan2 стоит около $2500 + $500 ежегодная подписка на обновления), ведь производителю сканера нужно выложить чуть ли не миллион долларов, для того, чтобы сделать достойную карту покрытия . Паршивый бизнес, особенно учитывая то, что все сразу же крадут китайцы и продают за бесценок на алиэкспрессе.
Итак, встала задача проанализировать обмен сканера с машиной. Есть два варианта, первый — просто подключить канхакер впараллель на шину и в тихом режиме послушать и записать трафик, для этого даже продаются разветвители ODB кабеля, который я и купил. Вариант рабочий, но имеет один недостаток, мы видим трафик на шине, но не знаем его источника. Поэтому есть второй вариант — врезаться в разрыв шины. Канхакер имеет два CAN порта и может работать в режиме шлюза. Те данные принятые на порту 1 перебрасывать в порт 2 и наоборот. При этом мы уже видим, с какой стороны пришел кадр и идентифицируем его источник. Для этого разветвитель OBD был слегка порезан и модифицирован.
Сканер может работать в двух режимах, OBD, в котором он может считать данные только в рамках стандарта и диагностике по марке автомобиля. Исследование подтвердило, что в режиме OBD сканер действительно ведет обмен в строгом соответствии со стандартом, но данных там мало и полностью отсутствуют данные и коды ошибок по некоторым блокам. Совсем другое дело при диагностике по марке, из стандартных запросов там используется разве что запрос VIN кода, в остальном — вакханалия нестандартных кодов.
Теперь, вообщем-то, стала понятна немногословность лиц автодиагностической национальности, PID-ы — деньги, знание нескольких заветных чисел в шестнадцатиричном формате позволяет вытащить из машины какую-то нужную информацию, например температуру АКПП, чем, собственно, и занимается TralDash или переключить в настройках какую нибудь опцию, включить ксенон, чтобы не мерцали фары или отключить, например, TPMS (ProCal, FlashCal итп).
В итоге провел небольшое исследование и, для проверки теории практикой, нашел PID-ы включения и отключения дальнего света левой фары и переднего левого поворотника и поморгал ими из интерфейса канхакера напрямую отправляя запросы в диагностическую шину. Работает. Практической пользы от этого, правда, немного.
Современный автомобиль – это не только механика, но и огромное число электронных компонентов. Они управляют работой различных узлов и систем, отслеживают их состояние, регистрируют и фиксируют отклонения в работе. Чтение этих параметров позволяет производить полную компьютерную диагностику и выявлять неисправности.
Для того, чтобы диагностировать неисправности авто, необходимо специальное оборудование. Раньше для этих целей каждый производитель предлагал свое снаряжение, но с введением стандарта OBD2 примерно с 2000 года, на рынке появилось множество универсальных OBD2-сканеров.
Мультимарочные адаптеры, подключаемые в стандартный разъем OBD2, поддерживают работу с множеством марок и моделей машин. Специальное ПО для них содержит в базе как стандартные коды ошибок, универсальные для большинства авто, так и фирменные, уникальные для отдельных марок.
Помимо чтения кодов ошибок, современные OBD2-сканеры предлагают некоторые возможности по настройке бортовой электроники автомобиля. Если читать ошибки может практически любой дешевый сканер, но для продвинутой работы нужно оборудование профессионального уровня, которое заметно дороже.
Основные возможности OBD2-сканеров
Главной функцией любого OBD2-сканера является подключение к бортовой электронике авто для чтения ошибок, их расшифровки и удаления после устранения неполадок. Также эти устройства, вне зависимости от класса, могут считывать с ЭБУ двигателя и отображать текущие параметры его работы.
Используя сканер OBD2, можно проанализировать как всю бортовую сеть полностью, так и отдельные системы (например, зажигание или управление впрыском топлива). Возможно отслеживание в режиме реального времени таких показателей, как количество оборотов мотора, скорость, температуры масла и тосола, давление масла и топлива, давление во впускном и выпускном коллекторе, расход воздуха.
Также можно мониторить параметры работы топливной системы и зажигания, вроде угла опережения зажигания, показателей обогащения смеси, полноты сгорания топлива, положения дроссельной заслонки и т.д.
Некоторые из показателей компьютерной диагностики с помощью OBD2-сканера просты для понимания даже неопытными автомобилистами. Другие требуют более глубокого понимания процесса, так как отсылка к нарушению работы одной системы может указывать на неполадки вовсе в другой. К примеру, слишком высокая температура на впуске может говорить о проблемах и с фильтрами, и инжектором, и охлаждением ДВС, и его масляной системой.
В чем отличия между OBD2-сканерами разных марок
На рынке представлены OBD2-сканеры разных производителей, отличающиеся между собой ценой и функциональностью. Их стоимость отличается колоссально: существуют как китайские девайсы за несколько долларов, так и модели за несколько тысяч.
Главным отличием между ними является уровень функциональных возможностей. Также есть отличия в уровне поддержки производителем. Если профессиональные аппараты получают обновления ПО, клиенты могут рассчитывать на поддержку производителя, то отношение китайских компаний к дешевым переходникам может иметь вид «выпустили – и забыли».
Помимо широты функциональности, имеются и отличия в интерфейсе подключения. Популярны беспроводные OBD2-сканеры, работающие по Bluetooth или Wi-Fi, которые подключаются к любому современному смартфону, планшету или ноутбуку. Они удобны и универсальны, часто стоят недорого, но функции таких гаджетов сильно зависят от цены и добросовестности производителя.
Тот же ELM327 (популярный чипсет для OBD2-сканера) не копировал только ленивый. На AliExpress полно клонов по несколько долларов, совместимых с любым смартфоном, но они недотягивают по уровню возможностей до оригинала. Даже диагностика базовых компонентов доступна не в полной мере, не говоря уже о частых проблемах с совместимостью.
Если вы приобрели новое автомобильное устройство и хотите создать тему с его обсуждением (предварительно убедившись, что такой темы на форуме нет) - пожалуйста придерживайтесь этой инструкции.
Важно понимать, что если у вас нет цели обсуждать новое устройство на этом форуме, а вы лишь хотите решить вашу проблему с ним, не стоит создавать для этого новую тему. Просто задайте свой вопрос в этой теме. Мы вместе попытаемся решить вашу проблему, направим Вас в профильную тему и т.д.
Прежде чем задать вопрос, вы можете самостоятельно попытаться найти свою тему на форуме через ПОИСК по ключевым словам либо посетив соответствующий подфорум раздела Автомобильные устройства.
МиниFAQ:
В: Хочу выбрать автомагнитолу на ОС android, помогите в выборе!
О: Помощь в выборе автомагнитол на ОС android - тема
В: Как найти свою тему на форуме? Где найти прошивку? Что у меня за аппарат?
Для автомагнитол Android смотрим СЮДА
Для автомагнитол на ОС WINCE и других платформах смотрим СЮДА
В: Как мне подключить камеру заднего вида? Как подключить кнопки на руле? Куда синий, красный . провод, для чего он нужен?
О: Все ответы в этом посте >>>
В: Как мне запустить автомагнитолу на столе?
О: Красный провод магнитолы ACC скрутить с желтым толстым проводом B+ и на плюс блока питания, черный толстый провод магнитолы GND на минус блока питания.
В: Я разбил тач. Помогите найти замену!
О: Обратитесь в эту тему.
В: Помогите найти распиновку на мою штатную магнитолу!
О: Распиновка на различные авто
TPMS (датчики давления шин): >>>
Видеокамеры для автомобилей: >>>
- Распиновка кана Toyota, Nissan - здесь
- Nissan - здесь
- Распиновка canbus производителя Raise здесь
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку "Жалоба" под сообщениями, на которые необходимо добавить ссылки.
Спасибо за ссылку.
То что мой NISSAN работает по протоколу CAN ISO 15765-4 я знаю уже давно.
Вопрос был о том куда подсоедениться в машине чтобы к ГУ подать сигнал с CAN шины автомобиля ,потому что этих контактов в разъёме к ГУ у меня нет.
Или нужна ссылка на электросхемы MAZDA 5 2014г. (после рейсталинга)
Работа практически любой системы TPMS организована двухэтапно:
1. Датчики в колесах общаются с блоком сопряжения с датчиками TPMS (назовем его так для понимания). Это м.б. отдельный блок (для нештатных систем) или, в случае штатной системы авто, например: блок комфорта (BCM). Передача информации от датчиков идет по радиоканалу на частоте 433МГц (340 - для штатов).
2. Полученную с датчиков информацию блок сопряжения с датчиками TPMS передает потребителю (ГУ, приборке и т.п.) для отображения информации. Передача может осуществляться по разным протоколам (в зависимости от того, что выступает потребителем и будет принимать информацию): BT, USB, Wi-Fi, CAN-шина и т.п. И это только транспортный протокол. Внутри него еще м.б. свой протокол (формат) обмена данными. Зависит это исключительно от того, как это программно реализовано в конкретном "блоке TPMS". Потребитель так же умеет принимать только по тем протоколам и форматам данных, которые заложены в его софт и не иначе.
"Андроидная программа TPMS" - это абстрактное понятие. :) Их очень много: дайте запрос "TPMS" в ГуглПлей - увидите.
Все они работают по разному, но все общаются только с "блоком TPMS" (не с датчиками), при этом умеют работать только с совместимыми "блоками TPMS". Нет универсальной программы о которой можно было бы говорить в общем, а не конкретно. Все они заточены на конкретный "блок TPMS" ;)
Штатные системы TPMS - это, как правило, так (упрощенно): Блок комфорта (BCM) принимает информацию с датчиков TPMS в колесах и через CAN-шину передает ее на БК (на приборку) для отображения.
В качестве пояснения принципов работы ГУ с информацией Кан-шины авто. ;)
ГУ не работает с CAN-шиной напрямую!
Принцип обмена такой: Кан-шина авто <--CAN-протокол--> КанБас-декодер <--UART--> процессор MCU <--UART--> процессор Андроид
Как видите - Кан-шина на ГУ не приходит даже на MCU. :yes2:
Несмотря на то, что на некоторых ГУ в распиновках указано CAN+ CAN- или что-то подобное, на самом деле подключать сюда Кан-шину авто бесполезно. Т.к. это контакты последовательной шины UART (Rx, Tx), идущие на MCU, и работать по протоколам CAN он естественно не будет.
Подключать Кан-шину авто надо на контакты Кан-Бас декодера.
Ну и, естественно, не получится подключить Кан-шину к ГУ если у вас нет КанБас-декодера.
В результате, чтобы изменить стандартный обмен, реализованный в софте КанБас-декодера, MCU, приложений Андроида: например считать что-то свое с Кан-шины или передать что-то свое в Кан-шину авто возможно потребуется перелопатить всю цепочку ;)
Поэтому как правило: что уж умеет КанБас-декодер, MCU, Андроид - то и пользуем.
Есть конечно альтернативный вариант для самодельщиков: сделать свой КанБас-декодер и подключить его на USB-порт например. Тогда можно, по идее, написать свою программу на Андроид для обмена с Кан-шиной авто. ;)
Машина NISSAN LAFESTA 4 WD 2013 г.с правым рулем сделана на базе MAZDA 5(с левым рулём ).Полный аналог MAZDA только бампера разные.А везде стоит штамп MAZDA.
Так значит на Can bus адаптер завести сигналы от разьёма OBD?
Так получаеться что на каждое устройство нужен отдельный блок "BCM"?
Добрый день .
Если можно про can bas адаптер подробнее :1)что и как работает
2)где находиться
Для работы с CAN шиной автомобиля необходимо знать:
В автомобиле может быть более одной CAN шины. Для каждого функционального сегмента автомобиля выделяется своя сеть CAN. Выделенные сети могут работать на разных скоростях.
Скорости работы CAN шины
CAN на разных автомобилях и в разных сегментах сети может работать на разных скоростях.
Сегментация CAN шины по функциональному назначению
- Как правило разные, сегменты сети разделены специальным устройством, которое называется Гейтвей (Gateway, ZGW, ETACS, ICU) .
- В роли гейтвея может выступать панель приборов (для простых автомобилей) или отдельный специальный модуль межсетевого интерфейса.
- Гейтвей разделяет потоки данных в разных сегментах сети и обеспечивает связь сегментов сети работающих на разных скоростях.
- ВАЖНО: На многих автомобилях (особенно VAG, MB, BMW) CAN шина в диагностическом разъеме OBD2 отделена от других участков сети при помощи гейтвея, поэтому подключившись к CAN шине OBD разъема невозможно увидеть поток данных. В этом случае можно увидеть только обмен между диагностическим инструментом и автомобилем во время процесса диагностики! Так же модулем гейтвеем оборудованы автомобили японских марок с 2016..2018 годов в зависимости от модели.
- ОБЯЗАТЕЛЬНО изучайте схемы на исследуемый автомобиль, чтобы знать к какому сегменту сети Вы подключаетесь!
Схема ниже изображена в общем виде для упрощения понимания роли Гейтвея. Количество CAN шин и варианты включения блоков управления к тому или другому сегменту сети могут отличаться.
Реализации CAN на уровне электрических сигналов
CAN шина может быть реализована физически тремя способами:
1 ISO11898-2 или CAN-High Speed.
Классическая витая пара нагруженная с обоих концов резисторами 120 Ом.
В этом случае уровни на шине CAN выглядят так:
Для такой реализации сети используются как правило обычные CAN трансиверы в 8 выводном корпусе, аналоги PCA82C250, TJA1050 и им подобные. Работает такая конфигурация на скоростях 500 кбит\с и выше. (Но могут быть исключения) .
2 ISO11898-3 или CAN-Low Speed или Faut Tolerant CAN
Fault tolerant CAN обычно используется для низкоскоростного обмена между блоками управления относящимися к сегменту сети Салон\Комфорт\Мультимедиа.
ВАЖНО: При подключении к шине Faul tolerant CAN, подключать терминальный резистор 120 Ом между линиями CAN-High и CAN-Low НЕ НУЖНО !
3 Single Wire CAN или SW-CAN
Однопроводный вариант шины CAN. Работает на скорости 33.333 кбит\с
Используется специальный тип трансиверов. Для того что бы подключиться к такому варианту шины CAN необходимо линию CAN-High анализатора подключить к шине SW-CAN а линию CAN-Low к массе\земле.
Читайте также: