Что такое шина CAN и какую роль она играет в автомобильных системах?
Технологии с объяснениями

Что такое шина CAN и какую роль она играет в автомобильных системах?

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

Image credits: Fiat Chrysler Automobiles/Flickr.

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

Чтобы завести автомобиль, несколько антенн и электронных блоков управления связывались с брелоком. Протокол Controller Area Network (CAN) обеспечивает надлежащий обмен данными между брелоком, антеннами и ЭБУ внутри автомобиля

Что же такое протокол CAN, и как он помогает устройствам систем вашего автомобиля работать вместе? Что ж, давайте узнаем

Что такое протокол CAN и зачем он нужен?

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

Современные автомобили, напротив, имеют несколько электронных датчиков, и электронные устройства контролируют все – от температуры в салоне до оборотов коленчатого вала

При этом данные, полученные от этих датчиков, не имеют никакой ценности, пока они не обработаны. Эта обработка данных выполняется вычислительными устройствами, известными как электронные блоки управления (ЭБУ)

Image credits: SenseiAlan/Flickr.

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

В связи с этим все ЭБУ автомобиля должны быть соединены. Для создания таких соединений можно использовать топологию ‘точка-точка’, когда каждый ЭБУ подключен непосредственно к каждому другому ЭБУ. Однако такая архитектура сделает систему сложной. Фактически, современный автомобиль имеет более 70 ЭБУ, и подключение их один к одному увеличит вес проводки в геометрической прогрессии

Чтобы решить эту проблему, компания Bosch вместе с Mercedes-Benz и Intel в 1986 году создали протокол Controller Area Network. Этот протокол позволил ЭБУ общаться друг с другом с помощью общей шины данных, известной как шина CAN

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

Протокол CAN – это методология связи на основе сообщений, которая использует набор витых пар для передачи данных. Эти провода известны как CAN high и CAN low

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

Кредит изображения: Spinningspark/Wikimedia.

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

Напротив, логический 0 передается по шине CAN, когда на линии высокого уровня CAN напряжение составляет 3,5 вольта, а на линии низкого уровня CAN – 1,5 вольта. Это состояние шины также известно как доминирующее состояние, которое сообщает каждому ЭБУ в системе, что другой ЭБУ ведет передачу, поэтому они должны дождаться окончания передачи, прежде чем начать передавать свое сообщение

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

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

Понимание структуры сообщений протокола CAN

Когда два ЭБУ хотят установить связь, по шине CAN передаются сообщения с приведенной ниже структурой

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

  • SOF: Сокращение от Start Of Frame, бит SOF – это один доминирующий бит кадра данных. Этот бит передается узлом, когда он хочет отправить данные по шине CAN.
  • Идентификатор: Идентификатор в протоколе CAN может иметь размер 11 или 29 бит. Размер идентификатора зависит от версии используемого протокола CAN. Если используется расширенная версия CAN, то размер идентификатора составляет 29 бит, в остальных случаях размер идентификатора составляет 11 бит. Основная задача идентификатора – определить приоритет сообщения.
  • RTR: Запрос на удаленную передачу или RTR используется узлом, когда необходимо запросить данные у другого узла. Для этого узел, который хочет получить данные, посылает сообщение с рецессивным битом в кадре RTR предполагаемому узлу.
  • DLC: Код длины данных определяет размер данных, передаваемых в поле данных.
  • Поле данных: Это поле содержит полезную нагрузку данных. Размер этой полезной нагрузки составляет 8 байт, но более новые протоколы, такие как CAN FD, увеличивают размер этой полезной нагрузки до 64 байт.
  • CRC: Сокращение от Cyclic Redundancy Check, поле CRC представляет собой кадр проверки ошибок. Оно имеет размер 15 бит и вычисляется как приемником, так и передатчиком. Передающий узел создает CRC для данных при передаче. При получении данных приемник вычисляет CRC для полученных данных. Если оба CRC совпадают, целостность данных подтверждается. Если нет, то данные содержат ошибки.
  • Поле подтверждения: Как только данные получены и не содержат ошибок, принимающий узел вводит доминирующий бит в кадр подтверждения и отправляет его обратно передатчику. Это сообщает передатчику, что данные были получены и не содержат ошибок.
  • End Of Frame: После завершения передачи данных передаются семь последовательных рецессивных битов. Это гарантирует, что все узлы знают, что узел завершил передачу данных, и могут передавать данные по шине.

.

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

Упрощение CAN на примере

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

Для простоты предположим, что в нашем автомобиле 3 ЭБУ: Узел 1, Узел 2 и Узел 3. Из этих 3 ЭБУ, Узел 1 и Узел 2 хотят общаться с Узлом 3

Давайте посмотрим, как протокол CAN помогает обеспечить связь в таком сценарии

  • Определение состояния шины: Все ЭБУ автомобиля подключены к шине CAN. В нашем примере Узел 1 и Узел 2 хотят отправить данные другому ЭБУ; перед этим оба ЭБУ должны проверить состояние шины CAN. Если шина находится в доминирующем состоянии, то ЭБУ не могут передавать данные, так как шина используется. С другой стороны, если шина находится в рецессивном состоянии, ЭБУ могут передавать данные.
  • Отправка начала кадра: Если дифференциальное напряжение на шине CAN равно нулю, Узел 1 и Узел 2 изменяют состояние шины на доминирующее. Для этого напряжение высокого уровня CAN повышается до 3,5 вольт, а напряжение низкого уровня CAN понижается до 1,5 вольт.
  • Решение о том, какой узел может получить доступ к шине: После отправки SOF оба узла конкурируют за доступ к шине CAN. Шина CAN использует протокол Carrier Sense Multiple Access/Collision Detection (CSMA/CD), чтобы решить, какой узел получит доступ. Этот протокол сравнивает идентификаторы, переданные обоими узлами, и предоставляет доступ узлу с более высоким приоритетом.
  • Отправка данных: Как только узел получает доступ к шине, поле данных вместе с CRC отправляется приемнику.
  • Проверка и завершение связи: При получении данных узел 3 проверяет CRC полученных данных. Если ошибок нет, узел 3 отправляет CAN-сообщение передающему узлу с доминирующим битом в кадре подтверждения вместе с EOF для завершения связи.

 

Различные типы CAN

Хотя структура сообщений, используемая протоколом CAN, остается неизменной, скорость передачи данных и размер битов данных изменяются для передачи более высокой пропускной способности данных

В связи с этими различиями протокол CAN имеет различные версии, обзор которых приведен ниже:

  • Высокоскоростной CAN: Данные по проводам CAN передаются последовательно, и эта передача может осуществляться с различной скоростью. Для высокоскоростного CAN эта скорость составляет 1 Мбит/с. Благодаря такой высокой скорости передачи данных высокоскоростной CAN используется для ЭБУ, которые управляют силовым агрегатом и системами безопасности.
  • Низкоскоростной CAN: В случае низкоскоростного CAN скорость передачи данных снижается до 125 кбит/с. Поскольку низкая скорость может обеспечить более низкую скорость передачи данных, она используется для подключения ЭБУ, управляющих комфортом пассажира, например, кондиционера или информационно-развлекательной системы.
  • Can FD: Сокращение от CAN flexible data rate, CAN FD – это новейшая версия протокола CAN. Она увеличивает размер кадра данных до 64 байт и позволяет ЭБУ передавать данные со скоростью от 1 Мбит/с до 8 Мбит/с. Эта скорость передачи данных может управляться ЭБУ в режиме реального времени в зависимости от требований системы, что позволяет передавать данные на более высоких скоростях.

 

Каково будущее автомобильной связи?

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

Однако с появлением таких передовых функций, как автономное вождение, объем данных, передаваемых по шине CAN, растет по экспоненте. Для обеспечения этих функций на рынок выходят новые версии протокола CAN, например CAN FD

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий

ВАМ БУДЕТ ИНТЕРЕСНО