Семейство протоколов CAN

Промышленная сеть CAN (Controller Area Network) была создана в конце 80-х годов фирмой Bosch как решение для распределенных систем, работающих в режиме реального времени. Первая реализация CAN применялась в автомобильной электронике, однако сейчас CAN находит применение практически в любых типах машин и промышленных установок, от простейших бытовых приборов до систем управления ускорителями элементарных частиц. В настоящий момент CAN-протокол стандартизован в международном стандарте ISO 11898.
 

Основные положения стандарта CAN.

  • В качестве среды передачи в CAN используется дифференциальная линия связи - витая пара, сигналы по которой передаются в дифференциальном режиме.
  • Для контроля доступа к среде передачи используется метод недеструктивного арбитража.
  • Данные передаются короткими (максимальная длина поля данных - 8 байт) пакетами, которые защищены контрольной суммой.
  • В CAN отсутствует явная адресация сообщений. Вместо этого каждый пакет снабжен полем арбитража (идентификатор+RTR-бит), которое задает приоритет сообщения в сети.
  • CAN имеет исчерпывающую схему контроля ошибок, которая гарантирует повторную передачу пакета, в случае возникновения ошибок передачи/приема сообщения.
  • В CAN существует способ автоматического устранения узла, являющегося источником ошибочных пакетов в сети.
     

CAN контроллеры.
Протокол CAN полностью реализован аппаратно - в виде микросхем- CAN контроллеров или в виде стандартного периферийного устройства в составе микросхемы- микроконтроллера. Все производители современных микроконтроллеров по крайней мере в одном из семейств имеют микроконтроллеры со встроенным периферийным одним или несколькими CAN-контроллерами. Таким образом, сегодня, СAN-контроллер является таким же стандартным периферийным устройством как контроллер SPI, I2C или UART.
 

Протоколы высокого уровня (HLP).
Протокол CAN описывает только то, как пакеты должны быть доставлены от одного узла сети к другому. CAN ничего не говорит о том, как нужно интерпретировать поле данных пакета, как использовать поле арбитража (идентификатор), как обеспечить передачу данных, длина которых превышает 8 байт, какую логическую схему передачи должны использовать общающиеся между собой узлы и т.п. Другими словами CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI. Положения, которые не специфицируются стандартом CAN, (верхние пять уровней модели ISO/OSI) описываются, так называемыми CAN протоколами высокого уровня (HLP - Higher Layer Protocols). В настоящий момент существует несколько HLP протоколов. Они описывают следующие общие положения:

  • процедура подключения узла к сети.
  • способ использования поля арбитража (распределение уровней приоритетов и идентификаторов между узлами сети).
  • формат сообщений.
  • схема обработки ошибок на логическом уровне.
  • логические схемы обмена данными между узлами сети (обмен данными в режиме master-slave, обмен данными с установлением соединения и без него, и т.п.).

В грузовом автотранспорте, тракторах, сельскохозяйтсвенных и лесных машинах используют семейство протоколов SAE J1939 . В легковых автомашинах применяются "закрытые" протоколы производителей стандартизованные только на уровне подключения некоторых диагностических приборов и основанные идеологически на семействе протоколов SAE J1939.
Для построения децентрализованных встроенных систем реального времени (embedded network) используют протокол CANopen .
Для решения задачи АСУ ТП с использованием сети СAN-bus применяют протокол DeviceNet .
Для применения в аэрокосмической области все болшее признание полчает протокол ARINC 825 .