CAN Gateway Mercedes E 211

ВНИМАНИЕ! В конце статьи есть видео!

CAN-Gateway это новая прошивка для CAN-Hacker3.0 которая позволяем работать ему в двухканальном режиме. То есть Вы можете включать CAN-Hacker в разрыв CAN шины между двумя ECU или несколькими группами ECU и блокировать передачу выбранных пакетов.  Программное обеспечение для управления гейтвеем построено на базе уже известного  CAN-Hacker Bomber и полностью реализует и расширяет его функционал.  Например теперь осуществлять передачу и прием пакетов можно как по первому так и по второму канала CAN.

Bomber

В качестве примера использования режима гейта рассмотрим включение CAN-Hacker 3.0 в разрыв CAN шины между замком зажигания и панелью приборов от автомобиля Mercedes Benz E 211

CAN-Hacker Gateway Connection example 1024

В этом случае один из CAN каналов мы подключаем к замку зажигания, а второй к панели приборов.  На выбранной связке скорость  CAN шины 83.333кбит\с

Для наглядности примера будем использовать тот факт, что если пробег в панели приборов будет меньше чем в замке зажигания, то панель автоматически забирает в себя пробег из замка. Та же самая ситуация актуальна и для замка.

Обмен данными между панелью и замком происходит следующим образом:

Панель передает пакет ID=0x09E DLC=7 DATA: 00 81 D9 B3 2C 05 E8

Замок передает пакет ID=0x058 DLC=7 DATA: 00 81 D9 B3 2C 05 E8

Где:

00 81 D9 B3 – байты отвечающие за идентификацию панели и замка. Если они разные в пакетах панели и замка то связь не будет установлена.

2С 05 E8 – пробег автомобиля умноженный на 10 и переведенный в Hex. В нашем примере пробег равен 2С 55 EE — >DEC /10 -> 288 509 км

Так же по шине, помимо многих других пакетов, передается пакет с ID=000 который отвечает за включение системы, инициируя сигнал IGN-ON.  Источником этого пакета является замок. Ввиду того что в примере собрана не полная сеть автомобиля замок не может включить зажигание полностью и пакет с ID=000 будет нам мешать полноценно запустить панель.

Поэтому заблокируем его в таблице фильтров, а прохождение пакетов с ID 0x058 и 0x09E разрешим.

Для этого нам понадобиться настроить два фильтра на вкладке Filters:

  • Index=0 ID=058 Mask=7FF
  • Index=1 ID=09E MAsk=7FF

Filters2

Желтым цветом отмечаются активированные фильтры.

В такой конфигурации через CAN-Hacker будут проходить только пакеты имеющие ID 0x058 и 0x09E

Очистим окна приема пакетов нажав кнопку Clear и увидим что теперь принимаются только те данные, которые мы разрешили принимать.

rx_window

После настройки фильтров заходим во вкладку Gateway и нажимаем кнопки Transmit from 1 to 2 и Transmit from 2 to 1.  Сделав это мы разрешаем передачу данных из канала 1 в канал 2 и наоборот.

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

Теперь попробуем изменить пробег в замке зажигания на больший, при этом блокируя это изменение для панели приборов. Вследствие чего пробег на панели не должен измениться.

Для этого во вкладке Gateway в поле Chanel выбираем канал 1 к которому у нас подключен замок, в поле ID From задаем 0x058 и нажимаем Lock. После этого информация о пробеге не будет поступать из замка зажигания в панель приборов. Поскольку мы будем изменять пробег в замке на больший, а в панели пробег остается прежним, нам необходимо заблокировать и передачу информации о пробеге и из панели. Это временная мера необходимая для того чтобы панели не мешала нам менять пробег в замке. Для этого выбираем Chanel 2 ID 0x9E и жмем Lock. Информация о пробеге не попадает из панели в замок.

gatewayset

Затем увеличим пробег в замке. Для этого  заходим на вкладку Bomber, в поле Cnahel выбираем канал 1, в поле ID From задаем ID= 0x09E , DLC=7, DATA : 00 11 22 33 2C 55 EE

В поле данных занесен текущий пробег 288 509км, увеличим его на 0x100 HEX (+26км)  и получим пакет:

288 509 * 10 ->HEX =2C 05 E8, +0x100 изменим данные

0x09E , DLC=7, DATA : 00 81 D9 B3 2C 06 E8

bomberset3

Пакеты с информацией о пробеге передаются из панели приборов с периодичностью примерно 1000 мс, поставим такой же период,  и установим флаг Data Counter не отмечая ни одного байта пакета для инкремента.

Нажимаем кнопку Go, и смотрим в поле приема пакетов канала 1. После отправки нескольких пакетов произойдет следующее изменение:

ID=0x058 DLC=7 DATA: 00 81 D9 B3 2C 05 E8 поменяется на:

ID=0x058 DLC=7 DATA: 00 B1 D9 B3 2C 06 E8

chwindow

Пробег в замке увеличился, но на панели приборов остался прежним.

Нажмем Stop

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

На вкладке GateWay в поле Chanel выбираем 2 – канал к которому подключена панель приборов и жмем Unlock.

Данные о пробеге передаются из панели в замок, а данные из замка в панель не передаются.

Можем в этом убедиться в окне приема пакетов:

ID=0x058 DLC=7 DATA: 00 81 D9 B3 2C 05 E8  Панель приборов

ID=0x09E DLC=7 DATA: 00 81 D9 B3 2C 06 E8  Замок зажигания

rx_window_after

Ну и наконец для чистоты эксперимента откроем канал от замка в панель, Для этого на вкладке Gateway выбираем Chanel 1 к которому подключен замок и жмем Unlock.  Пробег на панели приборов сразу увеличивается до 288 535 км

gatewayset2

А теперь видео о том же самом во всех деталях