Как работает кан шина в автомобиле. Даже если данные со штатных датчиков будут успешно получены с CAN-шины, какова их практическая ценность? Как работает CAN шина

Шина CAN – Введение

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

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

Протокол CAN

Протокол CAN описан в стандарте ISO 11898–1 и может быть кратко охарактеризован следующим образом:

Физический уровень использует дифференциальную передачу данных по витой паре;

Для управления доступом к шине используется неразрушающее bit–wise разрешение конфликтов;

Сообщения имеют малые размеры (по большей части 8 байт данных) и защищены контрольной суммой;

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

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

Протоколы более высоких уровней

Сам по себе протокол CAN определяет всего лишь, как малые пакеты данных можно безопасно переместить из точки A в точку B посредством коммуникационной среды. Он, как и следовало ожидать, ничего не говорит о том, как управлять потоком; передавать большое количество данных, нежели помещается в 8–байтное сообщение; ни об адресах узлов; установлении соединения и т.п. Эти пункты определяются протоколом более высокого уровня (Higher Layer Protocol, HLP). Термин HLP происходит из модели OSI и её семи уровней.

Протоколы более высокого уровня используются для:

Стандартизации процедуры запуска, включая выбор скорости передачи данных;

Распределения адресов среди взаимодействующих узлов или типов сообщений;

Определения разметки сообщений;
обеспечения порядка обработки ошибок на уровне системы.

Пользовательские группы и т.п.

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

Продукты CAN

На низком уровне принципиально различают два типа продуктов CAN, доступных на открытом рынке – микросхемы CAN и инструменты разработки CAN. На более высоком уровне – другие два типа продуктов: модули CAN и инструменты проектирования CAN. Широкий спектр данных продуктов доступен на открытом рынке в настоящее время.

Патенты в области CAN

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

Системы распределённого управления

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

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

Сообщения CAN

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

Адресация сообщений CAN

CAN использует относительно короткие сообщения – максимальная длина информационного поля составляет 94 бита. В сообщениях отсутствует явный адрес, их можно назвать контентно–адрессованными: содержимое сообщения имплицитно (неявным образом) определяет адресата.

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

Существует 4 типа сообщений (или кадров), передающихся по шине CAN:

Кадр данных (Data Frame);

Удаленный кадр (Remote Frame);

Кадр ошибки (Error Frame);

Кадр перегрузки (Overload Frame).

Кадр данных

Кратко: «Всем привет, есть данные с маркировкой X, надеюсь вам понравятся!»
Кадр данных – самый распространенный тип сообщения. Он содержит в себе следующие основные части (некоторые детали не рассматриваются для краткости):

Поле арбитража (Arbitration Field), которое определяет очередность сообщения в том случае, когда за шину борятся два или более узла. Поле арбитража содержит:

В случае CAN 2.0A, 11–битный идентификатор и один бит, бит RTR который является определяющим для кадров данных.

В случае CAN 2.0B, 29–битный идентификатор (который также содержит два рецессивных бита: SRR и IDE) и бит RTR.

Поле данных (Data Field), которое содержит от 0 до 8 байт данных.

Поле CRC (CRC Field), содержащее 15–битную контрольную сумму, посчитанную для большинства частей сообщения. Эта контрольная сумма используется для обнаружения ошибок.

Слот распознавания (Acknowledgement Slot). Каждый контроллер CAN, способный корректно получить сообщение, посылает бит распознавания (Acknowledgement bit) в конце каждого сообщения. Приемопередатчик проверяет наличие бита распознавания и, если таковой не обнаруживается, высылает сообщение повторно.

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

Примечание 2: Идентификатор в поле арбитража, несмотря на свое название, необязательно идентифицирует содержимое сообщения.

Кадр данных CAN 2.0B («cтандартный CAN»).

Кадр данных CAN 2.0B («расширенный CAN»).

Удаленный кадр

Кратко: «Всем привет, кто–нибудь может произвести данные с маркировкой X?»
Удаленный кадр очень похож на кадр данных, но с двумя важными отличиями:

Он явно помечен как удаленный кадр (бит RTR в поле арбитража является рецессивным), и

Отсутствует поле данных.

Основной задачей удаленного кадра является запрос на передачу надлежащего кадра данных. Если, скажем, узел A пересылает удаленный кадр с параметром поля арбитража равным 234, то узел B, если он должным образом инициализирован, должен выслать в ответ кадр данных с параметром поля арбитража также равным 234.

Удаленные кадры можно использовать для реализации управления трафиком шины типа «запрос–ответ». На практике, однако, удаленный кадр используется мало. Это не так важно, поскольку стандарт CAN не предписывает действовать именно так, как здесь обозначено. Большинство контроллеров CAN можно запрограммировать так, что они будут автоматически отвечать на удаленный кадр, или же вместо этого извещать локальный процессор.

Есть одна уловка, связанная с удаленным кадром: код длины данных (Data Length Code) должен быть установлен длине ожидаемого ответного сообщения. В противном случае разрешение конфликтов работать не будет.

Иногда требуется чтобы узел, отвечающий на удаленный кадр, начинал свою передачу как только распознавал идентификатор, таким образом «заполняя» пустой удаленный кадр. Это другой случай.

Кадр ошибки (Error Frame)

Кратко (все вместе, громко): «О, ДОРОГОЙ, ДАВАЙ ПОПРОБУЕМ ЕЩЁ РАЗОК»
Кадр ошибки (Error Frame) – это специальное сообщение, нарушающее правила формирования кадров сообщения CAN. Он посылается, когда узел обнаруживает сбой и помогает остальным узлам обнаружить сбой – и они тоже будут отправлять кадры ошибок. Передатчик автоматически попробует послать сообщение повторно. Наличествует продуманная схема счетчиков ошибок, гарантирующая, что узел не сможет нарушить передачу данных по шине путём повторяющейся отсылки кадров ошибки.

Кадр ошибки содержит флаг ошибки (Error Flag), который состоит из 6 бит одинакового значения (таким образом нарушая правило вставки битов) и разграничителя ошибки (Error Delimiter), состоящего из 8 рецессивных бит. Разраничитель ошибки предоставляет некоторое пространство, в котором другие узлы шины могут отправлять свои флаги ошибки после того, как сами обнаружат первый флаг ошибки.

Кадр перегрузки (Overload Frame)

Кратко: «Я очень занятой 82526 маленький, не могли бы вы подождать минуточку?»
Кадр перегрузки упоминается здесь лишь для полноты картины. По формату он очень похож на кадр ошибки и передается занятым узлом. Кадр перегрузки используется нечасто, т.к. современные контроллеры CAN достаточно производительны, чтобы его не использовать. Фактически, единственный контроллер, который будет генерировать кадры перегрузки – это ныне устаревший 82526.

Стандартный и расширенный CAN

Изначально стандарт CAN установил длину идентификатора в поле арбитража равной 11 битам. Позже, по требованию покупателей стандарт был расширен. Новый формат часто называют расширенным CAN (Extended CAN), он позволяет использовать не менее 29 бит в идентификаторе. Для различения двух типов кадров используется зарезервированный бит в поле управления Control Field.

Формально стандарты именуются следующим образом –

2.0A – только с 11–битными идентификаторами;
2.0B – расширенная версия с 29–битными или 11–битными идентификаторами (их можно смешивать). Узел 2.0B может быть

2.0B active (активным), т.е. способным передавать и получать расширенные кадры, или

2.0B passive (пассивным), т.е. он будет молча сбрасывать полученные расширенные кадры (но, смотрите ниже).

1.x – относится к оргинальной спецификации и её ревизиям.

В настоящее время новые контроллеры CAN обычно относятся к типу 2.0B. Контроллер типа 1.x или 2.0A прибудет в замешательство, получив сообщения с 29 битами арбитража. Контроллер 2.0B пассивного типа примет их, опознает, если они верны и, затем – сбросит; a контроллер 2.0B активного типа сможет и передавать, и получать такие сообщения.

Контроллеры 2.0B и 2.0A (равно, как и 1.x) совместимы. Можно использовать их все на одной шине до тех пор, пока контроллеры 2.0B будут воздерживаться от рассылки расширенных кадров.

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

Основной CAN (Basic CAN) и полный CAN (Full CAN)

Термины Basic CAN и Full CAN берут начало в «детстве» CAN. Когда–то существовал CAN–контроллер Intel 82526, предоставлявший программисту интерфейс в стиле DPRAM. Потом появился Philips с моделью 82C200, в котором применялась FIFO–ориентированная модель программирования и ограниченные возможности фильтрации. Для обозначения различия между двумя моделями программирования, люди стали называть способ Intel – Full CAN, а способ Philips – Basic CAN. Сегодня большинство контроллеров CAN поддерживают обе модели программирования, поэтому нет смысла в использовании терминов Full CAN и Basic CAN – фактически, эти термины могут вызвать неразбериху и стоит воздержаться от их употребления.

В действительности, контроллер Full CAN может взаимодействовать с контроллером Basic CAN и наоборот. Проблемы с совместимостью отсутствуют.

Разрешение конфликтов на шине и приоритет сообщения

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

Любой контроллер CAN может начать передачу, когда обнаружит, что шина простаивает. Это может привести к тому, что два или более контроллеров начнут передачу сообщения (почти) одновременно. Конфликт решается следующим образом. Передающие узлы осуществляют мониторинг шины в процессе отправки сообщения. Если узел обнаруживает доминантный уровень в то время, как сам он отправляет рецессивный уровень, он незамедлительно устранится от процесса разрешения конфликта и станет приемником. Разрешение конфликтов осуществляется по всему полю арбитража, и после того, как это поле отсылается, на шине остается только один передатчик. Данный узел продолжит передачу, если ничего не случится. Остальные потенциальные передатчики попытаются передать свои сообщения позже, когда шина освободится. В процессе разрешения конфликта время не теряется.

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

Поскольку, CAN–шина является шиной с подсоединением устройств по типу «монтажное И» (wired–AND) и доминантный бит (Dominant bit) является логическим 0, следовательно сообщение с самым низким в численном выражении полем арбитража выиграет в разрешении конфликта.

Вопрос: Что произойдет в случае, если единственный узел шины попытается отослать сообщение?

Ответ: Узел, разумеется, выиграет в разрешении конфликта и успешно проведет передачу сообщения. Но когда наступит время распознавания… ни один узел не отправит доминантный бит области распознавания, поэтому передатчик определит ошибку распознавания, пошлет флаг ошибки, повысит значение своего счетчика ошибок передачи на 8 и начнет повторную передачу. Этот цикл повторится 16 раз, затем передатчик перейдет в статус пассивной ошибки. В соответствии со специальным правилом в алгоритме ограничения ошибок, значение счетчика ошибок передачи не будет более повышаться, если узел имеет статус пассивной ошибки и ошибка является ошибкой распознавания. Поэтому узел будет осуществлять передачу вечно, до тех пор, пока кто–нибудь не распознает сообщение.

Адресация и идентификация сообщения

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

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

Определённый адрес работает так: «Это сообщение для узла X». Контентно–адресованное сообщение можно описать так: «Это сообщение содержит данные с маркировкой X». Разница между этими двумя концепциями мала, но существенна.

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

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

Примечание о значениях идентификатора

Мы говорили, что идентификатору доступны 11 (CAN 2.0A) или 29 (CAN 2.0B) бит. Это не совсем верно. Для совместимости с определенным старым контроллером CAN (угадайте каким?), идентификаторы не должны иметь 7 старших бит установленных в логическую единицу, поэтому 11–битным идентификаторам доступны значения 0..2031, а пользователи 29–битных идентификаторов могут использовать 532676608 различных значений.

Заметьте, что все остальные контроллеры CAN принимают «неправильные» идентификаторы, поэтому в современных системах CAN идентификаторы 2032..2047 могут использоваться без ограничений.

Физические уровни CAN

Шина CAN

Шина CAN использует код без возвращения к нулю (NRZ) с вставкой битов. Существуют два разных состояния сигнала: доминантное (логический 0) и рецессивное (логическая 1). Они соответствуют определенным электрическим уровням, зависящим от используемого физического уровня (их несколько). Модули подключены к шине по схеме «монтажное И» (wired–AND): если хотя бы один узел переводит шину в доминантное состояние, то вся шина находится в этом состоянии, вне зависмости от того, сколько узлов передают рецессивное состояние.

Различные физические уровни

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

Существует несколько различных версий физических уровней: Наиболее распространенным является вариант, определенный стандартом CAN, часть ISO 11898–2, и представляющий собой двухпроводную сбалансированную сигнальную схему. Он также иногда называется high–speed CAN.

Другая часть того же стандарта ISO 11898–3 описывает другую двухпроводную сбалансированную сигнальную схему – для менее скоростной шины. Она устойчива к сбоям, поэтому передача сигналов может продолжаться даже в том случае, когда один из проводов будет перерезан, замкнут на «землю» или в состоянии Vbat. Иногда такая схема называется low–speed CAN.

SAE J2411 описывает однопроводной (плюс «земля», разумеется) физический уровень. Он используется в основном в автомобилях – например GM–LAN.

Существуют несколько проприетарных физических уровней.

В былые времена, когда драйверов CAN не существовало, использовались модификации RS485.

Различные физические уровни как правило не могут взаимодействовать между собой. Некоторые комбинации могут работать (или будет казаться, что они работают) в хороших условиях. Например, приемопередатчики high–speed и low–speed могут работать на одной шине лишь иногда.

Абсолютное большинство микросхем приемопередатчиков CAN произведено компанией Philips; в число других производителей входят Bosch, Infineon, Siliconix и Unitrode.

Наиболее распространен приемопередатчик 82C250, в котором реализован физический уровень, описываемый стандартом ISO 11898. Усовершенствованная версия – 82C251.

Распространенный приемопередатчик для «low–speed CAN» – Philips TJA1054.

Максимальная скорость передачи данных по шине

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

Low–speed CAN (ISO 11898–3, см. выше) работает на скоростях до 125 кбит/с.

Однопроводная шина CAN в стандартном режиме может передавать данные со скоростью порядка 50 кбит/с, а в специальном высокоскоростном режиме, например для программирования ЭБУ (ECU), около 100 кбит/с.

Минимальная скорость передачи данных по шине

Имейте в виду, что некоторые приемопередатчики не позволят вам выбрать скорость ниже определенного значения. Например, при использовании 82C250 или 82C251 вы можете без проблем установить скорость 10 кбит/с, но если вы используете TJA1050, то не сможете установить скорость ниже 50 кбит/с. Сверяйтесь со спецификацией.

Максимальная длина кабеля

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

Другие максимальные длины кабеля (значения приблизительные):

100 метров при 500 кбит/с;

200 метров при 250 кбит/с;

500 метров при 125 кбит/с;
6 километров при 10 кбит/с.

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

Оконечное прерывание шины

Шина CAN стандарта ISO 11898 должна заканчиваться терминатором. Это достигается путем установки резистора сопротивлением 120 Ом на каждом конце шины. Терминирование служит двум целям:

1. Убрать отражения сигнала на конце шины.

2. Убедиться, что получает корректные уровни постоянного тока (DC).

Шина CAN стандарта ISO 11898 обязательно должна терминироваться вне зависимости от её скорости. Я повторю: шина CAN стандарта ISO 11898 обязательно должна терминироваться вне зависимости от её скорости. Для лабораторной работы может хватить и одного терминатора. Если ваша шина CAN работает даже при отсутствии терминаторов – вы просто счастливчик.

Заметьте, что другие физические уровни , такие как low–speed CAN, однопроводная шина CAN и другие, могут требовать, а могут и не требовать наличия оконечного терминатора шины. Но ваша высокоскоростная шина CAN стандарта ISO 11898 всегда будет требовать наличия хотя бы одного терминатора.

Кабель

Стандарт ISO 11898 предписывает, что волновое сопротивление кабеля номинально должно равнятся 120 Ом, однако допускается интервал значений сопротивления Ом.

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

ISO 11898 описывает витую пару, экранированную или неэкранированную. Идёт работа над стандартом однопроводного кабеля SAE J2411.

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

[ Скрыть ]

Что такое CAN-шина

Электронный КАН-интерфейс в авто представляет собой сеть контроллеров, использующихся для объединения всех управляющих модулей в единую систему.

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

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

Устройство и где находится шина

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

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

Как работает?

Принцип работы автоматической системы заключается в передаче закодированных сообщений. В каждом из них имеется специальный идентификатор, являющийся уникальным. К примеру, «температура силового агрегата составляет 100 градусов» или «скорость движения машины 60 км/ч». При передаче сообщений все электронные модули будут получать соответствующую информацию, которая проверяется идентификаторами. Когда данные, передающиеся между устройствами, имеют отношение к конкретному блоку, то они обрабатываются, если нет — игнорируются.

Длина идентификатора CAN-шины может составить 11 либо 29 бит.

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

Интерфейс, подключенный к сигналке или модулю автоматического запуска, может функционировать в разных режимах:

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

Характеристики

Технические свойства цифрового интерфейса:

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

Канал «Электротехника и электроника для программистов» рассказал о принципе отправки пакетных данных, а также о характеристиках цифровых адаптеров.

Виды CAN-шин

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

  1. КАН2, 0А. Так маркируются цифровые устройства, которые могут функционировать в 11-битном формате обмена данными. Этот тип интерфейсов по определению не может выявить ошибки на сигналы от модулей, работающих с 29 бит.
  2. КАН2, 0В. Так маркируются цифровые интерфейсы, функционирующие в 11-битном формате. Но ключевая особенность состоит в том, что данные об ошибках будут передаваться на микропроцессорные устройства, если обнаруживается идентификатор на 29 бит.

CAN-шины могут делиться на три категории в соответствии с видом:

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

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

Инструкция по подключению сигнализации по CAN-шине

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

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

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

Что понадобится?

Для выполнения задачи потребуется:

  • мультиметр;
  • канцелярский нож;
  • изолента;
  • отвертка.

Пошаговые действия

Процедура подключения противоугонной установки к CAN-шине осуществляется так:

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

Пользователь Sigmax69 рассказал о соединении охранного комплекса с цифровым интерфейсом на примере автомобиля Хендай Солярис 2017.

Неисправности

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

Признаки и причины

О появлении неисправностей могут сообщить такие «симптомы»:

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

Причины, по которым могут возникнуть неисправности в работе CAN-интерфейса:

  • обрыв проводки в одной из систем или повреждение электролиний;
  • короткое замыкание в работе агрегатов на батарею или землю;
  • повреждение резиновых перемычек на разъеме;
  • окисление контактов, в результате чего нарушается передача сигнала между системами;
  • разряд АКБ автомобиля либо падение величины напряжения в электросети, что связано с неправильным функционированием генераторной установки;
  • замыкание систем CAN-high либо CAN-low;
  • появление неисправностей в работе катушки зажигания.

Подробнее о поломках цифрового интерфейса и тестировании с использованием компьютера рассказал канал «KV Avtoservis».

Диагностика

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

Процесс проверки:

  1. Диагностика начинается с поиска проводника витой пары КАН-шины. Кабель имеет черную либо оранжево-серую изоляцию. Первый является доминантным уровнем, а второй — второстепенным.
  2. С помощью мультиметра производится проверка величины напряжения на контактных элементах. При выполнении задачи зажигание нужно включить. Процедура тестирования позволит выявить напряжение в диапазоне от 0 до 11 вольт. На практике это обычно 4,5 В.
  3. Выполняется отключение зажигания. От аккумулятора отсоединяется проводник с отрицательным контактом, предварительно гаечным ключом надо ослабить зажим.
  4. Выполняется измерение параметра сопротивления между проводниками. О замыкании контактов можно узнать, если эта величина стремится к нулю. Когда диагностика показала, что сопротивление бесконечно, то в электролинии имеется обрыв. Проблема может заключаться непосредственно в контакте. Требуется более детально проверить разъем и все провода.
  5. На практике замыкание обычно происходит из-за поломки управляющих устройств. Для поиска вышедшего из строя модуля следует поочередно отключить от питания каждый блок и выполнить проверку величины сопротивления.

Пользователь Филат Огородников рассказал о диагностике КАН-шины с использованием осциллографа.

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

Самостоятельно выполнить сборку данного устройства сможет только профессионал в области электроники и электротехники.

Основные нюансы процедуры:

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

Фотогалерея

Схема для разработки CAN-анализатора Основная плата для сборки устройства

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

Преимущества, которыми обладает цифровой интерфейс:

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

Минусы, которыми обладает CAN-шина:

  1. Некоторые интерфейсы имеют ограничения по объему информации, которая может передаваться. Этот недостаток будет весомым для современного автомобиля, «напичканного» электроникой. При добавлении дополнительных устройств на шину возлагается более высокая нагрузка. Из-за этого снижается время отклика.
  2. Все пакетные данные, которые передаются по шине, имеют определенное назначение. Для полезной информации отводится минимальная часть трафика.
  3. Если применяется протокол повышенного уровня, это станет причиной отсутствия стандартизации.

Видео «Ремонт CAN-интерфейса своими руками»

Пользователь Roman Brock рассказал о процедуре восстановления шины приборной панели в автомобиле Форд Фокус 2 рестайлинг.

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

Can шина – имеет ли она что-то общее с обычными шинами и для чего нужна

ВНИМАНИЕ! Найден совершенно простой способ сократить расход топлива! Не верите? Автомеханик с 15-летним стажем тоже не верил, пока не попробовал. А теперь он экономит на бензине 35 000 рублей в год!

Услышав такое определение, как «CAN шина», неопытный водитель подумает что это ещё один вид автомобильной резины. Но на самом деле, к обычным шинам это устройство не имеет никакого отношения. Это устройство создавалось для того, чтобы не было необходимости устанавливать в машине кучу проводов, ведь управление всеми системами машин должно вестись из одного места. Can шина даёт возможность сделать салон автомобиля комфортным для водителя и пассажиров, ведь при её наличии не будет большого количества проводов, позволяет вести управление всеми системами машины и подключать в удобный способ дополнительное оборудование – трекеры, сигнализации, маяки, секретки и другое. В машина старого образца ещё нет такого приспособления, это доставляет много неудобств. Цифровая шина лучше справляется с поставленными на неё задачами, а стандартная система – с кучей проводов, является сложной и неудобной.

Когда была разработана цифровая CAN шина и какое её назначение

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

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

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

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

Can шина – параметры скорости и особенности передачи данных

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

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

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

Цифровая шина – это целая сеть контролёров, которые объединились в одно компактное устройство и имеют возможность быстро получать или передавать информацию, запуская или отключая определённые системы. Последовательный режим передачи данных делает работу системы более слаженной и корректной. CAN шина – это механизм, который имеет тип доступа Collision Resolving и при установке дополнительного оборудования необходимо учитывать этот факт.

Могут ли возникать проблемы в работе кан шины

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

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

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

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

Какие системы входят в современную Can шину автомобиля

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

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

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

CAN шина, как подключается автосигнализация к цифровой шине

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

  1. Автосигнализация по стандартной схеме подключается ко всем точкам автомобиля.
  2. Владелец транспортного средства ищет оранжевый, толстый провод – он ведёт к цифровой шине.
  3. Адаптер сигнализации подключается к проводу цифровой шины автомобиля.
  4. Производятся необходимые закрепляющие действия –установка системы в надёжном месте, изоляция проводов, проверка правильности произведённого процесса.
  5. Настраиваются каналы для работы с системой, задаётся функциональный ряд.

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

Устал платить за штрафы? Выход есть!

Забудьте о штрафах с камер! Абсолютно легальная новинка - НАНОПЛЁНКА, которая скрывает ваши номера от ИК камер (которые стоят по всем городам). Подробнее

  • Абсолютно легально (статья 12.2.4).
  • Скрывает от фото-видеофиксации.
  • Устанавливается самостоятельно за 2 минуты.
  • Не видна человеческому глазу, не портится из-за погоды.
  • Гарантия 2 года,

Чтобы связно и гармонично управлять системами, обеспечить качество и функциональность передачи данных, многие автомобилестроительные компании применяют современную систему, известную как 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 популярна и востребована.

Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.

Ariel Nuñez
Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.


Рисунок 1: Как при помощи приложения управлять ключевыми функциями автомобиля?
Недавно я вместе со своими друзьями из компании Voyage работал над реализацией программного управления системой кондиционирования в Ford Fusion. На данный момент Voyage занимается разработкой бюджетных самоуправляемых автомобилей. Конечная цель: чтобы каждый смог вызвать автомобиль к своей входной двери и безопасно путешествовать туда, куда вздумается. В компании Voyage считают крайне важной возможностью предоставление доступа к ключевым функциям автомобиля с заднего кресла, поскольку не за горами тот день, когда работа водителя будет полностью автоматизирована.
Зачем нужна шина CAN
Современные автомобили используют множество систем управления, которые во многих случаях функционируют подобно микро-службам в веб-разработке. Например, подушки безопасности, тормозные системы, регулирование скорости движения (круиз контроль), электроусилитель руля, аудиосистемы, управление окнами и дверями, подстройка стекл, системы зарядки для электрических автомобилей и т. д. Эти системы должны уметь осуществлять коммуникацию и считывать параметры друг друга. В 1983 в компании Bosch началась разработка шины CAN (Controller Area Network; Локальная сеть контролеров) для решения этой сложной задачи.
Можно сказать, что шина CAN представляет собой простую сеть, где каждая система автомобиля может считывать и отсылать команды. Эта шина интегрируется все сложные компоненты элегантным образом, что дает возможность реализовать всеми любимые функции автомобиля, которыми мы пользуемся.


Рисунок 2: Впервые шина CAN стала использоваться в 1988 году в БМВ 8 серии
Самоуправляемые автомобили и шина CAN
Поскольку интерес к разработке самоуправляемых автомобилей серьезно вырос, соответственно, словосочетание «шина CAN» также становится популярным. Почему? Большинство компаний, создающих самоуправляемых автомобилей, не занимаются производством с нуля, а пытаются научиться программно управлять машинами после выхода с конвейера фабрики.
Понимание внутреннего устройства шины CAN, используемой в автомобиле, позволяет инженеру формировать команды при помощи программного обеспечения. Самые нужные команды, как вы можете догадаться, связаны с управлением рулем, ускорением и торможением.


Рисунок 3: Введение в LIDAR (ключевой сенсор самоуправляемого автомобиля)
При помощи сенсоров наподобие LIDAR (light detecting and ranging; оптическая локационная система) машина способна смотреть на мир как суперчеловек. Затем компьютер внутри автомобиля на базе полученной информации принимает решения и посылается команды в шину CAN для управления рулем, ускорение и торможением.
Не каждый автомобиль способен стать самоуправляемым. И по некоторым причинам компания Voyage выбрала модель Ford Fusion (подробнее о причинах можно почитать в этой статье).
Исследование шины CAN в Ford Fusion
Перед началом исследования систем кондиционирования воздуха в Ford Fusion я открыл мою любимую книгу The Car Hacker’s Handbook . Перед погружением в суть вопроса заглянем в Главу 2 , где описываются три важные концепции: протоколы шины, шина CAN и CAN-фреймы.
Шина CAN
Шина CAN начала использоваться в американских легковых машинах и небольших грузовиках с 1994 года и с 2008 года в обязательном порядке (в европейских автомобилях с 2001 года). В этой шине предусмотрено два провода: CAN high (CANH) и CAN low (CANL). Шина CAN использует дифференциальный сигналинг, суть которого заключается в том, что при поступлении сигнала на одном проводе вольтаж повышается, а на другом понижается на одну и ту же величину. Дифференциальный сигналинг используется в средах, которые должны быть малочувствительны к шуму, например, в автомобильных системах или при производстве.


Рисунок 4: Необработанный сигнал шины CAN, отображаемый на осциллографе
С другой стороны, пакеты, передаваемые по шине CAN, не стандартизированы . Каждый пакет содержит 4 ключевых элемента:

  • Арбитражный ID (Arbitration ID ) представляет собой широковещательно сообщение, идентифицирующее устройство, которое пытается начать коммуникацию. Любое устройство может отсылать несколько арбитражных ID. Если в единицу времени по шине отсылаются два CAN-пакета, пропускается тот, у которого ниже арбитражный ID.
  • Расширение идентификатора (Identifier extension ; IDE ) – в случае с шиной CAN стандартной конфигурации этот бит всегда равен 0.
  • Код длины данных (Data length code ; DLC ) определяет размер данных, который варьируется от 0 до 8 байт.
  • Данные. Максимальный размер данных, переносимых стандартной шиной CAN, может быть до 8 байт. В некоторых системах происходит принудительное дополнение пакета до размера 8 байт.


Рисунок 5: Формат стандартных CAN-пакетов
CAN фреймы
Для того чтобы включить / выключить климатическую систему мы должны найти нужную шину CAN (в автомобиле таких шин несколько). В Ford Fusion есть как минимум 4 задокументированные шины. 3 шины работают на высокой скорости 500 кбит/с (High Speed CAN; HS) и 1 шина на средней скорости 125 кбит/с (Medium Speed CAN; MS).
К порту OBD-II подключено две высокоскоростные шины HS1 и HS2, однако там стоит защита, которая не позволяет подделывать команды. Вместе с Аланом из компании Voyage мы вынули порт OBD-II и нашли места соединения со всеми шинами (HS1, HS2, HS3 и MS). На задней стенке OBD-II все шины подключались к модулю шлюза (Gateway Module).


Рисунок 6: Homer – первое самоуправляемое такси от компании Voyage
Поскольку климатическая система управляется через медиа-интерфейс (SYNC), нам придется отсылать команды через среднескоростную шину (MS).
Чтение и запись CAN-пакетов осуществляется при помощи драйвера и сетевого стека SocketCAN , созданного исследовательским отделом компании Volkswagen для ядра в Linux .
Мы будем подсоединять три провода от машины (GND, MSCANH, MSCANL) к переходнику Kvaser Leaf Light HSv2 (можно купить за 300$ на Амазоне) или к CANable (продается за 25$ на Tindie) и загружать на компьютере со свежим Linux-ядром шину CAN в качестве сетевого устройства.

Modprobe can
modprobe kvaser_usb
ip link set can0 type can bitrate 1250000
ifconfig can0 up

После загрузки запускаем команду candump can0 и начинаем отслеживать трафик:

Can0 33A 00 00 00 00 00 00 00 00 can0 415 00 00 C4 FB 0F FE 0F FE can0 346 00 00 00 03 03 00 C0 00 can0 348 00 00 00 00 00 00 00 00 can0 167 72 7F FF 10 00 19 F8 00 can0 3E0 00 00 00 00 80 00 00 00 can0 167 72 7F FF 10 00 19 F7 00 can0 34E 00 00 00 00 00 00 00 00 can0 358 00 00 00 00 00 00 00 00 can0 3A4 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 3AC FF FF FF FF FF FF FF FF can0 415 00 00 C8 FA 0F FE 0F FE can0 083 00 00 00 00 00 01 7E F4 can0 2FD D4 00 E3 C1 08 52 00 00 can0 3BC 0C 00 08 96 01 BB 27 00 can0 167 72 7F FF 10 00 19 F7 00 can0 3BE 00 20 AE EC D2 03 54 00 can0 333 00 00 00 00 00 00 00 00 can0 42A D6 5B 70 E0 00 00 00 00 can0 42C 05 51 54 00 90 46 A4 00 can0 33B 00 00 00 00 00 00 00 00 can0 42E 93 00 00 E1 78 03 CD 40 can0 42F 7D 04 00 2E 66 04 01 77 can0 167 72 7F FF 10 00 19 F7 00 can0 3E7 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 415 00 00 CC F9 0F FE 0F FE can0 3A5 00 00 00 00 00 00 00 00 can0 3AD FF FF FF FF FF FF FF FF can0 50B 1E 12 00 00 00 00 00 00

Несмотря на то, что вышеуказанная информация эквивалентна амплитуде звукового сигнала, довольно трудно понять, что происходит, и обнаружить какие-либо закономерности. Нам нужно нечто похожее на частотный анализатор, и такой эквивалент есть в виде утилиты cansniffer. Cansniffer показывает список идентификаторов и позволяет отслеживать изменения в секции данных внутри CAN-фрейма. По мере того как мы будем изучать определенные идентификаторы, мы можем установить фильтр нужных ID, которые имеют отношение к нашей задаче.
На рисунке ниже показан пример информации, снятой при помощи cansniffer с шины MS. Мы отфильтровали все, что имеет отношение к идентификаторам 355, 356 и 358. После нажатия и отпускания кнопок, связанных с подстройкой температуры, в самом конце появляется значение 001C00000000.


Рисунок 7: Информация с шины MS, снятая при помощи утилиты cansniffer
Далее необходимо объединить функционал для управления климатической системой с компьютером, работающим внутри автомобиля. Компьютер работает на операционной системе ROS (Robot Operating System; Операционная система для роботов). Поскольку мы используем SocketCAN, то модуль socketcan_bridge серьезно упрощает задачу по преобразованию CAN-фрейма в блок информации, понимаемый операционной системой ROS.
Ниже показан пример алгоритма декодирования:

If frame.id == 0x356:
raw_data = unpack("BBBBBBBB", frame.data)
fan_speed = raw_data / 4
driver_temp = parse_temperature(raw_data)
passenger_temp = parse_temperature(raw_data)

Полученные данные хранятся в CelsiusReport.msg:

Bool auto
bool system_on
bool unit_on
bool dual
bool max_cool
bool max_defrost
bool recirculation
bool head_fan
bool feet_fan
bool front_defrost
bool rear_defrost string driver_temp
string passenger_temp

После нажатия всех нужных кнопок в машине, у нас появляется следующий список:

CONTROL_CODES = {
"ac_toggle": 0x5C,
"ac_unit_toggle": 0x14,
"max_ac_toggle": 0x38,
"recirculation_toggle": 0x3C,
"dual_temperature_toggle": 0x18,
"passenger_temp_up": 0x24,
"passenger_temp_down": 0x28,
"driver_temp_up": 0x1C,
"driver_temp_down": 0x20,
"auto": 0x34,
"wheel_heat_toggle": 0x78,
"defrost_max_toggle": 0x64,
"defrost_toggle": 0x4C,
"rear_defrost_toggle": 0x58,
"body_fan_toggle": 0x04,
"feet_fan_toggle": 0x0C,
"fan_up": 0x2C,
"fan_down": 0x30,
}

Затем эти строки отсылаются на узел под управлением операционной системы ROS и далее происходит трансляция в коды, понимаемые автомобилем:

Rostopic pub /celsius_control celsius/CelsiusControl ac_toggle

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


Рисунок 8: Удаленное управление климатической системой автомобиля
Это лишь небольшой шаг при создании самоуправляемого такси вместе со специалистами компании Voyage . Я получил массу положительных эмоций во время работы над этим проектом. Если вы тоже интересуетесь этой темой, можете ознакомиться со списком вакансий в компании Voyage.