1. Привет, Гость! Присоединяйся к нашему новому проекту "Террановоды на карте"!

Террано-Клуб.Ру → Alexo. Специфический бортовой журнал

Тема в разделе "Бортовой журнал владельца", создана пользователем Alexo, 21 май 2019.


  1. Alexo

    Alexo Новичок

    Сообщения:
    15
    Всем доброго дня!
    Чуть больше недели назад и я стал обладателем Террано - 1,6, полный привод, Комфорт.
    Специфика моего журнала будет заключаться в том, что у меня хобби (конечно, связанное с работой:)) - это система управления транспортных средств. До этого, я разбирался с некоторыми марками авто. Сейчас начну с Терранчиком. О чем и буду вести журнал.
    Для начала, чтобы было понятно, о чем речь, и чтобы не переписывать, приведу цитаты с форума автодиагностов, где я когда-то активно участвовал. На тот момент у меня был Кобальт.

    Ещё раз - удалось связаться с шиной (то есть, каким-то образом увидели, что данные идут и(или) записываются), - значит, "транспортно - стандартный" уровень CAN преодолели. Далее - надо думать, как интерпретировать полученные данные. Это все равно, что получил я, к примеру (пример, кстати, реальный, - из того времени, когда изучал ОБД и у меня на авто как раз периодически высвечивался чек), в 4-м и 5-м байте ответа на запрос 0x7DF 01 03 00 00 00 00 00 00 (идентификатор и 8 байт данных) получил ответное сообщение 0x7E8 04 43 01 08 33 AA AA AA (здесь в принятой форме 16-ричной записи (0x) я указал только для идентификаторов сообщений, хотя данные представлены также в 16-ричной форме) Теперь надо понять, какая информация тут представлена. Для этого берем открытое описание OBD и интерпретируем: "0x7DF" - это идентификатор запроса на диагностику по ОБД стандарту (об этом я прочитал ранее, причем в разных местах, в Вики, на буржуйских сайтах и форумах канхакеров и т.д. и уже знал, с каким идетификатором должно быть это сообщение. Далее нулевой байт этого сообщения имеет значение "01". Этим я сообщаю системе диагностики, опять же по стандарту ОБД, что "далее следует 1 байт с данными, а после него - можно байты не читать, - все равно в них не содержится никакой информации". То есть, нулевой байт определяет длину поля со значащими данными. Следующий (первый) байт имеет значение "03". По стандарту ОБД - это служба, отвечающая за хранение и предоставление по запросу действующих на настоящий момент ошибках. Теперь ответное сообщение: "0x7E8" - идентификатор стандартного ответного сообщения. "04" - то же самое - количество следующих байт с полезной информацией "43" - байт, получаемый суммированием 16-ричных 03 (которое я посылал в запросе) и 40 (40 прибавляется всегда в ответном сообщении если все нормально и запрос корректный и принят) - тем самым подсистема диагностки авто как бы дает понять, что она принимает и обрабатывает запросы. Дальше - непосредственно данные: "01" - количество сообщений, содержащих данные об ошибках (ведь их может быть и не одна) В данном случае - ошибка одна и она вполне вместилась в это же сообщение, так как на код каждой ошибки тратится 2 байта. (Видимо, поместится и две ошибки, просто, соответственно, в нулевом байте будет указана длина поля со значащими данными не 4 а 6.) "08" и "33" - непосредственно код ошибки. Не буду долго расписывать, как он декодируется (можно посмотреть в Вики), скажу только, что прикольно - визуально в 16-ричной системе можно сразу сказать без "особой тренировки", что код ошибки P0833. Далее - по-крайней мере в моем Кобальте незначащие байты заполняются именно АА (может, видимо, быть по другому, однако это не интересует - по нулевому байту можно точно сказать, сколько байт рассматривать). А вот далее - по коду ошибки узнаем, что эта ошибка - датчика положения педали сцепления.. Так вот, все эти "описания" как интерпретировать все данные (получаемые, отсылаемые) и проч. и описаны в открытом протоколе обмена ОБД. ---------- Вот реальный принт-скрин лога в момент, когда я посылал запрос и получал ответ как раз для вышесказанного:

    Клуб Ниссан Террано | Форум Terrano-Club.Ru | Фото: log.jpg
    Вообще, сообщения делятся на два вида - постоянно "висящие" в шине - это служебные, которой обмениваются блоки как раз по протоколу производителя, некоторая информация из которых понятна, о чем я писал ранее. В данном случае, во фрагмент кадра попали несколько сообщений между моим запросом и ответом системы. По времени получения кадра видно, что ответ на запрос пришел примерно через 1 мс. Интересно, что постоянные служебные сообщения посылаются с периодом менее 1 мс. Это очень быстро - учитывая скорость обмена - 500 кбит/с. Для эмуляторов это говорит о том, что дешевенькие простенькие контроллеры, допустим ELM327 не справятся с задачей полной эмуляции... ---------- Добавлю - это выполнено при помощи универсального CAN-USB адаптера Marathon. Можно было, конечно, настроить его аппаратный фильтр для пропуска только интересующих сообщений (настраивается как для одиночного сообщения, так и для группы идентификаторов - по диапазону). Фильтры чаще всего и применяются в подобных случаях - когда в сети много сообщений (сеть сильно загружена), и, чтобы не тратить процессорное время контроллера адаптера и программно-процессорное время непосредственно обрабатывающей системы (например, компа с соответствующей ОС и ПО), и премяняются фильтры. Как правило, при разработке протоколов обмена стараются скомпоновать сообщения по их идентификаторам наряду с приоритетностью, принадлежностью к тем или иным группам и проч. ещё и из соображений простоты и удобства пользования аппаратной фильтрацией. Так например, в случае с ОБД при снятии марафоном, - я устанавливаю фильтр (на самом деле в аппаратной фильтрации всегда два параметра - MASK и CODE) и маску и код фильтра в 0x7E0, и адаптер начинает пропускать на обработку сообщения только с идентификаторами из диапазона ОБД. В том примере, что на рисунке, я аппаратной фильтрацией не пользовался - там мне было интересно, как это все будет коррелировать с другими (служебными) сообщениями...
     
    Понаехавший нравится это.
  2. Terrano

    Terrano Спонсор

    Мой авто:
    Nissan Terrano 2.0 АТ 4WD
  3. Alexo

    Alexo Новичок

    Сообщения:
    15
  4. Grip

    Grip •• Модератор •• Команда форума

    Сообщения:
    25.159
    Адрес:
    Екатеринбург
    Имя:
    Александр
    Мой авто:
    2.0, 2WD, АКПП, Elegance +
  5. Alexo

    Alexo Новичок

    Сообщения:
    15
    Пока немного поясню. В предыдущем моем посте (цитата моего же поста с другого форума) я упомянул эмулятор. Там подразумевался некий девайс (самопальный естественно), который помог бы в реверс - инжиниринге.
    Пара слов о шине CAN. Вообще, много инфы в сети, но в данном контексте больше интересно, что её отличает от той же LIN, которая использовалась до кан. Главное отличие в этом смысле, что шина лин была практически "чисто" диагностическая - кроме этого, некоторое её применение было в сети комфорта, управления магнитолой и проч., - то есть, не в столь ответственных узлах.
    Помимо диагностики, самое важное, что отличает кан - управление всеми "главными" системами - и движком и тормозами и трансмиссией и т.д. - все идет по кан-шине. Собственно, в этом смысле ЭБУ упрощенно можно представить как компьютер, общающийся со всеми системами по кан-интерфейсу.
    Диагностам просто "за счастье" получить эмулятор "внешнего окружения".
    То есть, можно представить - лежит испытуемый ЭБУ на столе, к нему подключено несколько обычных кан-юсб преобразователей. Далее - зная протокол обмена на прикладном уровне, мы можем чисто программно сэмулировать все что угодно - например, завод авто, трогание, поездку (с эмуляцией нажатия на педали, поворотами руля и проч. проч.) И все это - только лишь изменяя соответствующие байты в соответствующих сообщениях. А ЭБУ, при этом, будет "думать", что он работает в реальном авто:)
    На самом деле не так все просто, конечно, так как ЭБУ имеет не только кан-интерфейсы, и полную эмуляцию сделать достаточно сложно (под силу, по-видимому, только заводским стендам). Однако, как минимум, бОльшую часть логики алгоритмов можно проверить, ну, и, конечно, протестировать ЭБУ на общую работоспособность. Вообще, удалось тогда сделать эмулятор для грузовиков и спецтехники (для MAN-ов), так как там используется стандартный протокол J1979, который есть в сети (если хорошо поискать:)).
    Кроме того, частичный эмулятор сильно помогает в том, чтобы "раскусить" протокол производителя.
    Продолжение следует..
    Если неинтересно, - можно мне "намекнуть", я "понятливый":)
     
    Понаехавший нравится это.
  6. Romsan

    Romsan Авторитет

    Сообщения:
    1.131
    Адрес:
    Красногорск
    Имя:
    Роман
    Мой авто:
    Tekna17, 2л, 4wd, AT, синий
    Интересен практический аспект. Если в КАН есть(а они есть) положение руля и скорости - то что нужно сделать чтобы зажигались нужные противотуманки при маневрах во дворах? Или, раз ШГУ сидит на КАН - то почему бы не сделать для китайских магнитол на Андройде приложение для запуска двигателя... А вот еще... АБС/ЕСП есть? - Есть, КАН Есть? - Есть. Почему не реализована функция контроля давления шин... непонимаю. Вывести на тот же Андройд, вот это внятная цель.
    Понятно что для решения прикладных задач нужно сначала получить знание о том что есть и в каком виде это жужит. Однако метод исследования под конкретную задачу, под поиск конкретного идентификатора - намного короче и результативней чем изучение всего множества.
    ИМХО, конечно.
     
  7. Alexo

    Alexo Новичок

    Сообщения:
    15
    Все верно, но пока – чисто «академический» интерес. Тут не так все просто (по предыдущему опыту), чтобы сразу делать какую-то конкретику. Все, что Вы перечислили, скорее всего, возможно только с подключением (гальваническим – то есть, «врезкой») к соответствующим кан-шинам. Для начала надо понять, что ходит в диагностической шине – на обд-шном разъеме. По опыту GM– там кое что можно было сделать из перечисленного и через эту шину.. Посмотрим, как здесь..
     
    Romsan нравится это.
  8. Grip

    Grip •• Модератор •• Команда форума

    Сообщения:
    25.159
    Адрес:
    Екатеринбург
    Имя:
    Александр
    Мой авто:
    2.0, 2WD, АКПП, Elegance +
    не думаю, что у нас светооптика сидит на кан-шине...не тот ценовой сегмент :)
    А это по какому параметру из ЕСП/АБС узнать давление в каждой конкретной шине?
    Всегда считал, что это реализуется через датчики давления в колесе, с передачей сигнала на блок управления.
     
  9. Docc55rus

    Docc55rus Авторитет

    Сообщения:
    3.360
    Адрес:
    Омск
    Имя:
    Константин
    Мой авто:
    Ниссан-Террано 3 2018г.в. 4х4 F4R, DP8 Элеганс плюс, белый.
    Так и есть.
     
  10. Romsan

    Romsan Авторитет

    Сообщения:
    1.131
    Адрес:
    Красногорск
    Имя:
    Роман
    Мой авто:
    Tekna17, 2л, 4wd, AT, синий
    Оптику зажигает простая релюшка. А когда ей срабатывать может решить модуль умеющий читать кан и реагирующий на выполнение условий скорость меньше 7 км/ч + поворот руля более 5 градусов.
    Спущенная шина крутится с другой скоростью. Система косвенного контроля давления в шинах является программным расширением блока ABS с системой "ESP/ESC". Используя штатные датчики вращения отдельно для каждого колеса, система постоянно следит за изменениями внешнего радиуса шины, и в случае, если ... бла-бла-бла.© Викпедия
    Реализовано на многих машинах, просто мало кто читает инструкции...
     
    ermac нравится это.
  11. Docc55rus

    Docc55rus Авторитет

    Сообщения:
    3.360
    Адрес:
    Омск
    Имя:
    Константин
    Мой авто:
    Ниссан-Террано 3 2018г.в. 4х4 F4R, DP8 Элеганс плюс, белый.
    В наших инструкциях тоже самое написано.