06.10.2022 14:06
Всем привет. Случайно наткнулся на тему. Добавлю еще 5 копеек, возможно кому-то пригодится.
В наши машины замечательно встает ЭУР от KIA Ceed JD. У данного ЭУР есть 3 режима работы. В ceed-е данными режимами рулит приборная панель, на наших же машинах такой возможности нет, приборка просто не поддерживает такой функционал.
В поиска решения проблемы, было выяснено принцип работы и какие сигналы в CAN шине автомобиля за все это отвечают.
ЭУР все время общается с приборной панелью.
Сообщение от ЭУР в приборную панель:
5E4 3 00 02 00
Если в приборной панели активирован ЭУР, то данное сообщение как раз и гасит индикатор. Частота отправки примерно 200мс.
Приборная панель шлет сообщение формата: (на Киа Рио данного сообщения от приборной панели нет. А вот на солярисе имеется)
4F1 8 00 00 00 00 00 00 00 00
Для запроса и смены режима работы ЭУР (кто в курсе, при первом нажатии на смену режима работы, сначала высвечивается текущий режим и последующие нажатия уже меняют его), приборная панель меняет сообщение на
4F1 8 00 00 00 01 00 01 00 00
В ответ на это сообщение ЭУР меняет сообщение на
5E4 3 00
10 00 — режим Comfort
5E4 3 00
08 00 — режим Normal
5E4 3 00
09 00 — режим Спорт
Так же на наших машинах есть возможность активировать круиз контроль и лимитер. За круиз контроль по аналогу никого не удивишь уже. А как на счет управления по CAN? Да, да.. тоже есть такая возможность, но для этого нужно редактировать прошивку и включить данную возможность.
На сидах управление КК и лимитером управляет приборная панель по CAN шине, отправляя определенные сообщения. Найти данные сигналы не составило труда. Дольше подключал провода. Согласно найденных данных вся информация по активации и управлению КК и лимитером от приборной панели идет в ID: 0x4F0
DATA:
1-й байт 0x00 — ни одна кнопка не нажата
0x10 — активация лимитера
0x02 — нажата кнопка SET-
0x01 — нажата кнопка RES+
2-й байт — текущая скорость от приборки.
3-й байт — Счетчик от 0-255.
4-й байт — 0x00 — ни одна кнопка не нажата
0x01 — активация КК
5-й байт — 0x00 — не знаю за что отвечает
6-й байт — счетчик хз какой, возможно пройденного пути
7-й байт — счетчик хз какой, возможно пройденного пути
8-й байт — счетчик хз какой, возможно пройденного пути
Информация активирован ли КК или нет идет от ЭБУ в ID: 0x260
В этом сообщении нас интересует только 4 байт, в котором как раз информация по КК
ID DLC DATA
ID:0x260
DLC:8
DATA:
4-й байт 0x30 — КК не активирован. Стандартный ответ от ЭБУ. Бывает еще 0x00
0x32 — активирован КК (на сиде и солярисе загорается индикатор активации КК)
0x36 — активирован и работает КК (на сиде и солярисе загорается индикатор активации SET)
По КК в принципе и все. Зная эти данные, можно с легкостью управлять КК.
С лимитером пришлось повозиться подольше. Одно время уже подумывал забросить эту затею.
Управляющее сообщение лимитером так же как и КК ID:0x4F0. Все байты я расписал выше. Для корректной работы лимитера нам нужны только 2 байта (2 и з байт сообщения) с данного сообщения (не считая информации о активации и SET лимитера).
2-й байт — текущая скорость от приборки. Без этих данных лимитер попросту не активируется. Но скорость в данном байте идет в формате СКОРОСТЬ*2. почему умноженная на 2, не понятно. Корейцам виднее. Учитывая что скорость у нас умножается на 2, то попадаем на ограничение значения в 255, поскольку один байт сообщения может хранить именно такое значение максимальное.
3-й байт — Счетчик от 0-255. Вот со счетчиком отдельная волокита была. По его причине я уже хотел и забросить данную затею с реализацией лимитера. Без данного счетчика лимитер так же не будет активирован. До 127 км/ч включительно счетчик идет четных чисел, если скорость свыше 128 км/ч счетчик идет нечетных чисел.
Информация по активации лимитера, по установленной скорости лимитера находится в сообщении ID:0x18F
3-й байт — скорость ограничения лимитера
6-й байт — активирован или нет лимитер
0x40 — лимитер активирован
Скорость и обороты беру с ID 316, в теме уже выкладывали данные.
Скорость в 6 байте. Значение как есть и не требует пересчета: speed = DATA[6];
Обороты хранятся в 3 и 4 байте данных. Формула пересчета: rpm = ((DATA[3]*256)+DATA[2])/4;