Расшифровка сигналов $7E8 и $7E9 на сканере форум Land Rover Evoque

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 шине и собирает заново при получении.

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

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

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

200 01 C0 00 10 00 03 01

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

201 00 D0 00 03 40 07 01

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

740 A0 0F 8A FF 32 FF

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

300 A1 0F 8A FF 4A FF

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

740 10 00 02 10 89

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

300 B1

Получили первый ACK

300 10 00 02 50 89

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

740 B1

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

740 11 00 02 21 01

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

300 B2

Получили второй ACK

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)

740 B5

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

300 A3

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

740 A1 0F 8A FF 4A FF

Ответ KeepAlive

740 A8

Мы разрываем связь

300 A8

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

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

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

ПОСЛЕДОВАТЕЛЬНОСТЬ СРАБАТЫВАНИЯ ПОДУШКИ БЕЗОПАСНОСТИ

На следующих рисунках отражены последовательные этапы срабатывания фронтальной подушки безопасности и приблизительное значение соответствующих временных интервалов. В данном примере рассматривается лобовой удар автомобиля на скорости около 32 км/ч в твердую стену.

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

15 миллисекунд после удараВ течение приблизительно 15 мс после момента столкновения со стеной автомобиль резко замедляется. Датчик удара и дублирующий датчик безопасности фиксируют факт столкновения.Блок DCU дополнительной системы безопасности (SRS) получает от датчиков сигнал о столкновении и определяет, является ли удар достаточно сильным для активизации подушки безопасности. Если это так, то по сигналу блока DCU воспламеняется пиропатрон подушки безопасности, поджигая горючее вещество, содержащееся в газогенераторе. Если ремни безопасности оборудованы преднатяжителями, то последние срабатывают одновременно с подушками безопасности.Тело водителя по прежнему находится в вертикальном положении.

30 миллисекунд после удара

По истечении приблизительно 30 мс (0,030 с) после момента столкновения автомобиля со стеной подушка безопасности разворачивается.Наполняясь, оболочка подушки безопасности перемещается со скоростью до 320 км/ч. Тело водителя слегка сдвигается вперед, а передняя зона запрограммированной деформации кузова сминается, поглощая энергию удара.

Преднатяжители ремней безопасности (если они установлены) срабатывают непосредственно перед срабатыванием подушки безопасности.

40 миллисекунд после удара

Спустя 40 мс (0,040 с) после момента столкновения подушка безопасности наполнится до полного объема. Инерционная катушка ремня безопасности заблокируется, и ремень поглотит часть энергии столкновения. После того, как голова и тело водителя столкнутся с наполненной подушкой безопасности, подушка начнет сдуваться. При этом газ выходит из вентиляционных отверстий в оболочке подушки, обеспечивая постепенное замедление движения тела водителя.

120 миллисекунд после удара

По истечении приблизительно 120 мс водителя отбрасывает назад, на спинку сиденья. К этому моменту подушка безопасности уже в значительной степени спустилась (т.е. газ вышел из нее сквозь вентиляционные отверстия). Спущенная подушка не закрывает водителю обзор.

Последовательность срабатывания пассажирской подушки безопасности аналогична вышеописанной последовательности срабатывания подушки безопасности водителя.

ПРИМЕЧАНИЕ:Если при столкновении автомобиля удар был недостаточно сильным, чтобы водитель мог удариться головой о рулевое колесо, то подушка безопасности водителя не сработает.

ПРИМЕЧАНИЕ:Тот факт, что подушка безопасности не сработала при слабом ударе, не означает неисправности системы дополнительной безопасности (SRS).

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

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

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

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

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

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

Мобильное приложение 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) Процессор DSG77) Диск сцепления DSG7

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

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

Протокол UDS

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

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

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

Разбор 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.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про Skoda
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: