Elm для can шины

Elm для can шины

ELM327 Bluetooth/USB/WI-FI — Обсуждение
Диагностический автосканер
Обсуждение »
Для сравнения устройства с конкурентами и по вопросам выбора устройств обращайтесь в раздел: Выбор и сравнение

  • Torque — здесь
  • HobDrive — ссылка
  • Программа терминала —

    Elm для can шины

    ELM327Chat(Android).zip ( 146.2 КБ )

  • FORScan Lite -здесь
  • LeafSpy Lite — здесь
  • OBD Авто Доктор Pro
  • Сервисмэн
  • Carista — здесь

  • Проверка сканера — здесь
  • Первичные проверки адаптера — здесь
  • Как купить правильный адаптер — здесь
  • Ещё один метод — здесь

  • Видеоинструкция по подключению и настройке — здесь
  • Поменять в адаптере без веб интерфейса режим сети — здесь
  • Команда для калибровки напряжения — здесь
  • Инструкция для тех кто хочет взять правильный девайс, а в крайнем случае вернуть бабло за кривой! — здесь
  • Тонкая настройка ELM327 — здесь
  • Если наблюдается нестабильная работа (рвётся связь) — сюда.
  • Выбор версии адаптера: здесь и здесь.
  • Проверка адаптера без подключения к автомобилю: здесь.
  • Замена на оригинальный чип: здесь.
  • Настройка Vgate 2 WiFI без стандартного доступа к Web интерфейсу: здесь.
  • Распиновка для замены WiFi на BT — здесь
  • Если перестала работать кнопка в выключенном состоянии — здесь
  • Доработка адаптера — здесь
  • Доработка одноплатного адаптера — здесь, здесь и здесь
  • Одна из причин обрывов связи, реконнекта программ — здесь
  • Совместимость программ из AppStore с OBD2 адаптерами — здесь
  • Создание виртуального COM-порта — здесь.
  • Что делать, если вышла из строя схема управления питанием — здесь
  • Подключение к web-интерфейсу на основе WiFi модуля nl6621m.
  • Способ выйти в интернет при подключении через ELM327 Wi-Fi

Сообщение отредактировал KёniG — 04.05.21, 01:48

Короче, покупка китайского адаптера- лотерея.
У одного продавца сегодня могут быть нормальные адаптеры, а завтра- фуфло.
И проверка терминалом- мало что даёт.

Китайцы успешно «адаптируют адаптер» под правильные ответы на запросы терминала.
Но это только ответы, к работоспособности не имеет отношения.

1. Проверку терминалом нормально не проходит.
На половину запросов- вопросительные знаки.
Работает при этом нормально.
Стабильная связь, верные данные.

2. Проверку терминалом проходит лучше первого.
Работает при этом криво, данные не все.

Сообщение отредактировал Megaboson — 22.11.15, 14:20

Мой работающий адаптер — ВНЕШНЕ выглядит как по ссылке с оранжевой этикеткой и четырьмя светодиодами.

Не работающий нормально- выглядит как маленький синий по ссылке.

Сообщение отредактировал Megaboson — 22.11.15, 20:34

Работающий адаптер я покупал здесь: http://www.ebay.com/it…88912546?ul_noapp=true
Т.к форумчане мне сказали, что он нормально работать не будет — я потребовал возврата денег.

Адаптер остался у меня и работает.

Всё, что мне надо — показывает. Верно показывает.
Но идеален ли он — то я не знаю.
Может, он ещё что-то должен, мне неведомо.

Elm для can шины

Добавочка:
Оказывается, этот адаптер, возможно, не будет работать по «заводскому» протоколу, требующему настроек.
А по стандарту — работает.
Но мне уже и не хочется ничего настраивать.
И так что мне надо — показывает.

Хотел вообще-то турбобуст померить, он у меня добавлен чиповкой, а прога выше 2.55 бара не показывает.
Но возиться надоело.
Ясно, что буст- хорош. Точно померю в сервисе без проблем. Один замер нужен.

Сообщение отредактировал Megaboson — 22.11.15, 21:04

FORScan forum

Software scanner for Ford, Mazda, Lincoln, Mercury vehicles

Доступ к шине MS CAN c помощью модифицированного ELM327

Доступ к шине MS CAN c помощью модифицированного ELM327

Post by FORScan » Mon Jun 16, 2014 3:19 am

Многие модели Ford и Mazda (примерно с 2003-2004 года) оборудованы шиной MS CAN, в дополнение к обычной шине HS CAN. Но в отличие от HS CAN, MS CAN не поддерживается стандартной ELM327, т.к. MS CAN является специфическим решением производителя и использует не-OBD2 контакты. Однако, ELM327 является очень гибким инструментом, и небольшая модификация позволяет реализовать поддержку MS CAN.

Замечание перед тем, как читать дальше: начиная с версии 2.1.0 FORScan поддерживает чип STN11XX с встроенной поддержкой шины MS-CAN (примеры реализации адаптера: OBDLink MX, ELS27). Таким образом, это может быть лучшим выбором для людей, которые не хотят модифицировать что-либо собственными руками.

Замечание для владельцев Мондео 3: модулями MS-CAN оборудовались только модели после рестайлинга в июле 2003. И на этой шине кроме ACM (аудио) и EATC (климат-контроль) находятся только опциональные модули (навигация, CD, дисплей, распознование речи и т.д). НЕТ необходимости переделывать адаптер для доступа к модулям двигателя, ICU и вообще любых модулей кроме ACM, EATC и опциональных модулей упомянутых выше.

Статья содержит две части: как переделать ELM327 и добавить переключатель HS/MS CAN, и замечания об использовании MS CAN в FORScan V2

Замечание: Если FORScan не спрашивает вас о наличии переключателя HS/MS CAN (см. раздел 2 ниже), это означает, что программа не ожидает наличие модулей MS CAN на борту и не будет проверять их наличие, даже если вы переделаете ELM.

1. Как доработать ELM327 и добавить переключатель HS/MS CAN

Стандартно, ELM327 поддерживает HS CAN, т.к. Ford HS CAN полностью соответствует стандарту OBD2. Эта шина занимает контакты 6 и 14 разъема OBD2. Шина MS CAN занимает контакты 3 and 11, соответственно. Картинка ниже иллюстрирует проблему ( ВНИМАНИЕ: на картинке изображен разъем автомобиля, типа «мама». У адаптера разъем типа «папа», он зеркален! По этой причине пины часто путают, будьте внимательны, обращайте внимание на нумерацию пинов на разъемах. ):

Elm для can шины

Самый простой способ реализовать поддержку MSCAN — добавить переключатель, который будет переключаться между MS/HS CAN. Схема ниже объясняет суть данной модификации ( ВНИМАНИЕ: на картинке изображен разъем автомобиля, типа «мама». У адаптера разъем типа «папа», он зеркален! По этой причине пины часто путают, будьте внимательны, обращайте внимание на нумерацию пинов на разъемах. ):

Elm для can шины

План:

    Купить 6 контактный мини-переключатель типа ON-ON (например, MTS-202-A2) в любом магазине радиодеталей, также приготовить провод

Elm для can шины

  • Разобрать ELM327 (для большинства китайских клонов — аккуратно отклеить наклейку, под которой прячутся 4 самореза, затем открутить их)
  • Найти место для установки мини-переключателя (для некоторых особо компактных устройств это может оказаться самой сложной частью)
  • Отпаять провода от контактов 6 и 14 разъема OBD2 и припаять их к двум средним контактам мини-переключателя
  • Припаять 2 новых провода от 2 крайних контактов мини-переключателя к контактам 6 и 14 разъема OBD2
  • Припаять 2 других новых провода от 2 других крайних контактов мини-переключателя к контактам 3 и 11 разъема OBD2
  • Проверить выполненную работу (очень важно не перепутаь шины CAN-L и CAN-H !) и собрать ELM327. Для предотвращения путанницы, можно пометить позиции MS и HS
  • Пример переделанного ELM327 USB, китайского производства:

    Elm для can шины

    2. Поддержка MSCAN в FORScan v2

    FORScan v2 имеет поддержку MS CAN и оптимизирован для работы с переключателем HS/MS CAN. нет необходимости настраивать адаптер для работы с MS CAN, FORScan сделает это сам (автоматически). Когда FORScan устанавливает соединение с автомобилем, он анализирет конфигурацию. Если ожидается наличие MSCAN модулей, FORScan спросит пользователя о наличии переключателя HS/MS CAN:

    Elm для can шины

    Если такой вопрос не задан, это означает, что FORScan не ожидает наличия MS CAN модулей в данном автомобиле и не будет их проверять. Если пользователь подтвердил наличие переключател MS/HS CAN, FORScan попросит пользователя перключить шину, например:

    Elm для can шины

    FORScan v2 оптимизирован под использование переключателя HS/MS CAN (минимизирует кол-во необходимых переключений). Например, чтение DTC для 5 HS CAN модулей и 2 MS CAN модулей всегда потребует только одного переключения.

    Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

    Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

    По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

    Программный сниффер VCDS

    Чтобы узнать по какому протоколу общаются электронные блоки я использовал специальную версию VCDS с программным сниффером в комплекте. В этот раз никаких железных снифферов на Arduino или RPi не пришлось изобретать. С помощью CAN-Sniffer можно подсмотреть общение между VCDS и автомобилем, чтобы затем телефон мог прикинуться диагностической утилитой и отправлять те же самые запросы.

    Я собрал некоторую статистику по использованию диагностических протоколов на разных моделях автомобилей:

    VW/Skoda/Seat (2006-2012) — приборная панель UDS. Двигатель и трансмиссия VW TP 2.0

    Audi (2006-2012) — приборная панель VW TP 2.0. Двигатель UDS. Трансмиссия VW TP 2.0

    VW/Skoda/Seat/Audi (2012-2021) — везде UDS

    Протокол UDS

    Unified Diagnostic Services (UDS) — это диагностический протокол, используемый в электронных блоках управления (ЭБУ) автомобильной электроники. Протокол описан в стандарте ISO 14229-1 и является производным от стандарта ISO 14230-3 (KWP2000) и ныне устаревшего стандарта ISO 15765-3 (Diagnostic Communication over Controller Area Network (DoCAN)). Более подробно в википедии.

    Elm для can шины

    Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)

    В моей машине (Skoda Octavia A5) приборка использует UDS протокол, это дало мне легкий старт разработки, т.к. данные были в простом формате Single Frame SF (фрейм, вся информация которого умещается в один CAN пакет) и большинство значений легко поддавались расшифровке. Volkswagen не дает документацию на формат значений, поэтому формулу расшифровки для каждого датчика приходилось подбирать методом логического мышления. Про UDS протокол очень хорошо и с подробным разбором фреймов написано на canhacker.ru.

    Elm для can шины

    Разбор UDS пакета в формате Single Frame

    Пример запроса и ответа температуры моторного масла:

    Запрос температуры моторного масла:

    7E0 — Адрес назначения (ЭБУ двигателя)

    Байт 0 (0x03) — Размер данных (3 байта)

    Байт 1 (0x22) — SID идентификатор сервиса (запрос текущих параметров)

    Байт 2, 3 (0x11 0xBD) — PID идентификатор параметра (температура моторного масла)

    Байт 4, 5, 6, 7 (0x55) — Заполнитель до 8 байт

    Ответ температуры моторного масла:

    7E8 — Адрес источника (Диагностический прибор)

    Байт 0 (0x05) — Размер данных (5 байт)

    Байт 1 (0x62) — Положительный ответ, такой SID существует. 0x22 + 0x40 = 0x62. (0x7F) — отрицательный ответ

    Байт 2, 3 (0x11 0xBD) — PID идентификатор параметра (температура моторного масла)

    Байт 4, 5 (0x0B 0x74) — значение температуры моторного масла (20.1 °C формулу пока что не смог подобрать)

    Байт 6, 7 (0x55) — Заполнитель до 8 байт

    Первая версия мобильного приложения VAG Virtual Cockpit умела подключаться только к приборной панели по UDS.

    Elm для can шины

    VAG Virtual Cockpit — экран с данными от приборной панели по протоколу UDS

    VW Transport Protocol 2.0

    Volkswagen Transport Protocol 2.0 используется в качестве транспортного уровня, а данные передаются в формате KWP2000. Keyword Protocol 2000 — это протокол для бортовой диагностики автомобиля стандартизированный как ISO 14230. Прикладной уровень описан в стандарте ISO 14230-3. Более подробно в википедии.

    Т.к. KWP2000 использует сообщения переменной длины, а CAN шина позволяет передавать сообщения не больше 8 байт, то VW TP 2.0 разбивает длинное сообщение KWP2000 на части при отправке по CAN шине и собирает заново при получении.

    Elm для can шины

    Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)

    ЭБУ двигателя моей машины использует протокол VW TP 2.0, поэтому мне пришлось изучить его. Видимо Volkswagen разрабатывала транспортный протокол не только для работы по надежной CAN шине, но и для менее надежных линий связи, иначе нет объяснения для чего требуется такая избыточная проверка целостности данных. Главным источником информации по VW TP 2.0 является сайт https://jazdw.net/tp20.

    Разбор протокола VW TP 2.0 на примере подключения к первой группе двигателя:

    Настраиваем канал с двигателем. Байт 0: 0x01 — двигатель, 0x02 — трансмиссия. Байт 5,4: 0x300 — адрес источника

    Получили положительный ответ. Байт 5,4: 0x740 — к двигателю обращаемся по этому адресу

    Настраиваем ЭБУ на отправку сразу 16 пакетов и выставляем временные параметры

    Получили положительный ответ

    Отправляем команду KWP2000 startDiagnosticSession. Байт 0: 0x10 = 0b0001 — последняя строка данных + 0x0 счетчик отправляемых пакетов 0 (0x0 — 0xF)

    Получили положительный ответ. Байт 0: 0x10 — cчетчик принимаемых пакетов 0

    Мы отправили первый ACK, что получили ответ

    Делаем запрос. Байт 0: 0x11 — счетчик отправляемых пакетов 1. Байт 3: 0x21 — запрос параметров. Байт 4: 0x01 — из группы 1

    300 22 00 1A 61 01 01 C8 13

    Байт 0: 0x22 — 0b0010 (не последняя строка данных) + 0x02 (cчетчик принимаемых пакетов 2). Байт 1,2: 0x00 0x1A длина 26 байт. Байт 3,4: 0x61 0x01 — положительный ответ на команду запроса параметров 0x21+0x40=0x61 из 0x1 группы. Байт 5: 0х01 — Запрос RPM (соответсвует протоколу KW1281). Байт 6,7: (0xC8 * 0x13)/5 = 760 RPM (формула соответствует протоколу KW1281)

    300 23 05 0A 99 14 32 86 10

    Байт 1: 0x05 — запрос ОЖ. Байт 2,3: (0x0A * 0x99)/26 = 57.0 C. Байт 4: 0x14 = запрос лямбда контроль %. Байт 5,6: 0x32*0x86; Байт 7: 0х10 — двоичная настройка

    300 24 FF BE 25 00 00 25 00

    0x25 0x00 x00 — Заполнитель, до 8 параметров

    300 15 00 25 00 00 25 00 00

    Байт 0: 0x15 — 0b0001 (последняя строка данных) + 0x5 (счетчик принимаемых пакетов 5)

    Отправляем ACK. Прибывляем к нашему предыдущему ACK количество полученных пакетов 0xB1 + 0x4 = 0xB5

    Запрос KeepAlive, что мы еще на связи

    ЭБУ в ответ тоже разрывает связь

    Во второй версии мобильного приложения VAG Virtual Cockpit появилась возможность диагностировать двигатель и трансмиссию по протоколу VW TP 2.0.

    Elm для can шины

    VAG Virtual Cockpit — экран с данными от двигателя по протоколу VW TP 2.0

    Диагностический адаптер ELM327

    Для меня некоторое время было вопросом, как получить данные из CAN шины и передать на телефон. Можно было бы разработать собственный шлюз с Wi-Fi или Bluetooth, как это делают производители сигнализаций, например Starline. Но изучив документацию на популярный автомобильный сканер ELM327 понял, что его можно настроить с помощью AT команд на доступ к CAN шине.

    Elm для can шины

    Копия диагностического сканера ELM327 Не все ELM327 одинаково полезны

    Оригинальный ELM327 от компании elmelectronics стоит порядка 50$, в России я таких не встречал в продаже. У нас продаются только китайские копии/подделки, разного качества и цены 10-30$. Бывают полноценные копии, которые поддерживают все протоколы, а бывают и те которые умеют отвечать только на несколько команд, остальные игнорируют, такие адаптеры не имеют доступ к CAN шине. Я например пользуюсь копией Viecar BLE 4.0, который поддерживает 100% всех функций оригинала.

    Для работы с протоколом UDS через ELM327 нужно указать адреса назначения, источника и разрешить длинные 8 байтные сообщения, по умолчанию пропускается максимум 7 байт.

    Последовательность ELM327 AT команд для работы с UDS по CAN шине:

    Для работы с протоколом KWP2000 через ELM327 нужно только указать адреса назначения и источника.

    Последовательность ELM327 AT команд для работы с VW TP 2.0 по CAN шине:

    Мобильное приложение VAG Virtual Cockpit

    Для разработки мобильного приложения подключаемого к автомобилю требовалось:

    Сниффером собрать трафик от диагностической утилиты VCDS

    Изучить работу протоколов UDS, VW TP 2.0, KWP2000

    Настроить диагностический сканер ELM327 на работу с UDS и VW TP 2.0

    Изучить новый для меня язык программирования Swift

    Elm для can шины

    Мобильное приложение VAG Virtual Cockpit для iOS

    В итоге получилось приложение, которое сочетает в себе функции отображения точных данных панели приборов и диагностика основных параметров двигателя и трансмиссии.

    Пару слов про точность данных. Штатная панель приборов не точно показывает скорость — завышает показания на 5-10 км/ч, стрелка охлаждающей жидкости всегда на 90 °C, хотя реальная температура может быть 80 — 110 °C, стрелка уровня топлива до середины идет медленно, хотя топлива уже меньше половины и при нуле на самом деле топливо еще есть в баке. Производитель это делает для удобства и безопасности водителя.

    На данный момент приложение показывает следующие параметры:

    Приборная панель

    Трансмиссия (температура)

    1) Какая дверь открыта
    2) Скорость
    3) Обороты
    4) Температура масла
    5) Температура ОЖ
    6) Топливо в баке в л.
    7) Запас хода в км.
    8) Средний расход
    9) Время в машине
    10) Пробег
    11) Температура за бортом

    1) Обороты
    2) Массовый расход воздуха
    3) Температура забора воздуха
    4) Температура выхлопа (рассчитанная)
    5) Критический уровень масла
    6) Уровень масла
    7) Наддув турбины (реальный)
    8) Наддув турбины (ожидаемый)
    9) Пропуски зажигания в цилиндрах
    10) Углы откатов зажигания в цилиндрах

    1) ATF AISIN (G93)
    2) DSG6 (G93)
    3) Блок управления DSG6 (G510)
    4) Масло диска сцепления DSG6 (G509)
    5) Мехатроник DSG7 (G510)
    6) Процессор DSG7
    7) Диск сцепления DSG7

    Я стремлюсь чтобы приложение поддерживало как можно больше моделей автомобилей. Пока что поддерживаются производители: Volkswagen, Skoda, Seat, Audi. На разных комплектациях могут отображаться не все параметры, но это поправимо.

    Сейчас я провожу тестирование версии 3.0. Приложение доступно только на iOS, после релиза 3.0 перейду к разработке версии для Android.

    Если интересно потестировать и есть желание принять участие в проекте, то установить приложение можно по ссылке. Также я веду бортжурнал на drive2.ru, где делюсь полезной информацией и новостями о VAG Virtual Cockpit.

    Источник