Автомобили давно уже стали не просто компьютерами на колёсах, а скорее компьютерными сетями. Передача механических, гидравлических или пневматических усилий между узлами и механизмами со временем превратилась в обмен электрическими сигналами, а сейчас и в информационное взаимодействие.
Наряду с массовым внедрением дешёвых электронных комплектующих, потребовалось разработать достаточно сложное и надёжное сетевое физическое и программное обеспечение.
- Зачем нужна в машине CAN-шина
- Схема и место расположения КАН-интерфейса
- Принцип работы
- Виды CAN-шин
- Как подключиться и сделать диагностику автомобиля
- Неисправности
- Плюсы и минусы встроенных шин
- Хакаем CAN шину авто. Виртуальная панель приборов
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
- Приложение на телефон Виртуальная панель приборов
- 🎥 Видео
Видео:CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать
Зачем нужна в машине CAN-шина
По мере усложнения автомобильной электроники, производители столкнулись с некоторыми проблемами, которые всё больше проявлялись с ростом рыночной конкурентоспособности новых моделей.
Далее наращивать объём оборудования простым добавлением управляющих и исполнительных устройств стало невозможно:
- количество проводов в жгутах, их масса, объёмы и расход дорогостоящей меди стали превышать разумные пределы;
- многие узлы, особенно датчики и первичные преобразователи, многократно дублировались, что необоснованно увеличивало затраты;
- сложнейшие автомобили, особенно премиального класса, стали совершенно неподъёмными в обслуживании и диагностике даже для профильных сервисов из-за отсутствия стандартизации технических решений;
- надёжность машин падала по мере роста количества заключённого в них оборудования, как по чисто объективным законам связи сложности и безотказности, так и из-за отсутствия времени на отработку многочисленных уникальных систем.
Решение должно было быть радикальным, и этот качественный скачок в развитии автомобильной электроники произошёл.
Электросхемы машин стали делать по принципам, заложенным в основах вычислительной техники и к тому времени уже достаточно устоявшимся и понятным.
Автомобиль стал представлять собой сеть из микрокомпьютеров, каждый из которых обслуживал свою систему или отдельный узел.
Например, двигатель, коробку передач, узлы трансмиссии, блок климата и даже отдельные фонари наружного освещения или стеклоподъёмники. Уже не надо было тянуть к каждому устройству медные провода в огромном количестве через весь автомобиль.
Причём до появления единой информационной шины некоторые узлы были обвешаны сразу несколькими однотипными датчиками, электронными блоками и жгутами проводки.
CAN-шина обходится единственной витой парой, то есть скрученными между собой двумя тонкими проводками, которые обходят все устройства, имея ответвления на каждое из них.
По схеме получается, что все блоки соединены параллельно через данную шину. Последовательный способ передачи информации делает это возможным, отдельных проводов данных, адресов, синхронизации и назначения приоритета не требуется.
Более того, системе не нужен единый обрабатывающий и управляющий сервер, все ресурсы распределены по микроконтроллерам.
Видео:Вебинар: Как найти любые данные из CAN-шины любого автомобиля?Скачать
Схема и место расположения КАН-интерфейса
Сеть имеет выход наружу через диагностический OBD разъём, где на этот счёт стандартом чётко определена пара контактов.
Точнее, две пары, из дальнейшего рассмотрения станет понятно, что через диагностику можно подключаться к двум CAN-шинам различного вида и назначения.
Обеспечивающий совместную работу шлюз в разных автомобилях может быть выполнен в виде отдельного блока, входить в состав контроллера управления двигателем, но чаще – приборной панели.
Видео:CAN шина👏 Как это работаетСкачать
Принцип работы
Работа CAN-шины определяется физическим и логическим протоколами, которые достаточно чётко стандартизованы, хотя и имеют целый ряд исполнений.
Физически это витая пара, каждый из проводов которой является сигнальным. Работают они в противофазе, один поэтому называется CAN-High, второй – CAN-Low.
Сделано так с целью обеспечить максимальную помехоустойчивость при большой скорости передачи данных. Сигнал с пары снимается по дифференциальному принципу, то есть парой встречно включённых компараторов.
На концах витой пары имеется волновое согласование двумя терминальными резисторами по 120 Ом. Хотя встречаются и другие номиналы, но редко.
Читайте также: Диски с шинами для бмв е60
Активным уровнем считается низкий, он же логический ноль. Это общий принцип в работе устройств с открытым коллектором, разве что тут не применяется инвертирование уровней. Отсюда и логический принцип работы – инициируется линия любым устройством, открывшим свой выходной транзистор и сформировавшим первый нулевой бит.
Далее идёт идентификация приоритетного устройства, которое должно передать свою информацию первым в случае конфликта во времени. Протокол стандартный, каждый бит посылки расписан в даташитах ISO.
Все устройства одновременно передают и считывают информацию чётко соблюдая протокол, зашитый в памяти их контроллеров. Ненужные или ошибочные данные определяются и игнорируются.
Видео:CAN Считывание и определение данных уровня топлива из CAN шиныСкачать
Виды CAN-шин
Обычно используют две шины – высокоскоростную и низкоскоростную (не желая использовать этот компрометирующий термин, некоторые производители говорят о среднескоростных устройствах).
Первая применена для связи наиболее важных устройств, агрегатов двигателя, трансмиссии, тормозов, подвесок, систем безопасности. Вторая обслуживает второстепенные функции комфорта и сервиса.
Это не значит, что системы автономны. Они связаны между собой через шлюз, обычно находящийся в приборной панели. Низкоскоростная линия также имеет свои контакты в диагностическом разъёме, записанные в стандарт.
Сделано так, чтобы системы низшего уровня важности не мешали максимально быстрому обмену приоритетных устройств. А большое быстродействие, например, регулировке сидений ни к чему.
На низшем уровне могут работать ещё более простые шины, однопроводные и низкоскоростные. Они подключаются к общей CAN через свой контроллер.
Например, в двери могут стоять стеклоподъёмники, блок кнопок управления, различные датчики, всё это нет необходимости выводить на общую шину. Но и плодить множество проводов тоже. Используются простейшие контроллеры и однопроводная сеть.
Видео:АЗЫ ДИАГНОСТИКИ. Шины передачи данных. Часть 6. Диагностика шины CAN.Скачать
Как подключиться и сделать диагностику автомобиля
Сканеры могут внедряться в протокол шины и анализировать её состояние, а также проходящую информацию. Можно использовать виртуальные устройства, эмулирующие отдельные блоки, а также создавать и передавать тестовые команды отдельным участникам сети.
Для связи используются специальные адаптеры USB-CAN, более сложные устройства и программное обеспечение.
До появления профессиональных CAN-анализаторов и тестеров пользовались скоростным запоминающим осциллографом и логическим анализатором.
Эти приборы тоже способны сохранять и предоставлять для изучения отдельные фреймы CAN, но в работе неудобны, требуют больших затрат времени.
Видео:Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
Неисправности
Отказы шины обычно сводятся к нескольким типовым случаям:
- пропадание питания отдельных устройств;
- повреждения проводки и разъёмов;
- отказ контроллеров.
Базой всей сетевой периферии является современная микроэлектроника и большие интегральные контроллеры серийного производства, поэтому надёжность оборудования в целом достаточно высока. Но поиски проблемного блока иногда бывают долгими из-за параллельного их подключения и размещения по всему автомобилю.
Видео:Экспресс диагностика CAN шины на автомобиле. №21Скачать
Плюсы и минусы встроенных шин
Сейчас уже трудно представить себе автомобиль с достойным набором современных опций без информационной шины, а конкурентоспособность требует ещё и высокого быстродействия.
CAN-шина всё это обеспечивает:
- имеется автоматический контроль проходящей информации на ошибки;
- дифференциальная передача сигналов и использование витой пары даёт хорошую скорость и защиту от помех;
- стандартизация протоколов упрощает диагностику и поиск неисправностей;
- построение системы приоритетов упрощает проектирование;
- все устройства функционально закончены и универсальны.
Но со временем усугубляются и недостатки. Так, усложнение автомобилей привело к тому, что быстродействия даже самых последних версий уже не хватает.
Поэтому в настоящее время эту самую распространённую автомобильную шину уже можно считать устаревшей, новые проекты обладают значительно более высоким быстродействием.
Читайте также: Сброс датчиков давления в шинах ниссан икстрейл
Видео:поиск нерабочей can шины, часть дваСкачать
Хакаем CAN шину авто. Виртуальная панель приборов
В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
Под катом полная реализация проекта, будет интересно!
Водительская дверь открыта
CAN сниффер из Arduino Uno
Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.
Схема подключения следующая:
Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.
CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.
Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
Описание VCDS с официального сайта ru.ross-tech.com:
Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.
Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.
Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.
В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:
- температура масла
- какая именно дверь открыта
Скорость, обороты, температура ОЖ, пробег, расход, место в баке и другие запросы я тоже получил, для справки размещу.
Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.
Читайте также: Шины michelin в тамбове
OBD2 штекер использовал от старого ELM327 адаптера.
Используются контакты: CAN_L, CAN_H, +12, GND.
Тесты в машине прошли успешно и теперь нужно было все собрать. Плату дисплея, Raspberry Pi и блок питания разместил на куске черного пластика, очень удачно подобрал пластмассовые втулки, с ними ничего не болтается и надежно закреплено.
Местом установки выбрал бардачок на торпедо, которым я не пользуюсь. По примеркам в него как раз помещается весь бутерброд.
Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.
Софт панели приборов на Python и Kivy (UI framework)
Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.
Первая версия панели приборов
По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.
Вторая версия панели приборов
Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.
Третья версия панели приборов
Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.
Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.
Алгоритм работы следующий, используется 3 потока:
- В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
- Во втором потоке каждые 5 мс делаем опрос следующего датчика
- В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент
Работает стабильно, самый долгий процесс в разработке был связан с рисованием дизайна. На данный момент обкатываю решение и потихоньку пишу мобильное приложение для iOS, чтобы любой мог попробовать цифровую панель приборов.
Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!
Видео работы цифровой панели приборов на базе Raspberry Pi
Приложение на телефон Виртуальная панель приборов
Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.
Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
🎥 Видео
#10. Как отправлять сообщения и команды в CAN-шину для управления автомобилем?Скачать
CAN Сканер: получение данных о повороте руля из CAN-шиныСкачать
С чего начать ремонт ЭБУ: Типы шин данных, CANСкачать
лекция 403 CAN шина- введениеСкачать
CAN шина в Глонасс мониторингеСкачать
Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
Универсальная плата CAN шиныСкачать
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
Компьютерная диагностика авто. K-линия и CAN шинаСкачать
тестирование разветвителя CAN-шиныСкачать
CAN шина на осциллографе FINIRSI ADS1013DСкачать
Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать