Электрические соединения в сети CAN
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.
CAN охватывает два уровня модели OSI: физический и канальный. Стандарт не предусматривает никакого протокола прикладного (7-го) уровня модели OSI. Поэтому для его воплощения в жизнь различные фирмы разработали несколько таких протоколов: CANopen (организации CiA), SDS (фирмы Honeywell Micro Switch Division), CAN Kingdom (фирмы Kvaser), DeviceNet (фирмы Allen-Bradley, ставший Европейским стандартом в 2002 г.) и ряд других.
CAN характеризуется следующими основными свойствами:
o каждому сообщению (а не устройству) устанавливается свой приоритет;
o гарантированная величина паузы между двумя актами обмена;
o гибкость конфигурирования и возможность модернизации системы;
o широковещательный прием сообщений с синхронизацией времени;
o непротиворечивость данных на уровне всей системы;
o допустимость нескольких ведущих устройств в сети ("многомастерная сеть");
o способность к обнаружению ошибок и сигнализации об их наличии;
o автоматический повтор передачи сообщений, доставленных с ошибкой, сразу, как только сеть станет свободной;
o автоматическое различение сбоев и отказов с возможностью автоматического отключения отказавших модулей.
К недостаткам можно отнести сравнительно высокую стоимость CAN-устройств, отсутствие единого протокола прикладного уровня, а также чрезмерную сложность и запутанность протоколов канального и прикладного уровня, изложенных в стандартах организации CAN in Automation(CiA).
Физический уровень
Физический уровень модели OSI обеспечивает надежную передачу битов, игнорируя содержание передаваемой информации. Основными понятиями физического уровня являются линии передачи (витая пара, плоский кабель или один провод и "корпусную землю", оптоволокно, радиоканал), временные диаграммы, система синхронизации, формат данных, обеспечение достоверности передачи (контрольная сумма, методы кодирования, обнаружение и восстановление ошибок). Характеристики передатчика и приемника стандартом не устанавливаются, поскольку они могут быть выбраны для каждого конкретного случая исходя из требований применения.
Табл. 2.7. CAN в соответствии с моделью OSI | |||
№ | Название уровня | Подуровни CAN | Примечание |
Прикладной | Стандартом CAN не установлен. Определен стандартами , CANopen, DeviceNet, SDS, CAN, Kingdom и др. | ||
Представления | Нет | Нет | |
Сеансовый | Нет | Нет | |
Транспортный | Нет | Нет | |
Сетевой | Нет | Нет | |
Канальный (передачи данных) | LLC | Подтверждение фильтрации, уведомление о перегрузке, управление восстановлением данных | |
МАС | Формирование пакетов данных, кодирование, управление доступом, обнаружение ошибок, сигнализация об ошибках, подтверждение приема, преобразование из последовательной формы в параллельную и обратно | ||
Физический | Физический | Обеспечение надежной передачи на уровне байтов (кодирование, контрольная сумма, временные диаграммы, синхронизация). Требования к линии передачи |
Примечание: MAC - Medium Access Control - "управление доступом к каналу"; LLC - Logical Link Control - "управление логическими связями".
Электрические соединения в сети CAN
Кабель витой пары в сети CAN должен иметь общий (третий) провод; на обоих концах витой пары должны быть согласующие резисторы, сопротивление которых равно волновому сопротивлению кабеля. Максимальная длина кабеля составляет
1 км. Для увеличения длины, количества узлов или гальванической развязки могут быть использованы повторители интерфейса, сетевые мосты и шлюзы.
Витая пара может быть в экране или без, в зависимости от электромагнитной обстановки. Топология сети должна быть шинной, максимальная длина отвода от шины при скорости передачи 1 Мбит/с не должна превышать 30 см.
Длину отвода можно рассчитать по формуле
где - длительность переднего фронта передатчика.
Основные требования к линии передачи и ее характеристикам близки к RS-485, однако в передатчиках CAN есть режим управления длительностью фронтов импульсов. Управление выполняется путем заряда емкостей затворов выходных транзисторов от источников тока, при этом величина тока задается внешним резистором. Увеличение длительности фронта позволяет снизить требования к согласованию линии на низких частотах, увеличить длину отводов и ослабить излучение электромагнитных помех.
Выводы "земли" всех передатчиков сети должны быть соединены (если интерфейсы гальванически не изолированы). При этом разность потенциалов между выводами заземлений не должна превышать 2 В. Гальваническая изоляция рекомендуется при длине линии более 200 м, но не является обязательным требованием стандарта.
Для электрического соединения устройств с CAN интерфейсом стандарт предусматривает два варианта. Первый вариант состоит в применении Т-образных разветвителей, которые состоят из трех 9-штырьковых разъемов D-sub, расположенных в одном корпусе, одноименные контакты которых соединены между собой. Разветвители имеют один разъем со штырьками и два - с гнездами.
Второй вариант требует наличия в каждом CAN-устройстве двух разъемов. Для включения устройства в сеть кабель разрезают и на его концах устанавливают ответные части разъемов. Устройство включается буквально в разрыв линии передачи. Такой подход позволяет наращивать количество устройств и изменять топологию сети путем добавления в разрыв кабеля новых устройств и кабеля с разъемами на концах. Один из разъемов должен быть со штырьками, второй - с гнездами. Подключение устройств к шине без разъемов не допускается. Согласующий резистор должен располагаться внутри разъема, который подключается к концу кабеля. Для присоединения модулей к CAN-шине должен использоваться 9-штырьковый разъем типа D- Sub. На модуле устанавливается разъем с гнездами, на соединяющем кабеле - со штырьками. Цоколевка разъемов показана в табл. 2.8.
Применение разъемов со штырьками или гнездами определяется следующим правилом: при "горячей" замене модулей питание должно оставаться только на разъемах с гнездами; это позволяет избежать случайного короткого замыкания.
Отметим, что в основанном на CAN стандарте CANopen предусмотрено гораздо большее разнообразие вариантов разъемов, в том числе для плоского кабеля, RJ-10, RJ45, разъемный винтовой клеммник, и еще около десяти вариантов специальной конструкции. Допускается применение и других разъемов.
Табл. 2.8. Цоколевка разъема D-sub для CAN | ||
Контакт | Сигнал | Примечание |
- | Зарезервирован | |
CAN_ L | Сигнал линии | |
CAN_ GND | "Земля" | |
- | Зарезервирован | |
(CAN_ SHLD) | Экран кабеля (не обязательно) | |
(GND) | "Земля" (не обязательно) | |
CAN_ H | Сигнал линии | |
- | Зарезервирован | |
(CAN_ V+) | Внешнее питание (не обязательно, для питания передатчиков с гальванической изоляцией) |
Примечание. В каждом модуле контакты 3 и 6 должны быть соединены.
Стандарт устанавливает следующие скорости обмена:
1 Мбит/с, 800 кбит/с, 500 кбит/с, 250 кбит/с, 125 кбит/с, 50 кбит/с, 20 кбит/с. CAN-модули могут поддерживать не все скорости, но желательно, чтобы их количество было наибольшим.
Трансивер CAN
Рис. 2.20. Структурная схема трансивера CAN |
При подаче уровня логического нуля на вход (вход является инвертирующим) оба транзистора выходного каскада передатчика открываются и через нагрузку (два резистора по 120 Ом) течет ток, создающий в линии состояние, соответствующее логической единице. При этом потенциал вывода всегда будет выше, чем вывода (рис. 2.21). Значения потенциалов, предусмотренные стандартом, приведены в табл. 2.9. При логической единице на входе передатчика его выход переходит в высокоомное состояние и дифференциальное напряжение на линии становится равным нулю.
CAN передатчик имеет очень важное свойство: если один из передатчиков устанавливает в сети логический ноль, а второй - логическую единицу, то это состояние не является аварийным, как в сети на основе интерфейса RS-485, поскольку сквозного тока не возникает. В случае CAN линия остается в состоянии логической единицы. Иначе говоря, логическая единица всегда доминирует над логическим нулем. Поэтому в стандарте CAN используется понятие " доминантное состояние" (доминирующее) состояние линии для обозначения состояния линии с током, и понятие "рецессивное состояние" как противоположное доминантному.
Это свойство CAN обеспечивает возможность получения доступа к линии, сравнивая посылаемые в линию логические уровни с тем уровнем, который фактически устанавливается в ней: если передатчик посылает в линию рецессивное состояние, а в ней при этом остается доминантное, значит линия занята. Доступ получает тот узел сети, который может предоставить ей доминантный уровень сигнала. Узлы с рецессивным уровнем покидают линию и ждут следующего случая. Этот метод доступа справедлив и при использовании оптоволоконного канала или беспроводной сети - в этих случаях наличие света или электромагнитной волны всегда будет доминировать над их отсутствием.
Вывод позволяет установить пороговое напряжение для входа и уровень синфазного напряжения в линии, когда она находится в рецессивном состоянии. Обычно = 2,5 В. Чтобы установить уровень синфазного напряжения на линии, терминальные сопротивления делят на два по 60 Ом, соединяют их последовательно, а к точке соединения подключают вывод . При симметричной форме импульсов и относительно рецессивного состояния уменьшается уровень излучаемых помех, поскольку приращения токов в каждом из проводов витой пары при переключении логических уровней оказываются равными по величине, но обратными по знаку и поэтому компенсируют друг-друга.
Вывод имеет несколько назначений. Если на нем установлено состояние логической единицы, трансивер переходит в спящий режим, при котором он потребляет очень малый ток от источника питания, а на выходе устанавливается высокоомное (рецессивное) состояние. "Разбудить" его можно сигналом, поступающим в приемник из линии передачи. Подключение этого вывода к "земле" через сопротивление позволяет установить нужную длительность фронтов импульсов передатчика. Некоторые трансиверы имеют два режима: резервный и спящий, которые отличаются уровнем потребляемого тока и способом перевода в активный режим. Режим пониженного энергопотребления предусмотрен стандартом для экономии заряда аккумуляторных батарей в припаркованном автомобиле.
Рис. 2.21. Пояснение понятий рецессивного и доминантного состояния |
Если сигнал является доминирующим слишком долго (более 1 мс), генератор импульса таймаута (на рис. 2.20 обозначен прямоугольником с импульсом) временно отключает передатчик, поскольку в противном случае модуль может быть навсегда блокирован средствами канального уровня как отказавший.
Стандартом предусмотрена возможность подключения к CAN сети любого количества устройств, однако практически оно ограничивается нагрузочной способностью передатчиков (100...200) или задержкой в повторителях.
В CAN-трансивере имеется генератор синхроимпульсов с частотой 16 МГц ±0,1%. Ширина одного бита программно устанавливается величиной от 8 до 25 импульсов синхрогенератора, обычно 8 импульсов при скорости передачи 1 Мбит/с и 16 импульсов при 20 кбит/с. Синхронизация всех узлов сети происходит в течение первого такта синхронизации. Процедура обработки битов в приемнике обеспечивает программируемую задержку импульсов синхронизации, необходимую для компенсации времени задержки прохождения сигнала в линии связи и сдвига фазы вследствие дрейфа частоты тактового генератора.
Различают два типа синхронизации: жесткую синхронизацию с помощью стартового бита в начале сообщения и ресинхронизацию во время передачи сообщения. С помощью ресинхронизации можно подстроить интервал времени от начала синхронизации до момента, в который измеряется логический уровень принимаемого импульса данных. Интервал подстройки может быть изменен на 1...4 такта.
Для определения логического состояния шины уровни принимаемых сигналов измеряются на расстоянии 6-ти тактов синхрогенератора от переднего фронта импульса (бита) при скорости 1 Мбит/с и на расстоянии 14-ти тактов при скорости 20 кбит/с. Количество отсчетов может быть 1 или 3 (устанавливается программно). CAN использует синхронную передачу битов. Это повышает пропускную способность канала связи, но требует усложненного процесса синхронизации.
Табл. 2.9. Значения потенциалов на линии передачи CAN | ||||||
Параметр | Обозначение | Ед. измерения | Мин. | Ном. | Макс | Условие |
Для рецессивного состояния шины | ||||||
Потенциалы на выходе передатчика | CAN_H | В | 2,0 | 2,5 | Без нагрузки | |
CAN_L | В | 2,0 | 2,5 | |||
Дифференциальное напряжение на выходе передатчика | Vdiff | мВ | -500 | Без нагрузки | ||
Дифференциальное напряжение на входе приемника | Vdiff | В | -1 | - | 0,5 | Без нагрузки |
Для доминантного состояния шины | ||||||
Потенциалы на выходе передатчика | CAN_H | В | 2,75 | 3,5 | 4,5 | С нагрузкой |
CAN_L | В | 0,5 | 1,5 | 2,25 | ||
Дифференциальное напряжение на выходе передатчика | Vdiff | В | 1,5 | С нагрузкой | ||
Дифференциальное напряжение на входе приемника | Vdiff | В | -0,9 | - | С нагрузкой |
Напряжение питания устройств в сети CAN должно составлять от 18 до 30 В. Выходное напряжение на 9-м контакте разъема (внешнее положительное напряжение питания) должно быть от +7 В до +13 В при токе потребления модуля не более
100 мА. Не допускается, чтобы модули были источниками тока.
CAN использует NRZ кодирование (Non Return-to-Zero - "без возврата к нулю", "потенциальное кодирование"), при котором логическому нулю соответствует низкий уровень напряжения в линии (рецессивное состояние), логической единице - высокий уровень (доминантное состояние). Такой способ имеет следующий недостаток: в случае, когда через линию передачи транспортируется байт, который содержит все единицы (пауз между ними при NRZ кодировании нет), приемник не может отличить этот байт от паузы. Для устранения этой проблемы используется так называемый бит-стаффинг. Он состоит в том, что после каждой последовательности из 5-ти одинаковых символов подряд вставляется противоположный им символ. Например, после 5-ти единиц подряд вставляется логический ноль. Приемник, обнаружив 5 одинаковых символов подряд, удаляет следующий за ними символ, который является битом стаффинга.
Другими свойствами CAN-трансиверов, которые предусмотрены в стандарте, являются:
o защита от короткого замыкания проводов интерфейса между собой, на источник питания или землю. Из этих требования автоматически следует защита от изменения полярности подключения приемника и передатчика к линии, обрывов и передавливания кабеля;
o защита от электростатических разрядов;
o ослабление синфазного сигнала в лини;
o защита от перегрева выходных каскадов.
Канальный уровень
В соответствии с [CAN] канальный уровень CAN состоит из двух подуровней: LLC и MAC.