Подключение к can шине автомобиля
О том, что такое CAN, LIN, почему надо ставить сигналку с подключением к этим шинам, какие плюсы этого и как устранить единственный минус(не открывается багажник с сигналки при работающем двигле).
CAN разработан компанией Robert Bosch GmbH в середине 1980-х и в настоящее время широко распространён в промышленной автоматизации, технологиях «умного дома», автомобильной промышленности и многих других областях. Стандарт для автомобильной автоматики.
А теперь постараюсь простым языком пояснить, что это и для чего. Данный стандарт предназначен для связи различных электронных блоков между собой. Каждый блок, подключенный к этой двухпроводной шине(да-да, в простом случае, без всяких мостов и т.д. все устройства связываются друг с другом с помощью всего двух проводов, CAN-H и CAN-L), может с различной периодичностью посылать в неё всевозможные сообщения, каждое из которых содержит в себе идентификатор сообщения(по которому можно определить, кто его отправил и что в этом сообщении) и непосредственно данные. Важной особенностью является то, что в любой момент времени сообщение посылает какой-нибудь один блок, а получают его сразу все(даже те, кому оно не нужно, просто блок, получивший сообщение, его может откинуть, но отозваться всё равно обязан о том, что он его получил). Ещё есть сообщения с просьбой к конкретному блоку отправить какие-то определенные данные(например, для диагностики), но это уже я пошел углубляться 😉
Что мы имеем в нашей Калине из того, что поддерживает общение по шине CAN:
1) Электронный блок управления двигателем (ЭБУ)
2) Комбинация приборов (КП)
3) Центральный блок кузовной электроники(ЦБКЭ)
4) Блок ABS
5) Система автоматического управления климатической установкой(САУКУ, или климат)
6) Контроллер подушек безопасности Таката
7) Блок управления роботом(если присутствует).
Примеры обменов по этой шине:
1) ЭБУ периодически шлет сообщения, в которых закодированы обороты двигателя, скорость авто, температура двигателя, состояние контрольной лампы Check Engine, мгновенный расход. Эти сообщения принимает КП и отображает данные параметры
2) Климат посылает запрос на включение муфты кондиционера, данное сообщение принимает ЭБУ и по готовности включает муфту кондиционера
3) При включении зажигания комбинация приборов через катушку в замке зажигания считывает с ключа метку иммобилайзера и по CAN-шине передаёт код этой метки в ЭБУ, тот сравнивает код с сохраненным в памяти эталоном и принимает решение о разрешении запуска двигателя
4) Диагностический адаптер подключается к CAN шине и по ней осуществляет диагностику всех вышеперечисленных блоков.
Как можете видеть, не всё в этой машине так просто, как некоторым кажется 😉 21ый век на дворе, как никак…
Шина LIN по своему устройству более простая и представляет собой подключение между МДВ(модуль двери водителя — та самая штука в двери, в которой кнопки стеклоподъёмников, управления ЦЗ и зеркалами) и ЦБКЭ. Когда вы нажимаете кнопку на штатном ключе, МДВ принимает радиосигнал, расшифровывает его и посылает по LIN в ЦБКЭ сообщение о том, что владелец нажал, например, кнопку открытия двери. ЦБКЭ(на откуп которому и отдано управление практически всем электрическим в этой машине — от замков и стеклоподъёмников до ДХО и стеклоочистителей) подаёт напряжение на замки дверей и машина отпирается.
Почему, если и ставить нештатную сигнализацию, то только с CAN-LIN модулем
Как многим известно, на драйве и в профильных группах ВК я агрессивно и последовательно проповедую установку сигнализации только с подключением к CAN-LIN шине, и вот почему.
Электроника в нашей машине весьма сложная и доисторические методы криворуких установщиков типа непосредственного подключения к приводам замков — очень плохие.
Сколько я видел жалоб, например, на то, что с сигналки открывается только водительская дверь.
Какие плюсы подключения к CAN-LIN
1) Минимальное вмешательство в штатную проводку (надо подключить силовые провода автозапуска, 2 провода к CAN, 2 провода в разрыв LIN, 2 провода к поворотникам, концевику капота — о статусе замков дверей, багажника, работающем двигателе и т.д. сигналка узнаёт из CAN-шины)
2) максимально приближенная к штатной работа электроники(например, когда открываете со Starline машину, сигналка по LIN шине посылает команду на открытие дверей и всё происходит точно так же, как будто вы нажмете кнопку на ключе)
3) штатная сигнализация и иммобилизатор работают
4) имеется функционал доводчика стёкол.
5) возможен безключевой обход иммобилайзера. Это позволяет сохранить функционал штатного иммобилайзера и не мудохаться с обходчиками(вообще, оставлять в машине спрятанные ключ или обученную метку иммобилайзера в обходчике я считаю идиотизмом сродне оставлению ключа от квартиры под ковриком перед ней 😉 ), что удобно и безопасно и повышает угоноустойчивость машины 😉 Об этом я писал в этой записи: www.drive2.ru/l/461567835588526660/
Чёрный провод идёт на массу, а красно-белый идёт в ЦБКЭ:
Как я добавил функции автомобилю по шине CAN, не умея программировать
Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.
С чего всё началось
Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:
Запуск на экране оказался более сложным, и после некоторого расследования я пришёл к выводу, что машина должна подавать сигнал от камеры заднего вида на экран через какую-то шину данных.
Шина CAN
У Chevrolet две разные шины данных. Первая — это стандартная CAN, быстрая (500 Кбит/с) и надёжная, она используется для критических данных. Вторая — то, что GM называет LAN (GMLAN), более старая и медленная шина (33,3 Кбит/с), которая используется для данных, не связанных с безопасностью.
Мне нужен был способ прослушивать трафик по CAN, то есть снифер. Для этой цели невероятно полезно устройство PCAN.
Peak Can
Peak Can (PCAN) представляет собой USB-устройство, способное перехватывать и передавать сообщения. Благодаря программному обеспечению Pcan View можно начинать работу без особого обучения.
Поскольку камера заднего вида менее важна для безопасности, чем другие компоненты, я предположил, что искомые данные, скорее всего, будут на шине GMLAN.
Самая простая точка доступа — разъём OBD2. Я подключил Peak Can к шине GMLAN, запустил программное обеспечение — и сразу началось прослушивание трафика.
Интеграция
Цель состояла в том, чтобы перепроектировать вызов камеры заднего вида. Для этого с включённым снифером я повёл машину задним ходом, чтобы она включила дисплей, а затем несколько раз попробовал парковаться. На протяжении всего этого процесса я заметил один ID с сообщениями, которые последовательно имитировали мои действия.
Тогда я припарковался и через Pcan View попытался передать то же самое сообщение, которое я видел, когда включался и выключался дисплей. В мгновение ока я уже взаимодействовал с шиной.
Передача сообщения через PCAN
Впрочем, я не планировал постоянно ездить с ноутбуком. Нужен был способ автоматизировать эти функции — и здесь пригодилась Arduino. Возможность напрямую получать питание 12V в сочетании с большим количеством ресурсов и поддержки в интернете сделала этот выбор очевидным.
В дополнение к Arduino для завершения проекта мне понадобилось два компонента: модуль CAN и модуль реле. По сути, Arduino — это мозг, запускающий и выполняющий код. Модуль CAN предоставляет возможность взаимодействовать с шиной данных, а реле обеспечивает питание фронтальной камеры, а также действует как видеомикшер между ней и камерой заднего вида.
Модуль mcp2515 (сверху), Arduino Uno (посередине), модуль реле (снизу)
После добавления и настройки соответствующих библиотек Arduino установил связь с автомобилем.
Прослушивание трафика через Arduino
Поскольку я уже знал, что могу запустить дисплей, то начал думать о том, КАК это сделать. Первоначальная идея состояла в том, чтобы установить на панели специальную кнопку мгновенного вызова, но я начал думать: «А что ЕЩЁ в сети можно использовать в качестве триггера?»
В ходе экспериментов я обнаружил, что по шине GMLAN также передаются сообщения с ID, соответствующим кнопке «Отмена круиз-контроля». Это было идеально, потому что круиз-контроль включается на скоростях более 65 км/ч, когда я буду использовать переднюю камеру, а на скоростях ниже 15 км/ч будет включаться камера заднего вида, чтобы помочь с парковкой, так что они никогда не будут перекрываться. После написания некоторого кода я смог заставить Arduino распознать, когда нажимается кнопка отмены круиз-контроля.
Распознавание однократного нажатия кнопки
Однако я не хотел, чтобы камера активировалась каждый раз, когда я отменяю круиз-контроль, поэтому я решил, что лучший подход — превратить её (по сути) в многофункциональную кнопку. Камера активируется только в том случае, если кнопка «дважды нажата».
После долгого уикенда изучения функции millis и отладки кода я успешно запрограммировал распознавание двойного нажатия.
Распознавание двойного нажатия
И когда я привязал его к своим командам для управления дисплеем, у меня собралась довольно крутая небольшая утилита.
Двойное нажатие + команды
Функциональность
Теперь у меня была возможность включать и выключать дисплей, но оставалась одна проблема — что насчёт камеры заднего вида? Мне нужно было, чтобы они с фронтальной камерой работали вместе, словно их так настроили на заводе.
На блок-схеме я изобразил, как я это представляю.
Я быстро понял, что для такой системы нужно в любой момент времени знать состояние трёх переменных:
В конце концов, я добился успеха!
Теперь я смог реализовать операционную логику, которая контролирует реле.
Управление через реле
На протяжении всего процесса я всё больше узнавал об Arduino и заметил, что версия Nano способна делать всё, что нужно, при этом у неё меньший размер и более низкая цена. Она идеально подходит для постоянной установки в автомобиль. Я разработал модель и распечатал на 3D-принтере корпус для размещения компонентов в качестве компактного блока для установки.
3D корпус
Всё вместе
Наконец настал день, когда я увидел результаты. Хотя нужно ещё повозиться с таймингом, но было приятно видеть, что модуль корректно работает.
Включение/выключение режима парковки, включение/выключение фронтальной камеры, автоматическое переключение на камеру заднего вида и автоматическое переключение обратно
В целом, этот опыт меня многому научил и открыл глаза на возможности интеграции непосредственно с шиной CAN. Довольно удивительно, чего можно достичь соединением по двум проводам.
Новичку о подключении к CAN шине
Для работы с CAN шиной автомобиля необходимо знать:
В автомобиле может быть более одной CAN шины. Для каждого функционального сегмента автомобиля выделяется своя сеть CAN. Выделенные сети могут работать на разных скоростях.
Скорости работы CAN шины
CAN на разных автомобилях и в разных сегментах сети может работать на разных скоростях.
Названия сегментов сети: Мотор, Шасси, Комфорт, Салон – условны! У Каждого автопроизводителя свои названия этих участков сети!
Сегментация CAN шины по функциональному назначению
Схема ниже изображена в общем виде для упрощения понимания роли Гейтвея. Количество CAN шин и варианты включения блоков управления к тому или другому сегменту сети могут отличаться.
Реализации CAN на уровне электрических сигналов
CAN шина может быть реализована физически тремя способами:
1 ISO11898-2 или CAN-High Speed.
Классическая витая пара нагруженная с обоих концов резисторами 120 Ом.
В этом случае уровни на шине CAN выглядят так:
2 ISO11898-3 или CAN-Low Speed или Faut Tolerant CAN
В этом варианте используется та же витая пара, но линии CAN-Low и CAN-High подтянуты к напряжению питания и массе соответственно.
Подробное описание FT-CAN по ссылке Такой вариант CAN шины способен переключаться в однопроводный режим в случае повреждения одной из линий. Работает на скоростях до 250 кбит\с.Уровни сигнала на шине отличаются от High Speed CAN, при этом не теряется возможность работы с шиной FT-CAN используя трансиверы High-Speed CAN и соблюдая ряд условий.
Подробнее в нашей статье о FT-CAN – ссылка.
Fault tolerant CAN обычно используется для низкоскоростного обмена между блоками управления относящимися к сегменту сети Салон\Комфорт\Мультимедиа.
3 Single Wire CAN или SW-CAN
Однопроводный вариант шины CAN. Работает на скорости 33.333 кбит\с
Используется специальный тип трансиверов. Для того что бы подключиться к такому варианту шины CAN необходимо линию CAN-High анализатора подключить к шине SW-CAN а линию CAN-Low к массе\земле.
Описание CAN шины и как через нее подключить автосигнализацию
Для того чтобы упорядочить работу всех контроллеров, которые облегчают управление и повышают контроль вождения автомобилем, используется CAN-шина. Подключить такое устройство к сигнализации машины можно своими руками.
Что такое CAN-шина и принцип ее работы
КАН-шина представляет собой сеть контроллеров. Устройство используется для объединения всех управляющих модулей автомобиля в одну рабочую сеть с общим проводом. Этот девайс состоит из одной пары кабелей, которая называется CAN. Информация, передающаяся по каналам из одного модуля на другой, отправляется в закодированном виде.
Какие функции может выполнять CAN-шина:
Эта система работает в нескольких режимах:
Канал Виалон СУшка в своем видео рассказал о КАН-шине и что надо знать про ее эксплуатацию.
Плюсы и минусы
Какими преимуществами обладает КАН-шина:
Какие недостатки характерны для устройства:
Виды и маркировки
Самым популярным типом шин являются устройства, разработанные Робертом Бошем. Девайс может функционировать последовательно, то есть сигнал передается за сигналом. Такие устройства называются Serial BUS. В продаже можно встретить и параллельные шины Parallel BUS. В них передача данных осуществляется по нескольким каналам связи.
О разновидностях, принципе действия, а также возможностях КАН-шины можно узнать из видео, снятого каналом DIYorDIE.
С учетом разных типов идентификаторов можно выделить несколько видов устройств:
Надо учесть, что в современных машинах такие типы устройств не применяются. Это связано с тем, что работа системы должна быть согласованной и логичной. А в данном случае она может функционировать при нескольких скоростях передачи импульсов – на 125 либо 250 кбит/с. Более низкая скорость используется для управления дополнительных устройств, таких как осветительные приборы в салоне, электрические стеклоподъемники, стеклоочистители и т. д. Высокая скорость нужна для обеспечения рабочего состояния трансмиссии, силового агрегата, системы ABS и т. д.
Разновидность функций шин
Рассмотрим, какие существуют функции у различных девайсов.
Девайс для автомобильного двигателя
При соединении устройства обеспечивается быстрый канал передачи данных, по которому информация распространяется со скоростью 500 кбит/с. Основное предназначение шины заключается в синхронизации работы управляющего модуля, к примеру, коробки передач и мотора.
Устройство типа Комфорт
Скорость передачи данных по этому каналу более низкая и составляет 100 кбит/с. Функция такой шины заключается в соединении всех устройств, относящихся к данному классу.
Информационно-командный девайс
Скорость передачи данных такая же, как и в случае с устройствами типа Комфорт. Главная задача шины заключается в обеспечении связи между обслуживающимися узлами, к примеру, мобильным девайсом и системой навигации.
Шины от разных производителей приведены на фото.
Могут ли быть проблемы в работе CAN-шин?
В современном авто цифровая шина используется постоянно. Она работает одновременно с несколькими системами, причем по ее каналам связи постоянно передается информация. Со временем в работе устройства могут возникнуть неполадки. В результате анализатор данных будет функционировать неверно. При обнаружении неполадок автовладелец должен найти причину.
По каким причинам возникают сбои в работе:
При поиске причин учитывайте, что неисправность может заключаться в некорректной работе вспомогательных устройств, устанавливающихся дополнительно. К примеру, причина может заключаться в неправильном функционировании противоугонной системы, контроллеров и девайсов.
О ремонте CAN-шины приборной панели в автомобиле Форд Фокус 2 можно узнать из ролика, снятого пользователем Brock – Video Corporation.
Процесс поиска неисправности осуществляется так:
Диагностика работоспособности КАН-шины требует определенных навыков и опыта, поэтому процедуру поиска неисправностей лучше доверить специалистам.
Как подключить сигнализацию по CAN-шине
Для подключения КАН-шины своими руками к автосигнализации машины с автозапуском либо без него надо знать, где находится блок управления противоугонной системой. Если установка сигнализации осуществлялась самостоятельно, то процесс поиска не вызовет сложностей у автовладельца. Управляющий модуль обычно ставится под приборной панелью в районе рулевого колеса либо за контрольным щитком.
Как произвести процедуру подключения:
Видео «Пример подключения КАН-шины»
Пользователь Alexander Bast в видеоролике показал на примере автомобиля Фольксваген Поло, как производится процедура подключения шины к бортовой сети автомобиля.
Что такое CAN-шина в автомобиле (устройство и схема подключения)
Автомобили давно уже стали не просто компьютерами на колёсах, а скорее компьютерными сетями. Передача механических, гидравлических или пневматических усилий между узлами и механизмами со временем превратилась в обмен электрическими сигналами, а сейчас и в информационное взаимодействие.
Наряду с массовым внедрением дешёвых электронных комплектующих, потребовалось разработать достаточно сложное и надёжное сетевое физическое и программное обеспечение.
Зачем нужна в машине CAN-шина
По мере усложнения автомобильной электроники, производители столкнулись с некоторыми проблемами, которые всё больше проявлялись с ростом рыночной конкурентоспособности новых моделей.
Далее наращивать объём оборудования простым добавлением управляющих и исполнительных устройств стало невозможно:
Решение должно было быть радикальным, и этот качественный скачок в развитии автомобильной электроники произошёл.
Электросхемы машин стали делать по принципам, заложенным в основах вычислительной техники и к тому времени уже достаточно устоявшимся и понятным.
Автомобиль стал представлять собой сеть из микрокомпьютеров, каждый из которых обслуживал свою систему или отдельный узел.
Например, двигатель, коробку передач, узлы трансмиссии, блок климата и даже отдельные фонари наружного освещения или стеклоподъёмники. Уже не надо было тянуть к каждому устройству медные провода в огромном количестве через весь автомобиль.
Причём до появления единой информационной шины некоторые узлы были обвешаны сразу несколькими однотипными датчиками, электронными блоками и жгутами проводки.
CAN-шина обходится единственной витой парой, то есть скрученными между собой двумя тонкими проводками, которые обходят все устройства, имея ответвления на каждое из них.
По схеме получается, что все блоки соединены параллельно через данную шину. Последовательный способ передачи информации делает это возможным, отдельных проводов данных, адресов, синхронизации и назначения приоритета не требуется.
Более того, системе не нужен единый обрабатывающий и управляющий сервер, все ресурсы распределены по микроконтроллерам.
Схема и место расположения КАН-интерфейса
Сеть имеет выход наружу через диагностический OBD разъём, где на этот счёт стандартом чётко определена пара контактов.
Точнее, две пары, из дальнейшего рассмотрения станет понятно, что через диагностику можно подключаться к двум CAN-шинам различного вида и назначения.
Обеспечивающий совместную работу шлюз в разных автомобилях может быть выполнен в виде отдельного блока, входить в состав контроллера управления двигателем, но чаще – приборной панели.
Принцип работы
Работа CAN-шины определяется физическим и логическим протоколами, которые достаточно чётко стандартизованы, хотя и имеют целый ряд исполнений.
Физически это витая пара, каждый из проводов которой является сигнальным. Работают они в противофазе, один поэтому называется CAN-High, второй – CAN-Low.
Сделано так с целью обеспечить максимальную помехоустойчивость при большой скорости передачи данных. Сигнал с пары снимается по дифференциальному принципу, то есть парой встречно включённых компараторов.
На концах витой пары имеется волновое согласование двумя терминальными резисторами по 120 Ом. Хотя встречаются и другие номиналы, но редко.
Активным уровнем считается низкий, он же логический ноль. Это общий принцип в работе устройств с открытым коллектором, разве что тут не применяется инвертирование уровней. Отсюда и логический принцип работы – инициируется линия любым устройством, открывшим свой выходной транзистор и сформировавшим первый нулевой бит.
Далее идёт идентификация приоритетного устройства, которое должно передать свою информацию первым в случае конфликта во времени. Протокол стандартный, каждый бит посылки расписан в даташитах ISO.
Все устройства одновременно передают и считывают информацию чётко соблюдая протокол, зашитый в памяти их контроллеров. Ненужные или ошибочные данные определяются и игнорируются.
Виды CAN-шин
Обычно используют две шины – высокоскоростную и низкоскоростную (не желая использовать этот компрометирующий термин, некоторые производители говорят о среднескоростных устройствах).
Первая применена для связи наиболее важных устройств, агрегатов двигателя, трансмиссии, тормозов, подвесок, систем безопасности. Вторая обслуживает второстепенные функции комфорта и сервиса.
Это не значит, что системы автономны. Они связаны между собой через шлюз, обычно находящийся в приборной панели. Низкоскоростная линия также имеет свои контакты в диагностическом разъёме, записанные в стандарт.
Сделано так, чтобы системы низшего уровня важности не мешали максимально быстрому обмену приоритетных устройств. А большое быстродействие, например, регулировке сидений ни к чему.
На низшем уровне могут работать ещё более простые шины, однопроводные и низкоскоростные. Они подключаются к общей CAN через свой контроллер.
Например, в двери могут стоять стеклоподъёмники, блок кнопок управления, различные датчики, всё это нет необходимости выводить на общую шину. Но и плодить множество проводов тоже. Используются простейшие контроллеры и однопроводная сеть.
Как подключиться и сделать диагностику автомобиля
Сканеры могут внедряться в протокол шины и анализировать её состояние, а также проходящую информацию. Можно использовать виртуальные устройства, эмулирующие отдельные блоки, а также создавать и передавать тестовые команды отдельным участникам сети.
Для связи используются специальные адаптеры USB-CAN, более сложные устройства и программное обеспечение.
До появления профессиональных CAN-анализаторов и тестеров пользовались скоростным запоминающим осциллографом и логическим анализатором.
Эти приборы тоже способны сохранять и предоставлять для изучения отдельные фреймы CAN, но в работе неудобны, требуют больших затрат времени.
Неисправности
Отказы шины обычно сводятся к нескольким типовым случаям:
Базой всей сетевой периферии является современная микроэлектроника и большие интегральные контроллеры серийного производства, поэтому надёжность оборудования в целом достаточно высока. Но поиски проблемного блока иногда бывают долгими из-за параллельного их подключения и размещения по всему автомобилю.
Плюсы и минусы встроенных шин
Сейчас уже трудно представить себе автомобиль с достойным набором современных опций без информационной шины, а конкурентоспособность требует ещё и высокого быстродействия.
CAN-шина всё это обеспечивает:
Но со временем усугубляются и недостатки. Так, усложнение автомобилей привело к тому, что быстродействия даже самых последних версий уже не хватает.
Поэтому в настоящее время эту самую распространённую автомобильную шину уже можно считать устаревшей, новые проекты обладают значительно более высоким быстродействием.