You dont have javascript enabled! Please enable it!

CAN-шина

Предметы:

  • введение
  • Несколько сетей в одном автомобиле
  • CAN-сеть с узлами
  • Различные типы скоростей CAN
  • Сигналы шины CAN
  • Скорости и уровни напряжения
  • Структура сообщения CAN-шины (стандартного) 11-битного идентификатора
  • Структура сообщения CAN-шины (расширенного) 28-битного идентификатора
  • Распознавание ошибок с использованием Bitstuffing и разделителей CRC и ACK.
  • Витая пара
  • Согласующие резисторы
  • Шлюз оплаты
  • Измерение по CAN-шине

Инлейдинг:
Современные автомобили напичканы электроникой. Блоки управления собирают и обрабатывают данные от датчиков и исполнительных устройств управления. Разные ЭБУ часто используют одни и те же данные: dДатчик положения педали акселератора регистрирует положение педали акселератора. Этот сигнал передается непосредственно в ЭБУ двигателя по проводке. ЭБУ двигателя — не единственный ЭБУ, который использует этот сигнал:

  • ЭБУ двигателя использует сигнал датчика положения педали акселератора для управления дроссельной заслонкой, при ускорении для обогащения ускорения за счет более длительного включения форсунок, регулировки угла опережения зажигания и при необходимости. управлять перепускной заслонкой или регулировкой VGT турбины;
  • ЭБУ автоматической коробки передач использует положение педали акселератора для определения времени переключения фрикционов в автоматической коробке передач. Если педаль акселератора слегка нажата, автоматическая коробка передач будет переключаться на повышенную передачу на более низкой скорости, чем при нажатии педали акселератора наполовину. При внезапном быстром нажатии педали акселератора произойдет «кик-даун» за счет переключения на более низкую передачу и увеличения оборотов двигателя;
  • Степень ускорения на повороте может стать причиной того, что ЭБУ ESP вмешается в работу ESP, снизив мощность двигателя и, при необходимости, тормозить вращающееся колесо.

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

Вышеизложенное ясно показывает сотрудничество между различными ЭКЮ. Шина CAN обеспечивает связь между ЭБУ и, следовательно, обмен данными друг с другом. CAN — это аббревиатура: Контроллерная сеть. 

ЭБУ двигателя
Встроенный ЭБУ двигателя в моторном отсеке.

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

При использовании шины CAN ЭБУ обмениваются данными только с двумя проводами: CAN-high и CAN-low. Вся связь между ЭБУ осуществляется по этим двум проводам. яНа следующих двух изображениях хорошо видно, что количество проводов на одной двери уже значительно сокращается при использовании CAN-шины.

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

 

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

1. Блок управления установкой фаркопа.
2. Блок управления дверью РА
3. Блок управления дверью РВ
4. шлюз
5. Устройство контроля комфорта.
6. Блок управления сигнализацией
7. Панель приборов
8. Блок управления электроникой рулевой колонки.
9. Блок управления дверью НВ.
10. Блок управления дверью ЛА.
11. Блок управления системой помощи при парковке.

С появлением CAN-шины это также возможно. EOBD более всеобъемлющий. EOBD означает европейскую бортовую диагностику. EOBD имеет отношение к выбросам. Различные датчики в двигателе и выхлопе передают информацию в ЭБУ. При наличии неправильных значений (например, из-за плохого сгорания) загорается MIL (индикаторная лампа двигателя). Это признак того, что машину нужно считывать. Затем к разъему OBD необходимо подключить диагностический тестер для считывания ошибок. В зависимости от неисправности ЭБУ сохраняет шестнадцатеричный код ошибки, который отображается диагностическим тестером в виде кода P или неисправности в текстовом виде (последний в большей степени зависит от марки). Нажмите здесь для получения дополнительной информации об OBD1, OBD II и EOBD..

Несколько сетей в автомобиле:
В автомобиле может быть несколько сетей. На изображении ниже представлен обзор с маркировкой блоков управления в нескольких сетях BMW 3-й серии E90.

Сети K-CAN, PT-CAN и F-CAN на изображении выше подпадают под шину CAN. Различия заключаются в скорости, уровнях напряжения и приложениях. Хотя PowerTrain-CAN и F-CAN имеют одинаковые высокоскоростные скорости и уровни напряжения, разница состоит в том, что PT-CAN используется для управления двигателем и трансмиссией, а F-CAN содержит блоки управления шасси.

Сеть CAN с устройствами управления
Сеть шины CAN состоит из устройств управления, оснащенных аппаратным и программным обеспечением для приема, обработки и отправки сообщений. Для передачи данных используются провод CAN-high и провод CAN-low. На изображении ниже CAN-High окрашен в красный цвет, а CAN-Low — в синий.
К этим проводам подключаются устройства управления (также называемые блоками управления или узлами). Все устройства управления могут как отправлять, так и получать информацию. Примером сети является система CAN-шины в салоне автомобиля; Здесь к одной шинной системе можно подключить различные устройства управления.

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

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

Сигналы шины CAN:
Система CAN-шины использует принцип широковещательной передачи; передатчик передает сообщение на шину CAN. Каждый узел на одной шине получает сообщение. Однако отправитель указывает в сообщении, для каких узлов предназначено сообщение. Все узлы получают сообщение и предоставляют обратную связь (подробнее об этом позже). Узлы, для которых сообщение не предназначено, распознают это и игнорируют.

Сигнал шины CAN состоит из напряжения CAN-high и CAN-low. На изображении ниже показаны CAN-high красный и CAN-low синий. Сигналы высокого и низкого уровня идентичны, но зеркально отражены друг от друга. Когда шина становится доминирующей, напряжение CAN-high увеличивается с 2,5 до 3,5 В, а CAN-low снижается с 2,5 до 1,5 В. В рецессивном состоянии (в состоянии покоя) оба напряжения составляют 2,5 Вольта.

На изображении выше показан пример измерения с помощью осциллографа. Хорошо видно, что оба напряжения идентичны друг другу, только в зеркальном отображении. В конечном итоге разница напряжений в активной (доминирующей) области составляет 2 вольта. Имеется в виду разница между 1,5 и 3,5 вольтами. Разница в 2 В считается 0 (доминантной), а разница в 0 В — 1 (рецессивной).

Если (отправляющий) узел хочет отправить двоичный код «0 0 1 0 1 1 0 1», он приложит упомянутые напряжения к CAN-High и CAN-Low (см. пример выше). Приемный узел снова увидит эти напряжения как двоичный код, а затем преобразует их в шестнадцатеричный код. Указанный двоичный код будет преобразован из шестнадцатеричного в 2D.

Чтобы преобразовать двоичный код в шестнадцатеричный, легко нарисовать таблицу из 8 ячеек с толстой линией посередине. Назовите коробки справа: 1, 2, 4 и 8 (см. красные цифры на изображении). Затем сделайте то же самое с левой стороны. Запишите числа с цифрой 1 в двоичном коде над ними. Слева только 2, справа 8, 4 и 1. Сложите все справа вместе (13) и сделайте то же самое слева (2). Шестнадцатеричное число меняется с 10 на A, 11 = B, 12 = C, 13 = D. В конечном итоге это дает 2D.

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

Скорости и уровни напряжения:
В транспортных средствах мы можем встретить сети CAN-шины с разной скоростью:

  • Высокая скорость: ЭБУ, связанные с приводом, включая электронику двигателя, трансмиссии, ABS/ESP, EBS (коммерческие автомобили);
  • Средняя или низкая скорость: внутренняя электроника, такая как приборная панель, радио, климат-контроль, стояночный тормоз, фаркоп.

На двух изображениях ниже показаны сигналы CAN-high и CAN-low высокоскоростной шины CAN. В состоянии покоя напряжение обоих сигналов составляет 2,5 Вольта. Для отправки сообщения высокое напряжение CAN увеличивается с 2,5 до 3,5 В, а низкое напряжение CAN уменьшается с 2,5 до 1,5 В.

CAN высокоскоростной (1)

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

CAN высокоскоростной (2)

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

  • CAN-high составляет 5 Вольт в состоянии покоя и падает до 1 Вольта;
  • CAN-low составляет 0 В в состоянии покоя и повышается до 4 В.

Во время измерения, при котором нулевые линии каналов А и В установлены на одной высоте, видно, что напряжения «надвинулись друг на друга». Это затрудняет считывание чистоты сигналов высокого и низкого уровня CAN.

CAN низкая скорость (1)

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

CAN низкая скорость (2)

Структура сообщения CAN-шины (стандартного) 11-битного идентификатора:
Структура сообщения CAN-шины всегда основана на изображении ниже. Есть различия в структуре; например, ARB и поле CTRL 11-битного идентификатора и 29-битного идентификатора различаются. Информация ниже относится к 11-битному идентификатору. К вашему сведению, 29-битный идентификатор вмещает больше данных, чем 11-битный. Подробнее об этом позже.

Структура сообщения теперь упрощена и подробно описана позже:

СФ:
Каждое сообщение CAN начинается с SOF (начала кадра). Когда узел хочет отправить сообщение, на шину будет помещен доминантный бит. Шина CAN в состоянии покоя всегда рецессивная (1, поэтому CAN-High и CAN-Low составляют 2 Вольта). Доминантный бит (0) указывает, что другие узлы должны ждать отправки сообщения до тех пор, пока все сообщение не будет опубликовано. Только после IFS (межкадрового пространства) следующему узлу разрешено отправлять свое сообщение. Даже если это важное сообщение, его нельзя пропустить.
Когда 2 узла хотят отправить сообщение одновременно (о чем они не знают друг о друге) и, таким образом, вместе делают шину доминирующей, помещая 0, ARB (арбитраж) определяет, какое сообщение имеет приоритет.

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

АРБ:
Поле арбитража 11-битного идентификатора состоит из двух частей; идентификатор и бит RTR.
Идентификатор:
Предположим, что 2 узла одновременно делают шину CAN доминирующей, тогда узел с наименее важным сообщением будет ждать, пока важное сообщение не будет отправлено (до тех пор, пока не будет IFS). Идентификатор сообщения содержит последовательность единиц и нулей. Эти номера намеренно присваиваются сообщению программистом. Идентификатор с 0 в сообщении (доминантный) имеет более высокий приоритет, чем идентификатор с 1 в сообщении (рецессивный). Сообщение с 0 продолжится, а сообщение с 1 придется подождать.

Оба идентификатора начинают отправлять сообщение длиной 11 бит. В SOF размещается доминантный бит. Тогда первые 5 бит обоих идентификаторов равны (0 1 1 0 1). Шестой бит равен 6 для номера идентификатора 2 и для первого идентификатора — 0. Доминантный бит доминирует, поэтому идентификатор 1 создает окончательное сообщение CAN.
Идентификатор 1 поместил 6 в качестве 1-го бита.Узел, который отправляет идентификатор, распознает, что 0 узла отправляют сообщение одновременно, только когда другой узел помещает 2 на шину. В этот момент идентификатор 1 прекращает передачу и теперь ведет себя как получатель. Хотя сообщение, начинающееся с 0 1 1 0 1, изначально предполагалось, что этот узел хочет отправить сообщение, теперь он будет рассматривать его как полученное сообщение. Затем узел прослушивает все сообщение и определяет, следует ли с ним что-либо делать.

Серое изображение SOF теперь дополнено ARB, который состоит из двух частей, а именно идентификатора и бита RTR:

Бит РТР:
Последний бит 11-битного идентификатора называется RTR; это бит запроса на удаленную передачу. Этот бит RTR указывает, является ли это кадром данных или удаленным кадром.
0 = кадр данных
1 = удаленный кадр

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

CTRL:
Поле управления состоит из IDE (расширения идентификатора), R-бита и DLC. Бит IDE указывает, является ли это стандартным (11 бит) или расширенным (29 бит) идентификатором:
0 = стандартный идентификатор (11 бит)
1 = Расширенный идентификатор (29 бит)

Бит R зарезервирован для будущего и теперь всегда рецессивен.

Затем идет DLC: сеть CAN-шины может отправлять максимум 8 байт. В 1 байте 8 бит, поэтому всего по стандартному протоколу можно отправить 64 бита. Поле управления указывает, какой объем данных отправляется. Было бы бессмысленно отправлять большое сообщение со всеми пустыми полями данных для бита подтверждения (1 для включения или 0 для выключения). Количество байтов указано в соответствующем DLC (коде длины данных). DLC является функцией программного обеспечения для программирования и, следовательно, является заранее заданным программистом значением.
Предположим, в DLC заявлен 1 байт, тогда отправляется 8 бит. Для коротких сообщений подтверждения этого достаточно.
Для очень обширных сообщений DLC будет содержать значение до 8 байтов данных.

Пример снова расширен. Добавлены IDE, R и DLC.

DATA:
Окончательные данные, которые необходимо отправить, помещаются в поле данных. Размер зависит от значения DLC (кода длины данных). Уже было указано, что DLC максимум 8 байт. Каждый байт состоит из 8 бит, поэтому всего поле данных может состоять из 64 бит.

КПР:
Проверка циклическим избыточным кодом состоит из математических вычислений, которые отправляются вместе с сообщением. Отправляющий узел подсчитывает общее количество CAN-сообщений на данный момент; SOF, ARB, CTRL и DATA. Итак, CRC — это расчет. Когда принимающий узел получил сообщение до CRC включительно, он выполнит математические вычисления до DATA и сравнит их с вычислениями в CRC. Если это не совпадает (из-за неправильного бита/ошибки), сообщение не принимается и делается запрос на отправку сообщения повторно (с определенным максимальным количеством попыток). Пример был расширен за счет включения CRC.

ПОДТВЕРЖДЕНИЕ:
Поле Подтверждение служит для подтверждения получения. Когда отправитель отправляет сообщение в CRC, вставляется своего рода пауза; передатчик делает шину рецессивной (с 0) и ждет, пока один или несколько узлов не сделают шину доминантной (1). Не имеет значения, получили ли сообщение один или несколько узлов, поскольку если его получил один узел, оно было отправлено успешно. После того, как шина становится доминирующей с помощью 1, передача сообщения возобновляется.

EOF:
Конец кадра состоит из 7 рецессивных битов (1 1 1 1 1 1 1). Это знак для всех блоков управления, что сообщение закончилось.

ИФС:
Чтобы предотвратить сбои, после EOF всегда используется межкадровое пространство. IFS состоит из 11 рецессивных битов. Все узлы ждут прохождения этих 11 рецессивных битов перед отправкой сообщения. Например, после этих 11 рецессивных битов 2 узла могут отправлять сообщение одновременно. Затем снова анализируется ARB (арбитраж), чтобы определить, какое сообщение имеет наивысший приоритет. Затем весь цикл начинается заново.

Структура сообщения CAN-шины (расширенного) 28-битного идентификатора:
11-битный идентификатор был разработан в то время, когда автомобили еще не имели такого количества управляющих устройств (узлов). Программисты вскоре обнаружили, что 11-битного идентификатора им недостаточно. Это имеет только (2 ^ 11) = 2048 возможностей. Из них осталось 2032 уникальных комбинации двоичного кода. Современные автомобили теперь используют гораздо больше кодов благодаря расширенному 28-битному идентификатору. Это называется расширенным идентификатором.
Это означает, что возможно не менее (2^29) = 536870912 комбинаций. Этого более чем достаточно на будущее.
В сообщении CAN-шины изменится ряд вещей. Оба идентификатора (стандартный и расширенный) используются взаимозаменяемо. Таким образом, сообщение CAN указывает, к какому виду оно относится, после чего следует длинное сообщение.
Используется основа 11-битного идентификатора, а также служит подготовкой перед его чтением; теперь отображаются только изменения, которым подвергается сообщение, если оно имеет 29-битный идентификатор.
SOF (начало кадра) остается прежним. Отправляющий узел делает его доминирующим, когда начинает отправлять сообщение.
Далее следуют ARB и CTRL, в которых и заключаются различия.

АРБ:
Во время арбитража первым отображается стандартный 11-битный идентификатор (т.е. часть из 29 бит). Бит RTR перемещается (как и 11 бит) в конец ARB. RTR теперь заменен SRR: (заменить удаленный запрос). Этот бит всегда рецессивный (1) для расширенного идентификатора.
После бита SRR следует бит IDE, который находится в 11-битном идентификаторе в CTRL (поле управления). Теперь он удален из поля управления и помещен после бита SRR в расширенном идентификаторе.

Для наглядности на изображениях ниже показаны стандартный (11-битный) и расширенный (29-битный) идентификаторы.

Стандартный 11-битный идентификатор
Расширенный 29-битный идентификатор

Бит IDE обозначает расширение идентификатора. Бит IDE определяет, является ли это стандартным или расширенным идентификатором.
IDE 0 = стандартный (11-битный идентификатор)
IDE 1 = расширенный (29-битный идентификатор)

После бита IDE идет остальная часть расширенного идентификатора. 11 и 18 бит вместе составляют 29. Их нельзя поместить в сообщение как одно целое, поскольку в этом случае протокол CAN перестает быть корректным. По сути, бит IDE теперь указывает на то, что сообщение было разделено на две части.

CTRL:
Поэтому поле управления было изменено на расширенный идентификатор. Бит IDE перенесен в ARB.
Бит IDE заменяется битом R (запасным). По умолчанию это рецессивный тип. За ним следует бит R и DLC (код длины данных), который указывает, из скольких байтов будет состоять сообщение.

Еще раз показаны поля управления как 11-битного, так и 29-битного идентификаторов.

CTRL из 11-битной IDE
CTRL из 29-битной IDE

Распознавание ошибок с использованием Bitstuffing и разделителей CRC и ACK:
Битовая начинка:
Для поддержания оптимальной синхронизации между отправляющим и принимающим узлами применяется подстановка битов. Вставка битов означает, что после 5 одинаковых битов добавляется противоположный бит. В исходно отправленном сообщении значение бита не изменяется, но бит добавляется.
Получатель это распознает. После 5 одинаковых битов приемник очистит 6-й бит (см. изображение ниже).

Отправляется исходное сообщение, состоящее только из единиц, но отправитель добавляет 6 каждый шестой бит. Длина сообщения увеличивается из-за нулей (но эта длина не учитывается для DLC (кода длины данных). Получатель отфильтровывает противоположные биты (нули), а затем снова читает сообщение только с единицами.

Разделители CRC и ACK:
Разделители размещаются после полей CRC и ACK. Это бит, значение которого известно как отправителю, так и получателю. Если в сообщении возникает ошибка, это значение будет другим. Затем получатель получает значение бита, отличное от ожидаемого, и помечает сообщение как ошибочное. Отправитель отправит сообщение повторно.

Витая пара:
В качестве кабеля для CAN-шины используется витая пара. Затем кабели CAN-High и CAN-Low скручиваются вместе, как показано на рисунке. Таким образом можно избежать вмешательства извне; если в одном кабеле появится индукция в несколько десятых вольта, она появится и в другом. Однако разница напряжений между CAN High и Low остается прежней. Таким образом, неисправность устраняется и на ЭБУ это не влияет.

Согласующие резисторы:
Согласующие резисторы используются в каждой высокоскоростной сети CAN-шины. Они часто встроены в узлы на конце линии (провода) шины CAN или в проводку. Каждый из этих резисторов имеет сопротивление 120 Ом (Ом). Замещающее сопротивление измеряется как 60 Ом при измерении сопротивления проводов.

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

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

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

Связанная страница: