Toyota CAN bus управление светом фар

На автомобилях Toyota\Lexus есть возможность управлять светом фар при помощи диагностических команд.  Для изучения этих команд мы при помощи CAN-Hacker изучали взаимодействие диагностического оборудования и автомобиля в режиме Actuation Test.

Светом фар управляет блок BCM — Body control module, к нему мы подключались отдельно от автомобиля, на столе. Параллельно CAN-Hacker -у подключен диагностический сканер Launch.

CAN-Hacker параллельно сканеру

Для наглядности сняли видео о том как работать с ECU на столе

Все просто:

  1. Подключаем к CAN шине ECU диагностический сканер, а параллельно сканеру CAN-Hacker
  2. В программе CAN-Hacker — >Filter задаем значение маски фильтра  700 и значение фильтра 700, жмем ОК. В этом случае пакеты которые не относятся к диагностическим командам мы видеть не будем.

Filters_oldJ

3.  Далее заходим сканером в наш ECU, выбираем нужные команды и смотрим логи, ниже примеры:

RXlistDiag_Old

Вот, например, наш BCM. Сканер обращается к нему пакетами с ID 750 а BCM отвечает пакетами с ID 758.  Это правило — ID ответа = ID запроса +8.

Теперь что касается управления фарами, логи выглядят так:

Headlight relayВключение\отключение ближнего света. Достаточно отправить пакет:

ID = 750  DLC=8 DATA: 40 06 30 15 00 40 00 00  — включение ближнего света фар

ID = 750  DLC=8 DATA: 40 06 30 15 00 00 00 00  — отключение ближнего света фар

HighBeamВключение\Отключения дальнего света. Заметьте — команда на отключение не меняется

ID = 750  DLC=8 DATA: 40 06 30 15 00 20 00 00  — включение дальнего света

 

TailLightВключение\Отключение задних фонарей.

ID = 750  DLC=8 DATA: 40 06 30 15 00 80 00 00  — включение задних фонарей

FrontFogВключение\Отключение передних противотуманных фар. Обратите внимание на команду включения — Байт со значением 80 находится не шестой по порядку как в предыдущих командах а 7.

ID = 750  DLC=8 DATA: 40 06 30 15 00 00 80 00  — включение передних противотуманных фар.

Видео о том как управлять фарами по CAN шине на Lexus LX570

Следует отметить что при отправке команды на включение фары светят 5 секунд а затем выключаются и если мы хотим чтобы фары светили постоянно команду нудно подавать раз в секунду.
Чередуя команды включения\отключения можно программно моргать фарами

 

Управление замками дверей по CAN шине так же просто, в чем мы убедились на видео. Ниже детализация лога:

Открытие закрытие дверей по CAN шине

Изменения в командах небольшие:

ID = 750  DLC=8 DATA: 40 05 30 11 00 80 00 00  — Закрыть замки дверей

ID = 750  DLC=8 DATA: 40 05 30 11 00 40 00 00  — Открыть замки дверей

Во всех описанных пакетах второй байт это длина команды. На некоторых автомобилях Toyota этот байт может быть равен не 6 а 5.  или на оборот.

Так же мы можем узнать текущий статус каждой двери посмотрев на те пакеты которые BCM передает в автомобиле постоянно:

ID=620  DLC=8  DATA: 10 00 01 60 b0 00 00 40  Все двери закрыты

Шестой байт пакета (после b0) показывает состояние дверей

20 — открыта  передняя правая дверь
10 — открыта передняя левая дверь
04 — открыта задняя левая дверь
02 — открыт багажник
08 — открыта задняя правая дверь,  как видим за статус каждой двери отвечает отдельный бит в байте.