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

Controller Area Network

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

История

Разработка CAN началась в 1983 году по инициативе немецкого инженера Уве Крашера (Uwe Kiencke) из компании Bosch. Основной задачей было создание единой сети, способной заменить громоздкие и ненадёжные жгуты проводов, соединявшие отдельные блоки управления в автомобиле. Первая микросхема CAN-контроллера была выпущена компанией Intel в 1987 году. В 1991 году Bosch опубликовал спецификацию CAN 2.0, разделённую на две части: CAN 2.0A (стандартный формат 11-битного идентификатора) и CAN 2.0B (расширенный формат 29-битного идентификатора).

В 1993 году CAN был принят как международный стандарт ISO 11898, который описывает физический уровень и протокол передачи данных. Впоследствии стандарт был дополнен: ISO 11898-2 (высокоскоростной физический уровень), ISO 11898-3 (низкоскоростной отказоустойчивый уровень) и ISO 11898-4 (протокол синхронизации времени). С 2000-х годов CAN активно вытеснял устаревшие шины (например, K-Line, LIN) и стал основой для бортовых сетей большинства автомобилей. В 2011 году компания Bosch представила CAN FD (Flexible Data-Rate), позволяющий увеличить скорость передачи данных до 8 Мбит/с за счёт гибкого размера кадра данных (до 64 байт).

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

Топология сети

CAN-сеть построена по принципу многоточечной шины (multidrop bus). Все устройства (узлы) подключаются параллельно к одной дифференциальной паре проводов (CAN_H и CAN_L). Каждый узел состоит из микроконтроллера, CAN-контроллера (аппаратного или программного) и трансивера (приёмопередатчика). Трансивер преобразует логические уровни контроллера в дифференциальные сигналы на шине. На концах шины обязательно устанавливаются терминальные резисторы (обычно 120 Ом) для подавления отражений сигнала.

Метод доступа к среде

CAN использует метод множественного доступа с контролем несущей и разрешением коллизий на основе приоритетов (CSMA/CR — Carrier Sense Multiple Access with Collision Resolution). В отличие от Ethernet, где коллизия ведёт к потере пакета, в CAN коллизия разрешается без потери данных: узел с более высоким приоритетом (меньшим числовым значением идентификатора) продолжает передачу, а узлы с меньшим приоритетом автоматически прекращают передачу и переходят в режим приёма. Это достигается за счёт доминантного и рецессивного состояний шины: логический 0 (доминантный) перебивает логическую 1 (рецессивную).

Формат кадра

Сообщение CAN состоит из следующих полей:

Арбитраж и приоритеты

Арбитраж происходит во время передачи идентификатора. Если два узла начинают передачу одновременно, на шине устанавливается доминантный уровень (0), если хотя бы один узел передаёт 0. Узел, передающий рецессивный бит (1), обнаруживает несовпадение и прекращает передачу. Таким образом, сообщение с наименьшим идентификатором (наивысшим приоритетом) гарантированно проходит без коллизий. Это обеспечивает детерминированное поведение сети, критически важное для систем реального времени.

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

Дифференциальная передача

CAN использует дифференциальную передачу сигнала по двум проводам: CAN_H и CAN_L. В доминантном состоянии (логический 0) напряжение на CAN_H повышается до 3,5 В, а на CAN_L понижается до 1,5 В (разница 2 В). В рецессивном состоянии (логическая 1) оба провода находятся на уровне 2,5 В (разница 0 В). Дифференциальная схема обеспечивает высокую помехоустойчивость: помеха, наведённая на оба провода одинаково, не влияет на разность потенциалов.

Скорость передачи

Стандартный CAN (ISO 11898-2) поддерживает скорость до 1 Мбит/с при длине шины до 40 метров. При увеличении длины скорость снижается: например, 250 кбит/с на 250 метрах, 125 кбит/с на 500 метрах. CAN FD может работать на скоростях до 8 Мбит/с на коротких линиях. Низкоскоростной CAN (ISO 11898-3) работает на скоростях до 125 кбит/с и допускает длину шины до 1 км.

Типы трансиверов

Виды и расширения

CAN 2.0A и CAN 2.0B

CAN FD (Flexible Data-Rate)

Разработан компанией Bosch в 2011 году и стандартизирован как ISO 11898-1:2015. Отличается от классического CAN:

CANopen

Протокол более высокого уровня, построенный на основе CAN. Разработан в 1990-х годах для промышленной автоматизации. Определяет стандартизированные профили устройств, объектный словарь и механизмы синхронизации. Широко применяется в станкостроении, робототехнике, медицинском оборудовании.

J1939

Стандарт для тяжёлой техники (грузовики, автобусы, сельскохозяйственные машины), разработанный SAE International. Использует 29-битный идентификатор CAN 2.0B и определяет протоколы диагностики, управления двигателем, трансмиссией и тормозной системой.

DeviceNet

Протокол, разработанный компанией Rockwell Automation для промышленных сетей. Ориентирован на простые устройства (датчики, исполнительные механизмы) и использует 11-битный идентификатор.

Применение

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

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

В типичном современном автомобиле может быть до 70-80 ЭБУ, объединённых несколькими CAN-шинами (например, силовая шина, шина комфорта, шина диагностики).

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

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

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

CAN применяется в системах управления самолётов (например, Airbus A380, Boeing 787) и космических аппаратов. Используются специализированные отказоустойчивые варианты (например, CANaerospace).

Медицинская техника

В медицинских устройствах (аппараты ИВЛ, мониторы пациента, хирургические роботы) CAN обеспечивает надёжную связь между модулями. Протокол CANopen используется в стандарте IEC 62304 для медицинского ПО.

Робототехника

CAN применяется для связи контроллеров с сервоприводами, датчиками и исполнительными механизмами. Поддерживает синхронизацию движений нескольких осей в реальном времени.

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

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

Недостатки

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

Источники

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

На главную BFOmetr →