CANBUS
История этого протокола началась в начале 80-х годов. Технологии того уровня подошли к такому этапу, что возникла необходимость сбора и обработки результатов от множества датчиков, устанавливаемых в автомобилях, за короткие промежутки времени. Эту задачу можно было решить только при использовании сетевой структуры, объединяющей все компоненты и использующей для этой цели недорогую, последовательную сетевую структуру. По этой причине фирма BOSCH (Германия) разработала протокол "Control Area Network" (CAN), который был утвержден Международной организацией по стандартам в качестве стандарта ISO 11898. Этот стандарт был взят на вооружение несколькими фирмами-производителями кристаллов.
Протокол CAN описывает 1-ый и 2-ой уровень OSI-модели.
По своим характеристикам он удовлетворяет требованиям задач реального времени. Реализованный механизм передачи данных позволяет обнаруживать и исправлять ошибки с хемминговым расстоянием 6, то есть 2 ошибочных бита исправляются и 5 ошибочных битов обнаруживаются.
Системы на основе CANbus достаточно легко конфигурируются и обладают средствами централизованной диагностики.
CANbus - это последовательная шина, механизм работы которой описывается моделью децентрализованного контроля за доступом к шине, так называемой моделью CSMA/CM. Эта модель представляет собой модернизированный вариант модели CSMA/CD. Отличие заключается в механизме разрешения коллизий. В CANbus каждый блок данных содержит дополнительный 11-битовый идентификатор, который является, по сути, приоритетом данного сообщения. Назначение приоритетов может происходить следующим образом: один - для параметра скорости, другой - для частоты вращения коленчатого вала двигателя и т.п. Каждый узел-приемник в сети CANbus сам выбирает предназначенные для него сообщения. Возможные коллизии, связанные с одновременным запросом шины, разрешаются на основе приоритетности сообщений; право на работу с шиной получит тот узел, который передает сообщение с наивысшим приоритетом.
В каждом сообщении может быть передано от 0 до 8 бит данных. Большие блоки можно передавать за счет использования принципа сегментации. Общая схема работы сети представлена на рисунке.
Фирма BOSCH предоставила ряду компаний лицензионное право на выпуск микросхем для CANbus: IAM, Inicore, INTEL, Intermetall, Motorola, National Semiconductor, NEC, Philips, SGS-Thompson и Siemens.
Сегодня доступны следующие микроконтроллеры:
- от INTEL - 82526, 82627;
- от NEC - 72005;
- от Philips - 82С200;
- от Siemens - 81С90/91.
В марте 1992 года пользователи и производители аппаратуры, имеющей отношение к CANbus, создали международную Ассоциацию "CAN in Automation" (CiA). Эта некоммерческая организация занята продвижением этого протокола и системных решений на его основе на рынке автоматизации.
В настоящее время она объединяет около 170 фирм.
Протокол CANbus закрывает 1-ый и 2-ой уровни OSI-модели. Сегодня на основе CANbus есть решения для 7-го уровня. Это протоколы промышленных сетей:
- SDS (Honeywell)
- DeviceNET (Alien Bradley)
- CAL (протокол, предложенный Ассоциацией CiA)
Каждый из этих высокоуровневых протоколов имеет свою область применения
Преимущества
- Возможность работы в режиме жёсткого реального времени.
- Простота реализации и минимальные затраты на использование.
- Высокая устойчивость к помехам.
- Арбитраж доступа к сети без потерь пропускной способности.
- Надёжный контроль ошибок передачи и приёма.
- Широкий диапазон скоростей работы.
- Большое распространение технологии, наличие широкого ассортимента продуктов от различных поставщиков.
Недостатки
- Максимальная длина сети обратно пропорциональна скорости передачи.
- Большой размер служебных данных в пакете (по отношению к полезным данным).
- Отсутствие единого общепринятого стандарта на протокол высокого уровня, однако же это и достоинство. Стандарт сети предоставляет широкие возможности для практически безошибочной передачи данных между узлами, оставляя разработчику возможность вложить в этот стандарт всё, что туда сможет поместиться. В этом отношении CAN подобен простому электрическому проводу. Туда можно «затолкать» любой поток информации, который сможет выдержать пропускная способность шины. Известны примеры передачи звука и изображения по шине CAN (Россия). Известен случай создания системы аварийной связи вдоль автодороги длиной несколько десятков километров (Германия). (В первом случае нужна была большая скорость передачи и небольшая длина линии, во втором случае — наоборот). Изготовители, как правило, не афишируют, как именно они используют полезные байты в пакете.