Что означает can шина в автомобиле

На чтение 21 мин Просмотров 48.4к. Опубликовано
Обновлено

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

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

Если интересует какой-то конкретный вопрос, пользуйтесь оглавлением.

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

Автомобиль подобен человеческому организму. Сеть контроллеров (шина CAN) это как нервная система у человека.

В свою очередь, «узлы» или «электронные блоки управления» (ЭБУ) подобны частям тела. Они соединены между собой через CAN-шину.

Шина CAN представляет собой витую пару проводов. С ее помощью все блоки управления в автомобиле соединены в единую информационную сеть.

Причины появления CAN-шины

Когда вы нажимаете выключатель в своем доме, чтобы включить свет, электричество проходит через выключатель к лампам.

Автомобили раньше использовали такое же подключение. С тех пор как в 1915 году Генри Форду пришла идея добавить в свои автомобили фары и электрический сигнал, электричество поступало от аккумулятора через выключатели к фарам и другим устройствам.

К 1960-м годам в каждом автомобиле были тысячи тяжелых проводов.

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

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

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

Такие компании, как Bosch, искали тип шинной коммуникационной системы, которая могла бы использоваться в качестве системы связи между несколькими ЭБУ и системами автомобиля.

Они искали на рынке, но не могли найти именно то, что было нужно, поэтому они начали разработку «Controller Area Network» в партнерстве с Mercedes-Benz, Intel, а также несколькими университетами Германии.

Краткая история шины CAN

В 1986 году компания Bosch представила стандарт CAN на конгрессе SAE в Детройте. Год спустя корпорация Intel начала поставки первых микросхем контроллеров CAN, и автомобильный мир изменился навсегда.

  • До CAN: автомобильные ЭБУ использовали сложную проводку «точка-точка».
  • 1986: Компания Bosch разработала протокол CAN.
  • 1991: Bosch опубликовала CAN 2.0 (CAN 2.0A: 11 бит, 2.0B: 29 бит).
  • 1993: CAN принят в качестве международного стандарта (ISO 11898).
  • 2003: ISO 11898 становится серией стандартов.
  • 2012: Bosch выпустила CAN FD 1.0 (передачи данных на двух скоростях).
  • 2015: Протокол CAN FD стандартизирован (ISO 11898-1).
  • 2016: Физический уровень CAN для скоростей передачи данных до 5 Мбит/с стандартизирован в ISO 11898-2.

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

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

Сегодня CAN является стандартом в автомобилях (легковых, грузовых, автобусах, тракторах, …), кораблях, самолетах, электромобилях и многом другом.

Что такое ЭБУ?

В автомобиле ЭБУ могут быть, например, блок управления двигателем, подушками безопасности, аудиосистемой и т. д.

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

Именно здесь на помощь приходит CAN-шина. Она позволяет каждому блоку управления общаться со всеми другими ЭБУ без сложной специальной проводки.

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

Физический уровень шины CAN

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

Однопроводная схема

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

Итак, есть один провод, с его помощью соединены блоки управления. Этот провод внутри блока соединен с 12 вольтами через резистор 5 килоом. Таким образом напряжение на проводе становится по умолчанию 12 В.

Каждый из подключенных блоков может стягивать это напряжение на массу, меняя его с 12 на 0 вольт. Таким образом, получаются прямоугольные импульсы на шине данных. Они могут принимать всего два уровня напряжения — 0 и 12 вольт.

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

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

Витая пара. Как работает CAN high-speed

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

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

По умолчанию на проводе CAN-high, как и на проводе CAN-low, напряжение соответствует величине в 2,5 В. При этом разница напряжений между проводами составляет 0 В. Такое состояние can-шины называется рецессивным (recessive) и интерпретируется как логическая единица.

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

Логическая 1 (рецессивное состояние):

  • 2,5 вольта на проводе CAN_H;
  • 2,5 вольта на проводе CAN_L;
  • дифференциальное напряжение 0 вольт.

Логический 0 (доминантное состояние):

  • 3,5 вольта на проводе CAN_H;
  • 1,5 вольта на проводе CAN_L;
  • дифференциальное напряжение 2 вольта.

Так работает высокоскоростная шина CAN high speed. Она описана в стандарте ISO 11898-2.

Работа CAN low speed

Устройство низкоскоростной шины CAN low speed описано в стандарте ISO 11898-3. Для нее уровни напряжения такие.

Логическая 1 (рецессивное состояние):

  • 0 вольт на проводе CAN_H;
  • 5 вольт на проводе CAN_L;
  • дифференциальное напряжение 5 вольт.

Логический 0 (доминантное состояние):

  • 3,6 вольта на проводе CAN_H;
  • 1,4 вольта на проводе CAN_L;
  • дифференциальное напряжение 2,2 вольта.

Защита от помех

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

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

Дело в том, что многие компоненты автомобиля являются источниками электромагнитных помех. Особенно система зажигания.

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

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

Предположим, что на проводе CAN-high в рецессивном состоянии напряжение было 2,5 В. Помеха увеличила его на 1,1 В. Соответственно мы получили напряжение в 3,6 В, которое могло быть интерпретировано уже как доминантное состояние.

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

Таким образом, на проводе CAN_L напряжение поднимется на те же 1,1 В. А разница напряжений как была 2,5 — 2,5 = 0 В, так и осталась 3,6 — 3,6 = 0 В. Действие помехи на шину в доминантном состоянии аналогично.

Зачем нужен трансивер

Название Transceiver произошло от двух слов receiver (приемник) и transmitter (передатчик). Переводится как приемопередатчик.

Трансиверы обрабатывают дифференциальный сигнал, принимают и передают информацию. Трансивер связывает провода витой пары (CAN_H и CAN_L) с линиями Tx и Rx микропроцессора, который не умеет напрямую работать с CAN-шиной.

По линии Tx микропроцессор отправляет информацию в шину данных, а по линии Rx он считывает информацию.

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

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

Оконечные сопротивления

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

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

Правильно подобранные конечные нагрузочные сопротивления компенсируют отраженный сигнал. Обычно это два резистора по 120 ом внутри блока управления. Они подключены к противоположным концам шины. Таким образом, сопротивление между проводами can-шины составляет около 60 ом.

У разных автопроизводителей величина оконечных сопротивлений может отличаться.

Где применяется CAN high speed, а где CAN low speed

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

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

Особенностью медленного CAN является возможность сохранять работоспособность в однопроводном режиме, если второй провод витой пары поврежден.

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

Межсетевой шлюз (CAN gateway)

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

Так как напрямую разные CAN-шины не соединить, для этих целей используется межсетевой шлюз (CAN gateway). К нему подключаются шины с разными скоростями. Это могут быть не только CAN-шины, но и другие шины, присутствующие в автомобиле, к примеру, FlexRay или Ethernet.

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

Сам межсетевой интерфейс может быть выполнен как отдельным блоком, так и встроен в другие блоки. Обычно это приборная панель, электронный замок зажигания или блок управления бортовой сети (Body Control Module — BCM).

Межсетевой шлюз CAN

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

Канальный уровень CAN-шины (передача данных)

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

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

Эту задачу решает канальный уровень (data link layer), описанный в стандарте ISO 11898-1. Каждый узел может отправлять и принимать информацию кадр за кадром.

Существует четыре типа сообщений-кадров:

  • Кадр данных (data frame). Передает информацию одному или нескольким узлам-приемникам.
  • Кадр удаленного запроса (remote frame). Запрашивает данные у других узлов.
  • Кадр ошибки (error frame). Сообщает об ошибках.
  • Кадр перегрузки (overload frame). Сообщает о состоянии перегрузки.

Из чего состоит кадр CAN-шины

Рассмотрим структуру самого распространенного кадра Data frame.

SOF. Начало кадра

Первый бит кадра (SOF — Start Of Frame) всегда доминантный логический ноль. Он выводит шину из состояния холостого хода и начинает передачу данных.

Арбитражное поле

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

Зачем нужен арбитраж CAN-шины

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

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

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

Как происходит арбитраж CAN-шины и что такое идентификатор

Представим, что есть три узла, которые одновременно хотят получить доступ к CAN-шине. После бита «Start Of Frame» каждый из этих блоков начинает отправлять биты идентификаторов в шину данных.

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

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

Пока отправляемые биты у всех блоков совпадают, все идет без изменений. Но рано или поздно случается конфликт, когда разные узлы одновременно отправят разные биты. И вот тут самое время вспомнить, что доминантный бит (логический 0) перебивает рецессивный бит (логическую 1) в конфликтных ситуациях. Это реализовано аппаратно в схемотехнике трансивера.

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

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

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

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

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

11-bit и 29-bit идентификаторы

11 бит дают возможность использовать только 2048 идентификаторов, то есть 2048 параметров Этого иногда бывает недостаточно. В этом случае используется 29-битый ID. Таким образом, появляется возможность использовать миллионы идентификаторов.

Кадр с расширенным 29-битным идентификатором (CAN 2.0B) идентичен кадру с 11-битным идентификатором (CAN 2.0A), за исключением более длинного идентификатора. Он используется, например, в протоколе J1939 для большегрузных автомобилей.

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

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

Передатчик почувствует ошибку ACK, пошлет флаг ошибки, увеличит свой счетчик ошибок передачи на 8 и начнет повторную передачу. Это произойдет 16 раз. Затем передатчик перейдет в режим пассивной передачи ошибок.

По специальному правилу алгоритма ограничения ошибок, счетчик ошибок передачи не увеличивается, если узел пассивен и ошибка является ошибкой ACK. Таким образом, узел будет продолжать передачу вечно, по крайней мере, до тех пор, пока кто-то не подтвердит сообщение.

RTR. Запрос на удаленную передачу.

Следующий бит Remote Transmission Request (RTR). Это бит запроса. Он определяет какого типа будет сообщение:

  • Dataframe, когда вещающий блок сообщает информацию или
  • Remote frame, когда передающий блок запрашивает информацию.

Поле Control

Дальше следует поле Control, в котором первый бит ID extension. Если в нем будет логический ноль, то будет использоваться стандартный 11-битный идентификатор, а если логическая единица, то расширенный 29-битный.

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

Биты DL3 — DL0 в поле Control используется для определения заранее количества байтов, которые будут передаваться в следующем поле Data. Чтобы не передавать лишние биты и сократить время фрейма, тем самым увеличив скорость передачи данных. По этой же причине по-умолчанию используется 11-битный идентификатор, чтобы без надобности не тратить время на лишние 18 бит.

Поле Data

В поле Data находится самая полезная информация, которую нужно передать. Обороты, скорость, нагрузка и т. п.

Ради передачи этой информации и строится весь фрейм. Это поле может составлять от 1 до 8 байт, то есть от 8 до 64 бит.

CRC. Контрольная сумма

Следующее поле это контрольная сумма CRC (Cyclic Redundancy Check). Представляет собой значение, вычисленное по определенной формуле, на основе битов из предыдущих полей.

То есть все эти биты обрабатываются определенным алгоритмам в блоке-отправителе. Результат этой отработки записывается в поле контрольной суммы кадра.

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

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

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

ACK. Бит подтверждения

Следующим идет бит подтверждения ACK (Acknowledge). Узел-отправитель выставляет в нем рецессивное состояние, но узел-получатель перебивает его доминантным в случае успешного приема, тем самым подтверждая передачу сообщения.

Отправитель проверяет наличие бита подтверждения и повторно передает сообщение, если подтверждение не было обнаружено.

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

EOF. Конец кадра

Дальше идут 7 бит поля End of Frame (EOF). Это конец кадра, после которого кадр завершается и шина снова переходит состояние холостого хода.

И так до тех пор, пока один или несколько блоков снова не начнут отправлять сообщения.

Адресация и идентификация сообщений CAN-шины

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

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

Обычный адрес сообщения будет выглядеть так: «Вот сообщение для узла N». Сообщение с адресом содержимого выглядит так: «Вот сообщение, содержащее данные с меткой N». Разница между этими двумя понятиями небольшая, но существенная.

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

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

Что такое CAN FD (Flexible Data Rate CAN)?

С расширением функциональности автомобиля возрастает и нагрузка на CAN-шину. CAN FD (Flexible Data Rate) была разработана как шина CAN «следующего поколения».

Стандартная длина каждого сообщения была увеличена в 8 раз — с 8 до 64 байт, а максимальная скорость передачи данных была аналогично увеличена с 1 Мбит/с до 8 Мбит/с. Одним словом, CAN FD повышает скорость и эффективность. Поэтому она используется в современных автомобилях.

CAN FD обратно совместим и поддерживает протокол CAN 2.0, а также специальные протоколы, такие как SAE J1939.

CAN FD по сути является расширением оригинального стандарта CAN, как указано в ISO 11898-1, и полностью совместим с классическими CAN-шинами.

Отличия CAN FD от обычной CAN-шины

  • CAN FD работает одновременно на двух скоростях. Поле арбитража или заголовок кадра передается со стандартной скоростью, например 500 кбит/с. А поле данных передается на скорости в несколько раз выше, вплоть до 8 Мбит/с.
  • Размер сообщения увеличен до 64 байт. В обычной CAN-шине — максимум 8 байт.
  • Контроллер CAN FD способен принимать обычные CAN сообщения, а стандартный CAN узел не может принимать кадры формата CAN FD.
  • Для шины CAN FD нужны специальные микросхемы-трансиверы с повышенным быстродействием.

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

Будущее шины CAN

В будущем протокол шины CAN будет оставаться актуальным, хотя на него будут влиять основные тенденции:

  • Потребность во все более расширяющихся функциях автомобиля.
  • Рост облачных вычислений.
  • Развитие Интернета вещей (Internet of Things — IoT).
  • Развитие самоуправляемых автомобилей (без водителя).

В частности, рост числа подключенных автомобилей V2X и облачных вычислений приведет к быстрому росту автомобильной телематики и IoT CAN-регистраторов.

В свою очередь, перевод сети шины CAN в режим «онлайн» также подвергает автомобили рискам безопасности и может потребовать перехода на новые протоколы CAN, такие, как CAN FD.

Максимальная скорость CAN-шины

Максимальная скорость шины CAN, согласно стандарту, составляет 1 Мбит/с. Тем не менее некоторые CAN-контроллеры могут работать и с более высокими скоростями.

Медленный CAN low speed (ISO 11898-3) может работать на скорости до 125 кбит/с.

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

Максимальная длина кабеля в CAN-шине

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

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

  • 100 метров при скорости 500 кбит/с;
  • 200 метров — при 250 кбит/с;
  • 500 метров — при 125 кбит/с;
  • 6 километров — при 10 кбит/с.

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

A controller area network (CAN bus) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other’s applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but it can also be used in many other contexts. For each device, the data in a frame is transmitted serially but in such a way that if more than one device transmits at the same time, the highest priority device can continue while the others back off. Frames are received by all devices, including by the transmitting device.

History[edit]

Development of the CAN bus started in 1983 at Robert Bosch GmbH.[1] The protocol was officially released in 1986 at the Society of Automotive Engineers (SAE) conference in Detroit, Michigan. The first CAN controller chips were introduced by Intel in 1987, and shortly thereafter by Philips.[1] Released in 1991, the Mercedes-Benz W140 was the first production vehicle to feature a CAN-based multiplex wiring system.[2][3]

Bosch published several versions of the CAN specification. The latest is CAN 2.0, published in 1991. This specification has two parts. Part A is for the standard format with an 11-bit identifier, and part B is for the extended format with a 29-bit identifier. A CAN device that uses 11-bit identifiers is commonly called CAN 2.0A, and a CAN device that uses 29-bit identifiers is commonly called CAN 2.0B. These standards are freely available from Bosch along with other specifications and white papers.[4]

In 1993, the International Organization for Standardization (ISO) released CAN standard ISO 11898, which was later restructured into two parts: ISO 11898-1 which covers the data link layer, and ISO 11898-2 which covers the CAN physical layer for high-speed CAN. ISO 11898-3 was released later and covers the CAN physical layer for low-speed, fault-tolerant CAN. The physical layer standards ISO 11898-2 and ISO 11898-3 are not part of the Bosch CAN 2.0 specification.

In 2012, Bosch released CAN FD 1.0, or CAN with Flexible Data-Rate. This specification uses a different frame format that allows a different data length as well as optionally switching to a faster bit rate after the arbitration is decided. CAN FD is compatible with existing CAN 2.0 networks so new CAN FD devices can coexist on the same network with existing CAN devices. As of 2018, Bosch was active in extending CAN standards.

The CAN bus is one of five protocols used in the on-board diagnostics (OBD)-II vehicle diagnostics standard. The OBD-II standard has been mandatory for all cars and light trucks sold in the United States since 1996. The EOBD standard has been mandatory for all petrol vehicles sold in the European Union since 2001 and all diesel vehicles since 2004.[5]

Applications[edit]

  • Passenger vehicles, trucks, buses (combustion vehicles and electric vehicles)
  • Agricultural equipment
  • Electronic equipment for aviation and navigation
  • Industrial automation and mechanical control
  • Elevators, escalators
  • Building automation
  • Medical instruments and equipment
  • Pedelecs
  • Model railways/railroads
  • Ships and other maritime applications
  • Lighting control systems
  • 3D Printers
  • Robotics/Automation

Automotive[edit]

The modern automobile may have as many as 70 electronic control units (ECU) for various subsystems.[6] Traditionally, the biggest processor is the engine control unit. Others are used for Autonomous Driving, Advanced Driver Assistance System (ADAS), transmission, airbags, antilock braking/ABS, cruise control, electric power steering, audio systems, power windows, doors, mirror adjustment, battery and recharging systems for hybrid/electric cars, etc. Some of these form independent subsystems, but communication among others is essential. A subsystem may need to control actuators or receive feedback from sensors. The CAN standard was devised to fill this need. One key advantage is that interconnection between different vehicle systems can allow a wide range of safety, economy and convenience features to be implemented using software alone — functionality which would add cost and complexity if such features were hard wired using traditional automotive electrics. Examples include:

  • Auto start/stop: Various sensor inputs from around the vehicle (speed sensors, steering angle, air conditioning on/off, engine temperature) are collated via the CAN bus to determine whether the engine can be shut down when stationary for improved fuel economy and emissions.
  • Electric park brakes: The hill hold functionality takes input from the vehicle’s tilt sensor (also used by the burglar alarm) and the road speed sensors (also used by the ABS, engine control and traction control) via the CAN bus to determine if the vehicle is stopped on an incline. Similarly, inputs from seat belt sensors (part of the airbag controls) are fed from the CAN bus to determine if the seat belts are fastened, so that the parking brake will automatically release upon moving off.
  • Parking assist systems: when the driver engages reverse gear, the transmission control unit can send a signal via the CAN bus to activate both the parking sensor system and the door control module for the passenger side door mirror to tilt downward to show the position of the curb. The CAN bus also takes inputs from the rain sensor to trigger the rear windscreen wiper when reversing.
  • Auto lane assist/collision avoidance systems: The inputs from the parking sensors are also used by the CAN bus to feed outside proximity data to driver assist systems such as Lane Departure warning, and more recently, these signals travel through the CAN bus to actuate brake by wire in active collision avoidance systems.
  • Auto brake wiping: Input is taken from the rain sensor (used primarily for the automatic windscreen wipers) via the CAN bus to the ABS module to initiate an imperceptible application of the brakes while driving to clear moisture from the brake rotors. Some high-performance Audi and BMW models incorporate this feature.
  • Sensors can be placed at the most suitable place, and their data used by several ECUs. For example, outdoor temperature sensors (traditionally placed in the front) can be placed in the outside mirrors, avoiding heating by the engine, and data used by the engine, the climate control, and the driver display.

In recent years, the LIN bus (Local Interconnect Network) standard has been introduced to complement CAN for non-critical subsystems such as air-conditioning and infotainment, where data transmission speed and reliability are less critical.

Other[edit]

  • The CAN bus protocol has been used on the Shimano DI2 electronic gear shift system for road bicycles since 2009, and is also used by the Ansmann and BionX systems in their direct drive motor.
  • The CAN bus is also used as a fieldbus in general automation environments, primarily due to the low cost of some CAN controllers and processors.
  • Manufacturers including NISMO aim to use CAN bus data to recreate real-life racing laps in the videogame Gran Turismo 6 using the game’s GPS Data Logger function, which would then allow players to race against real laps.[7]
  • Johns Hopkins University’s Applied Physics Laboratory’s Modular Prosthetic Limb (MPL) uses a local CAN bus to facilitate communication between servos and microcontrollers in the prosthetic arm.
  • Teams in the FIRST Robotics Competition widely use CAN bus to communicate between the roboRIO and other robot control modules.
  • The CueScript teleprompter range uses CAN bus protocol over coaxial cable, to connect its CSSC – Desktop Scroll Control to the main unit
  • The CAN bus protocol is widely implemented due to its fault tolerance in electrically noisy environments such as model railroad sensor feedback systems by major commercial Digital Command Control system manufacturers and various open-source digital model railroad control projects.
  • Shearwater Research have implemented the protocol as DiveCAN[8] to use integrating their dive computers into Diving rebreathers from various manufacturers.

Architecture[edit]

Physical organization[edit]

CAN is a multi-master serial bus standard for connecting electronic control units (ECUs) also known as nodes (automotive electronics is a major application domain). Two or more nodes are required on the CAN network to communicate. A node may interface to devices from simple digital logic e.g. PLD, via FPGA up to an embedded computer running extensive software. Such a computer may also be a gateway allowing a general-purpose computer (like a laptop) to communicate over a USB or Ethernet port to the devices on a CAN network.

All nodes are connected to each other through a physically conventional two-wire bus. The wires are a twisted pair with a 120 Ω (nominal) characteristic impedance.

This bus uses differential wired-AND signals. Two signals, CAN high (CANH) and CAN low (CANL) are either driven to a «dominant» state with CANH > CANL, or not driven and pulled by passive resistors to a «recessive» state with CANH ≤ CANL. A 0 data bit encodes a dominant state, while a 1 data bit encodes a recessive state, supporting a wired-AND convention, which gives nodes with lower ID numbers priority on the bus.

High-speed CAN network. ISO 11898-2.

ISO 11898-2, also called high-speed CAN (bit speeds up to 1 Mbit/s on CAN, 5 Mbit/s on CAN-FD), uses a linear bus terminated at each end with 120 Ω resistors.

High-speed CAN signaling. ISO 11898-2.

High-speed CAN signaling drives the CANH wire towards 3.5 V and the CANL wire towards 1.5 V when any device is transmitting a dominant (0), while if no device is transmitting a dominant, the terminating resistors passively return the two wires to the recessive (1) state with a nominal differential voltage of 0 V. (Receivers consider any differential voltage of less than 0.5 V to be recessive.) The dominant differential voltage is a nominal 2 V. The dominant common mode voltage (CANH+CANL)/2 must be within 1.5 to 3.5 V of common, while the recessive common mode voltage must be within ±12  of common.

Low-speed fault-tolerant CAN network. ISO 11898-3.

ISO 11898-3, also called low-speed or fault-tolerant CAN (up to 125 kbit/s), uses a linear bus, star bus or multiple star buses connected by a linear bus and is terminated at each node by a fraction of the overall termination resistance. The overall termination resistance should be close to, but not less than, 100 Ω.

Low-speed CAN signaling. ISO 11898-3.

Low-speed fault-tolerant CAN signaling operates similarly to high-speed CAN, but with larger voltage swings. The dominant state is transmitted by driving CANH towards the device power supply voltage (5 V or 3.3 V), and CANL towards 0 V when transmitting a dominant (0), while the termination resistors pull the bus to a recessive state with CANH at 0 V and CANL at 5 V. This allows a simpler receiver that just considers the sign of CANH−CANL. Both wires must be able to handle −27 to +40 V without damage.

Electrical properties[edit]

With both high-speed and low-speed CAN, the speed of the transition is faster when a recessive to dominant transition occurs since the CAN wires are being actively driven. The speed of the dominant to recessive transition depends primarily on the length of the CAN network and the capacitance of the wire used.

High-speed CAN is usually used in automotive and industrial applications where the bus runs from one end of the environment to the other. Fault-tolerant CAN is often used where groups of nodes need to be connected together.

The specifications require the bus be kept within a minimum and maximum common mode bus voltage but do not define how to keep the bus within this range.

The CAN bus must be terminated. The termination resistors are needed to suppress reflections as well as return the bus to its recessive or idle state.

High-speed CAN uses a 120 Ω resistor at each end of a linear bus. Low-speed CAN uses resistors at each node. Other types of terminations may be used such as the Terminating Bias Circuit defined in ISO11783.[9]

A terminating bias circuit provides power and ground in addition to the CAN signaling on a four-wire cable. This provides automatic electrical bias and termination at each end of each bus segment. An ISO11783 network is designed for hot plug-in and removal of bus segments and ECUs.

Nodes[edit]

CAN bus node

Each node requires a

  • Central processing unit, microprocessor, or host processor
    • The host processor decides what the received messages mean and what messages it wants to transmit.
    • Sensors, actuators and control devices can be connected to the host processor.
  • CAN controller- often an integral part of the microcontroller
    • Receiving: the CAN controller stores the received serial bits from the bus until an entire message is available, which can then be fetched by the host processor (usually by the CAN controller triggering an interrupt).
    • Sending: the host processor sends the transmit message(s) to a CAN controller, which transmits the bits serially onto the bus when the bus is free.
  • Transceiver Defined by ISO 11898-2/3 Medium Access Unit [MAU] standards
    • Receiving: it converts the data stream from CAN bus levels to levels that the CAN controller uses. It usually has protective circuitry to protect the CAN controller.
    • Transmitting: it converts the data stream from the CAN controller to CAN bus levels.

Each node is able to send and receive messages, but not simultaneously. A message or Frame consists primarily of the ID (identifier), which represents the priority of the message, and up to eight data bytes. A CRC, acknowledge slot [ACK] and other overhead are also part of the message. The improved CAN FD extends the length of the data section to up to 64 bytes per frame. The message is transmitted serially onto the bus using a non-return-to-zero (NRZ) format and may be received by all nodes.

The devices that are connected by a CAN network are typically sensors, actuators, and other control devices. These devices are connected to the bus through a host processor, a CAN controller, and a CAN transceiver.

Data transmission[edit]

CAN data transmission uses a lossless bitwise arbitration method of contention resolution. This arbitration method requires all nodes on the CAN network to be synchronized to sample every bit on the CAN network at the same time. This is why some call CAN synchronous. Unfortunately the term synchronous is imprecise since the data is transmitted in an asynchronous format, namely without a clock signal.

The CAN specifications use the terms dominant bits and recessive bits, where dominant is a logical 0 (actively driven to a voltage by the transmitter) and recessive is a logical 1 (passively returned to a voltage by a resistor). The idle state is represented by the recessive level (Logical 1). If one node transmits a dominant bit and another node transmits a recessive bit then there is a collision and the dominant bit wins. This means there is no delay to the higher-priority message, and the node transmitting the lower-priority message automatically attempts to re-transmit six-bit clocks after the end of the dominant message. This makes CAN very suitable as a real-time prioritized communications system.

The exact voltages for a logical 0 or 1 depend on the physical layer used, but the basic principle of CAN requires that each node listen to the data on the CAN network including the transmitting node(s) itself (themselves). If a logical 1 is transmitted by all transmitting nodes at the same time, then a logical 1 is seen by all of the nodes, including both the transmitting node(s) and receiving node(s). If a logical 0 is transmitted by all transmitting node(s) at the same time, then a logical 0 is seen by all nodes. If a logical 0 is being transmitted by one or more nodes, and a logical 1 is being transmitted by one or more nodes, then a logical 0 is seen by all nodes including the node(s) transmitting the logical 1. When a node transmits a logical 1 but sees a logical 0, it realizes that there is a contention and it quits transmitting. By using this process, any node that transmits a logical 1, when another node transmits a logical 0, loses the arbitration and drops out. A node that loses arbitration re-queues its message for later transmission and the CAN frame bit-stream continues without error until only one node is left transmitting. This means that the node that transmits the first 1 loses arbitration. Since the 11 (or 29 for CAN 2.0B) bit identifier is transmitted by all nodes at the start of the CAN frame, the node with the lowest identifier transmits more zeros at the start of the frame, and that is the node that wins the arbitration or has the highest priority.

For example, consider an 11-bit ID CAN network, with two nodes with IDs of 15 (binary representation, 00000001111) and 16 (binary representation, 00000010000). If these two nodes transmit at the same time, each will first transmit the start bit then transmit the first six zeros of their ID with no arbitration decision being made.

Start
bit
ID bits The rest of the frame
10 9 8 7 6 5 4 3 2 1 0
Node 15 0 0 0 0 0 0 0 0 1 1 1 1
Node 16 0 0 0 0 0 0 0 1 Stopped Transmitting
CAN data 0 0 0 0 0 0 0 0 1 1 1 1

When ID bit 4 is transmitted, the node with the ID of 16 transmits a 1 (recessive) for its ID, and the node with the ID of 15 transmits a 0 (dominant) for its ID. When this happens, the node with the ID of 16 knows it transmitted a 1, but sees a 0 and realizes that there is a collision and it lost arbitration. Node 16 stops transmitting which allows the node with ID of 15 to continue its transmission without any loss of data. The node with the lowest ID will always win the arbitration and therefore has the highest priority.

Bit rates up to 1 Mbit/s are possible at network lengths below 40 m. Decreasing the bit rate allows longer network distances (e.g. 500 m at 125 kbit/s). The improved CAN FD standard allows increasing the bit rate after arbitration and can increase the speed of the data section by a factor of up to ten or more of the arbitration bit rate.

ID allocation[edit]

Message IDs must be unique[10] on a single CAN bus, otherwise two nodes would continue transmission beyond the end of the arbitration field (ID) causing an error.

In the early 1990s, the choice of IDs for messages was done simply on the basis of identifying the type of data and the sending node; however, as the ID is also used as the message priority, this led to poor real-time performance. In those scenarios, a low CAN bus use of around 30% was commonly required to ensure that all messages would meet their deadlines. However, if IDs are instead determined based on the deadline of the message, the lower the numerical ID and hence the higher the message priority, then bus use of 70 to 80% can typically be achieved before any message deadlines are missed.[11]

Bit timing[edit]

All nodes on the CAN network must operate at the same nominal bit rate, but noise, phase shifts, oscillator tolerance and oscillator drift mean that the actual bit rate might not be the nominal bit rate.[12] Since a separate clock signal is not used, a means of synchronizing the nodes is necessary. Synchronization is important during arbitration since the nodes in arbitration must be able to see both their transmitted data and the other nodes’ transmitted data at the same time. Synchronization is also important to ensure that variations in oscillator timing between nodes do not cause errors.

Synchronization starts with a hard synchronization on the first recessive to dominant transition after a period of bus idle (the start bit). Resynchronization occurs on every recessive to dominant transition during the frame. The CAN controller expects the transition to occur at a multiple of the nominal bit time. If the transition does not occur at the exact time the controller expects it, the controller adjusts the nominal bit time accordingly.

The adjustment is accomplished by dividing each bit into a number of time slices called quanta, and assigning some number of quanta to each of the four segments within the bit: synchronization, propagation, phase segment 1 and phase segment 2.

An example CAN bit timing with 10 time quanta per bit

The number of quanta the bit is divided into can vary by controller, and the number of quanta assigned to each segment can be varied depending on bit rate and network conditions.

A transition that occurs before or after it is expected causes the controller to calculate the time difference and lengthen phase segment 1 or shorten phase segment 2 by this time. This effectively adjusts the timing of the receiver to the transmitter to synchronize them. This resynchronization process is done continuously at every recessive to dominant transition to ensure the transmitter and receiver stay in sync. Continuously resynchronizing reduces errors induced by noise, and allows a receiving node that was synchronized to a node that lost arbitration to resynchronize to the node which won arbitration.

Layers[edit]

The CAN protocol, like many networking protocols, can be decomposed into the following abstraction layers:

Application layer
Object layer
  • Message filtering
  • Message and status handling
Transfer layer

Most of the CAN standard applies to the transfer layer. The transfer layer receives messages from the physical layer and transmits those messages to the object layer. The transfer layer is responsible for bit timing and synchronization, message framing, arbitration, acknowledgment, error detection and signaling, and fault confinement. It performs:

  • Fault confinement
  • Error detection
  • Message validation
  • Acknowledgement
  • Arbitration
  • Message framing
  • Transfer rate and timing
  • Information routing
Physical layer

CAN bus electrical sample topology with terminator resistors

CAN bus (ISO 11898-1:2003) originally specified the link layer protocol with only abstract requirements for the physical layer, e.g., asserting the use of a medium with multiple-access at the bit level through the use of dominant and recessive states. The electrical aspects of the physical layer (voltage, current, number of conductors) were specified in ISO 11898-2:2003, which is now widely accepted. However, the mechanical aspects of the physical layer (connector type and number, colors, labels, pin-outs) have yet to be formally specified. As a result, an automotive ECU will typically have a particular—often custom—connector with various sorts of cables, of which two are the CAN bus lines. Nonetheless, several de facto standards for mechanical implementation have emerged, the most common being the 9-pin D-sub type male connector with the following pin-out:

  • pin 2: CAN-Low (CAN−)
  • pin 3: GND (ground)
  • pin 7: CAN-High (CAN+)
  • pin 9: CAN V+ (power)

A male DE-9 connector (plug)

This de facto mechanical standard for CAN could be implemented with the node having both male and female 9-pin D-sub connectors electrically wired to each other in parallel within the node. Bus power is fed to a node’s male connector and the bus draws power from the node’s female connector. This follows the electrical engineering convention that power sources are terminated at female connectors. Adoption of this standard avoids the need to fabricate custom splitters to connect two sets of bus wires to a single D connector at each node. Such nonstandard (custom) wire harnesses (splitters) that join conductors outside the node reduce bus reliability, eliminate cable interchangeability, reduce compatibility of wiring harnesses, and increase cost.

The absence of a complete physical layer specification (mechanical in addition to electrical) freed the CAN bus specification from the constraints and complexity of physical implementation. However, it left CAN bus implementations open to interoperability issues due to mechanical incompatibility. In order to improve interoperability, many vehicle makers have generated specifications describing a set of allowed CAN transceivers in combination with requirements on the parasitic capacitance on the line. The allowed parasitic capacitance includes both capacitors as well as ESD protection (ESD[13] against ISO 7637-3). In addition to parasitic capacitance, 12V and 24V systems do not have the same requirements in terms of line maximum voltage. Indeed, during jump start events light vehicle lines can go up to 24V while truck systems can go as high as 36V. New solutions are emerging, allowing the same component to be used for CAN as well as CAN FD (see [14]).

Noise immunity on ISO 11898-2:2003 is achieved by maintaining the differential impedance of the bus at a low level with low-value resistors (120 ohms) at each end of the bus. However, when dormant, a low-impedance bus such as CAN draws more current (and power) than other voltage-based signaling buses. On CAN bus systems, balanced line operation, where current in one signal line is exactly balanced by current in the opposite direction in the other signal provides an independent, stable 0 V reference for the receivers. Best practice determines that CAN bus balanced pair signals be carried in twisted pair wires in a shielded cable to minimize RF emission and reduce interference susceptibility in the already noisy RF environment of an automobile.

ISO 11898-2 provides some immunity to common mode voltage between transmitter and receiver by having a 0 V rail running along the bus to maintain a high degree of voltage association between the nodes. Also, in the de facto mechanical configuration mentioned above, a supply rail is included to distribute power to each of the transceiver nodes. The design provides a common supply for all the transceivers. The actual voltage to be applied by the bus and which nodes apply to it are application-specific and not formally specified. Common practice node design provides each node with transceivers that are optically isolated from their node host and derive a 5 V linearly regulated supply voltage for the transceivers from the universal supply rail provided by the bus. This usually allows operating margin on the supply rail sufficient to allow interoperability across many node types. Typical values of supply voltage on such networks are 7 to 30 V. However, the lack of a formal standard means that system designers are responsible for supply rail compatibility.

ISO 11898-2 describes the electrical implementation formed from a multi-dropped single-ended balanced line configuration with resistor termination at each end of the bus.
In this configuration a dominant state is asserted by one or more transmitters switching the CAN− to supply 0 V and (simultaneously) switching CAN+ to the +5 V bus voltage thereby forming a current path through the resistors that terminate the bus. As such the terminating resistors form an essential component of the signaling system, and are included, not just to limit wave reflection at high frequency.

During a recessive state, the signal lines and resistor(s) remain in a high-impedance state with respect to both rails. Voltages on both CAN+ and CAN− tend (weakly) towards a voltage midway between the rails. A recessive state is present on the bus only when none of the transmitters on the bus is asserting a dominant state.

During a dominant state, the signal lines and resistor(s) move to a low-impedance state with respect to the rails so that current flows through the resistor. CAN+ voltage tends to +5 V and CAN− tends to 0 V.

Irrespective of signal state the signal lines are always in a low-impedance state with respect to one another by virtue of the terminating resistors at the end of the bus.

This signaling strategy differs significantly from other balanced line transmission technologies such as RS-422/3, RS-485, etc. which employ differential line drivers/ receivers and use a signaling system based on the differential mode voltage of the balanced line crossing a notional 0 V. Multiple access on such systems normally relies on the media supporting three states (active high, active low and inactive tri-state) and is dealt with in the time domain. Multiple access on CAN bus is achieved by the electrical logic of the system supporting just two states that are conceptually analogous to a ‘wired AND’ network.

Frames[edit]

A CAN network can be configured to work with two different message (or frame) formats: the standard or base frame format (described in CAN 2.0 A and CAN 2.0 B), and the extended frame format (described only by CAN 2.0 B). The only difference between the two formats is that the CAN base frame supports a length of 11 bits for the identifier, and the CAN extended frame supports a length of 29 bits for the identifier, made up of the 11-bit identifier (base identifier) and an 18-bit extension (identifier extension). The distinction between CAN base frame format and CAN extended frame format is made by using the IDE bit, which is transmitted as dominant in case of an 11-bit frame, and transmitted as recessive in case of a 29-bit frame. CAN controllers that support extended frame format messages are also able to send and receive messages in CAN base frame format. All frames begin with a start-of-frame (SOF) bit that denotes the start of the frame transmission.

CAN has four frame types:

  • Data frame: a frame containing node data for transmission
  • Remote frame: a frame requesting the transmission of a specific identifier
  • Error frame: a frame transmitted by any node detecting an error
  • Overload frame: a frame to inject a delay between data or remote frame

Data frame[edit]

The data frame is the only frame for actual data transmission. There are two message formats:

  • Base frame format: with 11 identifier bits
  • Extended frame format: with 29 identifier bits

The CAN standard requires that the implementation must accept the base frame format and may accept the extended frame format, but must tolerate the extended frame format.

Base frame format[edit]

A complete CAN bus frame, including stuff bits, a correct CRC, and inter-frame spacing

The frame format is as follows: The bit values are described for CAN-LO signal.

Field name Length (bits) Purpose
Start-of-frame 1 Denotes the start of frame transmission
Identifier (green) 11 A (unique) identifier which also represents the message priority
Stuff bit 1 A bit of the opposite polarity to maintain synchronisation; see § Bit stuffing
Remote transmission request (RTR) (blue) 1 Must be dominant (0) for data frames and recessive (1) for remote request frames (see Remote Frame, below)
Identifier extension bit (IDE) 1 Must be dominant (0) for base frame format with 11-bit identifiers
Reserved bit (r0) 1 Reserved bit. Must be dominant (0), but accepted as either dominant or recessive.
Data length code (DLC) (yellow) 4 Number of bytes of data (0–8 bytes)[a]
Data field (red) 0–64 (0-8 bytes) Data to be transmitted (length in bytes dictated by DLC field)
CRC 15 Cyclic redundancy check
CRC delimiter 1 Must be recessive (1)
ACK slot 1 Transmitter sends recessive (1) and any receiver can assert a dominant (0)
ACK delimiter 1 Must be recessive (1)
End-of-frame (EOF) 7 Must be recessive (1)
Inter-frame spacing (IFS) 3 Must be recessive (1)
  1. ^ It is physically possible for a value between 9–15 to be transmitted in the 4-bit DLC, although the data is still limited to eight bytes. Certain controllers allow the transmission or reception of a DLC greater than eight, but the actual data length is always limited to eight bytes.

Extended frame format[edit]

The frame format is as follows on from here in the table below:

Field name Length (bits) Purpose
Start-of-frame 1 Denotes the start of frame transmission
Identifier A (green) 11 First part of the (unique) identifier which also represents the message priority
Substitute remote request (SRR) 1 Must be recessive (1)
Identifier extension bit (IDE) 1 Must be recessive (1) for extended frame format with 29-bit identifiers
Identifier B (green) 18 Second part of the (unique) identifier which also represents the message priority
Remote transmission request (RTR) (blue) 1 Must be dominant (0) for data frames and recessive (1) for remote request frames (see Remote Frame, below)
Reserved bits (r1, r0) 2 Reserved bits which must be set dominant (0), but accepted as either dominant or recessive
Data length code (DLC) (yellow) 4 Number of bytes of data (0–8 bytes)[a]
Data field (red) 0–64 (0-8 bytes) Data to be transmitted (length dictated by DLC field)
CRC 15 Cyclic redundancy check
CRC delimiter 1 Must be recessive (1)
ACK slot 1 Transmitter sends recessive (1) and any receiver can assert a dominant (0)
ACK delimiter 1 Must be recessive (1)
End-of-frame (EOF) 7 Must be recessive (1)
  1. ^ It is physically possible for a value between 9–15 to be transmitted in the 4-bit DLC, although the data is still limited to eight bytes. Certain controllers allow the transmission or reception of a DLC greater than eight, but the actual data length is always limited to eight bytes.

The two identifier fields (A & B) combine to form a 29-bit identifier.

Remote frame[edit]

  • Generally data transmission is performed on an autonomous basis with the data source node (e.g., a sensor) sending out a data frame. It is also possible, however, for a destination node to request the data from the source by sending a remote frame.
  • There are two differences between a data frame and a remote frame. Firstly the RTR-bit is transmitted as a dominant bit in the data frame and secondly in the remote frame there is no data field. The DLC field indicates the data length of the requested message (not the transmitted one).
    I.e.,
RTR = 0 ; DOMINANT in data frame
RTR = 1 ; RECESSIVE in remote frame

In the event of a data frame and a remote frame with the same identifier being transmitted at the same time, the data frame wins arbitration due to the dominant RTR bit following the identifier.

Error frame[edit]

The error frame consists of two different fields:

  • The first field is given by the superposition of ERROR FLAGS (6–12 dominant/recessive bits) contributed from different stations.
  • The following second field is the ERROR DELIMITER (8 recessive bits).

There are two types of error flags:

Active Error Flag
six dominant bits – Transmitted by a node detecting an error on the network that is in error state error active.
Passive Error Flag
six recessive bits – Transmitted by a node detecting an active error frame on the network that is in error state error passive.

There are two error counters in CAN:

  1. Transmit error counter (TEC)
  2. Receive error counter (REC)
  • When TEC or REC is greater than 127 and less than 255, a Passive Error frame will be transmitted on the bus.
  • When TEC and REC is less than 128, an Active Error frame will be transmitted on the bus.
  • When TEC is greater than 255, then the node enters into Bus Off state, where no frames will be transmitted.

Overload frame[edit]

The overload frame contains the two bit fields: Overload Flag and Overload Delimiter. There are two kinds of overload conditions that can lead to the transmission of an overload flag:

  1. The internal conditions of a receiver, which requires a delay of the next data frame or remote frame.
  2. Detection of a dominant bit during intermission.

The start of an overload frame due to case 1 is only allowed to be started at the first bit time of an expected intermission, whereas overload frames due to case 2 start one bit after detecting the dominant bit. Overload Flag consists of six dominant bits. The overall form corresponds to that of the active error flag. The overload flag’s form destroys the fixed form of the intermission field. As a consequence, all other stations also detect an overload condition and on their part start transmission of an overload flag. Overload Delimiter consists of eight recessive bits. The overload delimiter is of the same form as the error delimiter.

ACK slot[edit]

The acknowledge slot is used to acknowledge the receipt of a valid CAN frame. Each node that receives the frame, without finding an error, transmits a dominant level in the ACK slot and thus overrides the recessive level of the transmitter. If a transmitter detects a recessive level in the ACK slot, it knows that no receiver found a valid frame. A receiving node may transmit a recessive to indicate that it did not receive a valid frame, but another node that did receive a valid frame may override this with a dominant. The transmitting node cannot know that the message has been received by all of the nodes on the CAN network.

Often, the mode of operation of the device is to re-transmit unacknowledged frames over and over. This may lead to eventually entering the error passive state.

Interframe spacing[edit]

Data frames and remote frames are separated from preceding frames by a bit field called interframe space. Interframe space consists of at least three consecutive recessive (1) bits. Following that, if a dominant bit is detected, it will be regarded as the Start of frame bit of the next frame. Overload frames and error frames are not preceded by an interframe space and multiple overload frames are not separated by an interframe space. Interframe space contains the bit fields intermission and bus idle, and suspend transmission for error passive stations, which have been transmitter of the previous message.[15]

Bit stuffing[edit]

CAN frame before and after the addition of stuff bits (in purple). An incorrect CRC is used for bit stuffing illustration purposes.

To ensure enough transitions to maintain synchronization, a bit of opposite polarity is inserted after five consecutive bits of the same polarity. This practice is called bit stuffing, and is necessary due to the non-return-to-zero (NRZ) coding used with CAN. The stuffed data frames are destuffed by the receiver.

All fields in the frame are stuffed with the exception of the CRC delimiter, ACK field and end of frame which are a fixed size and are not stuffed. In the fields where bit stuffing is used, six consecutive bits of the same polarity (111111 or 000000) are considered an error. An active error flag can be transmitted by a node when an error has been detected. The active error flag consists of six consecutive dominant bits and violates the rule of bit stuffing.

Bit stuffing means that data frames may be larger than one would expect by simply enumerating the bits shown in the tables above. The maximum increase in size of a CAN frame (base format) after bit stuffing is in the case

11111000011110000…

which is stuffed as (stuffing bits in bold):

111110000011111000001

The stuffing bit itself may be the first of the five consecutive identical bits, so in the worst case there is one stuffing bit per four original bits.

The size of a base frame is bounded by

{\displaystyle 8n+44+\left\lfloor {\frac {34+8n-1}{4}}\right\rfloor }

where n is the number of data bytes, a maximum of 8.

Since {\displaystyle 8n+44} is the size of the frame before stuffing, in the worst case one bit will be added every four original bits after the first one (hence the −1 at the numerator) and, because of the layout of the bits of the header, only 34 out of 44 of them can be subject to bit stuffing.

frame type before stuffing after stuffing stuffing bits total frame length
base frame {\displaystyle 8n+44} {\displaystyle 8n+44+\left\lfloor {\frac {34+8n-1}{4}}\right\rfloor } {\displaystyle \leq 24} {\displaystyle \leq 132}
extended frame {\displaystyle 8n+64} {\displaystyle 8n+64+\left\lfloor {\frac {54+8n-1}{4}}\right\rfloor } {\displaystyle \leq 29} {\displaystyle \leq 157}

An undesirable side effect of the bit stuffing scheme is that a small number of bit errors in a received message may corrupt the destuffing process, causing a larger number of errors to propagate through the destuffed message. This reduces the level of protection that would otherwise be offered by the CRC against the original errors. This deficiency of the protocol has been addressed in CAN FD frames by the use of a combination of fixed stuff bits and a counter that records the number of stuff bits inserted.

CAN lower-layer standards[edit]

ISO 11898 series specifies physical and data link layer (levels 1 and 2 of the ISO/OSI model) of serial communication category called Controller Area Network that supports distributed real-time control and multiplexing for use within road vehicles.[16]

There are several CAN physical layer and other standards:

ISO 11898-1:2015 specifies the data link layer (DLL) and physical signalling of the controller area network (CAN).[17] This document describes the general architecture of CAN in terms of hierarchical layers according to the ISO reference model for open systems interconnection (OSI) established in ISO/IEC 7498-1 and provides the characteristics for setting up an interchange of digital information between modules implementing the CAN DLL with detailed specification of the logical link control (LLC) sublayer and medium access control (MAC) sublayer.

ISO 11898-2:2016 specifies the high-speed (transmission rates of up to 1 Mbit/s) medium access unit (MAU), and some medium-dependent interface (MDI) features (according to ISO 8802-3), which comprise the physical layer of the controller area network. ISO 11898-2 uses a two-wire balanced signaling scheme. It is the most used physical layer in vehicle powertrain applications and industrial control networks.

ISO 11898-3:2006 specifies low-speed, fault-tolerant, medium-dependent interface for setting up an interchange of digital information between electronic control units of road vehicles equipped with the CAN at transmission rates above 40 kbit/s up to 125 kbit/s.

ISO 11898-4:2004 specifies time-triggered communication in the CAN (TTCAN). It is applicable to setting up a time-triggered interchange of digital information between electronic control units (ECU) of road vehicles equipped with CAN, and specifies the frame synchronization entity that coordinates the operation of both logical link and media access controls in accordance with ISO 11898-1, to provide the time-triggered communication schedule.

ISO 11898-5:2007 specifies the CAN physical layer for transmission rates up to 1 Mbit/s for use within road vehicles. It describes the medium access unit functions as well as some medium-dependent interface features according to ISO 8802-2. This represents an extension of ISO 11898-2, dealing with new functionality for systems requiring low-power consumption features while there is no active bus communication.

ISO 11898-6:2013 specifies the CAN physical layer for transmission rates up to 1 Mbit/s for use within road vehicles. It describes the medium access unit functions as well as some medium-dependent interface features according to ISO 8802-2. This represents an extension of ISO 11898-2 and ISO 11898-5, specifying a selective wake-up mechanism using configurable CAN frames.

ISO 16845-1:2016 provides the methodology and abstract test suite necessary for checking the conformance of any CAN implementation of the CAN specified in ISO 11898-1.

ISO 16845-2:2018 establishes test cases and test requirements to realize a test plan verifying if the CAN transceiver with implemented selective wake-up functions conform to the specified functionalities. The kind of testing defined in ISO 16845-2:2018 is named as conformance testing.

CAN-based higher-layer protocols[edit]

As the CAN standard does not include common communication features, such as flow control, device addressing, and transportation of data blocks larger than one message, and above all, application data, many implementations of higher layer protocols were created. Several are standardized for a business area, although all can be extended by each manufacturer. For passenger cars, each manufacturer has its own standard.

CAN in Automation (CiA) is the international users’ and manufacturers’ organization that develops and supports CAN-based higher-layer protocols and their international standardization.[18] Among these specifications are:

Standardized approaches[edit]

  • ARINC 812 or ARINC 825 (aviation industry)
  • CANopen — CiA 301/302-2 and EN 50325-4 (industrial automation)
  • IEC 61375-3-3 (use of CANopen in rail vehicles)
  • DeviceNet (industrial automation)
  • EnergyBus — CiA 454 and IEC 61851-3 (battery–charger communication)
  • ISOBUS — ISO 11783 (agriculture)
  • ISO-TP — ISO 15765-2 (transport protocol for automotive diagnostics)
  • MilCAN (military vehicles)
  • NMEA 2000 — IEC 61162-3 (marine industry)
  • SAE J1939 (in-vehicle network for buses and trucks)
  • SAE J2284 (in-vehicle networks for passenger cars)
  • Unified Diagnostic Services (UDS) — ISO 14229 (automotive diagnostics)
  • LeisureCAN — open standard for the leisure craft/vehicle industry

Other approaches[edit]

  • CANaerospace — Stock (for the aviation industry)
  • CAN Kingdom — Kvaser (embedded control system)
  • CCP/XCP (automotive ECU calibration)
  • GMLAN — General Motors (for General Motors)
  • RV-C — RVIA (used for recreational vehicles)
  • SafetyBUS p — Pilz (used for industrial automation)
  • UAVCAN (aerospace and robotics)
  • CSP (CubeSat Space Protocol)
  • VSCP (Very Simple Control Protocol) a free automation protocol suitable for all sorts of automation tasks

CANopen Lift[edit]

The CANopen Special Interest Group (SIG) «Lift Control», which was founded in 2001, develops the CANopen application profile CiA 417 for lift control systems. It works on extending the features, improves technical content and ensures that the current legal standards for lift control systems are met. The first version of CiA 417 was published (available for CiA members) in summer 2003, version 2.0 in February 2010, version 2.1.0 in July 2012, version 2.2.0 in December 2015, and version 2.3.1 in February 2020.

Jörg Hellmich (ELFIN GmbH) is the chairman of this SIG and manages a wiki of the CANopen lift community with content about CANopen lift.

Security[edit]

CAN is a low-level protocol and does not support any security features intrinsically. There is also no encryption in standard CAN implementations, which leaves these networks open to man-in-the-middle frame interception. In most implementations, applications are expected to deploy their own security mechanisms; e.g., to authenticate incoming commands or the presence of certain devices on the network. Failure to implement adequate security measures may result in various sorts of attacks if the opponent manages to insert messages on the bus.[19] While passwords exist for some safety-critical functions, such as modifying firmware, programming keys, or controlling antilock brake actuators, these systems are not implemented universally and have a limited number of seed/key pairs.

Development tools[edit]

When developing or troubleshooting the CAN bus, examination of hardware signals can be very important. Logic analyzers and bus analyzers are tools that collect, analyse, decode and store signals so people can view the high-speed waveforms at their leisure. There are also specialist tools as well as CAN bus monitors.

A CAN bus monitor is an analysis tool, often a combination of hardware and software, used during development of hardware that uses the CAN bus.

Typically the CAN bus monitor will listen to the traffic on the CAN bus in order to display it in a user interface. Often the CAN bus monitor offers the possibility to simulate CAN bus activity by sending CAN frames to the bus. The CAN bus monitor can therefore be used to validate expected CAN traffic from a given device or to simulate CAN traffic in order to validate the reaction from a given device connected to the CAN bus.

Licensing[edit]

Bosch holds patents on the technology, though those related to the original protocol have now expired. Manufacturers of CAN-compatible microprocessors pay license fees to Bosch for use of the CAN trademark and any of the newer patents related to CAN FD, and these are normally passed on to the customer in the price of the chip. Manufacturers of products with custom ASICs or FPGAs containing CAN-compatible modules need to pay a fee for the CAN Protocol License if they wish to use the CAN trademark or CAN FD capabilities.[20]

See also[edit]

  • Byteflight
  • Car audio – Entertainment electronics in cars
  • CAN bus monitor – Standard for communication between devices without host computer
  • CANopen — Communication protocol for embedded systems
  • CANpie – Open source device driver for CAN
  • CAN FD – New implementation of CAN with a faster transmission
  • can4linux – Open source Linux device driver for CAN
  • Ethernet (single-pair)
  • FlexCAN – An alternative implementation.
  • FlexRay – High-speed alternative to CAN
  • List of network buses – List of single collision domain electronic communication bus systems
  • LIN bus – A low cost alternative
  • Modbus – Serial communications protocol mainly developed for programmable logic controllers
  • MOST bus – High-speed multimedia network technology used in the automotive industry
  • OBD-II PIDs – List of Parameter IDs
  • OSEK – Specifications for embedded operating systems within automotives
  • SAE J1939 — Communication protocol for trucks and busses
  • SENT bus
  • SocketCAN – A set of open-source CAN drivers and a networking stack contributed by Volkswagen Research to the Linux kernel.

References[edit]

  1. ^ a b «CAN History». CAN in Automation.
  2. ^ «Mercedes-Benz S-Class W 140». mercedes-benz.com. 23 February 2016. Archived from the original on 10 June 2019. Retrieved 27 October 2017.
  3. ^ «CAN in Automation — Mercedes W140: First car with CAN». can-newsletter.org. Retrieved 27 October 2017.
  4. ^ «Bosch Semiconductor CAN Literature». Archived from the original on 2017-05-23. Retrieved 2017-05-31.
  5. ^ Building Adapter for Vehicle On-board Diagnostic Archived 2018-05-14 at the Wayback Machine, obddiag.net, accessed 2009-09-09
  6. ^ Comparison of Event-Triggered and Time-Triggered Concepts with Regard to Distributed Control Systems A. Albert, Robert Bosch GmbH Embedded World, 2004, Nürnberg
  7. ^ «NISMO Increases GT6 GPS Data Logger Functionality and Track Count». www.gtplanet.net. 25 October 2014.
  8. ^ «What is DiveCAN and why should I care?». 22 March 2016.
  9. ^ «ISO11783 a Standardized Tractor – Implement Interface» (PDF).
  10. ^ ISO 11898-1:2015 – Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling.
  11. ^ Daigmorte, Hugo; Boyer, Marc (2017), «Evaluation of admissible CAN bus load with weak synchronization mechanism», Proc. of the 24th Int. Conf. on Real-Time Networks and Systems (RTNS 2017), Grenoble, France: ACM
  12. ^ «Understanding Microchip’s CAN Module Bit Timing» (PDF).
  13. ^ «ISO7637-3 diodes protection for CAN bus».
  14. ^ «CAN bus ESD protection».
  15. ^ «CAN BUS MESSAGE FRAMES – Overload Frame, Interframe Space». 18 November 2009.
  16. ^ «Controller Area Network (CAN)». Vector Group. Archived from the original on 25 April 2016. Retrieved 25 Sep 2013.
  17. ^ «ISO 11898-1:2003 — Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling». ISO.
  18. ^ CiA: International standardization.
  19. ^ «We Drove a Car While It Was Being Hacked». www.vice.com. 29 May 2014. Archived from the original on 8 November 2019.
  20. ^ «License Conditions CAN Protocol and CAN FD Protocol» (PDF). Archived from the original (PDF) on 2016-03-16. Retrieved 2016-03-15.

External links[edit]

Specifications
  • ISO 11898-1 Standard (2015) — includes CAN and CAN-FD specifications
  • Bosch CAN Specification Version 2.0 (1991, 1997) — also known as Classical CAN and CAN-Classic
  • Bosch CAN-FD Specification Version 1.0 (2012) — increase data rates up to 8 Mbit/s
  • Bosch CAN-XL (future) — increase data rates up to 20 Mbit/s
  • Bosch CAN-FD-Light (future) — cost-optimized subset of CAN-FD
Other
  • Controller Area Network (CAN) Schedulability Analysis: Refuted, Revisited and Revised
  • Pinouts for common CAN bus connectors
  • A webpage about CAN in automotive
  • Controller Area Network (CAN) Schedulability Analysis with FIFO Queues
  • Controller Area Network (CAN) Implementation Guide
  • Freeware Bit-Timing calculator for Windows, supports a lot of microcontrollers, e.g. Atmel, STM32, Microchip, Renesas, … (ZIPfile)
  • Free e-learning module «Introduction to CAN»
  • ARINC-825 Tutorial (video) from Excalibur Systems Inc.
  • Website of CiA
  • CAN Newsletter Online
  • Understanding and Using the Controller Area Network from UC Berkeley
  • CAN Protocol Tutorial
  • ESD protection for CAN bus and CAN FD
Что такое CAN шина

CAN (Controller Area Network) — это стандарт протокола связи, используемый для обмена данными между устройствами в автомобильной промышленности и других промышленных приложениях.

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

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

Кан считыватель

Контроль расхода топлива с помощью CAN шины

Подключение к CAN шине позволяет, не вмешиваясь в работу узлов и систем, получить множество параметров для контроля топлива и режимов работы автомобиля.CAN-шина может использоваться для передачи информации о расходе топлива, скорости, пробеге и других параметрах двигателя в систему мониторинга транспорта GPS\ГЛОНАСС. Например, датчик расхода топлива может отправлять данные о расходе топлива на CAN-шины, где они могут быть обработаны и использованы системой управления двигателем для оптимизации работы двигателя и уменьшения расхода топлива.Также существуют специализированные приложения и программы, которые используют данные, полученные через CAN-шины, для анализа расхода топлива и поведения водителя. Например, с помощью специальных приложений можно отслеживать стиль вождения, скорость, обороты двигателя и другие параметры, которые могут влиять на расход топлива. Это позволяет оптимизировать стиль вождения и уменьшить расход топлива.

Контроль расхода топлива по Can

Преимущества контроля по CAN:

  • Подключается к любому транспортному средству с CAN-шиной
  • Минимальные затраты на установку и обслуживание
  • Сбор полной информации о работе автомобиля
  • Не создает помех в работе штатного оборудования
  • Подключается без вмешательства в контактную сеть авто
  • Удаленная настройка и смена встроенного программного обеспечения

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

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

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

  1. Противоугонной системы (подключает сигнализацию);
  2. Подушек безопасности;
  3. Климат-контроля в машине;
  4. Рулевого механизма и поворота руля;
  5. Системы парковки автомобиля и блокировки дверей;
  6. Стеклоочистителей;
  7. Топливного насоса высокого давления;
  8. Информационного и навигационного модулей.

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

Как выглядит CAN-шина

В соответствии со стандартами CAN (Controller Area Network), это устройство предполагает наличие витой пары изолированных проводников, к которым подключаются датчики всех остальных систем.

Как выглядит CAN-шина

Устройство КАН-шины

Устройство КАН шины — это два провода, которые образуют витую пару, по ним идёт связь между системами автомобиля. Эти провода выходят в маршрутизатор, где разные шины обмениваются данными.

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

Виды CAN шины

Существует 3 основных вида кан-шин:

  • силовая;
  • комфорт;
  • информационно-командная.

«Силовая»

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

«Комфорт»

Связывает блоки управления систем, отвечающих за условия в салоне: подогрев, освещение, кондиционер и т.д., скорость сигнала по ней — 100 Кбит/сек.

«Информационно-командная»

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

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

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

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

Принцип работы CAN-шины

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

Принцип работы кан шины

Как работает Can-шина

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

  2. На шину поступает напряжение от блоков, и также блоки контролируют уровень напряжения.

  3. КАН шина фиксирует разницу напряжения на проводах и при отклонении сообщает об ошибке работы системы бортовому компьютеру.

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

Как выглядит и работает CAN шина

Какое сопротивление (напряжение) должно быть на CAN-шине

CAN-шина может функционировать в нескольких режимах:

  1. Фоновый (спящий) режим активирован, когда двигатель не заведен, и автомобиль стоит на месте, но шина все равно работает от бортовой сети, поддерживая функционирование систем безопасности. Напряжение на нее подается минимальное (2,5 вольт).

  2. В режиме пробуждения шина запускается при нажатии на кнопку start / stop в салоне машины – в этом режиме запускаются основные приборы и датчики.

  3. Активный режим – это полноценный обмен информацией между всеми механизмами и CAN-шиной. При этом потребляется напряжение до 85 мА.

Сопротивление на КАН-шине

Проверка CAN-шины

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

  1. Если на панели внезапно загораются сразу несколько индикаторов – например, CHECK ENGINE и ABS.

  2. Если индикатор показывает «!» или «?».

  3. Если показатели скорости, уровня топлива или оборотов двигателя (показатели, которые передаются постоянно) просто пропадают.

Проверка КАН-шины

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

Как приборы понадобятся для проверки can-шины

Проверку кан-шины можно провести с помощью 3 приборов:

  • осциллограф;
  • мультиметр
  • диагностический сканер.

Проверка CAN-шины

1. Осциллограф

Напряжение на проводах шины должно составлять в рецессивном состоянии 2.5 В, в доминантном — для High-CAN 3,5 В, для Low-CAN 1,5 В. Также осциллограф покажет замыкания проводов, которые можно определить по форме сигнала на осциллограмме: это абсолютно симметричные графики сигналов или один из них параллелен оси координат.

2. Мультиметр

Если сопротивление по проводам КАН шины составляет 60 Ом, значит сама шина работает, сигнал к ЭБУ по ней проходит. Если нет, возможно, на проводах возник обрыв, короткое замыкание или паразитное сопротивление.

3. Диагностический сканер

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

КАН шина упрощает диагностику корпоративных автомобилей, а управление транспортными процессами обеспечит «ТМ: Корпоративные поездки»

Автомобильная CAN шина отслеживает только технические показатели работы автомобилей. Контроль за эффективностью работы всего автопарка обеспечит система управления заявками на транспорт на предприятиях «ТМ: Корпоративные поездки».

Программный комплекс «ТМ: Корпоративные поездки» значительно расширяет возможности CAN-шины и показывает более полную и цельную картину состояния автопарка.

Вы можете:

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

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

Ответы на популярные вопросы о Кан-шине

Что такое Кан шина на автомобиле?

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

Что такое подключение по кан шине?

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

Что такое система CAN?

CAN (Controller Area Network) — это промышленный стандарт сети, предназначенный для управления и передачи данных между электронными устройствами в режиме реального времени. Система обеспечивает быстрое и надежное соединение между устройствами, используя минимальное количество проводов и другого оборудования.

Какое сопротивление на кан шине?

Сопротивление на CAN-шине должно быть примерно 120 Ом, чтобы обеспечить правильный баланс сигнала и предотвратить его искажение. Это сопротивление может быть расположено как внутри устройств, подключенных к CAN-шине, так и на самой шине.

Сколько вольт должно быть на CAN шине?

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

Сколько проводников в шине CAN?

Шина CAN состоит из двух проводников — CAN High (CAN-H) и CAN Low (CAN-L), которые используются для передачи информации между устройствами.

Чем отличается К линия от Кан шины?

К-линия и CAN-шина — это два разных протокола передачи данных в автомобильной электронике. К-линия имеет скорость передачи данных до 10 кбит/с и применяется для передачи данных от отдельных датчиков в автомобиле. В то время как CAN-шина может иметь скорость передачи данных до 1 Мбит/с и применяется для передачи данных между различными узлами управления автомобилем.

Как работает CAN протокол?

CAN-протокол работает по принципу шины, где все устройства получают одинаковые данные.

Чем отличается CAN от rs485?

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

Что собой представляет Кан шина?

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

Сколько проводов в одной кан шине?

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

Сколько вольт должно быть на кан шине?

Напряжение на кан-шинах должно находиться в диапазоне от 2,0 до 3,7 вольт для обеспечения надежной передачи данных.

Can шина следит за состоянием автомобилей, а «ТМ: Корпоративные поездки» за использованием транспорта на предприятии

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

Данные о перемещении собираются, но не анализируются
Полученные треки очень редко исследуются, невозможно оценить процент целевого пробега. С установкой «ТМ: Корпоративные поездки» трек разбивается по статусам работы: «На заказе», «Свободен», «Обед», «Ремонт». В «ТМ: Корпоративные поездки» легко сопоставить координаты автомобиля и действия водителя в каждый промежуток времени.

Контроль за поездками не автоматизирован
Если водитель везет сотрудника, контролировать работу практически невозможно. Диспетчер должен звонить, узнавать продолжительность поездки, уточнять конечную точку заказа, чтобы найти подходящий автомобиль. «ТМ: Корпоративные поездки» автоматически распределяет заявки по водителям, учитывая удалённость автомобиля и внутренние требования компании. Система следит за ходом выполнения поездки, выявляет отклонения, сигнализирует о нарушениях.

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

Переработки водителей
Водителю может прийти срочная поездка, хотя его рабочий день закончился. При этом на линии могут быть водители, чья смена завершится только через несколько часов. В итоге возникают переработки. «ТМ: Корпоративные поездки» следит за графиком, сопоставляет его со временем выполнения заявки и временем, которое потребуется, чтобы вернуть автомобиль на базу. Если рабочего времени конкретного водителя уже не хватает для выполнения поездки, система назначит заявку на другого.

Наша компания фиксировала и другие проблемы в крупных автопарках. Узнайте, какие ошибки совершает ваша компания при использовании транспорта ↓

85% компаний совершают эти 7 ошибок по управлению автопарком.
Узнайте, есть ли они у вас

Пройти тест

CAN шина, что же это такое? Много информации читал, но нихрена не понимал. А тут вот нашлось простое и доходчивое объяснение, которое поймёт и ребёнок. А может и не поймет…

Принцип работы

В CAN сети все ЭБУ подключены к шине параллельно. Обмен данными производится короткими пакетами — сообщениями.

CAN сообщение
Каждое сообщение содержит идентификатор, который в сети является уникальным (например, «Температура двигателя 100 град» или «Скорость автомобиля 50 км/ч»). При передаче, все ЭБУ в сети получают сообщение и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному ЭБУ, то оно обрабатывается, в противном случае – игнорируется. Идентификатор может быть длиной 11 бит или 29 бит.

Арбитраж
В шине CAN биты 0 и 1 имеют ещё одно название: рецессивный уровень и доминантный уровень, соответственно. Если двумя разными передатчиками будет одновремнно передан рецессивный и доминантный уровни, то доминантный уровень подавит рецессивный. Этим механизмом подавления обеспечивается арбитраж на шине. Каждый передатчик одновремнено считывает то, что он предаёт в шину. Передатчик с более низким приоритетом вынужден отпустить шину, так как чужой доминантный уровень с более высоким приоритетом исказил его предачу. В то же время, пакет с более высоким уровнем остался неизменным. Передатчик, потерявший арбитраж, может повторить попытку через некоторе время.

Физический уровень
В автомобиле может применяться несколько типов шин CAN.

Высокоскоростной CAN (High speed) применяется в основном в сети управления двигателем и управления шасси. Там, где необходима высокая скорость реакции. Скорость обмена по этой шине 500 или 250 кбит/сек.

Схема подключения ЭБУ к высокоскоростной шине CAN

Низкоскоростной CAN (Low speed) применяется в сети управления кузова. Скорость обмена по этой шине, как правило, равняется 125 кбит/сек.

Схема подключения ЭБУ к низкоскоростной шине CAN

Однопроводный CAN (1-wire) Это удешевлённый варинат Low speed CAN, применяется в основном концерном GM. Используется для коммуникации между ЭБУ кузова машины. Работает на скорости 33,3 кбит/сек.

Схема подключения ЭБУ к однопроводной шине CAN

Надёжность
Двухпроводная шина сохраняет свою работоспособность при обрыве или замыкании одного из проводов (для двухпроводной шины).

Фазы работы
Шина CAN используется в автомобилях достаточно давно. Изначально шина CAN использовалась в простых конфигурациях. Например, для надёжной и быстрой связи между ЭБУ мотора и ЭБУ автоматической коробки передач. В этой конфигурации шина использовалась только для передачи данных. В ЭБУ заводилась линия питания и линия от замка зажигания, диагностика производилась по отдельным К-линиям, идущим из каждого ЭБУ.

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

Можно выделить четыре основные фазы работы шины:

Спящий режим
В этом режиме все ЭБУ, кроме ЭБУ замка, находятся в выключенном состоянии. На драйвер CAN подается питание. Драйвер так же находится в спящем состоянии. При этом, его энергопотребление составляет около 0,3 мА.
Пробуждение
Когда вставляется ключ зажигания или открывается дверь, замок выдаёт доминантное состояние в шину CAN. Это приводит к пробуждению CAN драйверов в спящих ЭБУ. Драйверы при обнаружении активности на шине включают стабилизаторы питания в своих ЭБУ.
Активный режим
В активном режиме ЭБУ постоянно обмениваются информацией. Энергопотребление каждого предатчика при доминантных уровнях может достигать 80 мА.
Засыпание
В момент выключения зажигания, по шине CAN выдаётся команда на выключение, после чего каждый ЭБУ сам себя обесточивает и преходит в спящий режим.
Примечание:
Для однопроводной шины CAN сигнал пробуждения имеет уровень 12 В, обычный обмен 0-4 В.

Немного отступлю от первоисточника.
Самый главный плюс, это очень высокая помехозащищённость сигнала. В чём прикол? Одновременно идут два дублирующих сигнала, только один высокий, второй низкий. Ловят они помеху. Помеха воздействует одинаково на оба сигнала. А на выходе у нас одинаковый уровень. Два уровня сигнала компенсируют помеху. Наглядно это выглядит вот так:

.

Вот такие пироги. Наткнулся тут : quantexlab

CAN-шина — это способ связи между различными приложениями и системами, специфичный конкретно для автомобильной промышленности. Сама аббревиатура расшифровывается как Controller Area Network и  дословно переводится «контроллер сетевой площади». То есть поддержка осуществляется между различными устройствами транспортного средства.

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

CAN-шина — часть системы управления автомобилем. Система использует двоичные коды, чтобы обмениваться информацией между различными частями транспортного средства. Весь процесс протекает в реальном времени, без задержек, а также отличается высочайшей надежностью. «Площадь» (area) подразумевает следующие компоненты авто:

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

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

Принцип работы CAN-шины

Высокоскоростной контроллер работает по принципу единой сети. В ней объединены датчики. Все компоненты автомобиля считаются единой системой (Area Network). Сама же шина обладает примерно такой конструкцией:

  • витая пара;
  • две отдельные линии: одна — CAN-high, другая — CAN-low;
  • напряжение поступает от бортовой сети;
  • скорость передачи данных — около 1 Мбит в секунду.

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

Причины появления CAN-шины

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

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

Применение CAN-шины

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

  • Контроль за расходом топлива — помогает не остаться без бензина или дизеля посреди пустой трассы.
  • Контроль за состоянием педалей — прежде всего, вопрос безопасности водителя и пассажиров.
  • Общее наблюдение за всеми системами безопасности транспортного средства (подушки, пристегнутые ремни, парктроник).
  • Контроль стиля вождения — в том числе следит за превышением скорости, поможет избежать штрафов от ГИБДД.
  • Отслеживание нагрева двигателя и охладителя — шина предупредит, когда нужна замена.
  • Дает информацию о нагрузке на автомобиль — особенно важно для грузовых машин, чтобы не перегружать их.

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

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

У системы есть положительные и отрицательные моменты. Среди плюсов следующие:

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

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

Дата публикации: 30.05.2023

Понравилась статья? Поделить с друзьями:
  • Что означает dac в автомобиле
  • Что одевается на свечу зажигания автомобиля
  • Что означает cvvt в автомобиле киа
  • Что означает cvt в автомобиле хонда
  • Что означает cvt в автомобиле тойота