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

Попытка разобраться с дампом от приборки WRX 2016


Omega_KZ

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

Все доброго времени сток!

Я уже несколько месяцев пытаюсь разобраться с дампом от приборки WRX 2015-2016.

Моя параллельная тема на другом форуме (http://suba-xv.ru/index.php?showtopic=3974)

 

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

 

Что достигнуто на данный момент:

  • По моим предположениям все основные параметры приборной панли хранятся в первых 3-х строках состоящих из 10 байт каждая. 

  • В каждой строке хранятся такие параметры как, модель авто, тип коробки, параметры Si-Drive, регион(страна) и куча других кастомизируемых параметров которые меняются в зависимости от модели и комплектации авто.

  • Каждая строка с параметрами состоит из 10 байт. Первые 8 байт в строке это непостредственно параметры, оставшиеся 2 байта - это по моим предположениям, контрольная сумма строки (в том или ином формате).

  • Контрольная сумма необходима для проверки целостности данных строки с параметрами.

  • Контрольная сумма при расчетах использует NOT, так как если вся строка заполнена 00 то контрольная панель запускается при контрольной сумме FF FF, и наоборот.

  • Контрольная сумма это сумма всех 8 байт в строке, но там не просто сложение. Алгоритм расчета нужно уточнять.

  • Скорее всего Контрольная сумма расчитывается для группы байт, по 2 байта так как если поменять группу из 2-х байты местами с другой группой то панель запускается.

  • Собран тестовый программно аппаратный комплекс по прошивке и проверке дампа приборной панели.

 

Немного технической информации:

Приборка производства NS;

EEPROM : 93C76

Процессор : NEC V850

 

post-5733-0-43162600-1496244713_thumb.thumb.jpg.3fe85101b153fa1d264a2d9ca497c7f2.jpg

Аппаратный комплекс собран из ВЭБ камеры, Арудино и 3-х Релей Шилдов (Блоков Реле), вынесенного наружу чипа EEPROM, и монтажной платы.

post-5733-0-78375400-1496244712_thumb.thumb.jpg.b9cfbebe27df10b4324ab285379a4d1a.jpg

Программная часть комплекса позволяет поставить контрольную сумму для строки на перебор до последующего ее вычисления. Каждая контрольная сумма в автоматическом режиме правит дамп, записывает его в приборную панель, запускает приборку, отслеживает дисплей посредством ВЭБ камеры, фиксирует картинку дисплея, распознает показания на дисплее и сохраняет скрин с информацией о контрольной сумме в папке для дальнейшей работы пользователя. В случае корректного запуска скрин сохраняется в другой папку (С корректными подборами).

post-5733-0-15210800-1496244714_thumb.thumb.jpg.1053e0abd17ef2f6894ec49f7d09a99f.jpg

На проверку одной контрольной суммы уходит порядка 8 сек. Таким образом за сутки вполне реально подобрать контрольную сумму для одной строки.

 

 

Что удалось выяснить:

Путем эксперементальных подборов контрольных сумм удалось выяснить следующие варианты:

B1-00-00-00-00-00-00-00

CRC = 4E-00 (Тут как все понятно. Делаем просто not(B1) и получаем 4E)

 

Дальше буду писать только байты. Все байты идут в порядке с начала строки, все последующие не описанные байты равны 00. Напрмер если пишу B1-27 заничит по факту проверялась строка

B1-27-00-00-00-00-00-00 и т.д.

Во всех примерах сумма байт равна FF (1111 1111)

 

 

Опыт №1 (B1-4E-00-00-00-00-00-00) CRC = 00-00

(Тут тоже действует правило суммы байт и применение NOT к конечному результату)

B1            : 1011 0001

4E            : 0100 1110

CRC (00) : 0000 0000

Опять таки не важно на какой позиции будут стоять байты B1 и 4E и в каком прядке следования. CRC не меняется.

 

Опыт №2 (B1-27-27-00-00-00-00-00) CRC = 0E-00

(Тут схема с суммой байт уже не работает)

B1            : 1011 0001

27            : 0010 0111

27            : 0010 0111

CRC (0E) : 0000 1110

 

Опыт №3 (B1-27-13-14-00-00-00-00) CRC = 2E-00

B1            : 1011 0001

27            : 0010 0111

13            : 0001 0011

14            : 0001 0100

CRC (2E) : 0010 1110

 

Дальше было проведено еще несколько опытов

B1-27-00-27-00-00-00-00 CRC = 0E-00; - Панель запускается.

B1-27-00-00-27-00-00-00 CRC = 0E-00; - Панель запускается.

B1-27-00-00-00-27-00-00 CRC = 0E-00;- Панель запускается.

B1-27-00-00-00-00-27-00 CRC = 0E-00; - Панель запускается.

B1-27-00-00-00-00-00-27 CRC = 0E-00;- Панель запускается.

 

Попутно провел еще несколько тестов.

B1-27-27-00-00-00-00-00 CRC = 0E-00; - Панель запускается.

00-B1-27-27-00-00-00-00 CRC = 0E-00; - Панель запускается.

00-00-B1-27-27-00-00-00 CRC = 0E-00; - Панель запускается.

00-00-00-B1-27-27-00-00 CRC = 0E-00; - Панель запускается.

00-00-00-00-B1-27-27-00 CRC = 0E-00; - Панель запускается.

00-00-00-00-00-B1-27-27 CRC = 0E-00; - Панель запускается.

 

Пробуем переставить байты местами.

B1-27-27-00-00-00-00-00 CRC = 0E-00; - Панель запускается.

27-27-B1-00-00-00-00-00 CRC = 0E-00; - Панель запускается.

27-B1-27-00-00-00-00-00 CRC = 0E-00; - Панель запускается.

27-00-27-00-B1-00-00-00 CRC = 0E-00; - Панель запускается.

27-00-00-00-27-00-00-B1 CRC = 0E-00; - Панель запускается.

 

Исходя из этого опыта получается, что положение байт в строке никак не влияет на конечный расчет CRC.

 

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

 

6A-36-AA-AA-D9-E6-E8-13 CRC = 67-70 - Панель запускается. (так как это родная строка без изменения)

 

Меняем местами байты внутри групп.

36-6A-AA-AA-D9-E6-E8-13 CRC = 67-70 - Панель запускается.

36-6A-AA-AA-E6-D9-E8-13 CRC = 67-70 - Панель запускается.

36-6A-AA-AA-E6-D9-13-E8 CRC = 67-70 - Панель не запускается.

36-6A-AA-AA-D9-E6-13-E8 CRC = 67-70 - Панель не запускается. (откатил "E6-D9" обратно как было на "D9-E6")

 

6A-36-AA-AA-D9-E6-13-E8 CRC = 67-70 - Панель не запускается. (дополнительно откатил "36-6A" обратно как было на "6A-36")

 

По этой строке панель не запускается только если менять местами последние 2 байта. Причем похоже на то что эти байты отвечают за какой-то параметр, и меняя их местами панель не запускается по причине некорректности именно параметра а на CRC

 

Меняем местами группы байт.

6A-36-AA-AA-D9-E6-E8-13 CRC = 67-70 - Родная строка без изменений

 

AA-AA-6A-36-D9-E6-E8-13 CRC = 67-70 - Панель запускается.

6A-36-D9-E6-AA-AA-E8-13 CRC = 67-70 Панель не запускается.

6A-36-AA-AA-E8-13-D9-E6 CRC = 67-70 - Панель не запускается.

D9-E6-AA-AA-6A-36-E8-13 CRC = 67-70 Панель не запускается.

E8-13-AA-AA-D9-E6-6A-36 CRC = 67-70 Панель не запускается.

AA-AA-6A-36-E8-13-D9-E6 CRC = 67-70 Панель не запускается.

 

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

 

Решил проверить что будет если навести в строке полный хаос.

6A-36-AA-AA-D9-E6-E8-13 CRC = 67-70 - Родная строка без изменений

 

AA-6A-AA-36-E6-D9-E8-13 CRC = 67-70 - Панель запускается.

13-E8-AA-36-E6-D9-6A-AA CRC = 67-70 - Панель запускается.

 

Похоже что CRC рассчитывается просто линейно, сложением байт поочередно, причем конечное CRC как-то зависит от количества байт в строке.

 

Я думаю что проводить эксперименты лучше с простой строкой типа:

B1-27-27-00-00-00-00-00 CRC = 0E-00;

Так как это сводит к минимум возможные не запуски панели по причине корявых параметров.

 

 

 

Собственно прошу помощи в поисках формулы расчета CRC, ибо моих мозгов уже не хватает. 

 

 

 

 

Пока не разобрался с CRC, решил немного поковыряться в параметрах первой строки. За одно еще раз убедился в том, что в первой строке хранятся основные параметры работы панели.

 

Имеем первую строку:

6A 36 AA AA D9 E6 E8 13; CRC= 67 70

Дисплей:

post-5733-0-44954800-1496480366.png.d01a77398b27205d5cde52a427fe9e3a.png

 

---------------------------------------------------------------------------

Меняем:

36 6A AA AA D9 E6 E8 13; CRC= 67 70

Дисплей:

post-5733-0-08372700-1496480489.png.0a126b7c7ff43697be465a4fb21c74d0.png

Как видно из картинки, появилась опция EyeSight, Расход стал в km/l(как в Японии), но язык при этом сохранился.

 

---------------------------------------------------------------------------

Меняем:

6A 36 AA AA E6 D9 E8 13; CRC= 67 70

Дисплей:

post-5733-0-04762800-1496480739.png.4a0978add52e837349eccd6ecbc83e4d.png

Появилась опция С.DIFF, При этом показания передач вообще пропали. Даже рамки нет.

 

---------------------------------------------------------------------------

 

Меняем (на этот раз в двух местах):

36 6A AA AA E6 D9 E8 13; CRC= 67 70

Дисплей:

post-5733-0-89537000-1496480881.png.b1a2e66cc46371c424c602a8998ee2da.png

Появилась опция С.DIFF, Так-же как и стоило ожидать появилась еще и EyeSight. Как и в первом варианте замены расход стал km/l

 

---------------------------------------------------------------------------

Меняем:

6A AA 36 AA E6 D9 E8 13; CRC= 67 70

Дисплей:

post-5733-0-02120600-1496481187.png.82408872edf30d4690cfe078e5d12e26.png

Появилась опция С.DIFF, Показания расхода остались прежними, рамка текущей передачи присутствует.

 

---------------------------------------------------------------------------

 

Так-же попытался менять параметры таким-же способов во 2-й и 3-й строке. Визуальных изменений на дисплее не происходит. Панель либо запускается либо нет.

4-я строка дампа вообще никак на работу панели не влияет, там главное чтобы CRC был верный. Именно над 4-й строкой я и провожу все эксперементы по подбору алгоритма CRC, так как вероятность того что параметры неверные и из-за этого панель не запускается очень минимальна.

Ссылка на комментарий
Поделиться на другие сайты

1 hour ago, Omega_KZ said:

• Контрольная сумма это сумма всех 8 байт в строке, но там не просто сложение. Алгоритм расчета нужно уточнять.

  • Скорее всего Контрольная сумма расчитывается для группы байт, по 2 байта так как если поменять группу из 2-х байты местами с другой группой то панель запускается.

Ржал минут 10, эта кантролька давным давно разобрана и перксчитана!!!

 

Ссылка на комментарий
Поделиться на другие сайты

16 минут назад, sswift сказал:

Ржал минут 10, эта кантролька давным давно разобрана и перксчитана!!!

 

Рад что поднял Вам настроение.

К сожалению я не в теме. Если Вам не сложно подскажите алгоритм.

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

28 минут назад, Dimon58 сказал:

Уважаемый! Срочно покупай IProg Pro и начинай писать скрипты!!!

Я бы рад. И без iprog можно скрипты написать. Но опыта в разборе дампов нехватает, так как это просто хобби. А большинство кто разбирается опытом делится нехотят. Я понимаю что это чей-то хлеб и т.п. Но я и не прошу космических секретов раскрывать. 

Буду рад помочь с этой приборкой если будут вопросы по проверке дампов, так как приборка на столе и на долго.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, djal сказал:

 а посмотреть в папках после конфинга диллерским ? может че интересного найдете

Спасибо за совет но не доконца понял Вас.

Посмотреть в каких папках?

После конфига диллерским чего именно, и чем диллерским?

 

 

Ссылка на комментарий
Поделиться на другие сайты

это была аналогия с GM

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

Ссылка на комментарий
Поделиться на другие сайты

Только что, djal сказал:

это была аналогия с GM

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

Понял, спасибо.

Из диллерского только SSM4, удалось запустить через OpenPort 2.0

По приборке, в диллерском есть только чтение параметров и актив тесты. Все команды по CAN шине. В папках ничего не остается. 

Ссылка на комментарий
Поделиться на другие сайты

  • Desufa закрыл тема

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

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

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