Сеть состоит из узлов с собственными тактовыми генераторами и витого медного провода, соединяющего данные узлы. В отличие от традиционных сетей передачи данных, в шине CAN не передаются большие пакеты данных от точки «А» к точке «Б». В сети CAN много коротких сообщений (температура, обороты двигателя и т. п.), которые транслируются на всю сеть любыми узлами этой сети без исключения, причем каждый из узлов данной сети самостоятельно решает, относится ли к нему то или иное сообщение. Для решения этой задачи в CAN имеется аппаратная реализация фильтрации сообщений.
Стандарт CAN-шины с протоколами J1939 и J1979 на данный момент реализован в двух версиях: версия CAN 2.0А содержит 11-битные идентификаторы в сообщениях (т. е. в системе может быть 2048 сообщений), и CAN 2.0B — 29-битные идентификаторы (536 млн сообщений). Данный стандарт описывает только то, как сообщения (пакеты) должны быть доставлены от одного узла сети к другому, и ничего не говорит о том, как нужно интерпретировать поле данных этих сообщений и использовать поле арбитража (идентификатор) этих сообщений.
Рассмотрим протокол SAE J1939 и FMS-Standard:
- данные могут быть недоступны во время включения/выключения главного выключателя;
- большинство значений являются достоверными примерно через 10 с после включения кнопки;
- физический уровень в соответствии с ISO 11898 (250 Кбит / с);
- уровень применения в соответствии с SAE J1939 / 71;
- канальный уровень данных в соответствии с SAE J1939 / 21;
- при расхождения между определениями в этом документе и SAE документы SAE действительны только для PGN 0x00FE6B (идентификатор водителя), PGN 0x00FE70 (комбинированный вес транспортного средства) и для PGN 0x00FEE6 (время/дата);
- приоритет / адрес источника для каждого OEM-производителя различен;
- если информация доставлена, то функция/данные должны быть представлены в соответствии со стандартом FMS;
- если информация недоступна, то функция/данные должны быть отправлены как недоступные в соответствии с SAE;