CAN FD
CAN FD (CAN with Flexible Data-Rate) — это протокол последовательной передачи данных, являющийся расширением классического протокола CAN (Controller Area Network), разработанный для увеличения пропускной способности и длины полезной нагрузки в кадре. CAN FD сохраняет обратную совместимость с CAN на физическом уровне, но вводит новые режимы работы, позволяющие передавать данные с более высокой скоростью и большими объёмами.
История
Протокол CAN был разработан компанией Bosch в 1983 году и стандартизирован в 1993 году (ISO 11898). К началу 2010-х годов его пропускная способность (до 1 Мбит/с) и максимальная длина данных (8 байт на кадр) стали недостаточными для современных автомобильных и промышленных систем, требующих передачи больших объёмов информации, например, от камер, радаров и блоков управления двигателем.
В 2011 году компания Bosch начала разработку CAN FD как расширения CAN 2.0. Основная цель заключалась в увеличении скорости передачи данных в фазе данных (Data Phase) и расширении длины полезной нагрузки до 64 байт. В 2012 году спецификация CAN FD была опубликована, а в 2015 году она была стандартизирована как ISO 11898-1:2015. С тех пор CAN FD активно внедряется в автомобильной промышленности, особенно в системах ADAS (Advanced Driver-Assistance Systems) и электрических транспортных средствах.
Отличия от классического CAN
CAN FD отличается от классического CAN (CAN 2.0) несколькими ключевыми особенностями:
- Скорость передачи данных: В классическом CAN скорость передачи данных фиксирована для всего кадра (обычно до 1 Мбит/с). В CAN FD используется двухскоростной режим: арбитражная фаза (Arbitration Phase) выполняется на стандартной скорости (например, 500 кбит/с), а фаза данных (Data Phase) — на повышенной скорости (до 8 Мбит/с и выше, в зависимости от длины шины и топологии).
- Длина данных: Классический CAN передаёт до 8 байт данных на кадр. CAN FD поддерживает передачу до 64 байт данных, что позволяет упаковывать больше информации в один кадр, снижая накладные расходы на заголовки и арбитраж.
- Формат кадра: CAN FD использует модифицированный формат кадра, включающий бит FDF (FD Format), который указывает, что кадр является CAN FD, а не классическим CAN. Также добавлен бит BRS (Bit Rate Switch), переключающий скорость в фазе данных, и бит ESI (Error State Indicator), информирующий об ошибках узла.
- Контроль ошибок: CAN FD использует 17-битную CRC (Cyclic Redundancy Check) для кадров с длиной данных до 16 байт и 21-битную CRC для кадров с длиной данных от 17 до 64 байт, что обеспечивает более надёжное обнаружение ошибок по сравнению с классическим CAN (15-битная CRC).
- Обратная совместимость: CAN FD спроектирован так, чтобы работать на той же физической шине, что и классический CAN. Узлы, поддерживающие только CAN 2.0, могут сосуществовать с узлами CAN FD, но они не будут обрабатывать CAN FD-кадры, которые для них выглядят как ошибки (из-за бита FDF). Для совместимости требуется, чтобы все узлы, поддерживающие CAN FD, игнорировали такие ошибки.
Архитектура и принцип работы
Физический уровень
CAN FD использует ту же физическую среду, что и классический CAN: дифференциальную двухпроводную шину (CAN_H и CAN_L) с терминаторами на концах. Напряжение на шине определяет два логических состояния: доминантное (0) и рецессивное (1). В арбитражной фазе скорость передачи данных ограничена длиной шины и временем распространения сигнала (обычно до 1 Мбит/с для шин длиной до 40 метров). В фазе данных скорость может быть увеличена, но это требует более коротких шин и лучшего качества линий (например, до 8 Мбит/с для шин длиной до 10 метров).
Канальный уровень
Канальный уровень CAN FD включает в себя:
- Арбитраж: Как и в классическом CAN, арбитраж осуществляется на основе идентификатора кадра (ID). Узлы, передающие кадр с более низким ID (более высоким приоритетом), выигрывают арбитраж. В CAN FD арбитражная фаза выполняется на стандартной скорости, чтобы избежать коллизий и обеспечить детерминизм.
- Фаза данных: После успешного арбитража узел переключает скорость на повышенную (бит BRS = 1) и передаёт данные (от 0 до 64 байт) с более высокой скоростью. Если BRS = 0, кадр передаётся на стандартной скорости, как в классическом CAN.
- Контроль ошибок: CAN FD использует механизмы CRC и ACK (подтверждение) для обнаружения ошибок. При обнаружении ошибки узел отправляет флаг ошибки, что приводит к повторной передаче кадра.
Формат кадра
Кадр CAN FD состоит из следующих полей:
- SOF (Start of Frame): 1 бит, доминантный, начало кадра.
- Арбитражное поле: 11-битный (стандартный) или 29-битный (расширенный) идентификатор, бит RTR (Remote Transmission Request) — в CAN FD не используется для кадров данных, бит IDE (Identifier Extension) и бит FDF (FD Format), который равен 1 для CAN FD.
- Поле управления: 4 бита DLC (Data Length Code), кодирующие длину данных (0–64 байта), бит BRS (Bit Rate Switch) и бит ESI (Error State Indicator).
- Поле данных: От 0 до 64 байт, передаваемых на повышенной скорости (если BRS = 1).
- CRC: 17 или 21 бит, в зависимости от длины данных.
- ACK: 2 бита (слот и разделитель), подтверждение приёма.
- EOF (End of Frame): 7 бит, рецессивные, конец кадра.
- IFS (Inter-Frame Space): 3 бита, разделитель между кадрами.
Применение
CAN FD нашёл широкое применение в отраслях, где требуется высокая пропускная способность и надёжность передачи данных:
- Автомобильная промышленность: В современных автомобилях CAN FD используется для связи между электронными блоками управления (ECU), особенно в системах ADAS, электрических и гибридных силовых установках, а также в информационно-развлекательных системах. Например, камеры заднего вида и лидары могут передавать большие объёмы данных через CAN FD.
- Промышленная автоматизация: В станках с ЧПУ, робототехнике и системах управления технологическими процессами CAN FD обеспечивает более быструю передачу данных по сравнению с классическим CAN, что важно для синхронизации движений и сбора данных.
- Медицинское оборудование: В диагностических системах и аппаратах МРТ, где требуется передача больших объёмов данных в реальном времени, CAN FD используется для связи между модулями.
- Аэрокосмическая и оборонная промышленность: В системах управления полётом и бортовых сетях CAN FD применяется для передачи телеметрии и команд с высокой надёжностью.
Преимущества и недостатки
Преимущества
- Увеличенная пропускная способность: За счёт более высокой скорости в фазе данных и большей длины полезной нагрузки CAN FD может передавать до 8 раз больше данных за то же время по сравнению с классическим CAN.
- Обратная совместимость: CAN FD может работать на существующей физической шине CAN, что упрощает модернизацию систем.
- Снижение накладных расходов: Упаковка большего количества данных в один кадр уменьшает количество арбитражей и заголовков, что снижает загрузку шины.
- Улучшенная надёжность: Более длинная CRC (21 бит) обеспечивает лучшее обнаружение ошибок для больших кадров.
Недостатки
- Требования к физическому уровню: Для работы на высоких скоростях (более 1 Мбит/с) необходимы более короткие шины, качественные кабели и терминаторы, что может увеличить стоимость.
- Сложность реализации: Контроллеры CAN FD требуют более сложной логики для управления двухскоростным режимом и обработки ошибок.
- Совместимость с CAN 2.0: Узлы, поддерживающие только CAN 2.0, не могут обрабатывать CAN FD-кадры, что может вызывать ошибки, если не настроена фильтрация.
Интересные факты
- CAN FD был разработан компанией Bosch в сотрудничестве с рядом автопроизводителей, включая BMW и Volkswagen.
- В 2018 году была опубликована спецификация CAN FD Light, предназначенная для упрощённых приложений с меньшими требованиями к производительности.
- CAN FD часто используется в сочетании с протоколом CANopen FD, который добавляет более высокоуровневые функции, такие как управление сетью и диагностика.
Источники
- Robert Bosch GmbH. CAN FD Specification. Version 1.0, 2012.
- ISO 11898-1:2015. Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling.
- Steve Corrigan. Introduction to CAN FD. Texas Instruments Application Report, 2016.
- CAN in Automation (CiA). CAN FD — The new generation of CAN. CiA, 2019.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →