В этом примере мы опишем опыт работы с CAN шиной автомобиля Lexus LX570 2016 г.в. А так же расскажем пакеты с какими ID за что отвечают.
Для экспериментов мы возьмем панель приборов и подключимся к ней по CAN шине при помощи CAN-Hacker 3.0. на скорости 500кбит\с. Параллельно CAN-Hacker-у подключим диагностический сканер Launch EasyDiag, будем “подсматривать” за тем, что он может делать с панелью приборов по диагностике.
Поскольку эту панель приборов нам дали на час, глубокого анализа не будет, но список ID и их функций пожалуйста:
0x0b4 Скорость, одометр
0x1C4 Тахометр, первые два байта. Шестой байт пакета отвечает за индикатор Check Engine
0x396 Парктроники
Подробное описание пакета парктроников от нашего подписчика nedimarik на Drive2:
0396 парктроники как на Камри у меня, вот расшифровка:
первые два байта 1B (18 — кнопка датчиков отключена, 19 — кнопка включена, 1B — поступает сигнал с датчиков и на приборной панели появляется пиктограма машинки с полосками)
вторые два байта 56 — передние датчики (5 — левый 6 — правый, значения могут быть 6 — три полоски, 5 — две полоски, 1 — одна мигающая полоска)
третьи два байта 70 — задний средний датчик (датчика два, но полоска одна на экране для двух датчиков, меняется только один байт, первый, значения могут быть 70 — четыре плоски, 60 — три полоски, 50 — две полоски, 10 — одна мигающая полоска)
четвертые два байта 56 — заднии крайнии датчики ( 5 — левый 6 — правый, значения могут быть 6 — три полоски, 5 — две полоски, 1 — одна мигающая полоска)
0x39E Раздатка
0x3B0 Четвертый байт: Наружняя температура воздуха, возможно в этом же пакете есть инфа и остальных датчиках температуры.
Температурный диапазон от -32 до +32 принимает значения в пакете от 0x10 до 0x50, соответствие простое, ниже пример:
0x10 -32
0x20 -16
0x30 0
0x40 +16
0x41 +17
0x44 +20
0x50 +32
На фото я передаю в панель приборов пакет: 0x3B0 8 00 00 00 44 00 00 00 00, согласно таблице это +20 градусов.
0x3B7 Индикаторы ABS, TRC OFF, ESP, ручник
0x3BC Первый байт PRNDL, последний байт: режим коробки comfort, sport итд
0x3F9 если в пятом байте послать 0x44 или 0xAA появляется надпись CdY-4, или CdY-2 кто-нибудь знает что это?
0x412 С этим ID идут пакеты от комплекса ADAS, выход из полосы, экстренное торможение
0x427 Индикаторы системы TurnAssist
Теперь посмотрим что мы можем сделать при помощи диагностического сканера:
Панель поддерживает программирование следующих параметров:
1. Время выключения дисплея после выключения зажигания
2. Включение\отключение звукового сигнала не пристегнутых ремней
3. Еще что-то не очень важное, вылетело из головы, а панель уже забрали, увы(
Программирование режимов осуществляется простыми диагностическими командами без использования защищенного доступа.
Например,
Кроме того панель богата на тестовые функции. Можно включить со сканера почти каждый индикатор и пошевелить каждой стрелкой, например:
Отключить звуковой сигнал непристегнутого ремня водителя:
0x7C0 DLC=8 DATA=03 3B A7 40 00 00 00 00
И включить ремень:
0x7C0 DLC= 8 DATA=03 3B A7 C0 00 00 00 00
Установить стрелку спидометра на 80 км\ч:
Просто посылаем заданный пакет без установления диагностической сессии
0x7C0 DLC=8 DATA=04 30 01 00 04 00 00 00
Заменим 04 на 08 и стрелка укажет на 120 км\ч
Плюс ко всему можем увидеть пробег передаваемый панелью приборов в CAN-шину, обратите внимание на пакет с ID 611. Пробег панели приборов имеет пробег 18600км, переводим это число в HEX, получаем 48A8, что мы и видим в последних двух байтах пакета.