![]() |
Цитата:
Цитата:
Цитата:
|
Можно использовать OpenPort 2.0 Tactrix в качестве хаккера. Фильтры и т.д., но с командной строки. Почитать можно на сайте производителя в разделе Developer.
Можно самому спаять КАНхаккер от mictronics.dе, там же и почитать есть что. У меня работает это устройство уже лет 7-8, поддерживает многие программы... |
Цитата:
Цитата:
|
Цитата:
какой бит и что значит. |
Цитата:
|
Цитата:
Цитата:
Но ещё есть- в каждой версии протоколов,- определённое, диагностическое сообщение, Отправляешь его на блок. и он начинает транслировать всю информацию и параметры блока, Абсолютно и без запросов. пока не отправишь стоп. почитайте протоколы- для общего развития . через переводчик. гугл коректно PDF переводит . но без таблиц и картинок. После, на базе какого нибудь адаптера можно будет проводить пробы. лично я стараюсь докапаться до автокома, железо достаточно крутое. Основание- смена вин на Митсубиси Кантер. а чтобы на всех остальных FULL-MASTER получить. надо добавить строчек в прогу |
Цитата:
|
Есть предложение по применению знаний.
|
Хорошая тема заглохла..видно сманили топикстартера на большие оклады китайцы,протоколы ломать :wink: есть кому продолжить тему?Или все НИОКР по этой теме прекращены?Или таки засекречены?:rolleyes: Я бы присоединился к "исследованиям",хоть и "грязнота"(не чип-тюнер/прошивщик, а электрик по европейсам ),но все ж какое-никаое образование есть,помню с какого конца байты читаются =) "регистр","проверка четности" и прочие слова тоже не пустой звук. Мне вот до сих пор интересно узнать,на каких протоколах общаются М.С.6.2 на Стралисе и ЕДЦ7 на Евро-5.Знаю,что в первом случае К-лайн,во втором какой-то КАН..а вот К-лайниками Стрпалисов еще никому прочитать не удалось
|
Протоколы Форд, VAG (частично, но почти всё), Тойота, Ниссан (частично, но почти всё) "пали смертью храбрых" за это время. Все оказалось даже проще чем думали...
|
Эмуляторы датчиков для VAG-группы оказались вообще универсальными. Главная сложность с эмуляторами - правильно представлять САМО физическое поведение эмулируемой системы, и затем его имитировать. Для примера - имитируем ДМРВ (ФОРД). Для этого:
1. Необходимо посылать в шину 2 сообщения со своими идентификаторами. Одно шлется только в ответ на соответствующий запрос ЭБУ (когда он придет), второе - периодически один раз в 32 мс. 2. Данные условно можно разделить так: служебные данные и непосредственно измеряемые данные. ЭБУ с некоторой периодичностью отправляет сообщение - запрос, в котором содержится, в частности, информация о режиме работы датчика ДМРВ (оказывается, у ФОРД их несколько и по команде от ЭБУ ДМРВ должен в них как бы "переключаться", а вот, отчего режимы зависят - до конца не ясно, - нужно углубленно изучить трейсы с реальной машины при реальной езде). Ну, и собственно, данные о расходе (это в периодическом сообщении от ДМРВ), в формате 4 байта (двойной точности) - в м.куб/сек. Некоторые байты чисто булевы - ("есть связь - нет связи", результаты самодиагностики датчика "исправен-неисправен" и т.д.), некоторые (их 2 - по одному для каждого 8-мибайтного сообщения) - всегда имеют значение 0 - по-видимому, зарезервированы, а сейчас не используются.. и т.д. Основная сложность в эмуляции - понять как переключаются режимы и от чего это зависит... То есть в общем эмулятор готов, однако, к нему нужна программная надстройка имитирующая его поведение. В настоящий момент, при совместной работе готовых эмуляторов датчиков скорости, ХХ, газа, ДМРВ, машина "глохнет" через 20-25 сек работы, при этом диагностика передает, что причина - ДМРВ (неверный режим).. Как-то так. Остальные байты в этих двух |
Цитата:
|
Alexo, Тема конечно интересная, но :
К примеру по форду от марки к марке (а точнее идентификатора мотороного блока) есть отличие в запросе PID к примеру МАФ по заводскому протоколу и по ОБД. То есть по итогу получаем разные значения одного и того же параметра (так написали софт софтописатели форд :biggrin1:) Еще я так понимаю основная вкусность вашей идеи это интерепретация сообщений CAN шины... Я так понимаю нужна билблиотека CAN сообщений, а эти сообщения очень могут отличаться (и реально отличаются), особенно у переферийных блоков разных производителей Тем не менее за поднятие темы спасибо! |
Цитата:
|
У переферии как раз CAN ID сообщений может существенно отличаться, особенно что касается работы систем комфорта, развлечений и т.д.
|
Вложений: 2
Приложу пожалуй несколько файликов по теме.
Правда вся инфа на английском, но для тех кто в теме это не проблема :super: |
Может де компилировать прошивку Модуля 2CAN для какой нибудь CAN сигнализации. К примеру Starline E90. И вообще сама платка с ARM процессором на борту интересный объект для исследования. Она переводит can запросы в обычные Rx Tx.
|
Чем elm-327 в терминале не устраивает!И какая декомпилляция (это не ассемблер)! Суть протокола iso 15765 почитайте!
|
Вложений: 3
Ну для начала так
|
Один из участников любезно предоставил протокол обмена так называемого замедлителя, который применяется в грузовых и автобусах для регулирования крутящего момента на колесах в зависимости от многих факторов. Если он разрешит, то я выложу и сам протокол в дальнейшем. А пока- для конкретного примера этого замедлителя (ZF, насколько я понимаю):
Допустим, нам необходимо насколько возможно протестить замедлитель, протокол обмена по КАН с которым у нас имеется. В протоколе вначале идет описание распиновки разъема замедлителя. Относительно CAN интересны пины 21-24 и 48-51. При этом, для анализатора (допустим, Marathon – стоимость которого на сайте производителя вместе с ПО около 6500 руб. всего-то) нужны пины 22 и 49 (или 23 и 50 – как они обозначены в описании, - «redundant» или «дополнительные», так как скорее всего к ним ничего не подключается и они нужны как раз для подключения подобного анализатору оборудования). Возможно, надо будет подключить и массовый провод (24 или 51) и установить терминатор (резистор на 120 Ом) между (21 или 48 и земля). Можно и «вычислить» шину CAN идущую от разъема этого замедлителя где-то в другом, доступном месте и там к ней подключиться зачистив каждый из двух проводов для подключения. А есть и КАН-крокодилы, которые позволяют подключаться к проводам без гальванического контакта. Ну, допустим, подключились, и, запустив ПО CANwise на ноуте, выбираем скорость. Тут надо пояснить – имеющийся протокол не описывает скорость обмена, так как он представляет из себя только лишь часть большого описания, касающаяся только замедлителя (это видно из того, что написано, например, «page 19 from 54», то есть, это было описание не только одного конкретного замедлителя, но, возможно всей системы, в рамках которой он работает). Видимо, где-то в общих описаниях и было конкретное значение скоростей обмена. Ну, да не беда – стандартизированных скоростей всего-то с десяток, а с такими системами как двигатель, ходовая и проч. вообще скорее всего скорость 500 кбит/сек. Так что скорость, хоть она и не описана – не проблема. Хорошо, вычислили скорость – т.е., просто установили очередную стандартную из предлагаемого списка и запустили прогу «стартом». Как только со скоростью «угадаем» и связь установится, - сразу в поле Receive появится куча данных. Далее удобнее использовать режим проги Tracer, в котором сообщения не «бегут» а «стоят» на месте, а в них данные меняются. Теперь непосредственно описание сообщений и данных – в принципе все понятно из описания – кто (какой прибор) и с какой периодичностью посылает данные (например, скорость замедлитель получает во 2-м и 3-м байте сообщения от системы круиз контроля, сам замедлитель шлет в 1-ых четырех битах 1-го байта одного из своих сообщений информацию о том включен он или отключен, если включен, то по какой причине (что инициировало его включение в работу – ABS, ASR, transmission control, acceleration pedal и т.д.).) Всего по этому протоколу обмена с десяток различных сообщений, в которых приводится и управляющая и диагностическая иформация. Теперь, что можно сделать дополнительно, кроме непосредственно диагностики. А можно очень просто «откинуть» «подозрительный» прибор, с которым происходит общение по КАН у замедлителя, и вместо него посылать свои данные с помощью той же проги CANwise. Тут, конечно, надо знать что посылать, но процентов 90 описано в самом протоколе, а можно снять логи с заведомо испраного и т.д. – поле деятельности необъятное. Просто хотел сказать на этом примере для авто, оборудованных CAN – прибор за 100 баксов + протоколы обмена > любого самого крутого дилерского сканера |
прошу прощения - поправка - насчет "вырванности" из какого-то более общего описания - это не так - перепутал с другим протоколом, коих у меня уже есть немало. А в описанном выше - полный протокол, правда, ни намека на скорость.. Значит, есть все-таки ещё какое-то более общее описание шин. Однако, как я показал выше, скорость обмена не принципиальна и вычисляется очень быстро.
|
про сам замедлитель:
[Ссылки могут видеть только зарегистрированные пользователи. Зарегистрироваться...] |
Цитата:
Давно не был на форуме, спасибо за эту инфу, - попробую поразбираться. Однако, навскидку - не совсем ясно, как тут вычислить идентификаторы сообщений?.. |
Version: ELMConfig 0.2.13b
Adapter: ELM Driver: D2XX Baudrate: 500000 Connection: Scan 11:28:31.373 270 8C AF 00 00 B1 00 00 7B красным индификатор, дальше данные, а толку, если нет документации на ID CAN моей машины!Сидеть и расшифровывать каждый ID!Тем более сейчас через шлюз поток идет!И что к чему обращается не известно!поток CAN 11 бит 500 кгц.Это каждый ID выделить и собрать в кучу,от цифр одних можно захлебнуться!Это только маленький кусочек лога! 11:28:31.374 278 80 04 00 88 3F 58 B1 13 11:28:31.374 370 6F B1 00 00 27 00 00 00 11:28:31.375 378 00 00 33 00 7E 00 80 00 11:28:31.375 0FA 00 00 AA 00 00 AB 00 00 11:28:31.375 430 00 00 7D 22 3A 00 53 5E 11:28:31.383 270 8C AF 00 00 B1 00 00 7B 11:28:31.384 278 80 04 00 88 3F 58 B1 13 11:28:31.384 370 6F B1 00 00 27 00 00 00 11:28:31.385 378 00 00 33 00 7E 00 80 00 11:28:31.387 0FA 00 00 AA 00 00 AB 00 00 11:28:31.388 391 40 00 00 01 00 10 2D D2 11:28:31.393 270 8C AF 00 00 B1 00 00 7B 11:28:31.394 278 80 04 00 88 3F 58 B1 13 11:28:31.395 370 6F B1 00 00 27 00 00 00 11:28:31.395 378 00 00 33 00 7E 00 80 00 11:28:31.398 0FA 00 00 AA 00 00 AB 00 00 11:28:31.400 430 00 00 7D 22 3A 00 53 5E 11:28:31.404 270 8C AF 00 00 B1 00 00 7B 11:28:31.406 278 80 04 00 88 3F 58 B1 13 11:28:31.408 370 6F B1 00 00 27 00 00 00 11:28:31.409 378 00 00 33 00 7E 00 80 00 11:28:31.411 0FA 00 00 AA 00 00 AB 00 00 11:28:31.412 391 40 00 00 01 00 10 1D E2 11:28:31.414 270 8C AF 00 00 B1 00 00 7B 11:28:31.417 278 80 04 00 88 3F 58 B1 13 11:28:31.418 370 6F B1 00 00 27 00 00 00 11:28:31.420 378 00 00 33 00 7E 00 80 00 11:28:31.423 0FA 00 00 AA 00 00 AB 00 00 11:28:31.424 430 00 00 7D 22 3A 00 53 5E 11:28:31.426 270 8C AF 00 00 B1 00 00 7B 11:28:31.428 278 80 04 00 88 3F 58 B1 13 11:28:31.429 370 6F B1 00 00 27 00 00 00 11:28:31.431 378 00 00 33 00 7E 00 80 00 11:28:31.433 0FA 00 00 AA 00 00 AB 00 00 11:28:31.434 391 40 00 00 01 00 10 0D F2 11:28:31.437 270 8C AF 00 00 B1 00 00 7B 11:28:31.439 278 80 04 00 88 3F 58 B1 13 11:28:31.440 370 6F B1 00 00 27 00 00 00 11:28:31.442 378 00 00 33 00 7E 00 80 00 11:28:31.444 623 00 00 00 00 0F 82 21 19 11:28:31.446 0FA 00 00 AA 00 00 AB 00 00 11:28:31.447 430 00 00 7D 22 3A 00 53 5E 11:28:31.449 270 8C AF 00 00 B1 00 00 7B 11:28:31.451 278 80 04 00 88 3F 58 B1 13 11:28:31.453 370 6F B1 00 00 27 00 00 00 11:28:31.455 378 00 00 33 00 7E 00 80 00 11:28:31.457 0FA 00 00 AA 00 00 AB 00 00 11:28:31.458 391 40 00 00 01 00 10 FD 02 11:28:31.460 398 03 00 00 00 00 00 00 00 11:28:31.462 270 8C AF 00 00 B1 00 00 7B 11:28:31.464 278 80 04 00 88 3F 58 B1 13 11:28:31.466 370 6F B1 00 00 27 00 00 00 11:28:31.467 378 00 00 33 00 7E 00 80 00 11:28:31.470 0FA 00 00 AA 00 00 AB 00 00 11:28:31.472 430 00 00 7D 22 3A 00 53 5E 11:28:31.473 270 8C AF 00 00 B1 00 00 7B 11:28:31.475 278 80 04 00 88 3F 58 B1 13 11:28:31.577 378 00 00 33 43 08 00 00 7D 22 3A 00 53 5E (что-то сделал,попробуй уследи!) данные изменились! |
Не все так грустно!
У Вас в логе всего-то 6 сообщений. Для начала - что это за шина (Двиг, комфорт, ещё какая-то)? Во-вторых, я уже писал выше - для Марафона есть режим работы программы, когда сообщения не бегут, а "стоят" на месте, и очень удобно смотреть меняющиеся данные - их сразу видно. Это необходимо чтобы сначала некотырыми нехитрыми изменениями понять на что они влияют. Например, если это шина упр. дв-лем - нажать на педаль газа, глянуть какие данные меняются, если комфорт - включить кондиционер, увеличить заданную температуру и т.д. и т.п. В ELM есть подобный режим? |
Я знаю что шесть ID! В ELM можно фильтрацию поставить и сидеть на все нажимать и смотреть где изменилось от этого делать вывод к чему относится!Это шина CAN 11 бит 500 кгц через шлюз двигатель, приборка, штатная сигнализация, SRS, BCM, климат!
|
Вообще, просто по логу пытаться разобраться, без сопутствующих знаний и действий невозможно.
Как я уже говорил, - зная, какая это шина, мы уже можем примерно представить набор данных (параметров), которые там могут быть. Во-вторых, - постепенно вычислять конкретные байты (биты) изменяя в самом авто всеми возможными способами. |
Цитата:
а 11 бит означает, что используется 11-битный идентификатор сообщений (бывает ещё 29-тибитный, с чем я столкнулся первый раз сегодня в присланном протоколе обмена с замедлителем, если здесь идентификаторы например "0FA" или в стандартном обозначении 16-тиричной системы "0x0FA" или "0FAh", то для замедлителя ID, например такой: 180FE0010h) Конечно, если был бы протокол обмена, эти "пляски с бубном" не нужны были бы..:smile: |
500 кбит/сек, да, просто для себя так называю! В основном 11 бит, 29 битный редко попадается!то для замедлителя ID, например такой: 180FE0010h это 29 битный индификатор
|
Кстати, по логу - периодичность посылки сообщений около 10 мс (разница между соседними с одним ID). По логу время чуть больше - порядка 12-13 мс, однако, это объясняется "тормозами" проца самого ELM и вывода на консоль данных. Так как производители, как правило, устанавливают "круглую" периодичность посылок.
Вполне вероятно, что в логе ещё не все сообщения, так как сообщения с конфигурацией передаются с периодом в несколько секунд. Например, в рассматриваемом протоколе для замедлителя периоды для различных сообщений 10, 50, 100 мс и 5 сек для конфигурационного сообщения... |
нет,просто выставил не принимать не потвержденные данные NO_ASK,только ASK (потверждение посылки) потому и пропуски!Просто усеченный поток!Для удобства!
|
временной отрезок, который охватывает приведенный лог - около 200 мс..
|
Нижняя строчка не в счет,добавил просто где изменения!Это небольшой кусочек,а так около 10 мб лога!
|
Ну, так установите фильтр на какое-нибудь одно сообщение и начните с него. Для начала надо просто понять, где байты с дискретными (булевыми) параметрами, а где - с аналоговыми. Измените что-нибудь, короче, делайте уже что-нибудь! Народ же ждет!:smile:
От себя обещаю - в субботу будем подключаться к Кобальту, краткий отчетик забацаю.. |
Цитата:
|
Нет 13 байт,это изменения 378 00 00 33 43 08 00 00 7D (22 3A 00 53 5E)
378 22 3A 00 53 5E 00 00 7D Пробел не поставил!Да особо заниматься не когда, стройка дома! |
На примере приведенного лога и отловленных изменений попробую «потренироваться» с попутным объяснением своих действий. Итак, допустим, что в первом байте 378h сообщения (на самом деле в протоколах и байты и биты обозначаются начиная с 0-го, то есть, в 0-м байте) произошли изменения при нажатии на педаль газа. То есть, до нажатия было 00h а стало 22h (не забываем, что речь идет о 16-ричной СС, поэтому и приставляем буковку “h”, чтобы не спутать с 10-ричной). Вообще, ПО, которое идет вместе с анализаторами позволяет отображать данные и в 10-чной СС (и даже в ASCII), однако, ниже покажем, что в случае с CAN это, как правило, далеко не всегда удобно при дальнейших операциях. Итак, мы заметили, что при плавном нажатии на педаль газа, 0-ой байт также плавно начинает изменяться от 00h до 22h, при этом, мы понимаем, что нажали педаль совсем немного, по ощущениям точно не более половины и даже трети. Тут хорошо бы сделать отступление и сказать, что хорошо бы нажимать педаль на разную величину и одновременно снимать данные с байта (скажем, примерно на ¼, на ½, на ¾, на «полную», и одновременно записывать показания байта в этих положениях).
Тогда, запустив обычный виндовый калькулятор, и, выбрав режим его работы «Программист», отмечаем «8 байт» и «Hex» (16-ричный), пишем «22», тыкаем «Dec» (переводим в десятичную СС) и видим: 34. Имея другие «точки» засечки с другими положениями педали газа, убеждаемся, что данный байт – нажатие педали газа в %. То есть, буквально для нашего случая, – педаль газа нажата на 34%. Более сложный случай, где уже просто необходима «16-тиричность» представления данных: Допустим, в первом положении ключа зажигания у нас были нули в первых двух байтах, а после того как машину завели и нажали педаль газа, стало соответственно в 0-м байте 22h, в 1-м 3Ah (как в реальном логе). Отсюда можно сделать предварительный вывод – на какой-то параметр, который связан с нажатием на газ отведено 2 байта. (Опять же, лучше отметить несколько точек с разным нажатием на педаль.) Хорошо, поняли что меняются два байта и с уверенностью 99% то, что эти два байта означают одну аналоговую величину. Далее делаем следующее – просто «составляем» вместе эти значения, получаем 3A22h. Почему именно в таком порядке (на самом деле может быть и наоборот – 223Ah, зависит от того, как общие договоренности осуществлены в протоколе обмена), но, как правило, старшие байты идут вначале, младшие – в конце. Итак, с помощью калькулятора переводим 3A22h в десятичную СС, получаем 14882. То есть, если запись данных занимает более 1-го байта (а бывает и 3 и 4, и даже 8 байт для записи некой величины), то составить верное значение можно только в 16-ричном виде. Потом уже составленное можно (а для анализа и нужно) перевести в 10-чное. Теперь, что же может означать 14882? Конечно, необходимы и косвенные признаки – наличие нескольких точек. Например, на холостом ходу были значения байтов 0-го и 1-го соответственно 40h и 1Fh. Составили, перевели в десятичное, получили 8000. Теперь с определенной долей уверенности можем сказать, что в первых двух байтах сообщения 378h содержатся данные о частоте оборотов двигателя (умноженные на 10 – для повышенной точности)… Вот так и вычислять пытаться, а что делать? :wink: Попозже поговорим о дискретных сигналах. |
Уже "теплее" - у SCANIA выложено в открытом доступе:[Ссылки могут видеть только зарегистрированные пользователи. Зарегистрироваться...]
|
а вот кое-что по ФОРД:
[Ссылки могут видеть только зарегистрированные пользователи. Зарегистрироваться...] |
и вот парень Фиесту юзал:
[Ссылки могут видеть только зарегистрированные пользователи. Зарегистрироваться...] |
Текущее время: 17:57. Часовой пояс GMT +3. |
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод:
zCarot