Промышленный протокол CAN-open
Controller Area Network
Идея протокола CAN(Controller Area Network) была заимствована из автомобилестроения. Изначально CAN был разработан фирмой BOSCH для связи модулей автомобиля в единую сеть и организации обмена между ними. Новый протокол должен был максимально упростить кабельную разводку и локализацию неисправностей бортового оборудования автомобиля.
CAN open – надстройка над протоколом нижнего уровня CAN.
Основные характеристики CAN open
Промышленная сеть CAN является сетью реального времени. Она представляет собой сеть с общей средой передачи данных: все её узлы одновременно принимают все сообщения, передаваемые по шине. Это означает отсутствие возможности посылать пакеты какому-либо адресату отдельно от других участников сети. Фильтрация CAN-сообщений происходит на аппаратном уровне с помощью CAN-контроллера.
| Число адресов | до 32 |
| Скорость передачи | 125…1000 Кбит/с |
| Размер данных | 8 слов (байт) |
| Формат сеанса | посылка по изменению |
Каждый узел состоит из:
- контроллера CAN – реализует протокол;
- микропроцессора (CPU) – обрабатывает сообщения.
Физический уровень CAN open
Узлы CAN-сети объединяются дифференциальной шиной. Шина имеет две линии — CAN_H (can-high) и CAN_L (can-low). Логический ноль на линии CAN_L ниже, чем на линии CAN_H. Уровень логической единицы одинаков на обеих шинах (отличаются в пределах 0.5 В).
Физический уровень определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411). Обычно используется физический уровень CAN, определенный в стандарте ISO 11898:
- средой передачи является двухпроводная дифференциальная линия с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом)
- реализован в специальных чипах (CAN приемо-передатчиках), которые преобразуют обычные TTL уровни сигналов, используемых CAN-контроллерами в уровни сигналов на шине CAN.
Длина линии связи CAN open
| Скорость передачи (Кбит/с) | Максимальная длина сети (м) |
| 1000 | 40 |
| 500 | 100 |
| 250 | 200 |
| 125 | 500 |
| 10 | 6000 |
Длина кабеля уменьшается с увеличением скорости обмена. Это связано с тем, что все узлы должны достаточно быстро получать логические уровни сообщений, передаваемых другими участниками взаимодействия, для организации побитового арбитража. Кроме того, ограничение длины кабеля связано с постепенным затуханием сигнала из-за ненулевого электрического сопротивления проводящих линий.
Приоритеты логических уровней в CAN open
Логическая единица — называется рецессивным битом, а логический ноль — доминантным. Логический ноль имеет приоритет, поэтому при одновременном появлении на шине обоих сигналов единица будет подавлена, и на линии будет регистрироваться логический ноль.
Кадры в протоколе CAN open
Для передачи информации в сети CAN используются кадры — сообщения определённого формата. Различают следующие типы кадров:
- Data Frame – служит для передачи данных
- Remote Frame — служит для запроса на передачу кадра данных с тем же идентификатором
- Error Frame — кадр, для передачи сообщения об ошибке
- Overload Frame – обеспечивает промежуток между кадрами данных или запроса
Арбитраж протокола CAN open
Для разрешения коллизий в сети CAN используется специальный алгоритм неразрушающего арбитража. Если несколько узлов сети одновременно начинают передачу сообщения, каждый из них должен сравнить бит, который он собирается передать на шину, с битом который передают остальные устройства. Если биты, которые на текущий момент передают все участники, совпадают – передача сообщения продолжается. В противном случае арбитраж происходит в соответствии с приоритетами логических уровней, т.е. передавать свои сообщения продолжают те устройства, которые на данный момент «выставили» логический ноль (доминантный бит). Остальные устройства прекращают передачу кадра до тех пор, пока линия не освободится.
Область применения проткола
Протокол CAN-open удобный, надёжный и просто реализуемый протокол верхнего уровня. Он поддерживает достаточно высокие скорости обмена данными, что делает его применимым в системах реального времени. CAN-open рассчитан на распределённые системы, поэтому его целесообразно применять в тех случаях, когда каждый узел сети может асинхронно сообщать остальным участникам взаимодействия о событиях, происходящих в нём. Это возможно в CAN благодаря отсутствию «мастера» сети и «равноправие» всех её узлов. Удобный и гибкий алгоритм разрешения коллизий делает протокол быстрым и надёжным.
До скорой встречи на LAZY SMART! Чтобы не пропустить новую статью, вступай в нашу группу Вконтакте, а также подписывайся на наш канал YouTube.


Добавить комментарий