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

Общая характеристика

Визуально CAN-шина выглядит как асинхронная последовательность. Ее информация передается по двум витым проводникам, радиоканалу или оптоволокну.

Управлять шиной способны несколько устройств одновременно. Их количество не ограничено, а скорость обмена информацией запрограммирована до 1 Мбит/с.

CAN-шина в современных автомобилях регламентируется спецификацией "CAN Sorcjfication version 2,0".

Он состоит из двух разделов. Протокол А описывает передачу информации с применением 11-битной системы передачи данных. Часть В выполняет эти функции при применении 29-битного варианта.

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

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

Одной из самых известных на сегодняшний день является разработанная Робертом Бошем CAN-шина. CAN BUS (под таким названием известна система) бывает последовательная, где импульс подается за импульсом. Она называется Serial bus. Если же информация передается по нескольким проводам, то это параллельная шина Parallel bus.

I - узлы управления;

II - коммуникации системы.

Опираясь на разновидности идентификаторов КАН-шин, встречается маркировка двух типов.

В случае, когда узел поддерживает 11-битный формат обмена информацией и не обозначает ошибки на сигналы 29-битного идентификатора, его маркируют "CAN2,0A Active, CAN2,0B Passive".

Когда таковые генераторы используют оба типа идентификаторов, шина имеет маркировку "CAN2,0B Active".

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

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

Передача сигналов

Физически проводник CAN-шины современного автомобиля выполнен из двух составляющих. Первый - черного цвета и называется CAN-High. Второй проводник, оранжево-коричневый, именуется CAN-Low. Благодаря представленной структуре коммуникаций из схемы автомобиля удалена масса проводников. При производстве транспортных средств это позволяет уменьшить вес изделия до 50 кг.

Общая сетевая нагрузка состоит из разрозненных сопротивлений блоков, которые входят в состав протокола, называемого КАН-шина.

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

Расположен этот прибор в конструкции управляющего блока, но бывает выполнен в виде обособленного прибора.

Представленный интерфейс применяют также для вывода и ввода сигналов диагностического характера. Для этого предусмотрено наличие унифицированной колодки OBD. Это особый разъем для диагностики системы.

Разновидности функций шин

Существуют разные типы представленного устройства.

  1. КАН-шина агрегата силового. Это быстрый канал, который передает послания со скоростью 500 кбит/с. Его главная задача заключается в коммуникации блоков управления, например трансмиссия-двигатель.
  2. Система "Комфорт" - более медлительный канал, передающий данные со скоростью 100 кбит/с. Он связывает все устройства системы "Комфорт".
  3. Информационно-командная программа шины также передает сигналы медленно (100 кбит/с). Ее основное предназначение - обеспечить связь между обслуживающими системами, например телефоном и навигацией.

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

Помехи в шине

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

Описание шины CAN оговаривает поступление посланий по проводникам High и Low в усилитель дифференциальный, где он обрабатывается и направляется в блок управления.

Усилитель определяет этот выходной сигнал как разность напряжений проводов High и Low. Такой подход позволяет исключить влияние внешних помех.

Чтобы понять, что собой представляет КАН-шина и ее устройство, следует вспомнить ее облик. Это два проводника, скрученные между собой.

Так как сигнал помехи поступает сразу на оба провода, в процессе обработки значение напряжения Low отнимается от напряжения High.

Благодаря этому CAN-шина считается надежной системой.

Типы сообщений

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


I - CAN-шина;

II - резистор сопротивления;

III - интерфейс.

В процессе приема-передачи информации на проведение одной операции отводится определенное время. Если оно вышло, формируется фрейм ошибки. Error Frame также длится определенное количество времени. Неисправный блок автоматически отключается от шины при накоплении большого количества ошибок.

Функциональность системы

Чтобы понять, что такое CAN-шина, следует разобраться в ее функциональном назначении.

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

Команда состоит из 3 разделов: имени, значения события, времени наблюдения за переменной величиной.

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

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

Разрешение конфликтов на шине

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

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

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

Физические составляющие

Устройство шины состоит, помимо кабеля, из нескольких элементов.

Микросхемы приемопередатчика часто встречаются от компании Philips, а также Siliconix, Bosch, Infineon.

Чтобы понять, что такое КАН-шина, следует изучить ее компоненты. Максимальная длина проводника при скорости 1 Мбит/с достигает 40 м. Шина- CAN (известная еще как CAN-BUS) в конце наделена терминатором.

Для этого на конец проводников устанавливаются резисторы сопротивления по 120 Ом. Это необходимо, дабы устранить отражения сообщения на конце шины и убедиться, что она получает соответствующие уровни тока.

Сам проводник в зависимости от конструкции может быть экранированным или неэкранированным. Концевое сопротивление может отходить от классического и находиться в диапазоне от 108 до 132 Ом.

Технология iCAN

Рассматривая шины транспортного средства, следует уделить внимание программе блокировки работы двигателя.

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

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

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

Защита от угона

Модуль iCAN устанавливается в каком угодно узле, где расположены жгуты, в месте установки шины. Из-за минимальных габаритов и особого алгоритма действий выявить блокировку обычными методами при совершении угона практически нереально.

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

При наличии у транспортного средства автозапуска двигателя, iCAN не помешает его работе, так как срабатывает при старте движения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

История возникновения

Впервые понятие CAN-шина появилось в 80-х годах прошлого века. Тогда известная немецкая компания «БОШ» совместно с фирмой «Интел» разработала новый цифровой прибор для передачи данных, который назывался

Что она может?

Данная шина может соединить между собой все датчики, блоки и контроллеры, которые находятся в автомобиле. CAN может соединяться с иммоблайзером, системой SRS, ESP, электронным блоком управления двигателем, коробкой передач и даже подушками безопасности. Помимо этого, шина контактирует с датчиками подвески, и климат-контроля. Соединяются все эти механизмы в дуплексном режиме со до 1 Мбит/ с.

CAN-шина: описание и особенности прибора

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

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

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

Функциональность и быстродействие

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

Современный автомобиль это не только средство передвижения, но и продвинутый гаджет с мультимедийными функциями и электронной системой управления агрегатами и кучей датчиков. Многие автопроизводители предлагают функции ассистентов движения, помощников при парковке, мониторинга и управления авто с телефона. Это возможно благодаря использованию в авто 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 систему автоматизации

Диагностика и ремонт: CAN - шина

21.02.2006

Именно так выглядит (в основном) та самая "шина CAN", с которой в последнее время нам придется сталкиваться все чаще и чаще:

фото 1

Это обыкновенный двухпроводной кабель получивший название Twisted Pair.
На приведенном фото 1 показаны провода CAN High и CAN Low силового агрегата.
По этим проводам производится обмен данными между блоками управления, они могут нести информацию о скорости автомобиля, скорости вращения коленчатого вала, угле опережения зажигания и так далее.
Обратите внимание, что один из проводов дополнительно помечен черной полоской. Именно таким образом отмечается и визуально определяется провод CAN High (оранжево-черный).
Цвет провода
CAN-Low - оранжево-коричневый.
За основной цвет шины
CAN принят оранжевый цвет.

На рисунках и чертежах принято изображать цвета проводов шины CAN другими цветами, а именно:

фото 2

CAN-High - желтым цветом
CAN-Low - зеленым цветом

Всего существует несколько разновидностей шин CAN, определяемых выполняемыми ими функциями:
Шина CAN силового агрегата (быстрый канал ).
Она позволяет
передавать информацию со скоростью)500 кбит/с и служит для связи между блоками управления (двигатель - трансмиссия)
Шина CAN системы "Комфорт" (медленный канал ).
Она позволяет
передавать информацию со скоростью100 кбит/с и служит для связи между блоками управления, входящими в систему "Комфорт".
Шина данных CAN информационно- командной системы (медленный канал ), позволяющая передавать данные со скоростью 100 kBit/s. Обеспечивает связь между различными обслуживающимисистемами ( например,телефонной и навигационной системами) .

Новые модели автомобилей все более становятся похожими на самолеты - по количеству заявленных функций для безопасности, комфорта и экологичности. Блоков управления становится все больше и больше и "тянуть" от каждого грозди проводов - нереально.
Поэтому кроме шины CAN уже существуют другие шины, получившие названия:
– шина LIN (однопроводная шина)
– шина MOST (оптоволоконная шина)
– беспроводная шина Bluetooth

Но не будем "расплываться мыслью по древу", заострим наше внимание пока что на одной конкретной шине: CAN (по взглядам корпорации BOSCH).

На примере шины CAN силового агрегата можно посмотреть форму сигнала:

Фото 3

Когда на High шине CAN доминантное состояние, то напряжение проводе повышается до 3.5 вольт.
В рецессивном состоянии напряжение на обоих проводах равняется 2.5 вольта.
Когда на проводе
Low доминантное состояние, то напряжение падает до 1.5 вольта.
("Доминанта" - явление, доминирующее, главенствующее или господствующее в какой-либо сфере,- из словарей).

Для повышения надежности передачи данных, в шине CAN применяется дифференциальный способ передачи сигналов по двум проводам, имеющим название Twisted Pair. А провода, которые образуют эту пару, называются CAN High и CAN Low.
В исходном состоянии шины на обоих проводах поддерживается постоянное напряжение на определенном (базовом) уровне. Для шины
CAN силового агрегата оно приблизительно равняется 2.5 вольта.
Такое исходное состояние называется "состоянием покоя" или "рецессивом".

Каким образом передаются и преобразуются сигналы по CAN шине?

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

фото 4

Поступающие по проводам High и Low сигналы, поступают в дифференциальный усилитель, обрабатываются и поступают на вход блока управления.
Эти сигналы представляют собою напряжение на выходе дифференциального усилителя.
Дифференциальный усилитель формирует это выходное напряжение как разность между напряжениями на проводах High и Low шины CAN.
Таким образом исключается влияние величины базового напряжения (у шины CAN силового агрегата оно равно 2,5 В) или какого либо напряжения, вызванного, например, внешними помехами.

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

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

Так как шина CAN состоит из двух проводов, которые перекручены между собой, то помеха одновременно воздействует на два провода:

Из вышеприведенного рисунка видно, что происходит далее: в дифференциальном усилителе напряжение на проводе Low (1,5 В – " Pp") вычитается из напряжения
на проводе High (3,5 В – "
Pp") и в обработанном сигнале помеха отсутствует (" Pp" - помеха).


Примечание: По наличию времени статья может иметь продолжение - много еще остается "за кадром".



Кучер В.П.
© Легион-Автодата

Вас также может заинтересовать: