Шина CAN (Controller Area Network) стала стандартом в автомобилестроении: все новые автомобили обязаны поддерживать CAN (с 2001 в Европе и с 2008 в США). Кроме автомобилей, CAN применяется и в широком ряде других устройств. Производители диагностического оборудования для CAN рекламируют его применение, кроме разнообразной автомобильной техники, в мотоциклах, автопогрузчиках, судах, шахтных поездах, батискафах, беспилотных самолетах и пр. Давайте разберемся, что из себя представляет CAN.
В автомобилях используется несколько CAN; например, в Ford Focus таких шин четыре — три высокоскоростных (500 kbps) для управления мотором, тормозами, приборной панелью и т.п., и одна низкоскоростная (125 kbps) для управления дверьми, фарами, подушками безопасности, аудиосистемой, кондиционером и всем прочим. Подключившись к CAN, можно имитировать сигналы от любых устройств в автомобиле — например, управлять кондиционером с приложения на телефоне или накручивать одометр без движения автомобиля. Подключив к шине Arduino и реле, можно управлять с приборной панели дополнительной парковочной камерой. Даже стартапы, работающие над беспилотными автомобилями, такие как Voyage, начинают создание прототипа с того, что в обычном серийном автомобиле подключаются к CAN и учатся имитировать сигналы от педалей и руля.
Для подключения к CAN в автомобиле обычно возле руля имеется разъем OBD-II (On-Board Diagnostics).
Адаптеры OBD2-USB для подключения компьютера к CAN стоят от $5, и позволяют отслеживать весь трафик внутри автомобиля. Иногда разъем OBD-II защищен «аппаратным фаерволом», позволяющим принимать пакеты от устройств, подключенных к CAN, но не позволяющим передавать пакеты обратно на шину. В этом случае достаточно вывинтить разъем, и подключиться к проводам CAN вместо него.
Каждый пакет, передаваемый по шине CAN, состоит из ID передающего устройства (11 либо 29 бит), и до 8 байт передаваемых данных. Трафик, проходящий по шине при включении зажигания, может выглядеть как-то так:
Для анализа трафика CAN существует большое число инструментов — как коммерческих, так и OpenSource. Пакет can-utils для Linux включает утилиту cansniffer , которая отображает для каждого CAN ID только последний отправленный пакет, и тем самым позволяет отслеживать изменения показаний каждого датчика на шине:
Для реверс-инжиниринга трафика CAN сингапурские исследователи, из доклада которых я взял этот трейс, записали на видео приборную доску подопытного автомобиля, и затем соотнесли изменения на приборной доске с одновременными изменениями в трафике. Определив таким образом CAN ID датчика скорости и формат передаваемых им данных, они научились «подделывать» его пакеты, передавая на спидометр и на тахометр показания, не соответствующие действительности.
Надо понимать, что параллельно с передачей «поддельных» пакетов по шине продолжают передаваться и настоящие сигналы от датчика скорости. Чтобы тахометр показывал сфабрикованные показания, надо отслеживать передачу по шине настоящих показаний, и каким-либо образом их подавлять — например, сразу после обнаружения передачи CAN ID датчика скорости физически «глушить» шину, закорачивая линии данных. Более простой, чисто программный метод подавления настоящих показаний — сразу же после их передачи, пока тахометр еще не успел отреагировать, передавать «поддельные» пакеты. Например, следующий простой шелл-скрипт отслеживает передачу с CAN и сразу же после нее передает сфабрикованный пакет при помощи утилиты cansend из состава все тех же can-utils:
Видео:CAN шина👏 Как это работаетСкачать
Даже хотя все устройства в автомобиле подключены к CAN, далеко не все их функции управляются через CAN. Например, на CAN в Ford Escape передаются сигналы о степени нажатия педалей газа и тормоза — но используются эти сигналы только блоком ABS, тогда как приводы дроссельной заслонки и тормозов соединены с педалями напрямую, минуя CAN.
Читайте также: Обязательная маркировка шин в россии
C точки зрения безопасности ни о какой уязвимости в докладе сингапурцев речи не идет, потому что для передачи «поддельных» CAN-пакетов нужен физический доступ к шине. Кроме того, пакеты могут быть защищены контрольной суммой — например, в автомобилях Toyota последний байт каждого пакета должен равняться сумме всех предыдущих (по модулю 256). Кроме этого, в Toyota для защиты от нежелательных пакетов используется фильтрация получателем — например, игнорируются повороты руля более чем на 5% от текущего значения.
Тем не менее исследователям безопасности удавалось получить к CAN и удаленный доступ: вначале на небольшом расстоянии — через уязвимости в Bluetooth-модуле, подключенном к той же самой шине; а затем через сотовую сеть Sprint, через которую внедорожники нескольких американских производителей получали данные о пробках на дорогах. Исследователи, продемонстрировавшие перехват управления Jeep Cherokee с расстояния в несколько миль, получили от Управления перспективных исследовательских проектов Министерства обороны США (DARPA) вознаграждение в 80 тысяч долларов. С тех пор многие автопроизводители объявили о собственных bounty-программах, обещающих выплаты от $1500 за каждую обнаруженную уязвимость. Таким образом, реверс-инжиниринг трафика на шине CAN может не только добавить вашему автомобилю новые возможности, но и существенно пополнить ваш кошелек.
Еще раз о диагностике CAN-шины
В предыдущей статье мы поговорили о проблемах в шине передачи данных CAN, возникших в результате износа аккумуляторной батареи и просадки питающего напряжения при запуске ниже порога работоспособности шины. Сегодня продолжим разговор о CAN-шине, но немного в другом ключе: прежде всего вспомним принцип ее работы, а затем рассмотрим один из случаев топологии шины и разберем осциллограмму дефекта.
Эта шина используется чаще всего как средство обмена данными в системах, для которых критично быстродействие и время принятия решения. Таковыми являются, например, система управления движением, объединяющая между собой блоки управления двигателем, автоматической трансмиссией, антиблокировочной системой тормозов, усилителем руля и т.п.
Конструктивно шина представляет собой неэкранированную витую пару. Провода шины называются CAN High и CAN Low.
Шина может находиться в двух состояниях:
- Рецессивное состояние, или логическая единица. Оба провода в этой ситуации имеют практически одинаковый потенциал: и на проводе CAN High, и на проводе CAN Low присутствует около 2 , 5 В. В рецессивном состоянии шина может находиться сколь угодно долго, хотя в реальности этого не происходит, ведь рецессивное состояние – это всего лишь пауза между сеансами передачи информации.
- Доминантное состояние, или логический ноль. В него шина переходит тогда, когда один из входящих в сеть блоков управления начинает передачу данных. Потенциалы на проводах шины меняются следующим образом: на проводе CAN High потенциал повышается на один вольт, на проводе CAN Low наоборот, становится на один вольт ниже.
Рассмотрим форму сигнала шины, чтобы обосновать ее помехоустойчивость:
Видео:лекция 403 CAN шина- введениеСкачать
На рисунке показаны доминантный и рецессивный уровни шины, а также воздействие на шину электромагнитной помехи. Особенностью обработки сигналов шины является то, что в расчет берется не сам уровень сигнала, а разница уровней между проводами CAN High и CAN Low. При рецессивном уровне эта разница близка к нулю, при доминантном уровне она максимальна.
Читайте также: Окпд 2 закупка автомобильных шин
В витой паре провода располагаются очень близко друг к другу. Если возникает внешняя электромагнитная помеха X, то она является синфазной и наводит одинаковый всплеск напряжения в обоих проводах шины. В итоге на обоих проводах появляется наведенный помехой импульс, но разница потенциалов между проводами при этом не меняется. Это позволяет эффективно подавлять внешние помехи, что является большим преимуществом CAN-шины.
На самом деле витая пара – давно известный способ борьбы с помехами. В медицине, например, в кардиостимуляторах, где требуется высочайшая помехоустойчивость, она применяется очень широко.
Сигнал шины поступает в блок управления на дифференциальный усилитель и обрабатывается. Иллюстрация поясняет процесс обработки:
Большинство автопроизводителей придерживаются скорости передачи 500 кБд, соответственно, продолжительность одного бита при этом составит 2 мкс.
Поговорим о топологии CAN-шины. Физически у шины нет начала и нет конца, шина – это просто единая сеть. Чаще всего встречаются два типа топологии: линейная топология и топология «пассивная звезда», а также их сочетания.
На современных автомобилях шина CAN очень разветвленная. Чтобы не перегружать линию большим количеством передаваемых данных, шина может состоять из нескольких ветвей, объединенных межсетевым шлюзом, иначе называемым Gateway. В итоге сеть представляет собой несколько ответвлений, в том числе и на диагностический разъем, использующих разную скорость и протоколы обмена.
Видео:Подробно про CAN шинуСкачать
Поэтому топология шины – вопрос для диагноста очень актуальный и, к сожалению, довольно сложный. Из тех электрических схем, которыми располагает диагност, не всегда можно понять топологию. Но в документации некоторых автопроизводителей приводится полная и подробная информация, в этом случае задача сильно упрощается.
Не зная тонкостей организации шины, найти в ней неисправность бывает достаточно сложно. Например, при наличии окисления контактов в разъеме пропадает связь с целым рядом блоков управления. Наличие под рукой топологии шины позволяет легко находить подобные проблемы, а отсутствие приводит к большой потере времени.
Ну что ж, мы немного освежили в памяти теорию шины, теперь самое время перейти к практике.
Перед нами автомобиль Infinitit Q 50 , оснащенный весьма редким турбированным мотором VR 30 DDT объемом 3 . 0 л и мощностью 400 лошадиных сил. Но проблема заключается не в этом замечательном агрегате, а как раз в CAN-шине: подключив диагностический сканер, не удается установить связь с доброй половиной блоков управления.
Нам повезло – Nissan относится к тому узкому кругу производителей, которые дают диагностам качественную и полноценную информацию. В том числе есть в документации и подробная топология бортовой шины обмена данными. Открываем, смотрим:
Следует сказать, что приведенная блок-схема достаточно общая. В документации имеется гораздо более подробная электрическая схема со всеми проводами и номерами контактов в блоках, но сейчас она нам пока что ни к чему, нам важно понять общую топологию.
Итак, первое, что нужно увидеть, это то, что вся сеть разделена на три большие ветви, обведенные пунктиром:
- CAN communication circuit 1 (Коммуникационная цепь CAN 1 );
- CAN communication circuit 2 (Коммуникационная цепь CAN 2 );
- Chassis communication circuit (Коммуникационная цепь шасси).
Первые две цепи связаны между собой посредством CAN gateway (найдите его на иллюстрации). Цепь шасси связана с цепью CAN 2 через блок управления шасси, который также играет роль своеобразного Gateway.
А теперь вновь обратимся к сканеру и посмотрим, какие из блоков управления не выходят на связь. Дилерский сканер предоставляет нам очень удобную функцию: на экран выводятся блоки каждой из цепей по отдельности, а цветом отображается возможность (зеленый) либо невозможность (красный) установить с ними связь. Вот блоки цепи CAN 1 :
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
Читайте также: Toyo шины производство в россии
А это – блоки цепи CAN 2 . Как видно, связи с ними попросту нет:
Также нет связи с блоками цепи шасси, но это и понятно: эта цепь, согласно блок-схеме, подключена к цепи CAN 2 .
Ну что ж, задача почти решена, осталось лишь локализовать неисправность. А для этого воспользуемся мотортестером и снимем осциллограмму на проводах шины сначала в CAN 1 , а затем в CAN 2 и сравним их.
Сделать это очень несложно, ведь обе шины выведены прямо на диагностический разъем. Согласно более подробной схеме, о которой упоминалось выше, на контакты диагностической колодки 6 и 14 выведены провода CAN 1 , а на контакты 12 и 13 – провода CAN 2 .
Снимаем осциллограмму в цепи CAN 1 . Она имеет прямо-таки академический вид:
Давайте обмерим ее с помощью линеек.
- На проводе CAN High в рецессивном состоянии потенциал составил 2 , 26 В, на проводе CAN Low – 2 , 25 В.
- На проводе CAN High в доминантном состоянии потенциал составил 3 , 58 В, на проводе CAN Low – 1 , 41 В.
- Ширина импульса, соответствующего одной единице передаваемой информации, составляет 2 мкс (обведено красным прямоугольником).
Видео:поиск нерабочей can шины, часть дваСкачать
Просто идеальное соответствие теории и практики. Конечно, полосы пропускания нашего прибора явно недостаточно для корректного отображения сигнала, слишком уж широк его спектр. Однако, если закрыть на это глаза, то вполне можно оценить качество сигнала и сделать необходимые выводы.
А теперь делаем ту же операцию на контактах диагностической колодки 12 и 13 , чтобы получить осциллограмму сигнала CAN 2 . Вот она:
Для наглядности масштаб осциллограмм на обеих иллюстрациях один и тот же.
То, что вы видите на этой осциллограмме, называется «мусор». Часто диагносты так и говорят: блок мусорит в шину. Вот только как найти блок, который это делает? Методика здесь очень проста и сводится она к поочередному отключению блоков и повторному наблюдению за сигналом шины.
Где именно находится тот или иной блок на автомобиле, в документации, как правило, показано. Например, на этом «финике» блоки расположены так:
Но в нашем случае все проще. Кстати, маленький лайфхак, возьмите на заметку. В автомобилях Nissan и Infiniti чаще всего причиной наличия мусора в CAN-шине является блок ABS. Сняв разъем с блока, сразу получаем нормальный обмен и связь сканера со всеми блоками ветви CAN 2 :
Обратите внимание на то, что связь в цепи CAN 2 есть со всеми блоками, кроме блока ABS, ведь он отключен.
Завершая разговор, хотелось бы обратить ваше внимание еще на один важный нюанс. Частота следования импульсов по CAN-шине составляет 500 кГц. Поэтому при получении осциллограммы необходимо задействовать максимально возможную частоту дискретизации мотортестера, на какую только он способен.
Видео:Анализ CAN-шины Гранта. CAN-hacker.Скачать
Если частоту дискретизации вы зададите низкую, то импульсы на осциллограмме будут сильно искажены. В качестве примера посмотрите, как выглядит осциллограмма сигнала CAN-шины при специально сниженной частоте дискретизации прибора:
Красным прямоугольником обведено время, в которое укладывается одно деление сетки. Оно составляет 0 , 2 мс. А на осциллограмме, которую мы рассматривали ранее, это время было равно 5 мкс, поэтому отображение импульсов было более правильным. Имейте это ввиду и не допускайте ошибок!
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🔥 Видео
Экспресс диагностика CAN шины на автомобиле. №21Скачать
Инструменты анализа и отображения данных шины CAN J1939. Вебинар Технотон. 16.04.2020Скачать
Вебинар: Как найти любые данные из CAN-шины любого автомобиля?Скачать
АЗЫ ДИАГНОСТИКИ. Шины передачи данных. Часть 6. Диагностика шины CAN.Скачать
CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать
Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
CAN шина на осциллографе FINIRSI ADS1013DСкачать
Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать
Компьютерная диагностика авто. K-линия и CAN шинаСкачать
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
Проверка исправности CAN шиныСкачать
Кан шина, что это? Поймет школьник! принцип работыСкачать
С чего начать ремонт ЭБУ: Типы шин данных, CANСкачать
Анализ CAN шины автомобиля адаптер Канхакер-avto100Скачать