Перейти к содержанию

подмотка по CAN Skoda Oktavia 2010


Рекомендуемые сообщения

Итак, подключился CAN хакером к приборке Skoda Oktavia 2010 и была найдена посылка от модуля ABS по адресу 0x05A0, которая передается каждые 20мс представляет собой следующий набор данных:

TxCanMsg.Data[0]=0x7f; // 0x7F - движение вперед, 0xFF - движение назад

TxCanMsg.Data[1]=0x00; // скорость (младший байт)

TxCanMsg.Data[2]=0xAA; // скорость (старший байт)

TxCanMsg.Data[3]=0x00; // каждые 20мс значение увеличивается на 0х10 (насколько я понял это метка времени)

TxCanMsg.Data[4]=0x00;

TxCanMsg.Data[5]=0x00;

TxCanMsg.Data[6]=0x40;

TxCanMsg.Data[7]=0x2B;

Что я делаю в программе:

CAN настроен на прием 0x05A0 и в прерывании приемника CAN передаю структуру, представленную выше.

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

Попробовал в прерывании приемника дважды подряд делать передачу. Стрелка спидометра как вкопанная стала на максимум, но одометр не мотает. Потом панель пропищала и положила стрелку на 0. Видно заподозрила ошибку. Через некоторое время опять максимум скорости, писк и одометр стоит.

Я понял что я чего-то не доделываю. Посмотрел на входные данные и заметил, что Data[3] постоянно увеличивается на 0х10. Я стал тоже увеличивать Data[3] при каждой передаче - результата нет, стал просто копировать принимаемую посылку и править в ней только значение скорости - результата тоже нет.

Что делаю не так? Что еще попробовать? Может что-то в Data[4] - Data[7] править? Если есть расшифровка этой посылки(за что каждый байт отвечает) - подскажите

 

Добавлю сам себе :)

Анализировал лог и заметил интересное поведение Data[5] при изменении во времени и в зависимости от текущей скорости... Завтра буду смотреть

Изменено пользователем Alexey_Sev
Ссылка на комментарий

Итак, подключился CAN хакером к приборке Skoda Oktavia 2010 и была найдена посылка от модуля ABS по адресу 0x05A0, которая передается каждые 20мс представляет собой следующий набор данных:

TxCanMsg.Data[0]=0x7f; // 0x7F - движение вперед, 0xFF - движение назад

TxCanMsg.Data[1]=0x00; // скорость (младший байт)

TxCanMsg.Data[2]=0xAA; // скорость (старший байт)

TxCanMsg.Data[3]=0x00; // каждые 20мс значение увеличивается на 0х10 (насколько я понял это метка времени)

TxCanMsg.Data[4]=0x00;

TxCanMsg.Data[5]=0x00;

TxCanMsg.Data[6]=0x40;

TxCanMsg.Data[7]=0x2B;

Что я делаю в программе:

CAN настроен на прием 0x05A0 и в прерывании приемника CAN передаю структуру, представленную выше.

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

Попробовал в прерывании приемника дважды подряд делать передачу. Стрелка спидометра как вкопанная стала на максимум, но одометр не мотает. Потом панель пропищала и положила стрелку на 0. Видно заподозрила ошибку. Через некоторое время опять максимум скорости, писк и одометр стоит.

Я понял что я чего-то не доделываю. Посмотрел на входные данные и заметил, что Data[3] постоянно увеличивается на 0х10. Я стал тоже увеличивать Data[3] при каждой передаче - результата нет, стал просто копировать принимаемую посылку и править в ней только значение скорости - результата тоже нет.

Что делаю не так? Что еще попробовать? Может что-то в Data[4] - Data[7] править? Если есть расшифровка этой посылки(за что каждый байт отвечает) - подскажите

 

Добавлю сам себе :)

Анализировал лог и заметил интересное поведение Data[5] при изменении во времени и в зависимости от текущей скорости... Завтра буду смотреть

 

 

Данные снимались на ходу или от подмотки через ABS....,даю подсказку сообщения блока не достаточно по крайней мере в таком виде.

Ссылка на комментарий

Данные снимались на ходу или от подмотки через ABS....,даю подсказку сообщения блока не достаточно по крайней мере в таком виде.

Снимались на ходу, но не сегодня. Т.е. не от подмотки. В машине сижу с ноутбуком и подключенной к КАН отладочной плате. Работаю в режиме отладки и всегда могу смотреть принятые данные.

 

На сколько я понял он от моих посылок каким-то образом видит ошибку определения скорости и Стрелка спидометра падает на ноль и ничего не крутится. через какоето время опять подымается и затем ошибка и падает...

Чего сегодня удалось достичь:

Начал делать попытки устранения эффекта пропадания скорости. Заметил что если скорость до 20км/ч и приращать Data[5] на 2 - то ошибок не возникает. На большей скорости попрежнему ошибка и перестает считать пробег

посмотрел свои снятые посылки в пути и установил Data[6] в 0x08, это сняло ошибку на скорости до 100км/ч.

В прерывании посылаю 3 почылки такого рода

 

7F 00 38 90 07 88 08 2B

7F 00 38 A0 00 00 08 2B

7F 00 38 B0 07 88 08 2B

В целом едит где то на 1000км/ч но местами впадает в клинч и не крутит или крутит с меньшей скоростью.

Немного не разобрался в физике :). Что я еще не заметил?

Изменено пользователем Alexey_Sev
Ссылка на комментарий

Ну в общем то уже и заметил... 1000км/ч нормально :klas: ,осталось выбрать МК ,лимит не забудь.

Софт какой CANHacker...

Возможно заметил что изменить, но сам того не понял. Хочу физику понять. Почему срывается не ясно! Возможно потому, что не до конца разобрался. МК давно выбран(STM32F103) и десток плат разведено и сделано под корпус с разъемом OBD. Анализатор CAN тоже на этом процессоре и на этой же платке. Под CAN хакер софт написал(по мануалу кан хакера).

Если стесняетесь здесь ответить про физику этих важных байт, то можно в личку ;) Очень хочется до конца разобраться с [5] и [6], а не гадать :). А вот про лимит не понял. Что лимитировать?

Изменено пользователем Alexey_Sev
Ссылка на комментарий

Возможно заметил что изменить, но сам того не понял. Хочу физику понять. Почему срывается не ясно! Возможно потому, что не до конца разобрался. МК давно выбран(STM32F103) и десток плат разведено и сделано под корпус с разъемом OBD. Анализатор CAN тоже на этом процессоре и на этой же платке. Под CAN хакер софт написал(по мануалу кан хакера).

Если стесняетесь здесь ответить про физику этих важных байт, то можно в личку ;) Очень хочется до конца разобраться с [5] и [6], а не гадать :). А вот про лимит не понял. Что лимитировать?

 

Лимитировать длительность работы устройства(максимальный километраж).

Ссылка на комментарий

Возможно заметил что изменить, но сам того не понял. Хочу физику понять. Почему срывается не ясно! Возможно потому, что не до конца разобрался. МК давно выбран(STM32F103) и десток плат разведено и сделано под корпус с разъемом OBD. Анализатор CAN тоже на этом процессоре и на этой же платке. Под CAN хакер софт написал(по мануалу кан хакера).

Если стесняетесь здесь ответить про физику этих важных байт, то можно в личку ;) Очень хочется до конца разобраться с [5] и [6], а не гадать :). А вот про лимит не понял. Что лимитировать?

 

Если бы я знал на 100% точное значение эти байт то ответил бы здесь безовсяких стеснений,просто я делал такую машину

и то-же методом "научного тыка" впрочем как и большинство других.

Подробное описание значений байт/бит сообщений наверное всё-же есть в спецификациях да только их нет.

Железо у меня другое я с AVR работаю,впрочем это не суть.

На счёт лимита ,ниже уже всё сказали.

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...