Хакаем CAN шину авто для голосового управления. Разбираемся как работает КАН-шина на примере учебной системы CANBASIC Кан линия на авто

Электрические цепи автомобилей усложнялись и разрастались год от года. Первые автомобили обходились без генератора и аккумулятора – зажигание работало от магнето, а фары были ацетиленовые.
К середине 70-х годов в жгуты увязывались уже сотни метров электрических проводов, автомобили по оснащённости электрикой, соперничали с легкомоторной авиацией.
Идея упрощения электропроводки лежала на поверхности – хорошо бы проложить в автомобиле всего один провод, нанизать на него потребителей и возле каждого поставить некое управляющее устройство. Тогда по этому проводу можно было бы пустить и энергию для потребителей (лампочек, датчиков, исполнительных устройств) и управляющие сигналы.
К началу 90-х развитие цифровых технологий позволило приступить к осуществлению этой идеи - компаниями BOSCH и INTEL был разработан сетевой интерфейс CAN (Controller Area Network) для создания бортовых мультипроцессорных систем реального времени. В электронике проводную систему, по которой передаются данные, принято называть “шиной”.


Если данные передаются по двум проводам (т.н. “витая пара”) последовательно, импульс за импульсом – это будет последовательная шина (serial bus), если данные передаются по жгуту из нескольких проводов одновременно – это будет параллельная шина (parallel bus).
И хотя параллельная шина работает быстрее, для упрощения электропроводки автомобиля она не подходит – она её как раз только усложнит. Витая пара последовательной шины способна передавать до 1Мбит/сек, чего вполне достаточно.
Правила, по которым отдельные блоки обмениваются информацией, в электронике называются протоколом. Протокол позволяет посылать отдельным блокам отдельные команды, опрашивать каждый блок в отдельности или всех сразу. Кроме адресного обращения к устройствам, протокол предусматривает и возможность задания приоритетов самим командам. Например, команда на управление двигателем будет иметь приоритет перед командой на управление кондиционером.
Развитие и миниатюризация электроники позволяют теперь выпускать недорогие модули управления и связи, которые в автомобиле можно соединять в виде звезды, кольца или цепи.
Обмен информацией идет в обоих направлениях, т.е. можно не только включить например лампочку заднего хода, но и получить информацию светит ли она.
Получая информацию от различных устройств система управления двигателем выберет оптимальный режим, система кондиционирования включит отопление или охлаждение, система управления стеклоочистителем взмахнет щетками и т.п.
Значительно упрощается и система диагностики двигателя и всего автомобиля в целом.
И хотя главная мечта электрика – всего два провода по всей машине – ещё не сбылась, CAN шина значительно упростила электропроводку автомобиля и повысила общую надежность всей системы.

Итак, CAN-шина - это система цифровой связи и управления электрическими устройствами автомобиля, позволяющая собирать данные от всех устройств, обмениваться информацией между ними, управлять ими. Информация о состоянии устройств и командные (управляющие) сигналы для них передаются в цифровой форме по специальному протоколу двумя проводами, т.н. «витая пара». Кроме того к каждому устройству подается и питание от бортовой электросети, но в отличии от обычной проводки – все потребители соединены параллельно, т.к. нет необходимости вести от каждого выключателя до каждой лампочки свой провод. Это значительно упрощает монтаж, снижает число проводов в жгутах и повышает надёжность всей электросистемы.

С каждым годом автомобильные электрические схемы увеличивались в размере и усложнялись в конструкции. На первых выпущенных автомобилях от магнето работало зажигание, а аккумуляторной батареи и генератора не было совсем. В фарах использовались ацетиленовые горелки.

В 1975 году длина проводов в автомобильной электрической схеме была равна нескольким сотням метров и была сопоставима с электрикой лёгкомоторной авиации.

Желание упростить электропроводку была такой: необходим всего один провод, подключить к нему все потребители и к каждому подвести устройство управления. Пропустить по этому проводу электроток к потребителям и сигналы управления устройствами.

Видео

К 1991 году, благодаря прорыву цифровых технологий, фирмы Bosch и Intel создали сетевой интерфейс CAN (Controller Area Network) для мультипроцессорных систем бортовых компьютеров. В электронике такую систему называют «шиной».

В последовательной шине (serial bus) данные передаются импульс за импульсом по витой паре (двум проводам), а в параллельной шине (parallel bus), данные идут по нескольким проводам одновременно.

При большей производительности, параллельная шина усложняет электропроводку автомобиля. Последовательная шина передаёт информации до 1 Мбит/сек.

Разные блоки делятся данными, правило, по которому это происходит, называется протоколом. Протокол может отправлять разным блокам команды, запрашивать данные у одного или у всех. Помимо конкретного обращения к устройству, протокол может задать важность и командам. К примеру, команда включения вентилятора охлаждения двигателя будет приоритетней команды опускания бокового стекла.

Минимизация современной электроники позволила наладить выпуск дешёвых модулей управления и систем связи. В автомобильной сети они могут объединяться в цепи, звёзды и кольца.

Информация идёт в обе стороны, например, включив лампу дальнего света, на панели приборов загорится сигнал – светит она или нет.
Система управления двигателем выбирает наилучший режим, получая данные от всех устройств цепи, система освещения включит или отключит фары, система навигации проложит или изменит маршрут и так далее.

Благодаря такому протоколу диагностика двигателя и других устройств автомобиля упростилась.

Желание иметь всего один провод в автомобиле не осуществилось, но CAN – модуль и протокол передачи данных повысили надёжность системы и упростили электропроводку.

Видео

CAN шина - что это такое?

CAN – шина ("кан шина") является системой управления всеми электрическими приборами и цифровой связи в автомобиле, которая может получать информацию от устройств, между ними обмениваться данными, а также ими управлять. Данные о техническом состоянии и управляющие сигналы идут в цифровом виде по витой паре благодаря специальному протоколу. От бортовой сети автомобиля к каждому потребителю идёт питание, но все они соединены параллельно. Такой вариант повысил надёжность всей электросхемы, снизил количество проводов и упростил монтаж.

Сегодня я хочу познакомить вас с интересной микроконтроллерной платформой CANNY . Это обзорная статья в которой вы узнаете о технологии, а в последующих статьях я расскажу вам о работе с сообщениями CAN, интеграции CANNY c Arduino Mega Server и о тех возможностях, которые предоставляет эта связка.

Почему CANNY? От названия шины CAN, которая широко используется на транспорте и, в частности, во всех современных автомобилях в качестве бортовой сети. Итак, что же можно сделать, имея специализированный контроллер, подключённый к CAN шине вашего автомобиля?

Шина CAN

Образно говоря, шина CAN это нервная система вашего автомобиля. По ней передаётся вся информация о состоянии блоков и систем, а также управляющие команды, которые во многом определяют поведение автомобиля. Зажигание фар, открывание и закрывание дверей, управление проигрыванием музыки в салоне машины, срабатывание сигнализации и т. д. - всё это работает и управляется по этой шине.

Физически, шина CAN представляет собой два перевитых провода и очень проста в монтаже и подключении. Несмотря на свою простоту, она, благодаря своей дифференциальной природе, хорошо защищена от различных наводок и помех. Высокая надежность и большая допустимая длина сети, до 1000 метров, помогла CAN завоевать широкую популярность у производителей различного, не только автомобильного оборудования.

Контроллеры CANNY

Это целое семейство специализированных контроллеров, имеющих встроенную «родную» поддержку работы с шиной CAN. Это касается как «железной» части, так и поддержки на уровне «софта».

Флагманом линейки является контроллер CANNY 7, наиболее мощный и имеющий максимум возможностей. Большое количество памяти, мощные выходы, позволяющие напрямую управлять реле автомобиля, интеллектуальная система защиты от коротких замыканий, защита от бросков тока и напряжения в бортовой сети автомобиля - всё это делает этот контроллер отличным решением для воплощения любых ваших идей и проектов.

Кроме CANNY 7 в линейке контроллеров присутствует ещё несколько моделей, мы будем проводить свои эксперименты с более простой встраиваемой моделью CANNY 5 Nano. Она также поддерживает работу с CAN шиной, но при этом похожа на уже знакомую нам Arduino Nano.

Визуальное программирование

Развитая поддержка шины CAN это не единственная особенность этих контроллеров, кроме этого CANNY имеют свою собственную среду программирования, CannyLab, но не «обычную», а визуальную, где весь процесс написания программ сводится к манипулированию готовыми структурными блоками, заданию их параметров и соединению входов и выходов этих блоков в определённой последовательности, в соответствии с алгоритмом решаемой задачи.

Ни одной строчки кода!

Хорошо это или плохо? На мой взгляд, это дело привычки. Мне, как человеку привыкшему к «традиционному» программированию, было непривычно манипулировать блоками, вместо написания строк кода. С другой стороны, существует множество приверженцев именно такого подхода к составлению алгоритмов и считается, что для инженеров и «не программистов» это наиболее простой и доступный метод программирования микроконтроллеров.

Мне, как минимум, было «прикольно» составлять программы таким образом и через некоторое время мне это стало даже нравиться. Возможно, что если продолжить этим заниматься, то через некоторое время уже написание кода покажется неудобным.

CannyLab является бесплатной средой разработки и вы можете свободно скачать её с сайта разработчиков, она также не требует специальной процедуры инсталляции - достаточно распаковать файл с архивом - и вы можете начинать работу.

Подключение

Подключение CANNY 5 Nano к компьютеру мало чем отличается от подключения контроллеров Arduino. При наличии в системе драйвера Silicon Labs CP210x, либо после его установки из скаченного дистрибутива CannyLab, Windows создаёт виртуальный COM порт и CANNY готов к работе. В моём случае понадобилось ещё перезагрузить компьютер, но возможно это особенность моей системы.

Практические примеры

Давайте на простых примерах разберём, как в CannyLab выполнять действия, привычные нам в Arduino IDE. Начнём с традиционного мигания светодиодом.

В контроллере CANNY 5 на выводе С4 (Channel 4) присутствует тестовый светодиод (аналог светодиода, находящегося на 13 выводе в Arduino). И его тоже можно использовать для индикации и экспериментов, чем мы и воспользуемся.

Что же нужно, чтобы помигать светодиодом в контроллере CANNY? Нужно сделать всего две вещи - сконфигурировать пин четвертого канала как выход и подать на этот выход сигнал с ШИМ генератора. Все эти действия мы уже не раз проделывали в Arduino IDE, посмотрим как это выглядит в CannyLab.

Итак, конфигурируем пин четвертого канала как выход

Настраиваем генератор ШИМ. Задаём период 500 миллисекунд, заполнение - 250 миллисекунд (то есть 50 %) и 1 (true) на входе генератора «Старт» и… всё! Больше ничего делать не нужно - программа готова, осталось только залить её в контроллер.

Режим симуляции

Тут нужно сказать пару слов о процессе симуляции на компьютере работы контроллера и заливке разработанной программы в память «железного» контроллера.

Среда разработки CannyLab позволяет запускать и отлаживать программу, не записывая её в память контроллера. В режиме симуляции вы можете видеть результат работы программы прямо в реальном времени и даже вмешиваться в её работу.

Заливка в контроллер

Для работы контроллеров CANNY, перед заливкой программы (в терминологии разработчиков «диаграммы») нужно сначала залить операционную систему «Устройство/Системное ПО/Записать». Это нужно сделать только один раз, для этого нужно выбрать соответствующий вашему контроллеру файл с расширением .ccx .

После того, как программа написана и отлажена, её можно загрузить в ваш контроллер. Это делается просто - в меню выбираете пункт «Устройство/Диаграмма/Записать» и через несколько секунд программа оказывается записанной в контроллер.

Аналоговые входы

Для того, чтобы лучше понять принцип программирования контроллеров CANNY в среде разработке CannyLab, давайте ещё разберём пример работы с аналоговым входом в этой системе.

Мы будем отслеживать уровень напряжения на 10 пине контроллера и если он находится в диапазоне 2,5 В ± 20%, будем зажигать встроенный в плату светодиод.

Как и в предыдущем примере, конфигурируем 4-й пин как выход для того, чтобы иметь возможность управлять работой светодиода.

Включаем АЦП на 10-м канале.

Блок «Логическое И» довершает работу и со своего выхода управляет работой светодиода на плате.

Вот и всё. То, что мы привычно делали на Arduino, мы легко сделали в CannyLab. Осталось только освоиться в этой среде программирования и вы сможете легко и непринуждённо создавать свои проекты на этой платформе.

Эти простые примеры составления программ даны для того, чтобы вы могли понять принцип визуального программирования микроконтроллеров CANNY. В дальнейшей работе вам поможет отличная справочная документация и поддержка разработчиков на сайте и форуме системы.

CAN-шина – это электронное устройство, встроенное в электронную систему автомобиля для контроля технических характеристики и ездовых показателей. Она является обязательным элементом для оснащения автомобиля противоугонной системой, но это лишь малая часть её возможностей.

CAN-шина – это одно из устройств в электронной автоматике автомобиля, на которое возлагается задача по объединению различных датчиков и процессоров в общую синхронизированную систему. Она обеспечивает сбор и обмен данными, посредством чего в работу различных систем и узлов машины вносятся необходимые корректировки.

Аббревиатура CAN расшифровывается как Controller Area Network, то есть сеть контроллеров. Соответственно, CAN-шина – это устройство, принимающее информацию от устройств и передающее между ними. Данный стандарт был разработан и внедрён более 30 лет назад компанией Robert Bosch GmbH. Сейчас его используются в автомобилестроении, промышленной автоматизации и сфере проектирования объектов, обозначаемых «умными», например, домов.

Как работает CAN шина

Фактически, шина представляет собой компактное устройство со множеством входов для подключения кабелей или разъём, к которому подсоединяются кабели. Принцип её действия заключается в передаче сообщений между разными компонентами электронной системы.

Для передачи разной информации в сообщения включаются идентификаторы. Они уникальны и сообщают, например, что в конкретный момент времени автомобиль едет со скоростью 60 км/ч. Серия сообщения отправляется на все устройства, но благодаря индивидуальным идентификаторам они обрабатывают только те, которые предназначаются именно для них. Идентификаторы CAN-шины могут иметь длину от 11 до 29 бит.

В зависимости от назначения КАН шины разделяются на несколько категорий:

  • Силовые. Они предназначены для синхронизации и обмена данными между электронным блоком двигателя и антиблокировочной системой, коробкой передач, зажиганием, другими рабочими узлами автомобиля.
  • Комфорт. Эти шины обеспечивают совместную работу цифровых интерфейсов, которые не связаны с ходовыми блоками машины, а отвечают за комфорт. Это система подогрева сидений, климат-контроль, регулировка зеркал и т.п.
  • Информационно-командные. Эти модели разработаны для оперативного обмена информацией между узлами, отвечающими за обслуживание авто. Например, навигационной системой, смартфоном и ЭБУ.

Для чего CAN шина в автомобиле

Распространение интерфейса КАН в автомобильной сфере связано с тем, что он выполняет ряд важных функций:

  • упрощает алгоритм подсоединения и функционирования дополнительных систем и приборов;
  • снижает влияние внешних помех на работу электроники;
  • обеспечивает одновременное получение, анализ и передачу информации к устройствам;
  • ускоряет передачу сигналов к механизмам, ходовым узлам и иным устройствам;
  • уменьшает количество необходимых проводов;

В современном автомобиле цифровая шина обеспечивает работу следующих компонентов и систем:

  • центральный монтажный блок и замок зажигания;
  • антиблокировочная система;
  • двигатель и коробка переключения передач;
  • подушки безопасности;
  • рулевой механизм;
  • датчик поворота руля;
  • силовой агрегат;
  • электронные блоки для парковки и блокировки дверей;
  • датчик давления в колёсах;
  • блок управления стеклоочистителями;
  • топливный насос высокого давления;
  • звуковая система;
  • информационно-навигационные модули.

Этот не полный список, так как в него не включаются внешние совместимые приборы, которые тоже можно соединить с шиной. Часто таким образом подключается автомобильная сигнализация. CAN-шина также доступна для подключения внешних устройств для мониторинга рабочих показателей и диагностики на ПК. А при подключении автосигнализации вместе с маяком можно управлять отдельными системами извне, например, со смартфона.

Плюсы и минусы CAN шины

Специалисты по автомобильной электронике, высказываясь в пользу использования CAN-интерфейса, отмечают следующие преимущества:

  • простой канал обмена данными;
  • скорость передачи информации;
  • широкая совместимость с рабочими и диагностическими приборами;
  • более простая схема установки автосигнализации;
  • многоуровневый мониторинг и контроль интерфейсов;
  • автоматическое распределение скорости передачи с приоритетом в пользу основных систем и узлов.

Но есть у CAN-шины и функциональные недостатки:

  • при повышенной информационной нагрузке на канал вырастает время отклика, что особенно характерно для работы автомобилей, «напичканных» электронными устройствами;
  • из-за использования протокола высшего уровня встречаются проблемы стандартизации.

Возможные проблемы с CAN шиной

По причине включения во многие функциональные процессы, неполадки в работе CAN-шины проявляются очень быстро. Среди признаков нарушений чаще всего проявляются:

  • индикация вопросительного знака на приборной панели;
  • одновременное свечение нескольких лампочек, например, CHECK ENGINE и ABS;
  • исчезновение показателей уровня топлива, оборотов двигателя, скорости на приборной панели.

Такие проблемы возникают по разным причинам, связанным с питанием или нарушением электроцепи. Это может быть замыкание на массу или аккумулятор, обрыв цепи, повреждение перемычек, падение напряжения из-за проблем с генератором или разряд АКБ.

Первая мера для проверки шины – компьютерная диагностика всех систем. Если она показывает шину, необходимо измерить напряжение на выводах H и L (должно быть ~4V) и изучить форму сигнала на осциллографе под зажиганием. Если сигнала нет или он соответствует напряжению сети, налицо замыкание или обрыв.

Ввиду сложности системы и большого количества подключений компьютерную диагностику и устранение неисправностей целесообразно передать в руки специалистов с высококачественным оборудованием.

Приветствую всех вас друзья! Эволюция человека постепенно привела к тому, что современный автомобиль в буквальном смысле слова, напичкан всевозможными датчиками и приборами. Там на «борту», как на заводе – целый коллектив. Разумеется такой «бригадой», обязательно должен кто-то управлять! Об этом руководителе я и хочу сегодня с вами поговорить, а именно, КАН-шина в автомобиле – что это, по какому принципу работает и собственно каким образом она появилась. Обо всем по порядку…

Немножко истории

Мало кто знает, что самые первые автомобили не имели абсолютно никакой электрики. Все что нужно было тогдашним водителям – это специальное магнитоэлектрическое приспособление для запуска мотора, которое способно было из кинетической выработать электроэнергию. Не мудрено, что такая примитивная система доставляла некие неудобства и соответственно постоянно модернизировалась.

Так из года в год, проводов и соответственно различных датчиков становилось все больше. Дошло до того, что по электрическому оснащению автомобиль уже начали сравнивать с самолетом. Именно тогда в 1970 году, стало очевидно – для бесперебойной работы, все цепи нужно рационализировать. Спустя 13 лет, ситуацию под свой контроль взял уже культовый бренд из Германии под названием Bosch. Как следствие, в 1986 году в Детройте был представлен инновационный протокол Controller Area Network (CAN).

Однако, даже после официальной презентации, наработка оставалась мягко говоря «сыроватой», поэтому работа над ней продолжалась.

  • 1987 г. – завершились практические тесты can шины, которые вызвались провести не менее знаменитые бренды в сфере компьютерных технологий Philips и Intel.
  • 1988 г. – уже на следующий год еще один немецкий автогигант BMW представил первый автомобиль, работающий по технологии can шины, это была любимая всеми модель 8-серии.
  • 1993 г. – международное признание и соответственно сертификат «ИСО».
  • 2001 г. ­– кардинальные перемены в стандартах, теперь любой европейский автомобиль должен функционировать по принципу «КАН».
  • 2012 г. – последнее обновление механизма, которое увеличило список совместимых устройств и скорость передачи данных.

Вот такой вот длинный путь прошел наш «директор» электрических приборов. Сами видите стаж не малый, поэтому столь высокое положение абсолютно по делу).

Определение КАН-шины

Несмотря на свой богатый функционал, визуально КАН-шина выглядит достаточно примитивно. Все ее составляющие – это чип и два провода. Хотя в самом начале своей «карьеры» (80-е года), для контакта со всеми датчиками, необходимо было более десятка штекеров. Происходило так, потому что каждый отдельный провод отвечал за один единственный сигнал, сейчас же их количество может достигать сотни. Кстати, раз мы уже упомянули датчики, рассмотрим, что именно контролирует наш механизм:

  • КПП;
  • Двигатель;
  • Система антиблокировки;
  • Подушка безопасности;
  • Дворники;
  • Панель приборов;
  • Гидроусилитель руля;
  • Котроллеры;
  • Зажигание;
  • Бортовой компьютер;
  • Мультимедийная система;
  • GPS навигация.

Сигнализация с КАН-шиной, как вы сами понимаете также сотрудничает очень тесно. Более 80% автомобилей на территории РФ используют технологию КАН, причем даже модели отечественного автопрома!

Кроме того, современная КАН-шина может не только проверять оборудование машины, но и даже устранять некоторые сбои! А отличная изоляция всех контактов инструмента, позволяет ему полностью оградить себя от любого рода помех!

Принцип работы КАН-шины

Итак, КАН-шина – это некий проверяемый передатчик, который способный отправить информацию не только по двум витым проводкам, но и по радиосигналу. Скорость обмена информацией может достигать 1 Мбит/с, при этом задействовать шину могут одновременно несколько устройств. Кроме того, технология CAN имеет узлы персональных тактовых генераторов, что позволяет отправлять определенные сигналы всем системам автомобиля сразу!

Рабочий график нашего «вожака», выглядит следующим образом:

  • Режим ожидания – абсолютно все системы выключены, электроэнергия поступает только на КАН-микрочип, который ждет команды к «Запуску».
  • Запуск – CAN активирует все системы при повороте ключа в зажигании.
  • Активная эксплуатация – происходит обоюдный обмен необходимой информацией, в том числе диагностической.
  • Режим сна – сразу же после отключения силового агрегата, КАН-шина мгновенно прекращает свою деятельность, все системы «засыпают».

На заметку: технология CAN используется не только в машиностроении, так в системах «Умный дом» ее используют достаточно давно и судя по отзывам, чип справляется с поставленными задачами на ура!

Очевидно, что даже сегодня такому важному агрегату есть куда расти, в частности это относится к скорости передачи данных. Производители уже сейчас делают некоторые шаги в этом направлении, так например, особо смышленые уменьшают длину проводов КАН-шины, что позволяет увеличить скорость передачи до 2 Мбит/с!

Достоинства и недостатки

В завершение данной публикации, подводя так сказать черту, коротко рассмотрим все плюсы и минусы данной технологии. Разумеется, начнем с достоинств:

  • Простой и недорогой монтаж;
  • Быстродействие;
  • Устойчивость к помехам;
  • Высокий уровень безопасности от взлома;
  • Огромный ассортимент на любой кошелек, подобрать нужную модель можно даже на «Запорожец»).

Что касается минусов, они тоже есть, но их не так уж и много:

  • Не стандартизированный протокол высшего уровня;
  • Практически весь трафик поедает информация технического и служебного назначения;
  • С каждым годом выделенного объема информации, который передается одновременно становится все меньше!

Собственно, на этом все, по старой традиции, прилагаю видео в тему! В нем вы узнаете, как проверить КАН-шину и можно ли это сделать в домашних условиях. До новых встреч господа!