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

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

[ Скрыть ]

Где находится CAN-шина?

Модуль CAN в машине являет собой сеть датчиков и контроллеров, которые предназначены для объединения всех управляющих устройств в одну систему.

Эта автомобильная технология используется как колодка, с которой можно соединять следующие управляющие блоки:

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

CAN-модуль — это устройство, место монтажа которого может отличаться производителем транспортного средства.

Если неизвестно, где расположен интерфейс, этот момент уточняется в сервисной документации к авто, он обычно устанавливается:

  • под капотом автомобиля;
  • в салоне транспортного средства;
  • под контрольной комбинацией.

Технические характеристики

Описание основных свойств системы диагностики и анализа CAN:

  • общая скорость технологии при передаче пакетных данных варьируется в районе 1 мб/с;
  • если информация передается между блоками управления, то скорость отправки составит около 500 кб/с;
  • при функционировании устройства в режиме «Комфорт» передача данных осуществляется при 100 кб/с.

Назначение и функции кан-шины

Если правильно устанавливать и выполнять подсоединение проводов к интерфейсу, то можно обеспечить следующие опции:

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

Подробнее о назначении и общих характеристиках CAN-модуля рассказал канал «Crossover 159».

Устройство и принцип работы

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

Шина работает по принципу отправки данных в закодированном виде. Каждое передающееся сообщение обладает специальным уникальным идентификаторов. Может быть информация: «скорость передвижения авто составляет 50 км/ч», «температура охлаждающей жидкости 90 градусов Цельсия» и т. д. При отправке сообщений все электронные блоки получают данные, проверяющиеся идентификаторами. Если информация имеет отношение к определенному модулю, то она обрабатывается, если нет — то игнорируется.

В зависимости от модели, длина идентификатора интерфейса может быть 11 или 29 бит.

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

Работа CAN-шины возможна в нескольких режимах:

  1. Автономный, фоновый или спящий. При включении данного режима все основные агрегаты и узлы выключены и двигатель не заведен. На шину все равно подается напряжение от бортовой сети. Его значение небольшое, что дает возможность не допустить разряда АКБ.
  2. Пробуждение или запуск интерфейса. В данном режиме устройство начинает работу, это происходит при включении системы зажигания. Если автомобиль оснащен клавише Старт/Стоп, то CAN-шина начинает работу при ее нажатии. Производится включение функции стабилизации напряжения, в результате чего питание начинает поступать на контроллеры и датчики.
  3. Включение активного режима приводит к началу процесса обмена информацией между исполнительными механизмами и регуляторами. Величина напряжения в сети возрастает, так как шина может потреблять до 85 мА тока.
  4. Режим отключения или засыпания. При остановке двигателя автомобиля все агрегаты и механизмы, подключенные по CAN-интерфейсу, выключаются. Питание на них перестает подаваться.

Пользователь Valentin Belyaev подробно рассказал о принципе действия цифрового интерфейса.

Преимущества и недостатки

Если автомобиль оснащен цифровым интерфейсом, это обеспечивает следующие плюсы:

  1. Простота монтажа сигнализации на транспортное средство. Наличие CAN-шины в авто позволяет обеспечить более быстрый и упрощенный алгоритм подключения охранной системы.
  2. Высокая скорость отправки информации между агрегатами и системами, что обеспечивает быстродействие узлов.
  3. Хорошая устойчивость к воздействию помех.
  4. Все цифровые интерфейсы имеют многоуровневую систему контроля. Благодаря этому можно не допустить образования ошибок при отправке и приеме информации.
  5. Цифровой интерфейс, работая в активном режиме, выполняет разброс скорости по различным каналам самостоятельно. Благодаря этому все системы работают максимально оперативно.
  6. Безопасность CAN-шины. При попытке получения несанкционированного доступа к автомобилю система может произвести блокировку узлов и агрегатов.
  1. Некоторые системы обладают ограничениями по объему передающейся информации. Если автомобиль сравнительно новый и оборудован разными электронными устройствами, это приводит к росту нагрузки на канал передачи данных. В результате время отклика увеличивается.
  2. Большинство передающейся информации по цифровому интерфейсу имеет определенное назначение. На полезные данные в системе предусмотрена небольшая часть трафика.
  3. Возможна проблема отсутствия стандартизации. Это часто происходит при применении протоколов высших уровней.

Разновидности и маркировка

По типу идентификаторов такие устройства делятся на два вида:

  1. CAN2, 0A. Это маркировка интерфейсов, которые могут работать в 11-битном формате передачи информации. Данная разновидность устройств не в состоянии определять ошибки импульсов от блоков, которые работают с 29 бит.
  2. CAN2, 0B. Это маркировка шин, работающих в формате 11 бит. Основная особенность заключается в возможности передачи информации на блоки управления при выявлении 29-битного идентификатора.

В зависимости от области применения, шины разделяются на три класса:

  1. Для двигателя транспортного средства. При подключении шины обеспечивается максимальная скорость передачи данных и связи между управляющими устройствами. Отправка информации осуществляется по дополнительному каналу. Основное назначение состоит в синхронизации работы микропроцессорного модуля с другими системами. К примеру, антиблокировочным узлом колес, трансмиссией и т. д.
  2. Цифровые интерфейсы класса Комфорт. Этот класс шин предназначен для взаимодействия с любыми устройствами данного типа. Интерфейс используется для работы с системами электронного изменения положения электрозеркал, узла обогрева кресел, управления люком и т. д.
  3. Информационно-командные устройства. Они характеризуются аналогичной скоростью при отправке данных. Такие шины обычно применяются для связи между системами, которые требуются для обслуживания автомобиля.

Канал «Diyordie» рассказал о назначении цифрового интерфейса, а также о его разновидностях в автомобиле.

Подключение сигнализации своими руками

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

Необходимые приборы и инструменты

Предварительно надо подготовить:

  • тестер для проверки напряжения - мультиметр;
  • изоленту;
  • отвертку с крестовым наконечником.

Пошаговая инструкция

Установка выполняется так:

  1. Приступая к задаче, надо убедиться в работоспособности противоугонного комплекса. В случае, когда монтаж системы не был выполнен, надо подключить все устройства к блоку управления, а его — к аккумулятору.
  2. Производится поиск основного кабеля, который идет на цифровой интерфейс. Этот провод всегда толстый и обычно имеет оранжевую оболочку.
  3. Микропроцессорный модуль противоугонной системы надо подключить к этому проводнику. Для осуществления задачи применяется колодка цифровой шины.
  4. Если блок управления охранной системы не был установлен, производится его монтаж. Он должен быть размещен в скрытом месте, не подверженном воздействию влаги. При монтаже модуль надежно фиксируется с помощью пластиковых стяжек или саморезов.
  5. Все места соединения проводов надо заизолировать с применением термоусадочных трубок либо изоленты. После подключения производится диагностика выполненных действий. Если возникли проблемы, надо воспользоваться мультиметром для поиска поврежденного участка.
  6. На последнем этапе необходимо произвести проверку и настройку всех каналов передачи данных. Если имеются дополнительные каналы, они также настраиваются.

Канал «Гаражный любитель» подробно рассказал об установке и подключении противоугонного комплекса Старлайн с CAN-шиной.

Работа с терминалом

Варианты настройки

Если используется терминал, есть два варианта настроить работу интерфейса:

  1. С помощью специальной программы «Конфигуратор» для компьютера. При запуске утилиты надо перейти во вкладку «Настройки» и выбрать пункт CAN. В открывшемся окне указываются необходимые параметры.
  2. Используя команды «CanRegime». Обычно этот вариант применяется для дистанционной настройки с использованием СМС-сообщений. Могут применяться команды, которые отправляются из программного обеспечения для мониторинга.

Подробнее о командах, которые указываются после CanRegime:

  1. Mode — определяет режим функционирования. Если показана цифра 0 — то цифровой интерфейс отключен, если 1 — используется стандартный фильтр. Цифры 2 и 3 указывают на принадлежность пакетов к 29- либо 11-битному классу.
  2. BaudRate. Команда предназначена для определения скорости работы цифрового интерфейса. Важно, чтобы этот параметр соответствовал скорости передачи информации в авто.
  3. TimeOut — определяет время ожидания для каждого сообщения. Если полученная величина слишком низкая, то цифровой интерфейс сможет отловить не все передающиеся сообщения.

Режимы работы

Существует несколько режимов функционирования терминала:

  1. FMS — в нем автовладелец может узнать общий расход горючего, обороты, пробег транспортного средства, нагрузку на оси, температуру силового агрегата. Допускается получение данные об объеме горючего в баке. Для работы в данном режиме выполняется вход в меню выбора типа фильтров программы «Конфигуратор». Указывается тип режима FMS, скорость цифрового интерфейса, после чего нажимается кнопка «Применить».
  2. Режим прослушки используется для получения сообщений, передающий через цифровой интерфейс. Чтобы работать с ним, надо зайти в программе в настройки шины CAN и выбрать один из рабочих параметров. Это может быть скорость интерфейса или время ожидания, тип фильтра в данном случае не играет роли. После указания параметров «кликается» клавиша «Прослушать».
  3. Для привязки информации, полученной посредством прослушивания цифрового интерфейса, используются пользовательские фильтры. После прослушки данных надо выбрать тип фильтрующей технологии (для 11 или 29 бит). Расшифровка данных производится в соответствии с технической документацией.
  4. Режим тестирования OBD2 используется для сканирования скорости отправки информации, а также класса идентификатора. Чтобы запустить эту функцию, автовладельцу надо подключиться напрямую к цифровому интерфейсу или . Включение режима осуществляется посредством входа в меню «Настройка» и выбора опции «Тест OBD2». В результате терминалом начнется отправка запросов с конкретными идентификаторами на различных скоростях интерфейса. Во вкладке «Устройство» можно ознакомиться с извлеченной и расшифрованной информацией.

Настройка мониторингового ПО

После успешного подключения терминала надо произвести диагностику правильности отправки информации. Эти данные передаются на сервер мониторинга.

Отображение информации в системе сервера мониторинга

Скачать бесплатно инструкцию по установке и пользованию в формате PDF

Загрузить сервисное руководство по монтажу и эксплуатации по ссылкам в таблице.

Можно ли сделать анализатор своими руками?

Для выполнения этой задачи автовладелец должен иметь профессиональные навыки в области электроники:

  1. Сборка устройства производится по схеме, представленной на первом фото в галерее. Предварительно нужно купить все детали, необходимые для изготовления. Основным компонентов является плата STM32F103С8Т6, оснащенная контроллером. Также потребуется электрическая схема стабилизатора и CAN-трнасивер. Можно использовать устройство МСР2551 или другой аналог.
  2. Если требуется сделать анализатор более технологичным, в него можно добавить модуль Bluetooth. Благодаря этому автовладелец может сохранять важную информацию в память смартфона.
  3. Для программирования анализатора используется любое подходящее для этого программное обеспечение. Согласно отзывам, оптимальный вариант - утилиты Arduino или CANHacker. Во второй утилите есть больше опций и имеется функция фильтрации информации.
  4. Чтобы произвести прошивку, понадобится преобразователь USB-TTL. Это устройство требуется для отладки, при его отсутствии можно использовать ST-Link.
  5. После загрузки утилиты на компьютер основной файл с расширением ЕХЕ прошивается в блок с применением программатора. Если процедура выполнена успешно, то надо дополнительно установить перемычку на Bootloader. Собранное устройство надо синхронизировать с компьютером, используя USB-провод.
  6. Следующим этапом будет добавление прошивки в анализатор. Для выполнения задачи потребуется утилита MPHIDFlash.
  7. После успешного обновления программы кабель от компьютера отключается и снимается перемычка. Выполняется установка драйверов. Если сборка выполнена корректно, то при подключении к ПК анализатор будет определяться в качестве СОМ-порта.

Фотогалерея

Фото схем для самостоятельного изготовления анализатора приведены в этом разделе.

Сколько стоит?

Примерные цены на покупку КАН-устройств приведены в таблице.

Видео «Работа с CAN-шиной»

Канал «CAN-Hacker Automotive Data Bus Sollutions» показал способ работы с цифровым интерфейсом на примере автомобиля Рено Каптюр.

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

Ниже в статье приведены способы диагностики шины CAN при различных неисправностях. В качестве примера показана типичная схема CAN шины на тракторе Valtra T " серии.

Условные обозначения:

  • ICL - Instrumental Cluster (Панель приборов)
  • TC1/TC2 - Transmission controller (Блок управления трансмиссией 1/2)
  • EC - Electronic controller (Блок управления двигателем)
  • PCU - Pump Control Unit (Блок управления топливным насосом)

Измерения шины CAN BUS

Оконечные резисторы 120 Ом (Иногда эти резисторы называют терминаторы) внутри блока управления EC и резистор, расположенный рядом с блоком TC1

Если на дисплее (на боковой стойке) отображается код неисправности, имеющий отношение к шине CAN, то это означает неисправность проводки шины CAN или блока управления.

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

Если дисплей мигает или сообщение шины CAN не может быть передано через шину, то для обнаружения места повреждения проводки шины CAN (или неисправного блока управления) можно использовать мультиметр.

Шина CAN не имеет физических повреждений

Если сопротивление между проводами Hi (Высокое) и Lo (Низкое) шины CAN (в любой точке) примерно равно 60 Ом, то шина CAN не имеет физических повреждений.

- Блоки управления EC и TC1 исправны, так как оконечные резисторы (120 Ом) расположены в блоке EC и рядом с блоком TC1.

Блок управления TC2 и приборная панель ICL также не повреждены, поскольку шина CAN проходит через эти блоки.

Шина CAN повреждена

Если сопротивление между проводами Hi и Lo шины CAN (в любой точке) примерно равно 120 Ом, то проводка шины CAN повреждена (один или оба провода).

Шина CAN имеет физические повреждения

Если шина CAN повреждена, следует определить место повреждения.

Сначала замеряется сопротивление провода CAN-Lo, например, между блоками управления EC и TC2.

Таким образом, измерения должны быть выполнены между разъемами Lo-Lo или Hi-Hi. Если сопротивление примерно равно 0 Ом, то провод между измеряемыми точками не поврежден.

Если сопротивление примерно равно 240 Ом, то между измеряемыми точками шина повреждена. На рисунке показано повреждение провода CAN-Lo между блоком управления TC1 и приборной панелью ICL.

Короткое замыкание в шине CAN

Если сопротивление между проводами CAN-Hi и CAN-Lo примерно равно 0 Ом, то в шине CAN произошло короткое замыкание.

Отсоедините один из блоков управления и измерьте сопротивление между контактами разъемов CAN-Hi и CAN-Lo на блоке управления. Если устройство исправно, установите его на место.

Затем отсоедините следующее устройство, выполните измерения. Действуйте таким образом до тех пор, пока не будет обнаружено неисправное устройство. Блок неисправен, если сопротивление примерно равно 0 Ом.

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

Измерение напряжения шины CAN

Включите питание и измерьте напряжение между проводами CAN-Hi, CAN-Lo и проводом заземления.

Напряжение должно находиться в диапазоне 2,4 - 2,7 В.

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

Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

Я действовал поэтапно:

  1. Подключение к CAN шине авто
  2. Голосовое управление с помощью Homekit и Siri
В конце видео голосового управления стеклоподъемником.

Разработка CAN шилда для Raspberry Pi

Схему шилда взял здесь lnxpps.de/rpie , там же и описание выводов, для общения с CAN используются 2 микросхемы MCP2515 и MCP2551. К шилду подключаются 2 провода CAN-High и CAN-Low. В SprintLayout 6 развел плату, может кому пригодится CANBoardRPi.lay (на заглавном фото прототип шилда на макетке).

Установка ПО для работы с CAN шиной

На Raspbian 2-x годичной давность мне потребовалось пропатчить bcm2708.c, чтобы добавить поддержку CAN (возможно сейчас это не требуется). Для работы с CAN шиной нужно установить пакет утилит can-utils с github.com/linux-can/can-utils , после этого подгрузить модули и поднять can интерфейс:

# initialize insmod spi-bcm2708 insmod can insmod can-dev insmod can-raw insmod can-bcm insmod mcp251x # Maerklin Gleisbox (60112 and 60113) uses 250000 # loopback mode for testing ip link set can0 type can bitrate 125000 loopback on ifconfig can0 up
Проверяем, что интерфейс CAN поднялся командой ifconfig :

Проверить, что все работает можно отправив команду и получив ее.

В одном терминале слушаем:

Root@raspberrypi ~ # candump any,0:0,#FFFFFFFF
В другом терминале отправляем:

Root@raspberrypi ~ # cansend can0 123#deadbeef
Более подробный процесс установки описан здесь lnxpps.de/rpie .

Подключение к CAN шине авто

Немного изучив открытую документацию на CAN шину VW я выяснил, что у меня используется 2 шины.

Шина CAN силового агрегата , передающая данные со скоростью 500 кбит/с, связывает все обслуживающие этот агрегат блоки управления.

Например, к шине CAN силового агрегата могут быть подключены следующие приборы:

  • блок управления двигателем,
  • блок управления АБС,
  • блок управления системой курсовой стабилизации,
  • блок управления коробкой передач,
  • блок управления подушками безопасности,
  • комбинация приборов.
Шина CAN системы «Комфорт» и информационнокомандной системы , позволяющая передавать данные со скоростью 100 кбит/с между обслуживающими эти системы блоками управления.

Например, к шине CAN системы «Комфорт» и информационно<командной системы могут быть
подключены следующие приборы:

  • блок управления системой Climatronic или климатической установкой,
  • блоки управления в дверях автомобиля,
  • блок управления системой «Комфорт»,
  • блок управления с дисплеем для радио и навигационной системы.
Получив доступ к первой можно у управлять движением (в моем варианте на механике, как минимум можно управлять круиз контролем), получив доступ ко второй можно управлять магнитолой, климатом, центральным замком, стеклоподъемниками, фарами и др.

Обе шины связаны через шлюз, который находится в области под рулем, так же к шлюзу подключен диагностический OBD2 разъем, к сожаление через OBD2 разъем нельзя послушать трафик от обеих шин, можно только передать команду и запросить состояние. Я решил, что буду работать только с шиной «Комфорт» и самым удобным местом подключения к шине оказался разъем в водительской двери.

Теперь я могу слушать, все что происходит в CAN шине «Комфорт» и отправлять команды.

Разработка сниффера и изучение протокола CAN шины


После того как я получил доступ к прослушиванию CAN шины, мне нужно расшифровать кто кому и что передает. Формат пакета CAN показан на рисунке.

Все утилиты из набора can-utils сами умеют разбирать CAN пакеты и отдают только полезную информацию, а именно:

  • Идентификатор
  • Длина данных
  • Данные
Данные передаются в не зашифрованном виде, это облегчило изучение протокола. На Raspberry Pi я написал маленький сервер который перенаправляет данные с candump в TCP/IP, чтобы на компьютере разобрать поток данных и красиво показать их.

Для macOS я написал простое приложение, которое для каждого адреса устройства добавляет ячейку в табличку и в этой ячейке я уже вижу какие данные меняются.

Нажимаю кнопку стеклоподъемника я нашел ячейку в которой меняются данные, затем я и определил какие команды соответствуют нажатию вниз, нажатию вверх, удержанию вверх, удержанию вниз.

Проверить, что команда работает, можно отправив из терминала, например команду поднять левое стекло вверх:

Cansend can0 181#0200
Команды, которые передают устройства по CAN шине в автомобилях VAG (Skoda Octavia 2011), полученные методом реверс-инжиниринг:

// Front Left Glass Up 181#0200 // Front Left Glass Down 181#0800 // Front Right Glass Up 181#2000 // Front Right Glass Down 181#8000 // Back Left Glass Up 181#0002 // Back Left Glass Down 181#0008 // Back Right Glass Up 181#0020 // Back Right Glass Down 181#0080 // Central Lock Open 291#09AA020000 // Central Lock Close 291#0955040000 // Update Light status of central lock (Когда отправляешь команду открыть/закрыть замок то на кнопке управления замком светодиод не изменяет состояние, чтобы он показал реальное состояние центрального замка, нужно отправить команду обновления) 291#0900000000
Мне было лень изучить все остальные устройства, поэтому в этом списке, только то что мне было интересно.

Разработка приложения для телефона

Используя полученные команды я написал приложение для iPhone, которое открывает/закрывает стекла и управляет центральным замком.

На Raspberry Pi я запустил 2 маленьких сервера, первый отправляет данные с candump в TCP/IP, второй принимает команды от iPhone и передает их cansend.


Исходники приложения управления авто для iOS

// // FirstViewController.m // Car Control // // Created by Vitaliy Yurkin on 17.05.15. // Copyright (c) 2015 Vitaliy Yurkin. All rights reserved. // #import "FirstViewController.h" #import "DataConnection.h" #import "CommandConnection.h" @interface FirstViewController () @property (nonatomic, strong) DataConnection *dataConnection; @property (nonatomic, strong) CommandConnection *commandConnection; @property (weak, nonatomic) IBOutlet UILabel *Door_1; @property (weak, nonatomic) IBOutlet UILabel *Door_2; @property (weak, nonatomic) IBOutlet UILabel *Door_3; @property (weak, nonatomic) IBOutlet UILabel *Door_4; @property (weak, nonatomic) IBOutlet UIButton *CentralLock; - (IBAction)lockUnlock:(UIButton *)sender; @end @implementation FirstViewController - (void)viewDidLoad { self.dataConnection = ; self.dataConnection.delegate = self; ; self.commandConnection = ; ; } - (void)didReceiveMemoryWarning { ; // Dispose of any resources that can be recreated. } - (void)doorStatusChanged:(char)value { /* 1 - Front Left Door 2 - Front Right Door 4 - Back Left Door 8 - Back Right Door 3 - Front Left&Right Door = 1 + 3 5 - Front& Back left Door = 1 + 4 */ // Front Left Door if (value & 1) { self.Door_1.backgroundColor = ; self.Door_1.text = @"Открыто"; NSLog(@"1"); } else { self.Door_1.backgroundColor = ; self.Door_1.text = @"Закрыто"; } // Front Right Door if (value & 2) { self.Door_2.backgroundColor = ; self.Door_2.text = @"Открыто"; NSLog(@"2"); } else { self.Door_2.backgroundColor = ; self.Door_2.text = @"Закрыто"; } // Back Left Door if (value & 4) { self.Door_3.backgroundColor = ; self.Door_3.text = @"Открыто"; NSLog(@"4"); } else { self.Door_3.backgroundColor = ; self.Door_3.text = @"Закрыто"; } // Back Right Door if (value & 8) { self.Door_4.backgroundColor = ; self.Door_4.text = @"Открыто"; NSLog(@"8"); } else { self.Door_4.backgroundColor = ; self.Door_4.text = @"Закрыто"; } } BOOL firstStatusChange = YES; BOOL lastStatus; -(void) centralLockStatusChanged:(BOOL)status { // At first status changes set lastStatus variable if (firstStatusChange) { firstStatusChange = NO; // Invert status, to pass the next test lastStatus = !status; } // Change Lock image only if status changed if (!(lastStatus == status)) { // Check status if (status) { forState:UIControlStateNormal]; } else { forState:UIControlStateNormal]; } lastStatus = status; } } // Front Left Glass - (IBAction)frontLeftUp:(UIButton *)sender { ; } - (IBAction)frontLeftDown:(id)sender { ; } // Front Right Glass - (IBAction)frontRightUp:(UIButton *)sender { ; } - (IBAction)frontRightDown:(id)sender { ; } // Back Left Glass - (IBAction)backLeftUp:(UIButton *)sender { ; } - (IBAction)backLeftDown:(id)sender { ; } // Back Right Glass - (IBAction)backRightUp:(UIButton *)sender { ; } - (IBAction)backtRightDown:(id)sender { ; } - (IBAction)lockUnlock:(UIButton *)sender { // If central lock closed if (lastStatus) { // Open ; int64_t delayInSeconds = 1; // 1 sec dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ ; }); } else { // Close ; int64_t delayInSeconds = 1; // 1 sec dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ ; }); } } @end


Есть способ не писать свое приложение для телефона, а воспользоваться готовым из мира умных домов, всего лишь потребуется установиться на Raspberry Pi систему автоматизации

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

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

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

Так из года в год, проводов и соответственно различных датчиков становилось все больше. Дошло до того, что по электрическому оснащению автомобиль уже начали сравнивать с самолетом. Именно тогда в 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 Мбит/с!

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

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

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

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

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

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

В современных машинах используются электронные блоки управления (ЭБУ, ECU - Electronic Control Unit) для контроля и управления различными системами машины, такими как гидравликой, коробкой передач и двигателем.
Аналогично тому, как компьютеры могут быть соединены в одну сеть, блоки управления в машине тоже можно объединить.

Преимущества сетевого соединения:

  • Более чувствительная система управления
  • Получение более полных и надежных данных
  • Обнаружение неисправностей и управление настройками производится средствами программного обеспечения.

Например, ЭБУ двигателя может обмениваться с другими ЭБУ машины по системе сети CAN .

Система CAN :Controller Area Network - сеть контроллеров. CAN разработан компанией Robert Bosch GmbH в середине 1980-х и в настоящее время получил широкое применение в автомобильной, авиационной, тракторостроительной и других видах промышленности.

Электронная система связи CAN, которая объединяет все блоки управления машиной в сеть с общим кабелем(шиной) и состоящая из одной пары проводов, называется шиной CAN. Закодированные данные посылаются от блоков управления на шину CAN.

Рисунок - CAN шина из 4-х блоков управления.

Выше показана шина CAN, состоящая из 4-х блоков управления. На концах общего кабеля (шины) устанавливается согласующие сопротивления (терминаторы, резисторы) Обычно сопротивление каждого резистора составляет 120 Ом. Применение согласующих резисторов на концах системы позволяет избежать отражение сигнала в конце линии тем самым обеспечивая нормальную работу всей CAN сети.

Передача сигналов в шине CAN осуществляется посредством двух скрученных между собой проводов (витая пара, Twisted Pair) Применение витой пары проводов, обусловлено дифференциальной передачей данных и высокой защитой такого решения от внешних помех.

В нашем случае блок №2 отправляет один сигнал по двум витым проводам в шину CAN, причем у этого сигнала будет различное напряжение на каждом проводе витой пары. Другие блоки в сети читают сигнал и определяют какому блоку оно предназначено и какую команду нужно выполнить (Блоки №1 и №4)

Передача одного и того же сигнала на два провода (CAN High и CAN low) с разным напряжением происходит методом "дифференциальной передачи данных". В состоянии покоя напряжение на проводе CAN High и CAN low составляет 2,5 В. Такое состояние называется "рецессивное" и упрощенно соответствует значению бита "0" При переходе в активное "доминантное" состояние (такое состояние может создать любой элемент сети) напряжение на проводе CAN High будет повышаться не меньше чем на 1 В до 3,5 В, а CAN low понижаться - тоже на 1 В до 1,5В. Чтобы "понимать" разницу напряжений между CAN High и CAN low, каждый блок управления подключается к шине CAN через трансивер, где происходит преобразование разности напряжений U CAN Hi и U CAN Lo в итоговое напряжение U DIFF . Разница между CAN High и CAN low будет 2В и будет восприниматься принимающими блоками управления как значение бита, равное "1". Такая "дифференциальная передача" сигнала, исключает влияние базового напряжения 2,5 В и другие скачки напряжений из-за различных помех на работу блоков управления. Например, происходит просадка напряжения в бортовой сети на 1,5 В из-за включения мощного потребителя в сеть: U CAN Hi и U CAN Lo в состоянии покоя 2,5 -1,5 = 1 В (U DIFF = 1 - 1 = 0 - Значение бита "0") Разница, при переходе в доминантное состояние U CAN Hi = 2,5 +1 -1,5 = 2 В; U CAN Lo =2,5 -1 -1,5 = 0 В. Итого U DIFF = 2 - 0 = 2 В (Значение бита "1"), даже такая нереальная просадка не повлияла на работу.

Рисунок - Принцип линии CAN

Так происходит передача сигналов по шине CAN. Сами эти сигналы представляют собой "кадры" (сообщения), которые принимаются всеми элементами сети CAN. Полезная информация в кадре состоит из идентификационного поля (идентификатора) длиной 11 бит (стандартный формат) или 29 бит (расширенный формат, надмножество предыдущего) и поля данных длиной от 0 до 8 байт. Идентификационное поле говрит о содержимом пакета и служит для определения приоритета при попытке одновременной передачи несколькими сетевыми узлами. Также в кадре (сообщении) помимо полезной информации содержится служебная информация. Она представлена полями проверки, полем отзыва и другим полями. В конце кадра содержится "поле конец сообщения"

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

Рисунок -Структура сообщения

Напоследок пример работы:

Переключением кнопки инициируем команду блока управления №1 передачу сообщений в шину CAN. Блок №2 получает сообщение и расшифровав в сообщении что кадр пришел для него с командой включить свет. Подается бортовое напряжение на потребитель.

Рисунок - Принцип коммуникации через CAN

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