Протокол CAN поддерживает метод доступа CSMA/CD-A к сети с равноранговыми узлами. Пакет данных имеет размер не более 8 байт и передается по последовательной шине. 15-битовый циклический контроль избыточности обеспечивает высокий уровень целостности данных.
Используемый в настоящее время протокол CAN версии v2.0 состоит из двух частей: версия v2.0A со стандартным форматом кадра и v2.0B с расширенным форматом кадра. Версия v2.0A идентична предыдущей версии v1.2 и использует 11-битовое поле идентификатора. В версии v2.0B ноле идентификатора — 29 бит. Расширенный формат кадра необходим для совместимости с существующим коммуникационным протоколом J1850. Функции протокола CAN реализуются в микропроцессоре со встроенным контроллером CAN. Первыми па рынке появились контроллеры CAN с внешними драйверами для шины. В настоящее время производятся несколько типов CAN-контроллеров, которые можно разделить на три группы в зависимости от поддержки ими расширенного формата кадра:
- контроллеры v2.0A. Поддерживают только стандартный формат, не могут работать в сети, где передаются и кадры расширенного формата;
- контроллеры v2.0B, пассивные. Поддерживают только стандартный формат, но могут работать в сети, где передаются и кадры расширенного формата;
- контроллеры v2.0B, активные. Поддерживают операции с кадрами стандартного и расширенного форматов.
Контроллеры CAN классифицируются также как полные или базовые в зависимости от организации буферизации данных.
Полный CAN-контроллер имеет некоторое количество (обычно 14) специализированных буферов для временного хранения сообщений. При инициализации CAN-контроллера можно сконфигурировать сто, указав, какой кадр будет поступать в какой буфер.