
ВАЖНО : Пустым аккаунтам пароли от архивов давать не буду, писать в личку и комментировать пост бессмысленно. МНЕ ГЛУБОКО ПОБОКУ, ЧТО ВЫ ДУМАЕТЕ!
Нашел перевод для программы в доковском формате ! Инструкция на русском языке для программы !
Информации конкретной по настройке злосчастного кабеля очень мало или она не внятная, я постараюсь изложить пошаговую установку, подстройку, запуск для тех кто не особо шурупит в некоторых настройках того же реестра и распаковке драйверов из файла msi)). После прочтения БЖ GTRacing по установке , по шагам выполнил все моменты и все заработало. В своем посте я постараюсь максимально упростить все действия!
1) Установка драйвера Toyota для Кабеля mimi-VCI J2534Win 3264 бита:
— отключаем антивирусную программу т.к в пакете с драйверами есть программа (!не вредоносная!) FirmwareUpdateTool, которую антивирус как AVAST не считает таковой и удаляет;
— Создаем 2 папки на диске C:Program Files (x86) (64 бита) или C:Program Files (32 бита): XHorse Electronics в ней создаем еще одну папку MVCI Driver for TOYOTA TIS;
Toyota Techstream Software Demonstration
— скачиваем драйвер для нашего кабеля, ДРАЙВЕР ТУТ (ЖМИ СЮДА) распаковываем содержимое архива в созданную нами ранее папку MVCI Driver for TOYOTA TIS;
— вставляем кабель в USB-порт, компьютер ругнется на неопознанное устройство;
— переходим в диспетчер устройств : Пуск / (правой клавишей зажимаем по Компьютер / Свойства / Диспетчер устройств (кнопка находится в верхнем левом углу окна), там видим неопознанное устройство с желтым восклицательным знаком : М-VCI, нажимаем правой клавишей по М-VCI и выбираем обновить драйвер
— в открывшимся окне будет 2 пункта, выбираем второй пункт : Выполнить поиск драйверов на этом компьютере;
— в следующем окне нажимаем кнопку ОБЗОР и через проводника находим нашу папку с драйверами на диске C:Program Files (x86) (64 бита) или C:Program Files (32 бита) XHorse ElectronicsMVCI Driver for TOYOTA TIS, нажимаем ДАЛЕЕ и любуемся как пропадает в диспетчере наше неопознанное устройство;
— для пущей уверенности, что драйвера стали, запустите программу FirmwareUpdateTool которая находится в папке с драйверами и нажмите кнопку «Device Info» если вы все правильно сделали у вас будет вот так

ДРАЙВЕР УСТАНОВЛЕН ПОЗДРАВЛЯЮ ! если нет пишите будем разбираться вместе !
2) Установка Программы Tech STRM :
— качаем программу ПО С ДИСКА 2015 года (ЖМИ СЮДА)
— при установке попросит ввести «Company name» ставим, что под пальцы попадет!
— после завершения установки, программу не запускаем
— находим 2 файла с расширением *.ini, находятся они в архиве с драйверами которые мы уже качали в папке «ProgramFilesFolder» IT3UserCustom.ini и IT3System.ini ;
— добавляем их в папку с уже установленной программой вот сюда : С:Program Files (x86) или Program FilesToyota DiagnosticsTechstreamEnv, копируем с заменой.
Toyota Techstream Software — Overview and Install
ПРОГРАММА УСТАНОВЛЕНА ПОЗДРАВЛЯЮ !
3) Привязка нашего шнура к программе :
Как описывал GTRacing корректировки реестра, на мой взгляд сложновато для некоторых, не всем дано, а некоторым и вовсе не хочется разбираться с этим. Я решил упростить задачку и создать файл реестра *.reg с помощью которого можно быстро внести изменения в реестр. Есть маленькая но полезная информация, если вы попытаетесь обновить или переустановить программу, настройка реестра сбросятся на первоначальное их состояние и программа не увидит кабель.
— выбираем нужный вам файл под вашу операционную систему, качаем и запускаем, соглашаемся внести изменения;
— файл reg для 32 битной Win7 (ЖМИ СЮДА) , файл reg для 64 битной Win7 (ЖМИ СЮДА)
ВЫ ПРОСТО ХАКЕР !
4) Запуск и настройка программы:
— при запуске программы у вас выползет окно в котором вам нужно будет выбрать «Area selection» дословный перевод как «выбор области» в нашем случае, для какого рынка машина произведена :

в моем случае это Европа ! Далее выбор языка, Английский, далее забиваем все пустые строки всяким бредом, в пункте «repairer region» можете найти Russia и выбрать !
— запустилось окно программы, теперь нам нужно проверить, изменились ли настройки реестра;
— в самом верху есть кнопки выбираем как на картинке Setup VIM-select :

— если вы все правильно сделали и мои файлы reg вам подошли, то в верхней строчке окна должно быть прописано или должна быть возможность выбора пункта под названием «XHorse — MVCI»:

— СОБСТВЕННО И ВСЕ ПО ПРИВЯЗКЕ КАБЕЛЯ К ПРОГРАММЕ
5) Первое подключение к мозгам КОРОВКИ :
— воткните кабель по назначению!)) в порт находящийся слева от руля в низу (маленькая крышка (заглушка))
— подключите кабель в USB порт вашего ноута
— проверните ключ в предстартовое положение (когда вся приборка засверкает)

— Запускаем программу и нажимаем клавишу Connect to Vehiclу, появится вот такое окно с процессом подключения в виде заполняющейся полосы :

— после соединения появляется окно с выбором кодом модели машины, кодом двигателя, опций и тд. :



— когда вы заполните последний пункт как на фото 8, кнопка «NEXT» станет активной, НАЖИМАЕМ и ждем пока происходит соединение с мозгами машины

— далее появится окно «System selection menu» где вы сможете выбрать все возможные узлы и агрегаты вашей коровки для их последующего тестирования и настройки;

— для пробы я выбрал Multi-Mod MT и нажал на эту надпись два раза, появилось окно » Diagnostic Cod» с строчкой «None» где далее слева нажал на кнопку «active test»

программа мне выдала 2 пункта проверки и регулировки сцепления и коробки

далее нажал в меню слева кнопку «Data list» и мне выдало кучу параметров коробки, отслеживаемых в реальном времени:

Кабель заказывал на АЛИКЕ ЖМИ СЮДА

Ну вот как бы и все! Это не конечный ПОСТ, он будет еще 300 раз корректироваться, в виду того, что писался он на скорую руку, мог что-то не учесть или забыть дописать!
В комментариях делимся опытом, типа : Машина такая-та, все работает, минимальное описание по настройке вашего авто и тд. Не Жадничайте по Информации, сегодня ты помог, завтра тебе, Земля то круглая !
Если возникнут вопросы, пишите, будем разбираться вместе !
НЕ СУДИТЕ СТРОГО! КОМУ ПОМОЖЕТ, ЖМЯКАЕМ НРАВИТСЯ и ПОДПИСЫВАЕМСЯ !
Источник: www.drive2.ru
J2534. Что это? Какие устройства и программы поддерживают?
Многие слышали или встречали такой термин как «J2534» или «PASS-THRU». Но многие так и не знают, что это и как можно использовать. 3 из 5 наших клиентов не знают, что Сканматик можно использовать с множеством различного ПО.
Мы попробуем рассказать о о стандартах SAE J2534 (известных как Pass-Thru), а самое главное как это можно использовать.
Стандарт SAE J 2534 был введен в 2002 году под давлением американских властей с целью обеспечить возможность перепрограммирования ЭБУ через универсальные интерфейсы. J 2534 определяет стандартный интерфейс для осуществления обмена данными между компьютерными программами и автомобилем. Благодаря этому, производитель программного обеспечения может, не вникая в особенности аппаратной реализации адаптера стороннего производителя, использовать его для осуществления программирования блока управления.
Многие производители автомобилей решили поддержать данный стандарт и начали использовать J2534 не только для программирования, но и для диагностики.
В числе первых разработчиков J2534 была компания Drew Tech с устройством Mongoose. Toyota же первой начала использовать J2534 интерфейс для полноценной диагностики всего ряда автомобилей Toyota и Lexus.
На сегодняшний день многие устройства имеют совместимость с J2534, что может значительно расширить их функционал.
Перечислим устройства, которые имеют PASS-THRU, представленные в нашем магазине:
- Openport 2.0
- Сканматик 2 / Сканматик 2 ПРО
- Mongoose JLR / Mongoose 3 в 1 / Mongoose Toyota
- VAS 5054 / VAS 6154
- Allscanner JLR VCI
- JLR VCI DOIP
- GM MDI
- Ford Mazda JLR VCM 2
- Volvo DICE
- Toyota Mini VCI
- Скандок
- FVDI J2534
- UCDS (производитель заявляет совместимость, НО нам добиться работы не удалось)
Данный список далеко не полный, будем пополнять.
Какие программы поддерживают стандарт J2534 PASS-THRU?
- Toyota Techstream. Полнофункциональная диагностика всего модельного ряда Toyota и Lexus.
- Mercedes-Benz Xentry PassThru . Диагностика грузовых и легковых Мерседес.
- VAG ODIS Service и ODIS Engineering. Диагностика, кодирование, программирование автомобилей Audi, Skoda, Volkswagen, Seat.
- Forscan. Диагностики и кодирование автомобилей Ford и Mazda.
- Honda HDS. Диагностика, кодирование, программирование автомобилей Honda и Acura
- Nissan Consult 3+. Диагностика и кодирование Nissan, Infiniti. Работа в ограниченном режиме.
- JLR SDD. Диагностика, кодирование, программирование автомобилей Land Rover (c 2005) и Jaguar (с 2000) по 2018 годы выпуска.
- GM GDS-2/SPS. Диагностика, кодирование и программирование концерна General Motors. В данный момент запуск возможен только после покупки лицензии.
- Volvo VIDA. Диагностика легковых автомобилей Volvo до 2015 года выпуска.
- множество флешеров для прошивки различных автомобилей. OpenBox, PCM Flash, Combiloader и прочие.
Источник: obdmaster.ru
Вторая жизнь китайского чудо-шнурка J2534
Давным-давно, когда деревья были большими и вариации комплектаций одной модели автомобиля можно было перечислить пальцами одной руки, был куплен диагностический адаптер, о котором сегодня пойдет речь. Творение неизвестного китайца получило название Mini-VCI J2534. Откуда он взялся доподлинно неизвестно, но позиционируется как интерфейс для работы с различными Тойотами, а так же как J2534 совместимый адаптер (спойлер — нет). В момент покупки его было достаточно для диагностики и ковыряния в мозгах автомобилей тех лет, но прогресс не стоит на месте и в нынешних реалиях он если так можно выразиться — «не вывозит». О том, можно ли с этим что-то сделать и пойдет речь ниже.
Итак, знакомьтесь — наш пациент снаружи и внутри:

Внутри него живет 16/32 bit ARM7TDMI-S™ CPU, пара CAN-контроллеров, 2 UART’а и еще кучка полезной и не очень периферии.
Суть проблемы
Если закрыть глаза на мелочи в виде почти полного несоответствия стандарту J2534, есть у него проблемы гораздо хуже, а именно невозможность отправлять данные по протоколу ISO-TP длиннее ~48 байт. С последним мириться было нельзя и в голове засела мысль, а что если получится сделать этот мир чуточку лучше.
Если кратко, как происходит передача данных длинной больше 8 байт по CAN-шине (длина сообщения CAN ограничена восемью байтами). Существует такой стандарт ISO15765, он же ISO-TP (Transport Protocol), который покрывает 2 модели OSI (сетевой и транспортный). Передача данных длиной более 7 байт выглядит так:
- Источник отправляет First Frame (FF) с данными об общей длине передаваемых данных и первыми 6 байтами payload’а.
- Приемник отвечает ему Flow Control фреймом, в котором говорит о минимальном допустимом времени между посылками CF (о них ниже) и количестве CF, после которого источник снова должен дождаться Flow Control фрейм.
- Источник после приема Flow Control’а продолжает отправку данных фреймами Consecutive Frame (CF) с заданным интервалом о ожиданием следующего Flow Control (если об этом было сказано в пункте 2) https://en.wikipedia.org/wiki/ISO_15765-2
Что происходит на самом деле и почему ничего не работает нам поможет выяснить обычный анализатор CAN шины (Can Hacker/PEAK CAN и иже с ними). Итак, картина маслом — все смешалось, кони, люди. Приемник сказал жди от меня каждые 8 Consecutive Frame’ов Flow Control и шли мне каждый Consecutive Frame не менее чем через 10 мс, а шнурок мало того, что проигнорировал ожидание FC, так еще и на минимальную задержку между CF не обратил внимания.
Flow Control от приемника — 30 08 0A FFFFFFFFFF, где 08 — количество CF, после которого источник снова должен дождаться Flow Control фрейм, 0A — минимальное допустимое время между посылками CF.
Что мы имеем по факту — задержка около 1мс между CF, вместо желаемой 10мс и отсутствие ожидания Flow Control, что полностью ломает весь процесс передачи.

Ну и ладно, подумаешь, организуем свой ISO-TP с задержками и таймингами, благо шнур позволяет работать с сырыми данными CAN и посмотрим что получилось (гадость какая)

В шнурке используется преобразователь USB-UART FT232, который имеет некоторые проблемы при работе с USB 3.0. И проблемы эти — конские задержки, которые не настраиваются из драйвера, хотя на USB 2.0 все работает, но где вы сейчас найдете честный контроллер USB 2.0 в матери/ноутбуке. В общем, ручное форматирование тоже отпадает, задержки между CF не поддаются критике, работать это тоже не будет.
Остается крайняя мера — залезть внутрь и попробовать исправить кривой софт костылями, насколько это возможно. Не знаю как, но прямо по USB из контроллера можно вычитать и записать флеш память даже без разборки шнурка с помощью программы Flash Magic. После чтения загружаем прошивку в IDA, процессор ARM Little Endian архитектура ARMv4T. Немного помощи руками, создание недостающих регионов и прошивка готова к исследованию.

Функция с реализацией отправки данных по ISO-TP была найдена от обратного (CAN периферия — отправка — обертка — сама функция). Что же по исходникам — вот кусок кода с отправкой данных. То, о чем говорилось выше не предусмотрено вообще никак.
iso_tp_fc_received_ptr = iso_tp_fc_received; while (sended_len < send_len) < if (ff_flag) < if (cf_counter >= 0xF) cf_counter = 0; else ++cf_counter; v21 = 8; tx_data.data[0] = cf_counter + 0x20; // Сборка Consecutive frames v23 = v21 — 1; if (send_len — sended_len < v21 — 1) v23 = send_len — sended_len; memcpy(send_data_[sended_len], v23); can_tx_1(ctx, sended_len += v23; >else < tx_data.data[0] = 0x10; // Сборка First frame tx_data.data[1] = send_len; // Больше 255 байт не предусмотрено, хотя по стандарту должно быть 4 с копейками кб, хотя о чем это я memcpy( cf_counter = 0; set0(iso_tp_fc_received_ptr); can_tx_1(ctx, if (!wait_fc(ctx, 700)) // Ждем flow control return 0; ff_flag = 1; sended_len += 6; >>
Как видно, Flow Control шнурок ждет всего один раз, а дальше даже не пытается соответствовать ISO-TP.
Как только он получит FC, сразу же без задержек начинает слать остатки данных в Consecutive Frame’ах. Ладно, но может он хотя бы обращает внимание на данные из Flow Control? Ха-ха. Нет. Вот функция обработки приема данных по ISO-TP, нас интересует только прием Flow Control.
header = rx_byte_0 if (can_rx_ctx->rx_can_data[0] switch (header) < //Тут были обработчики других заголовков, но они нам не нужны case 0x30: //Flow control set_1(iso_tp_fc_received); result = 0; break; > >
Как видим, просто выставляется флажок, что был принят какой-то flow control, а что там в нем нам не важно (мысли китайца).
Что же делать?
Дешево и сердито — засунуть простую задержку между отправкой Consecutive Frame’ов, чтобы приемник успевал отправить свой Flow Control там, где нужно и получил следующий CF уже после. Все что нам нужно, это найти место, в цикле с отправкой, куда можно засунуть переход в функцию с задержкой, благо мест таких полно, а замененные инструкции можно выполнить в новой функции, так что мы ничего не потеряем. Берем IAR, в нем есть поддержка именно такого процессора, чистый проект на ассемблере и пишем элементарный цикл
_my_func STMFD SP!, LDR R10, =39062 ; ~7800 на 1 мс B compare sub: SUB R10, R10, #1 compare: CMP R10, #0 BGT sub MOV R0, R4 ; та самая замененная инструкция на переход LDMFD SP!,
Конечный результат выглядит так — слева то, что было, справа то, что стало. Инструкция MOV R0, R4 перенесена.

Прошиваем и наслаждаемся прекрасной работой без сбоев.

Конечно, можно было сделать все по фен шую, и правильную обработку Flow Control фрейма, и честные задержки по желанию приемника, и ожидание остальных Flow Control’ов. Но результат в любом случае достигнут и терять время больше чем один вечер на такое желания нет.
Еще интересный момент — контроллер судя по всему китайский перемарк, т.к. определился программой по внутреннему ID как LPC2114, в котором, на минуточку, вообще нет CAN контроллера, если верить даташиту. Видишь CAN? И я не вижу, а он есть. Вот так вот.
Кому интересны прошивка и база IDA, то вот. Пароль habr.com
- can
- автомобильная электроника
- диагностика автомобилей
Источник: habr.com