CAN bus · ISO 11898-2 · CAN FD · Физический уровень · Обнаружение ошибок · 9 мин чтения

Основы CAN Bus: физический уровень, структура фреймов и обнаружение ошибок

Разработанный Bosch в 1986 году и стандартизированный как ISO 11898, CAN bus является базовой полевой шиной для оборудования HVAC, чиллеров, частотных преобразователей и контроллеров автоматизации зданий. Дифференциальная передача сигналов, аппаратный арбитраж и пятиуровневое обнаружение ошибок делают его значительно более надёжным, чем RS485 Modbus в электрически зашумлённых машинных залах — понимание этих основ необходимо перед развёртыванием любого устройства CANopen.

Физический уровень ISO 11898-2 и дифференциальная передача сигналов

ISO 11898-2 определяет High-Speed CAN — вариант, используемый практически во всех приложениях автоматизации зданий и промышленности. Физический уровень использует дифференциальную пару: CAN_H (CAN High) и CAN_L (CAN Low), оба относительно GND. В рецессивном состоянии (логическая 1) обе линии находятся приблизительно на 2,5В, дифференциальное напряжение равно 0В. В доминантном состоянии (логический 0) CAN_H поднимается до примерно 3,5В, а CAN_L — до примерно 1,5В, создавая дифференциал 2В, устойчивый к синфазным помехам до ±30В.

Используйте экранированную витую пару с характеристическим импедансом 120Ω — Belden 9841 (однопарный, 24AWG) или аналог. Подключайте экран только с одного конца (обычно со стороны щита), чтобы избежать контурных токов. Оба конца сегмента шины должны быть нагружены резистором 120Ω между CAN_H и CAN_L. Раздельная оконечная нагрузка (два резистора по 60Ω с конденсатором 4,7нФ на землю в средней точке) улучшает ЭМС в условиях высоких помех.

Подключение CAN bus — 3-проводное соединение

CAN bus cable (Belden 9841 or equivalent, 120Ω STP):
  CAN_H  → CAN_H terminals on all nodes
  CAN_L  → CAN_L terminals on all nodes
  GND    → GND terminals on all nodes (reference, not signal ground)

Termination resistors:
  Node 1 (first node on bus): 120Ω between CAN_H and CAN_L
  Node N (last node on bus): 120Ω between CAN_H and CAN_L
  All intermediate nodes: NO termination

Measure termination (bus powered off):
  CAN_H to CAN_L resistance should read ~60Ω
  (Two 120Ω resistors in parallel = 60Ω)
  Values outside 54–66Ω indicate missing or extra termination

Предупреждение: Звёздная и древовидная топология не допускаются на CAN bus. Все узлы должны быть подключены к единому линейному магистральному кабелю — ответвления должны быть не длиннее 0,3м для предотвращения отражений сигнала. Длинные ответвления вызывают ошибки доминантных битов на высоких скоростях.

Битрейт versus длина кабеля

Битрейт CAN bus ограничен задержкой распространения — временем, необходимым сигналу для прохождения до самого удалённого узла и обратно до окончания битового периода. ISO 11898-2 задаёт стандартные комбинации битрейта и длины кабеля. Системы автоматизации зданий редко требуют 1 Мбит/с; 125 кбит/с или 250 кбит/с типично для оборудования HVAC на кабельных трассах 100–500м между техническими помещениями.

БитрейтМакс. длина кабеляМакс. длина ответвленияТипичное применение
1 Мбит/с40 м0,3 мУправление станками, короткие внутрищитовые линии
500 кбит/с100 м0,3 мПромышленные приводы, компактное техническое помещение
250 кбит/с250 м0,3 мHVAC мульти-чиллер, этажное техническое помещение
125 кбит/с500 м0,3 мМагистраль здания, межэтажные трассы
50 кбит/с1000 м0,3 мДлинные кабельные трассы, крупные объекты
20 кбит/с2500 м0,3 мВ пределах кампуса, редко используется

Примечание: Все узлы в одном сегменте CAN должны работать на одном битрейте. Смешивание устройств 250 кбит/с и 125 кбит/с на одной шине невозможно — используйте повторитель CAN или отдельные сегменты, соединённые через шлюз, если требуются разные скорости.

Структура фрейма CAN

Стандартный кадр данных CAN (ISO 11898-1) состоит из семи полей. Понимание поля идентификатора арбитража критически важно для конфигурации CANopen — COB-ID (Communication Object Identifier), используемый в CANopen, является 11-битным стандартным идентификатором CAN. Расширенные фреймы используют 29-битные идентификаторы и применяются в CANopen с 4-байтными COB-ID (режим расширенной адресации).

ПолеБитыОписание
SOF1Start of Frame — доминантный бит, синхронизирующий все приёмники
Идентификатор арбитража (стандартный)11Идентификатор сообщения — меньшее значение = более высокий приоритет на шине
Идентификатор арбитража (расширенный)29Расширенный формат фрейма — включает 11-битную базу + 18-битное расширение
RTR1Remote Transmission Request — 1 = запрос данных от другого узла
IDE1Бит расширения идентификатора — 0 = стандартный фрейм, 1 = расширенный фрейм
DLC4Data Length Code — количество байт данных: от 0 до 8
Данные0–64 битаПолезная нагрузка: 0–8 байт для классического CAN; до 64 байт для CAN FD
CRC15 + 115-битный контроль циклической избыточности плюс разделитель CRC (рецессивный бит)
ACK2Слот подтверждения (доминантный) + разделитель ACK (рецессивный)
EOF7End of Frame — 7 рецессивных битов

Механизмы обнаружения ошибок

CAN имеет пять независимых механизмов обнаружения ошибок, работающих одновременно. Каждая обнаруженная ошибка заставляет все узлы отбросить текущий фрейм, а передатчик — повторить отправку. Узел, многократно вызывающий ошибки, переходит из активного состояния ошибки в пассивное, а затем в состояние отключения от шины, защищая сеть от неисправного узла.

Тип ошибкиМетод обнаруженияЧастая причина
Ошибка CRCПриёмник пересчитывает CRC и сравнивает с переданным значениемИскажённые биты данных из-за EMI или длинного кабеля
Ошибка битаПередатчик мониторит шину и обнаруживает несоответствие уровня собственного битаКороткое замыкание, конфликт на шине, неисправность проводки
Ошибка фреймаПоля с фиксированным форматом (EOF, разделитель CRC) проверяются на корректный уровеньСбой bit stuffing, повреждённая структура фрейма
Ошибка ACKПередатчик проверяет, что хотя бы один приёмник отправил доминантный ACKОтсутствующий узел, неправильный битрейт, нет оконечной нагрузки
Ошибка stuffingПосле 5 последовательных битов одного уровня должен следовать комплементарный битEMI вызывает последовательность одного уровня более 5 битов

Неразрушающий побитовый арбитраж

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

В CANopen это означает, что более низкие COB-ID имеют более высокий приоритет. Аварийные сообщения (EMCY, COB-ID 0x080 + ID узла) и сообщения heartbeat получают более низкие COB-ID, чем данные PDO — это гарантирует, что сигналы тревоги никогда не задерживаются из-за трафика технологических данных. Назначайте наименьшие ID узлов наиболее критичным устройствам, таким как шлюзы пожарных панелей или контроллеры аварий чиллеров.

CAN FD — Flexible Data-rate

CAN FD (ISO 11898-1:2015) расширяет классический CAN двумя улучшениями: переменная скорость передачи данных в фазе данных до 8 Мбит/с (против 1 Мбит/с для классического CAN) и размер полезной нагрузки до 64 байт (против 8 байт). Фаза арбитража по-прежнему работает на классическом битрейте для совместимости — только фаза данных переключается на более высокий битрейт после бита BRS (Bit Rate Switch).

ПараметрКлассический CANCAN FD
Макс. битрейт арбитража1 Мбит/с1 Мбит/с (тот же — обратно совместимый)
Макс. битрейт фазы данных1 Мбит/с8 Мбит/с
Макс. байт полезной нагрузки8 байт64 байта
Длина CRC15 бит17 или 21 бит (длиннее для больших полезных нагрузок)
Применение в автоматизации зданийШироко распространён — большинство устройств HVACПоявляющийся — новые ЧП, счётчики энергии

Примечание: Большинство CAN-устройств для автоматизации зданий (чиллеры, ПВУ, ЧП) по-прежнему используют классический CAN на 125 или 250 кбит/с. Оборудование CAN FD (PEAK-System PCAN-USB FD, Vector CANalyzer FD) обратно совместимо и может взаимодействовать с классическими CAN-узлами в одном сегменте при условии, что фаза данных не активируется при работе с классическими узлами.

Диагностические инструменты

Используйте анализатор CAN при вводе в эксплуатацию для проверки трафика шины, мониторинга фреймов ошибок и подтверждения ID узлов перед интеграцией со шлюзом CANopen. Три инструмента являются стандартными в отрасли.

ИнструментИнтерфейсПрименение
PEAK-System PCAN-USBUSB-донгл, ~€100Бесплатное ПО PCAN-View — прослушивание трафика, отправка фреймов, запись в CSV
PEAK-System PCAN-USB FDUSB-донгл CAN FD, ~€130То же, но поддерживает фазу данных CAN FD до 8 Мбит/с
Vector CANalyzerPCI/USB карта, профессиональныйПолный анализ протокола, просмотр словаря объектов CANopen, скриптинг
Kvaser Leaf Light v2USB-донгл, ~€180Бесплатное ПО Kvaser CanKing — удобен для полевой наладки
PCAN-View (бесплатно)ПО (Windows)Используется с адаптерами PEAK — фильтрация по COB-ID, мониторинг счётчиков ошибок

Нужен щит CAN bus с интеграцией шлюза CANopen?

Мы проектируем и строим низковольтные щиты со шлюзами CANopen-to-KNX/Modbus/BACnet, правильной оконечной нагрузкой 120Ω, экранированными CAN-кабелями и документацией по вводу в эксплуатацию для объектов HVAC и промышленности.

Запросить предложение →
Загрузка ...
Наверх