CANopen
Протокол высокого уровня поверх шины CAN (ISO 11898). Поддерживает до 127 узлов, скорости 10-1000 кбит/с, длина кадра 8 байт. Применяется в машиностроении, автомобильной, медицинской технике, лифтах, транспорте. Стандартизирован CiA (CAN in Automation).
CANopen — протокол высокого уровня поверх шины CAN (Controller Area Network), стандартизированный CiA (CAN in Automation) в 1995 году. CAN как таковой был разработан Bosch в 1980-х для автомобилей (ISO 11898), а CANopen превратил его в полноценный промышленный протокол с объектной моделью данных и профилями устройств.
Физика шины — линейная топология с терминаторами 120 Ом, кадр до 8 байт, скорости от 10 кбит/с (длина до 5 км) до 1 Мбит/с (до 40 м), поддержка до 127 узлов с 7-битной адресацией Node ID. Детерминизм обеспечивает приоритетный арбитраж на уровне кадра. Основа CANopen — объектный словарь (Object Dictionary), в котором каждое устройство хранит стандартизированные параметры по индексу (16 бит) и подиндексу (8 бит).
Обмен делится на несколько механизмов. PDO (Process Data Object) — циклическая передача процессных данных по событию или по SYNC-сигналу, до 4 на приём и 4 на передачу. SDO (Service Data Object) — запросные доступ к объектному словарю для конфигурирования. NMT управляет состоянием узлов (Pre-operational, Operational, Stopped), Heartbeat или Node Guarding мониторят живость участников сети.
Типовое применение — лифты OTIS, KONE и Schindler (связь контроллера с приводом), машиностроение и серводвигатели по профилю CiA 402, медицинская техника (рентгены, томографы), рельсовый транспорт, модули I/O (CiA 401), энкодеры (CiA 406). Для настройки используют IXXAT canAnalyser, CANopen Magic, Peak PCAN View, Kvaser CanKing. От родственного DeviceNet (тоже на CAN, но от Rockwell/ODVA) и профиля J1939 для коммерческого транспорта CANopen несовместим на уровне верхнего протокола. Нормативная база — CiA 301 и ISO 11898.
Частые вопросы
CAN и CANopen — это одно и то же?
Нет. CAN — физическая шина (ISO 11898), только определяет как кадр передаётся. CANopen — протокол верхнего уровня (CiA DS301), определяет что в кадрах передавать: PDO, SDO, объектный словарь, профили устройств. CAN без верхнего протокола — просто передача произвольных байтов. CANopen обеспечивает совместимость устройств разных производителей.Какую скорость CAN выбрать?
Зависит от длины шины: 1 Мбит/с до 40 м, 500 кбит/с до 100 м, 250 кбит/с до 250 м, 125 кбит/с до 500 м, 50 кбит/с до 1 км, 10 кбит/с до 5 км. Для машины на одном объекте обычно 500 кбит/с или 1 Мбит/с. Для распределённой диспетчеризации лифтов в многоэтажке — 125-250 кбит/с.Можно ли смешать CANopen и обычный CAN в одной шине?
Физически — да (CAN идентификаторы просто разные). Но на практике это создаёт проблемы диагностики и совместимости. Рекомендуется выделить отдельные шины или использовать разные Node ID для разделения. Для автомобилей — применяют отдельные шины для диагностики (OBD-II) и бортовой автоматики.
Источники
- CiA 301 — CANopen Application Layer and Communication Profile — CAN in Automation
- ISO 11898 — Road vehicles — Controller Area Network — ISO