Что такое CAN FD

Бурное развитие автомобильных электронных систем за последние два десятилетия привело к тому, что количество передаваемых по шине CAN сигналов и параметров выросло от нескольких сотен до десятков тысяч. Это факт привел к росту нагрузки на шину CAN и появлению автомобильных сетей с более высокой пропускной способностью, например MOST для мультимедиа приложений с пропускной способностью до 150 Мбит\с и FlexRay — детерминированная сеть с пропускной способностью до 10 Мбит\с, которая используется на особо важных участках связи между блоками управления (ECU).

Тем не менее замена CAN на такие шины как FlexRay очень дорогой путь решения проблемы пропускной способности, ввиду высокой стоимости микроконтроллеров и трансиверов (микросхем обеспечивающий физический интерфейс), а так же программного обеспечения поддерживающего работу сетей FlexRay. Проблему невысокой нагрузочной способности шины CAN однако можно решить увеличением количества сетей CAN в автомобиле. Вы можете видеть как две сети CAN в автомобилях Ford, Mazda и до 6 сетей CAN в автомобилях группы VAG. Но, применение нескольких сетей CAN приводит к тому, что необходимо использовать межсетевые интерфейсы — гейтвеи, между этими сетями, что так же не дешево.

Пропускную способность шины CAN ограничивает тот факт, что в определенные моменты времени в режиме передачи могут находится несколько узлов на шине. Это фазы арбитража и ожидания подтверждения приема пакета. Следовательно, каждый бит должен передаваться за время, которое не меньше чем то время которое определяется уровнем напряжения на шине достаточного для обмена данными между двумя узлами на шине.  Например: на шине CAN длиной 40 метров максимальная скорость передачи составляет около 1 Мбит \ с для выполнения требуемого времени передачи в один бит. НО! Это ограничение действует только для обозначенных выше фаз Арбитража и ожидания подтверждения, а в фазе передачи данных, когда разрешена работа ТОЛЬКО ОДНОГО передатчика, это ограничение на скорость не действует. Этот факт и был взят за основу нового стандарта CAN FD.

Фирма BOSCH — разработчик стандарта CAN решила в новом стандарте CAN-FD поднять скорость обмена данными на участке передачи байт данных, между фазой арбитража, куда входит поле ID и DLC, и фазой ожидания подтверждения.

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

осциллограмма фрейма CAN FD

Скорость передачи служебной информации осталась такой же как и в классическом варианте CAN, например 100, 250 или 500 кбит\с. А вот скорость передачи полезной нагрузки — байт данных может быть поднята до 12 Мбит\с.
Такой подход может показаться «костылем», ввиду того что контроллеру CAN-FD необходимо переключать скорости работы на лету, а программисту настраивать эти две скорости, но тем не менее это недорогой и простой путь сохранить совместимость «сверху-вниз» между CAN и CAN-FD и существенно поднять пропускную способность шины.

Помимо увеличения скорости передачи увеличилось и количество передаваемых байт в одном пакете. На шине CAN-FD в каждом фрейме может передаваться до 64 байт данных, что существенно повышает пропускную способность. Количество передаваемых байт так же устанавливается в поле DLC, имеющее размер 4 бита. Поэтому соответствие между значением поля DLC и количеством передаваемых данных выглядит так:

DLC =0,  количество байт = 0;
DLC =1,  количество байт = 1;
DLC =2,  количество байт = 2;
DLC =3,  количество байт = 3;
DLC =4,  количество байт = 4;
DLC =5,  количество байт = 5;
DLC =6,  количество байт = 6;
DLC =7,  количество байт = 7;
DLC =8,  количество байт = 8;
DLC =9,  количество байт = 12;
DLC =10,  количество байт = 16;
DLC =11,  количество байт = 20;
DLC =12,  количество байт = 24;
DLC =13,  количество байт = 32;
DLC =14,  количество байт = 48;
DLC =15,  количество байт = 64;

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

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

Посмотрим как выглядит полный пакет передаваемый по шине CAN-FD

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

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

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

Следите за новостями, статья будет пополняться.