Что такое CAN
CAN (Controller Area Network) — надёжная последовательная шина, созданная для автомобилей и прочно закрепившаяся в промышленной автоматике. Все узлы висят на общей витой паре (CAN-High / CAN-Low) и обмениваются короткими кадрами с приоритетами.
Арбитраж без коллизий
Уникальная черта CAN — неразрушающий арбитраж. Если несколько узлов начинают передачу одновременно, побеждает кадр с меньшим (более приоритетным) идентификатором, а остальные автоматически отступают, не теряя данных. Это обеспечивает предсказуемость в реальном времени.
Формат кадра
Кадр данных содержит идентификатор (11 бит в стандартном формате, 29 бит в расширенном), поле управления, до 8 байт данных и поле CRC для контроля целостности. Подсчитать контрольную сумму можно в CRC-калькуляторе.
Битрейт и тайминг
Битовое время делится на кванты: синхронизация, сегменты и точка выборки. Правильно подобрать делитель BRP и сегменты под нужную скорость (например 500 кбит/с) помогает калькулятор CAN bit timing. Типовые скорости — 125, 250, 500 кбит/с и 1 Мбит/с.
Применение
CAN применяется в автомобильной электронике, станках, медтехнике, лифтах — везде, где нужна устойчивая к помехам шина реального времени. Аппаратный CAN есть у старших PIC и AVR-Dx. Смежные промышленные интерфейсы — RS-485 и COM; распиновки — в справочнике.