Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.
Автор: Ariel Nuñez
Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.
Рисунок 1: Как при помощи приложения управлять ключевыми функциями автомобиля?
Недавно я вместе со своими друзьями из компании Voyage работал над реализацией программного управления системой кондиционирования в Ford Fusion. На данный момент Voyage занимается разработкой бюджетных самоуправляемых автомобилей. Конечная цель: чтобы каждый смог вызвать автомобиль к своей входной двери и безопасно путешествовать туда, куда вздумается. В компании Voyage считают крайне важной возможностью предоставление доступа к ключевым функциям автомобиля с заднего кресла, поскольку не за горами тот день, когда работа водителя будет полностью автоматизирована.
Зачем нужна шина CAN
Современные автомобили используют множество систем управления, которые во многих случаях функционируют подобно микро-службам в веб-разработке. Например, подушки безопасности, тормозные системы, регулирование скорости движения (круиз контроль), электроусилитель руля, аудиосистемы, управление окнами и дверями, подстройка стекл, системы зарядки для электрических автомобилей и т. д. Эти системы должны уметь осуществлять коммуникацию и считывать параметры друг друга. В 1983 в компании Bosch началась разработка шины CAN (Controller Area Network; Локальная сеть контролеров) для решения этой сложной задачи.
Можно сказать, что шина CAN представляет собой простую сеть, где каждая система автомобиля может считывать и отсылать команды. Эта шина интегрируется все сложные компоненты элегантным образом, что дает возможность реализовать всеми любимые функции автомобиля, которыми мы пользуемся.
Рисунок 2: Впервые шина CAN стала использоваться в 1988 году в БМВ 8 серии
Самоуправляемые автомобили и шина CAN
Поскольку интерес к разработке самоуправляемых автомобилей серьезно вырос, соответственно, словосочетание «шина CAN» также становится популярным. Почему? Большинство компаний, создающих самоуправляемых автомобилей, не занимаются производством с нуля, а пытаются научиться программно управлять машинами после выхода с конвейера фабрики.
Понимание внутреннего устройства шины CAN, используемой в автомобиле, позволяет инженеру формировать команды при помощи программного обеспечения. Самые нужные команды, как вы можете догадаться, связаны с управлением рулем, ускорением и торможением.
Рисунок 3: Введение в LIDAR (ключевой сенсор самоуправляемого автомобиля)
При помощи сенсоров наподобие LIDAR (light detecting and ranging; оптическая локационная система) машина способна смотреть на мир как суперчеловек. Затем компьютер внутри автомобиля на базе полученной информации принимает решения и посылается команды в шину CAN для управления рулем, ускорение и торможением.
Не каждый автомобиль способен стать самоуправляемым. И по некоторым причинам компания Voyage выбрала модель Ford Fusion (подробнее о причинах можно почитать в этой статье).
Исследование шины CAN в Ford Fusion
Перед началом исследования систем кондиционирования воздуха в Ford Fusion я открыл мою любимую книгу The Car Hacker’s Handbook. Перед погружением в суть вопроса заглянем в Главу 2, где описываются три важные концепции: протоколы шины, шина CAN и CAN-фреймы.
Шина CAN
Шина CAN начала использоваться в американских легковых машинах и небольших грузовиках с 1994 года и с 2008 года в обязательном порядке (в европейских автомобилях с 2001 года). В этой шине предусмотрено два провода: CAN high (CANH) и CAN low (CANL). Шина CAN использует дифференциальный сигналинг, суть которого заключается в том, что при поступлении сигнала на одном проводе вольтаж повышается, а на другом понижается на одну и ту же величину. Дифференциальный сигналинг используется в средах, которые должны быть малочувствительны к шуму, например, в автомобильных системах или при производстве.
Рисунок 4: Необработанный сигнал шины CAN, отображаемый на осциллографе
С другой стороны, пакеты, передаваемые по шине CAN, не стандартизированы. Каждый пакет содержит 4 ключевых элемента:
Видео:Что делать, если не диагностируется автомобиль, пример на ford galaxy (volkswagen sharan) 2001 года.Скачать
- АрбитражныйID (ArbitrationID) представляет собой широковещательно сообщение, идентифицирующее устройство, которое пытается начать коммуникацию. Любое устройство может отсылать несколько арбитражных ID. Если в единицу времени по шине отсылаются два CAN-пакета, пропускается тот, у которого ниже арбитражный ID.
- Расширение идентификатора (Identifierextension;IDE) – в случае с шиной CAN стандартной конфигурации этот бит всегда равен 0.
- Код длины данных (Datalengthcode;DLC) определяет размер данных, который варьируется от 0 до 8 байт.
- Данные. Максимальный размер данных, переносимых стандартной шиной CAN, может быть до 8 байт. В некоторых системах происходит принудительное дополнение пакета до размера 8 байт.
Читайте также: Пауэр интернешнл шины ооо
Рисунок 5: Формат стандартных CAN-пакетов
CAN фреймы
Для того чтобы включить / выключить климатическую систему мы должны найти нужную шину CAN (в автомобиле таких шин несколько). В Ford Fusion есть как минимум 4 задокументированные шины. 3 шины работают на высокой скорости 500 кбит/с (High Speed CAN; HS) и 1 шина на средней скорости 125 кбит/с (Medium Speed CAN; MS).
К порту OBD-II подключено две высокоскоростные шины HS1 и HS2, однако там стоит защита, которая не позволяет подделывать команды. Вместе с Аланом из компании Voyage мы вынули порт OBD-II и нашли места соединения со всеми шинами (HS1, HS2, HS3 и MS). На задней стенке OBD-II все шины подключались к модулю шлюза (Gateway Module).
Рисунок 6: Homer – первое самоуправляемое такси от компании Voyage
Поскольку климатическая система управляется через медиа-интерфейс (SYNC), нам придется отсылать команды через среднескоростную шину (MS).
Чтение и запись CAN-пакетов осуществляется при помощи драйвера и сетевого стека SocketCAN, созданного исследовательским отделом компании Volkswagen для ядра в Linux.
Мы будем подсоединять три провода от машины (GND, MSCANH, MSCANL) к переходнику Kvaser Leaf Light HSv2 (можно купить за 300$ на Амазоне) или к CANable (продается за 25$ на Tindie) и загружать на компьютере со свежим Linux-ядром шину CAN в качестве сетевого устройства.
После загрузки запускаем команду candump can0 и начинаем отслеживать трафик:
Несмотря на то, что вышеуказанная информация эквивалентна амплитуде звукового сигнала, довольно трудно понять, что происходит, и обнаружить какие-либо закономерности. Нам нужно нечто похожее на частотный анализатор, и такой эквивалент есть в виде утилиты cansniffer. Cansniffer показывает список идентификаторов и позволяет отслеживать изменения в секции данных внутри CAN-фрейма. По мере того как мы будем изучать определенные идентификаторы, мы можем установить фильтр нужных ID, которые имеют отношение к нашей задаче.
На рисунке ниже показан пример информации, снятой при помощи cansniffer с шины MS. Мы отфильтровали все, что имеет отношение к идентификаторам 355, 356 и 358. После нажатия и отпускания кнопок, связанных с подстройкой температуры, в самом конце появляется значение 001C00000000.
Рисунок 7: Информация с шины MS, снятая при помощи утилиты cansniffer
Далее необходимо объединить функционал для управления климатической системой с компьютером, работающим внутри автомобиля. Компьютер работает на операционной системе ROS (Robot Operating System; Операционная система для роботов). Поскольку мы используем SocketCAN, то модуль socketcan_bridge серьезно упрощает задачу по преобразованию CAN-фрейма в блок информации, понимаемый операционной системой ROS.
Ниже показан пример алгоритма декодирования:
Читайте также: Диски для низкопрофильных шин
Полученные данные хранятся в CelsiusReport.msg:
Видео:поиск нерабочей can шины, часть дваСкачать
После нажатия всех нужных кнопок в машине, у нас появляется следующий список:
Затем эти строки отсылаются на узел под управлением операционной системы ROS и далее происходит трансляция в коды, понимаемые автомобилем:
Заключение
Теперь мы можем создавать и посылать те же самые коды в шину CAN, которые формируются при нажатии физических кнопок, связанных с повышением и понижением температуры, что дает возможность удаленного изменения температуры автомобиля при помощи приложения, когда мы находимся на заднем сидении автомобиля.
Рисунок 8: Удаленное управление климатической системой автомобиля
Это лишь небольшой шаг при создании самоуправляемого такси вместе со специалистами компании Voyage. Я получил массу положительных эмоций во время работы над этим проектом. Если вы тоже интересуетесь этой темой, можете ознакомиться со списком вакансий в компании Voyage.
CAN шина
Вопрос технического плана.
У меня заканчивается отладка самодельной GSM/GPS сигнализации. Но Форд — это не жигули. В фокусе все действия происходят по цифровой шине CAN.
Я её реализовываю, но где найти описание кодов идентификаторов на шине?
Я сел в машину, захлопнул все двери, подключился к шине — тишина.
Видео:CAN шина👏 Как это работаетСкачать
После того как я открыл водительску дверь, то за 1,3 сек по шине пробежали 192 команды, закрыл дверь — ещё 244 команды. Я их все вижу, всё записал в файлы.
Короче понаснимал кучу логов — ответов на разные события (двери, замки, педали, поворотники и т.д.). Я, конечно, могу тщательно поковыряться в них с целью разобраться, но это очень рутинно.
Может быть где-то можно найти описание?
цитата: |
ТЕК самый глюкавый и нефункциональный КАН модуль |
Ну, назови-ка более надежный и функциональный
А чем снимаешь коды команд с шины? Как вариант для «зацепки» можно попробовать взять модуль CAN и посмотреть что он выдает на выходе/входе CAN шины, заведомо зная какие команды мы ему даем, поняв принцип и вычислив основные реализованные в CAN модуле команды можно и новые команды вычислить. Как Вам идейка?
Читайте также: Куфар в борисове шины
vectra
Сейчас коды снимаю вот такой штукой .
Если бы был у меня CAN модуль, то давно попробовал бы прослушать что он шлёт. Но купить, чтобы сутки поиграться выбросить совсем не хочется.
Смотрю логи, стало понятно, что команда с идентификатором 80 передаёт текущую дату и время, например:
Видео:Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать
Это 08 — 2008 год, 04 (апрель), 08 — число, 0E 06 0F — 14 часов 6 минут 15 секунд.
Диагностический разъём куда я втыкаюсь находится снизу слева от руля над нишой для визиток (см. фото)
хм. думаю все таки есть, какие то ответы на полученные команды. иначе сложновато будет определять в каком модуле неисправность. да и удобнее это уж точно))
vectra
Система дорогой не получится.
«IXXAT» не мой, я его беру на работе вместе со служебным ноутбуком временно попользоваться в автомобиль, затем возвращаю на место.
В моей сигнализации контроллер CAN шины будет реализован в переферии 7-го ARM-процессора sam7x256 .
YAN а с чего ты взял что для доступа к can шине достаточно 2х контактов?
Вот опсиание h t t p ://www.5ballov.ru/referats/preview/71902/1
Видео:Ford Kuga I - Неисправности CAN шины. Нет запуска. Нет связи.Скачать
А вот парочка цитат:
цитата: |
CAN система на серийной шине с мультифункциональными возможностями, все CAN узлы способны передавать данные и некоторые CAN узлы могут запрашивать шину одновременно. Передатчик передает сообщение всем CAN узлам. Каждый узел, на основании полученного идентификатора, определяет, следует ли ему обрабатывать сообщение или нет. |
Поэтому ничего удевительного что на 1 событие приходится по 244 сообщения.
цитата: |
Линия передачи данных, в большинстве случаев, витая пара. Но связь по CAN протоколу так же может осуществляться по одному проводу. В различных случаях возможно применение наиболее подходящих каналов связи, оптического или радио канала. |
На фотке какраз 8 контактов, очень похоже
цитата: |
CAN протокол разработан Robert Bosch GmbH и защищен патентами. |
цитата: |
CAN система на серийной шине с мультифункциональными возможностями, все CAN узлы способны передавать данные и некоторые CAN узлы могут запрашивать шину одновременно. Передатчик передает сообщение всем CAN узлам. Каждый узел, на основании полученного идентификатора, определяет, следует ли ему обрабатывать сообщение или нет. |
PhotOn
Шина последовательная и приёмники реагируют на сообщения по коду. Вот что имелось в виду.
цитата: |
На фотке какраз 8 контактов, очень похоже |
Это диагностический разъём, там не только CAN.
В FF2 CAN-шина реализована на 2 проводах, причём тут насколько я понимаю просто две независимые шины (CAN-L и CAN-H). По одной из которых идёт управление дверными замками, стеклоподъёмниками и всякой другой требухой, а по второй по идее дожны работать более важные устройства.
m01ska
кроме CAN-L и CAN-H там питание 8).
Быстрый и медленный CAN действительно делятся по принципу «для комфорта»- двери, музыка(медленная, 125К) и «безопасность» — ABS, airbag, PCM(быстрая, 500К).
Шлюз между сетями, на сколько я помню, приборная панель.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
Автоподбор © 2023
Информация, опубликованная на сайте, носит исключительно ознакомительный характеристочники:Видео:победа CAN шины Ф Фокус 2 ошибка U1900 2510Скачать
🔍 Видео
Экспресс диагностика CAN шины на автомобиле. №21Скачать
Кан шина, что это? Поймет школьник! принцип работыСкачать
Как проверить CAN шину Используем симулятор ElectudeСкачать
Автомобиль не запускается, сканер не подключается: на примере FORD FOCUS 3, CAN шина (Видео 92)Скачать
Ford Galaxy II с 2006 по 2014 г.в. Установка сигнализации StarLine а93 2can 2lin Своими Руками.Скачать
😁 Что не так с Ford Galaxy II? Смогли ли инженеры Ford сделать нормальный минивэн?Скачать
Сканер не подключается: поиск неисправности CAN шины (видео 57)Скачать
Ford Galaxy не заводится. мелкая неисправность.Скачать
Ford Mondeo. Ремонт CAN-шины.Скачать
Еще Ford Kuga I - Неисправности CAN шины. Нет запуска. Нет связи.Скачать
Что такое CAN шинаСкачать
Как мы покупали Ford Galaxy. Проблемы и слабые места.Скачать
Форд Галакси 2 слабые места | Недостатки и болячки б/у Ford Galaxy IIСкачать
Включение рулевой рейки с ЭУР командами по CAN шине. EPS motor switching on by CAN bus. Ford Focus 3Скачать