Открыть сервис

CAN-шина

CAN-шина (Controller Area Network, от англ. — сеть контроллеров) — это последовательная шина передачи данных, предназначенная для объединения в единую сеть различных электронных блоков управления (ЭБУ) в автомобилях, промышленном оборудовании и других системах реального времени. CAN-шина обеспечивает обмен цифровыми сообщениями между устройствами без использования центрального управляющего компьютера, работая по принципу «ведущий-ведомый» с приоритетным доступом к шине.

История

Разработка и стандартизация

CAN-шина была разработана в середине 1980-х годов компанией Robert Bosch GmbH (Германия) для решения проблемы усложнения автомобильной электроники. Первый протокол был представлен в 1986 году на конгрессе Общества автомобильных инженеров (SAE). В 1991 году Bosch опубликовал спецификацию CAN 2.0, которая разделила протокол на две версии: CAN 2.0A (11-битный идентификатор) и CAN 2.0B (29-битный идентификатор). В 1993 году протокол был стандартизирован международным стандартом ISO 11898, который описывает физический и канальный уровни модели OSI.

Внедрение и развитие

Первое серийное применение CAN-шины в автомобилях началось в начале 1990-х годов. Компания Mercedes-Benz (Германия) стала одним из пионеров, внедрив CAN в модели W140 (S-класс) для управления двигателем, коробкой передач и кузовными системами. К концу 1990-х годов CAN-шина стала стандартом для большинства автомобилей, заменив устаревшие аналоговые проводные соединения. В 2000-х годах протокол был адаптирован для промышленной автоматизации (стандарт CANopen) и авиационной техники.

Архитектура и принцип работы

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

CAN-шина использует дифференциальную двухпроводную линию связи (CAN_High и CAN_Low). Сигнал передаётся в виде разности напряжений между этими проводами, что обеспечивает высокую помехоустойчивость. Типичные скорости передачи данных варьируются от 125 кбит/с (для длинных линий до 500 м) до 1 Мбит/с (для коротких линий до 40 м). В автомобилях чаще всего используется скорость 500 кбит/с.

Канальный уровень

Протокол CAN основан на принципе многоточечного доступа с приоритетным разрешением коллизий (CSMA/CRCarrier Sense Multiple Access with Collision Resolution). Каждое сообщение имеет уникальный идентификатор (ID), который определяет его приоритет: чем меньше числовое значение ID, тем выше приоритет. При одновременной передаче двух сообщений шина автоматически разрешает коллизию в пользу сообщения с более высоким приоритетом (побитовое сравнение). Сообщения передаются в виде кадров, которые включают:

  • Идентификатор (11 или 29 бит)
  • Поле данных (от 0 до 8 байт)
  • Контрольная сумма (CRC) для обнаружения ошибок
  • Поле подтверждения (ACK) от принимающих узлов

Типы кадров

CAN-протокол определяет четыре типа кадров:

  • Кадр данных — передаёт полезную информацию от передатчика к одному или нескольким приёмникам.
  • Кадр удалённого запроса — запрашивает данные от другого узла (с тем же идентификатором).
  • Кадр ошибки — сигнализирует об обнаружении ошибки на шине.
  • Кадр перегрузки — используется для замедления потока данных при перегрузке приёмника.

Классификация и версии

CAN 2.0A и CAN 2.0B

  • CAN 2.0A — базовая версия с 11-битным идентификатором (до 2048 различных сообщений).
  • CAN 2.0B — расширенная версия с 29-битным идентификатором (до 536 миллионов сообщений). Обратно совместима с CAN 2.0A.

CAN FD (Flexible Data-Rate)

В 2012 году Bosch представил протокол CAN FD, который позволяет передавать до 64 байт данных в одном кадре (против 8 байт в классическом CAN) и поддерживает переменную скорость передачи данных (до 8 Мбит/с в поле данных). CAN FD обратно совместим с классическим CAN на физическом уровне, но требует обновления контроллеров.

CANopen

CANopen — это протокол более высокого уровня (прикладной уровень модели OSI), построенный на основе CAN. Он используется в промышленной автоматизации, медицинском оборудовании и робототехнике. CANopen стандартизирован как EN 50325-4 и определяет наборы профилей устройств, объектный словарь и механизмы синхронизации.

Применение

Автомобильная промышленность

CAN-шина является основой бортовой электроники современных автомобилей. Она соединяет:

В одном современном автомобиле может быть до 5-10 отдельных CAN-шин (например, для силового агрегата, комфорта, диагностики), объединённых шлюзами.

Промышленная автоматизация

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

Авиация и космос

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

Медицина

В медицинском оборудовании (аппараты МРТ, УЗИ, системы мониторинга пациентов) CAN-шина применяется для связи между датчиками, процессорами и устройствами отображения.

Преимущества и недостатки

Преимущества

  • Высокая надёжностьдифференциальная передача и механизмы обнаружения ошибок (CRC, проверка формы, битстаффинг) минимизируют вероятность искажения данных.
  • Приоритетный доступ — критически важные сообщения (например, о торможении) имеют гарантированный приоритет.
  • Простота и низкая стоимость — двухпроводная линия и недорогие микросхемы-приёмопередатчики.
  • Масштабируемость — до 110 узлов на одной шине (с повторителями — до 2032 узлов).

Недостатки

  • Ограниченная длина линии — при скорости 1 Мбит/с максимальная длина составляет около 40 м; при 125 кбит/с — до 500 м.
  • Малая полезная нагрузка — максимум 8 байт на кадр (в классическом CAN), что требует частой передачи сообщений для больших объёмов данных.
  • Отсутствие встроенной безопасности — протокол не предусматривает шифрования или аутентификации, что делает уязвимыми системы при внешнем доступе (например, в автомобилях с удалённым управлением).

Интересные факты

  • CAN-шина используется не только в автомобилях, но и в некоторых бытовых приборах, например, в кофеварках и стиральных машинах премиум-класса.
  • В 2015 году исследователи из Университета Южной Калифорнии продемонстрировали возможность взлома автомобиля через CAN-шину, что привело к разработке стандарта CANsec (шифрование на уровне протокола).
  • Протокол CAN был разработан на основе более ранней сети CAN для промышленных контроллеров, созданной в 1983 году в компании Intel (США).

Источники

  • Robert Bosch GmbH. «CAN Specification Version 2.0» (1991).
  • ISO 11898-1:2015 «Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling».
  • ISO 11898-2:2016 «Road vehicles — Controller area network (CAN) — Part 2: High-speed medium access unit».
  • CAN in Automation (CiA). «CANopen Application Layer and Communication Profile» (EN 50325-4).
  • SAE International. «SAE J1939 — Serial Control and Communications Heavy Duty Vehicle Network» (на основе CAN).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →