2.6. CAN
CAN (Controller Area Network — «область, охваченная сетью контроллеров») представляет собой комплекс стандартов для построения распределенных промышленных сетей, который использует последовательную передачу данных в реальном времени с очень высокой степенью надежности и защищенности. Центральное место в CAN занимает протокол канального уровня модели OSI. Первоначально CAN был разработан для автомобильной промышленности, но в настоящее время быстро внедряется в область промышленной автоматизации. Это хорошо продуманный, современный и многообещающий сетевой протокол. Начало развития CAN было положено компанией Bosch в 1983 г., первые микросхемы CANконтроллеров были выпущены фирмами Intel и Philips в 1987 году, в настоящее время контроллеры и трансиверы CANвыпускаются многими фирмами, в том числе Analog Devices, Inc., Atmel Corp. Cast, Dallas Semiconductor, Freescale, Infineon, Inicore Inc., Intel, Linear Technology, Maxim Integrated Products, Melexis, Microchip, National Semiconductor, NXP, OKI, Renesas Technology Corp., STMicroelectronics, Yamar Electronics, Texas Instruments.
В России интерес к CAN за последние годы сильно возрос, однако контроллерного оборудования для CAN в России крайне мало, в десятки или сотни раз меньше, чем для Modbus или Profibus. Среди протоколов прикладного уровня для работы с CAN наибольшее распространение в России получили CANopen и DeviceNet.
В настоящее время CAN поддерживается 11-ю стандартами ISO, в том числе [ISO — Diagnostics].
CAN охватывает два уровня модели OSI: физический и канальный (табл. 2.7). Стандарт не предусматривает никакого протокола прикладного (7-го) уровня модели OSI. Поэтому для его воплощения в жизнь различные фирмы разработали несколько таких протоколов: CANopen (организации CiA), SDS (фирмы Honeywell Micro Switch Division), CAN Kingdom (фирмы Kvaser), DeviceNet (фирмы Allen-Bradley, ставший Европейским стандартом в 2002 г.) и ряд других [Грибанов — Третьяков].
CAN характеризуется следующими основными свойствами:
- каждому сообщению (а не устройству) устанавливается свой приоритет;
- гарантированная величина паузы между двумя актами обмена;
- гибкость конфигурирования и возможность модернизации системы;
- широковещательный прием сообщений с синхронизацией времени;
- непротиворечивость данных на уровне всей системы;
- допустимость нескольких ведущих устройств в сети («многомастерная сеть»);
- способность к обнаружению ошибок и сигнализации об их наличии;
- автоматический повтор передачи сообщений, доставленных с ошибкой, сразу, как только сеть станет свободной;
- автоматическое различение сбоев и отказов с возможностью автоматического отключения отказавших модулей.
К недостаткам можно отнести сравнительно высокую стоимость CAN-устройств, отсутствие единого протокола прикладного уровня, а также чрезмерную сложность и запутанность протоколов канального и прикладного уровня, изложенных в стандартах организации CAN in Automation (CiA).
2.6.1. Физический уровень
Физический уровень [Robert — CAN] модели OSI обеспечивает надежную передачу битов, игнорируя содержание передаваемой информации. Основными понятиями физического уровня являются линии передачи (в большинстве случаев это витая пара, хотя допускается использовать плоский кабель или один провод и «корпусную землю», оптоволокно, радиоканал), временные диаграммы, система синхронизации, формат данных, обеспечение достоверности передачи (контрольная сумма, методы кодирования, обнаружение и восстановление ошибок). Характеристики передатчика и приемника стандартом не устанавливаются, поскольку они могут быть выбраны для каждого конкретного случая исходя из требований применения.
Табл. 2.7. CAN в соответствии с моделью OSI
Название уровня
Подуровни CAN
Стандартом CAN не установлен. Определен стандартами , CANopen, DeviceNet, SDS, CAN, Kingdom и др.
Канальный (передачи данных)
Подтверждение фильтрации, уведомление о перегрузке, управление восстановлением данных
Формирование пакетов данных, кодирование, управление доступом, обнаружение ошибок, сигнализация об ошибках, подтверждение приема, преобразование из последовательной формы в параллельную и обратно
Обеспечение надежной передачи на уровне байтов (кодирование, контрольная сумма, временные диаграммы, синхронизация). Требования к линии передачи
Примечание: MAC — Medium Access Control — «управление доступом к каналу»; LLC — Logical Link Control — «управление логическими связями».
Электрические соединения в сети CAN
Кабель витой пары в сети CAN должен иметь общий (третий) провод; на обоих концах витой пары должны быть согласующие резисторы, сопротивление которых равно волновому сопротивлению кабеля. Максимальная длина кабеля составляет 1 км. Для увеличения длины, количества узлов или гальванической развязки могут быть использованы повторители интерфейса, сетевые мосты и шлюзы.
Витая пара может быть в экране или без, в зависимости от электромагнитной обстановки. Топология сети должна быть шинной, максимальная длина отвода от шины при скорости передачи 1 Мбит/с не должна превышать 30 см. Длину отвода можно рассчитать по формуле [CAN]
где — длительность переднего фронта передатчика. Основные требования к линии передачи и ее характеристикам близки к RS-485, однако в передатчиках CAN есть режим управления длительностью фронтов импульсов. Управление выполняется путем заряда емкостей затворов выходных транзисторов от источников тока, при этом величина тока задается внешним резистором. Увеличение длительности фронта позволяет снизить требования к согласованию линии на низких частотах, увеличить длину отводов и ослабить излучение электромагнитных помех.
Выводы «земли» всех передатчиков сети должны быть соединены (если интерфейсы гальванически не изолированы). При этом разность потенциалов между выводами заземлений не должна превышать 2 В. Гальваническая изоляция рекомендуется при длине линии более 200 м, но не является обязательным требованием стандарта.
Для электрического соединения устройств с CAN интерфейсом стандарт предусматривает два варианта. Первый вариант состоит в применении Т-образных разветвителей, которые состоят из трех 9-штырьковых разъемов D-sub, расположенных в одном корпусе, одноименные контакты которых соединены между собой. Разветвители имеют один разъем со штырьками и два — с гнездами.
Второй вариант требует наличия в каждом CAN-устройстве двух разъемов. Для включения устройства в сеть кабель разрезают и на его концах устанавливают ответные части разъемов. Устройство включается буквально в разрыв линии передачи. Такой подход позволяет наращивать количество устройств и изменять топологию сети путем добавления в разрыв кабеля новых устройств и кабеля с разъемами на концах. Один из разъемов должен быть со штырьками, второй — с гнездами. Подключение устройств к шине без разъемов не допускается. Согласующий резистор должен располагаться внутри разъема, который подключается к концу кабеля. Для присоединения модулей к CAN-шине должен использоваться 9-штырьковый разъем типа D- Sub. На модуле устанавливается разъем с гнездами, на соединяющем кабеле — со штырьками. Цоколевка разъемов показана в табл. 2.8.
Применение разъемов со штырьками или гнездами определяется следующим правилом: при «горячей» замене модулей питание должно оставаться только на разъемах с гнездами; это позволяет избежать случайного короткого замыкания.
Отметим, что в основанном на CAN стандарте CANopen предусмотрено гораздо большее разнообразие вариантов разъемов, в том числе для плоского кабеля, RJ-10, RJ45, разъемный винтовой клеммник, и еще около десяти вариантов специальной конструкции [Cabling]. Допускается применение и других разъемов.
Табл. 2.8. Цоколевка разъема D-sub для CAN