Использование протокола CAN для построения промышленных вычислительных сетей

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
кафедра Электрических станций и автоматизации энергосистем
Д О К Л А Д
по теме: "Использование протокола CAN для построения вычислительных сетей"
Выполнил: студент гр. 4022 Петров В.Г.
Руководитель: Терёшкин А.В.
САНКТ-ПЕТЕРБУРГ
1999
ОГЛАВЛЕНИЕ
1. Введение 3
2. Основные понятия 3
3. Типы фреймов 6
3.1. Фрейм данных 6
4. Фильтрация сообщения 8
5. Кодирование 8
6. Обработка ошибок 9
6.1. Виды ошибок 9
6.2. Сообщение об ошибках 9
7. Ограничение повреждений 9
8. Погрешность частоты синхрогенератора 10
9. Синхронизация 10
10. Сравнительная характеристика стандартного и
расширенного форматов 10
11. Структура CAN-сети 12
12. Литература 14
1. ВВЕДЕНИЕ
Современная микроэлектронная элементная база позволяет разрабатывать высо-
коинтеллектуальные системы противоаварийного управления электроэнергетическим
оборудованием (генераторами, электродвигателями, шинами и т.д.), в которых кроме
традиционных функций релейной защиты и противоаварийной автоматики, предусмат-
риваются возможности сбора информации о состоянии оборудования и регистрации
предаварийных и аварийных процессов, а также для повышения уровня автоматизации
процесса производства, передачи и распределения электрической энергии, включение в
состав автоматизированной системы управления технологическим процессом (АСУ
ТП).
При обмене информацией между отдельными устройствами автоматики, а также
при связи терминальной (управляющей) микропроцессорной системы с верхнем уров-
нем АСУ ТП наиболее остро стоит проблема выполнения физического уровня вычис-
лительной сети и реализации протоколов обмена, обладающих следующими свойства-
ми:
1. высокая помехозащищённость (для обеспечения устойчивой работы в неблагопри-
ятных условиях наличия различного вида помех);
2. высокая скорость передачи (для обеспечения обмена большими объёмами инфор-
мации об объекте, синхронизации часов реального времени во всех подсистемах и
устройствах АСУ ТП, получения команд с верхнего уровня – диспетчерского пуль-
та, согласования работы различных устройств защиты и т.д.);
3. высокая надёжность передачи информации;
4. гибкость конфигурирования (для возможности быстрого и технически просто реа-
лизуемого изменения как состава сети, так и связей между отдельными узлами);
5. возможность подключения большого количества узлов;
6. высокая протяжённость линий связи.
Controller Area Network (CAN) - протокол последовательной связи, который эф-
фективно поддерживает распределение данных и управление ими в реальном времени
со сверхвысоким уровнем надежности.
Область применения - от высокоскоростных сетей до мультиплексной связи в
электронике, машинных блоках управления, датчиках, и т.д., со скоростями передачи
данных до 1 Мбод.
2. ОСНОВНЫЕ ПОНЯТИЯ
CAN имеет следующие свойства:
• система приоритетов сообщений
• гибкость конфигурации
• групповой прием с временной синхронизацией
• обнаружение многократных ошибок
• автоматическая ретрансляция ошибочных сообщений
• способность различать нерегулярные ошибки от устойчивых сбоев узлов и
автоматическое выключение дефектных узлов.
Многоуровневая архитектура CAN:
Надежность и гибкость CAN была достигнута за счет подразделения на различ-
ные уровни:
• уровень передачи данных:
- подуровень управления логической связью (LLC)
- подуровень управления доступом (MAC)
• физический уровень.
Область действия подуровня управления логической связью:
• обеспечивает функции для передачи данных и для удаленного запроса данных,
• решает, какие сообщения, из полученных подуровнем управления логической связью,
должны быть приняты,
• обеспечивает функции для управления, восстановления и сообщения о перегрузке.
Область действия подуровня управления доступом - протокол передачи, то есть
кадрирование, выполнение арбитража, обнаружение ошибок и сообщение об ошибках.
Управление доступом – это решение, является ли шина свободной для начала новой
передачи или прием только начинается. В подуровне управления доступом также реа-
лизован механизм для различения единичных ошибок от постоянных сбоев.
Область действия физического уровня - фактическая передача данных и, следова-
тельно, операции, связанные с выбором времени считыванием бита, кодированием би-
та, и синхронизацией.
Сообщения
Информация на шине представлена в виде сообщений различного формата, но ог-
раниченной длины. Когда шина свободна, любой узел может начинать передавать со-
общение. Узел с наибольшим приоритетом сообщения получает доступ к шине.
Адресация сообщений
В системах CAN узел не использует информацию относительно конфигурации
системы (например, адреса узлов). Это имеет несколько важных следствий.
? Гибкость системы:
узлы могут быть добавлены к сети CAN без изменения чего-либо в программном обес-
печении или в оборудовании сети.
? Выбор маршрута сообщения:
содержание сообщения именовано идентификатором. Идентификатор не указывает на-
значение сообщения, но описывает значение данных, так, чтобы все узлы в сети были
способны фильтровать сообщения.
Скорость передачи информации
Скорость CAN может быть различна в различных системах. Однако в отдельно
взятой системе скорость передачи данных одинакова и определяется возможностями
данной системы.
Удаленный запрос данных
Посылая фрейм запроса узел, требующий данные, может запрашивать у другого
узла соответствующий фрейм данных. Фрейм данных и соответствующий ему фрейм
запроса имеют один и тот же идентификатор.
Арбитраж
Всякий раз, когда шина свободна, любой узел может начинать передавать сооб-
щение. Если два или больше узлов начали передавать сообщения одновременно, то
конфликт доступа к шине решается поразрядным арбитражем, использующим иденти-
фикатор. Механизм арбитража гарантирует, что ни информация, ни время не будут по-
теряны.
В течение арбитража каждый передатчик сравнивает уровень переданного бита с
уровнем, который установлен на шине. Если эти уровни равны, то передача продолжа-
ется. Когда передатчиком послан 'рецессивный' уровень, а считан 'доминантный', узел
теряет арбитраж и должен прекратить передачу сообщения.
Надежность
Чтобы достигнуть наибольшей надежности передачи данных, приняты меры для
обнаружения ошибок, сообщения о них и самопроверке каждого узла CAN.
? Обнаружение ошибок
Для обнаружения ошибок используются:
- контроль состояния шины (передатчики сравнивают уровень сигнала, который бу-
дет передан, с уровнем, установленным на шине)
- использование циклической контрольной суммы
- кодирование методом разрядного наполнения (STUFFING)
? Свойства обнаружения ошибок:
Имеются следующие свойства обнаружения ошибок:
- выявляются 5-кратные ошибки
- выявляются любое нечетное число ошибок.
Общая вероятность передачи сообщения с необнаруженными ошибками – меньше,
чем 4.7 * 10-11.
? Сообщение об ошибке и время повтора
Сигнализация о принятии сбойного сообщения производится каждым узлом, об-
наруживающим ошибку. Такие сообщения прерываются и автоматически передаются
повторно.
? Топология CAN-сети
Топология CAN-сети - шинная. Количество узлов в сети теоретически не ограни-
чено. Фактически общее число узлов будет ограничено электрическими характеристи-
ками логических элементов на шине при использовании потенциального интерфейса.
? Канал связи
Шина состоит из отдельного канала связи. Способ выполнения может быть раз-
личным. Например, однопроводной или дифференциальный канал, оптоволоконный
кабель и др.
? Значения шины
Шина принимает одно из двух комплиментарных логических значений:
'доминантное' или 'рецессивное'. При одновременной передаче 'доминантных' и
'рецессивных' битов, возникающее в результате значение на шине будет 'доминантным'.
Например, в случае выполнения "проводного И" на шине 'доминантный' уровень будет
представлен логическим '0', а 'рецессивный' уровень логической '1'.
3. ТИПЫ ФРЕЙМОВ
Передача сообщения осуществляется и управляется четырьмя различными типами
фреймов:
- фрейм данных (DATA FRAME), передаёт данные от передатчика приемникам.
- фрейм запроса (REMOTE FRAME), передаётся узлом сети, чтобы запросить передачу
фрейма данных с тем же самым идентификатором.
- фрейм ошибки (ERROR FRAME), передаётся каждым узлом при обнаружении ошиб-
ки.
- фрейм задержки (OVERLOAD FRAME) используется, чтобы обеспечить дополни-
тельную задержку между предшествующим и текущими фреймом данных или фреймом
запроса, в случае, когда узел-приемник временно не успевает обработать принимаемый
поток данных.
Фрейм данных и фрейм запроса отделены от предшествующих фреймов полем
разделения фреймов (INTERFRAMES SPACING), которое состоит из трех 'рецессив-
ных' битов.
3.1. Фрейм данных
Фрейм данных состоит из семи различных полей (рис. 1):
- начало фрейма (START OF FRAME)
- поле арбитража (ARBITRATION FIELD)
- поле управления (CONTROL FIELD)
- поле данных (DATA FIELD)
- поле циклической контрольной суммы (CRC FIELD)
- поле подтверждения (ACK FIELD)
- конец фрейма (END OF FRAME)
Arbitration field Control field Data field CRC field ACK
Bus
idle S 11 bit R s End
O Identifier T d d DLC 15 bit r l r of
F R o Frame
t
Рис. 1. Фрейм данных
Поле данных может иметь нулевую длину.
Начало фрейма
Начало фрейма сигнализирует о передаче фрейма данных или фрейма запроса.
Состоит из единственного 'доминантного' бита.
Узлы могут начать передачу только когда шина незанята. Все узлы должны син-
хронизироваться по фронту 'доминантного' бита, переданного в начале фрейма пере-
дающим узлом.
Поле арбитража
Поле арбитража состоит из 11-разрядного идентификатора и RTR бита. Биты
идентификатора обозначены ID-10 ... ID-0.
Идентификатор
Длина идентификатора - 11 бит, которые передаются старшим битом вперед.
Поле управления
Поле управления состоит из шести битов. Оно включает в себя:
- IDE бит, который имеет 'доминантное' значение для стандартных фреймов
- резервный бит r0.
- код длины данных (DATA LENGTH CODE)
Код длины данных
Число байтов в поле данных обозначено кодом длины данных. Этот код длиной 4
бита и передается в поле управления.
Поле данных
Поле данных состоит из данных, которые будут перемещены в пределах фрейма
данных. Оно может содержать от 0 до 8 байт, каждый из которых содержит 8 битов,
которые передаются старшими разрядами вперед.
Область циклической контрольной суммы
Содержит циклическую контрольную сумму, сопровождаемую разделителем, ко-
торый состоит из единственного 'рецессивного' бита. Последовательность проверки
фрейма получена из циклического избыточного кода, лучше всего подходящего для
фрейма с числом битов меньше чем 127 (BCH код).
Поле подтверждения
Поле подтверждения длиной два бита. Оно содержит бит подтверждения и разде-
литель. В поле подтверждения передающая станция посылает два 'рецессивных' бита.
Приемник, который получил сообщение правильно, сообщает об этом
передатчику, посылая 'доминантный' бит в течение бита подтверждения.
Конец фрейма
Каждый фрейм данных и фрейм запроса заканчивается последовательностью из
семи 'рецессивных' битов.
Состояние шины «Свободно»
Состояние свободной шины может иметь произвольную длину. Шина является
свободной и любая станция, имеющая что-нибудь для передачи, может получить дос-
туп к шине. Сообщение, которое задержано для передачи другого сообщения, начинает
передаваться в первом бите после поля перерыва.
Обнаружение 'доминантного' бита на шине интерпретируется как начало фрейма.
4. ФИЛЬТРАЦИЯ СООБЩЕНИЙ
В CAN контроллере находится фильтр, который состоит из регистра маски и ре-
гистра кода.
Фильтрование сообщения производится по идентификатору.
Регистр маски используется для облегчения процесса фильтрации, чтобы выде-
лить группу идентификаторов, а регистр кода – для выделения конкретного идентифи-
катора из этой группы.
Каждый бит регистра маски может быть перепрограммирован. Длина регистра
маски может составлять целый идентификатор или только его часть.
Возможно использование составных фильтров.
5. КОДИРОВАНИЕ
Разрядное наполнение потока
Сегменты начала фрейма, поля арбитража, поля управления, поля данных и цик-
лическая контрольная сумма кодируются методом разрядного наполнения. Всякий раз,
когда передатчик в разрядном потоке обнаруживает пять последовательных битов,
идентичных по значению, он автоматически вставляет дополнительный бит, по значе-
нию противоположный предыдущим пяти (комплиментарный), в передаваемый поток.
Остальные поля имеют фиксированный формат и не наполняются. Фрейм ошибки
и фрейм задержки также имеют установленную форму и не кодируются методом раз-
рядного наполнения.
Узел-приёмник при приёме сообщения выполняет обратную операцию, удаляя из
принимаемого потока дополнительные биты.
Разрядный поток в сообщении кодирован методом не возвращения к нулю (NRZ).
Это означает, что в течение общего времени передачи бита сгенерированный разряд-
ный уровень должен принимать постоянное значение: 'доминантное' или 'рецессивное'.
6. ОБРАБОТКА ОШИБОК
6.1. Виды ошибок
Имеются 5 различных типов ошибки (которые взаимно не исключаются):
• Битовая ошибка (BIT ERROR)
Узел, который посылает сообщение, контролирует шину. Ошибка будет обнару-
жена им тогда, когда разрядное значение, которое установлено на шине, отличается от
значения, которое послано.
• Ошибка разрядного наполнения (STUFF ERROR)
Ошибка разрядного наполнения должна быть обнаружена приемником во время
приема подряд 6-ти одинаковых битов в поле сообщения, которое должно быть коди-
ровано методом разрядного наполнения.
• Ошибка циклической контрольной суммы (CRC ERROR)
Циклическая контрольная сумма вычисляется передатчиком. Приемники вычис-
ляют циклическую контрольную сумму таким же образом как передатчик. Ошибка
должна быть обнаружена приемником, если расчетный результат не совпадает с полу-
ченным.
• Ошибка формата (FORMAT ERROR)
Ошибка формата должна быть обнаружена приемником, когда поле фиксирован-
ного формата содержит один или более неверных битов. (Примечание: для приемника
'доминантный' бит в течение последнего бита окончания фрейма не распознается как
ошибка формата).
• Ошибка подтверждения (ACK ERROR)
Ошибка подтверждения обнаруживается передатчиком, когда он не получает
'доминантный' бит в течение бита подтверждения.
6.2. Сообщение об ошибке
Фрейм ошибки
Если узел обнаруживает ошибку, он начинает передавать сигналы аварийной си-
туации – флаг ошибки. Формат флага ошибки посланного одним узлом (передатчиком
или приёмником) гарантированно приводит к выявлению ошибки у всех остальных уз-
лов. Как следствие, все другие узлы обнаруживают аварийную ситуацию и удаляют
ошибочное сообщение.
7. СОСТОЯНИЯ УЗЛА
Для выявления повреждений в каждом узле шины выполнены два счетчика:
1) счетчик ошибок передачи (TRANSMIT ERROR COUNT);
2) счетчик ошибок приема (RECEIVE ERROR COUNT).
Узел может находиться в одном из трех состояний:
• активном (active), если значение каждого из его счетчиков находится в интервале от 0
до 127;
• пассивном (passive), если значение любого из его счетчиков находится в интервале от
128 до 255;
• отключен (bus off), если значение любого из его счетчиков превышает 255.
Значения счетчиков изменяются по специальным правилам. В зависимости от
типа ошибки значения счетчиков ошибок передачи или приёма у передатчика и приём-
ника увеличиваются на некоторую величину. При отсутствии ошибок значения счётчи-
ков уменьшаются. При этом в течение одной передачи сообщения могут измениться
значения обоих счетчиков.
Если активен только один узел и этот узел передает некоторое сообщение, то он
не получит подтверждения, обнаружит ошибку, и повторит сообщение. Это может пе-
ревести его в пассивное состояние, но никогда не будет отключен.
Активный узел может принимать участие в связи с шиной и посылать флаги оши-
бок при их обнаружении. Пассивный узел не должен посылать флаг ошибки.
8. ПОГРЕШНОСТЬ ЧАСТОТЫ СИНХРОГЕНЕРА-
ТОРА
Максимальная погрешность частоты синхрогенератора 1.58 % и, следовательно,
возможно использование керамических резонаторов при скорости шины до 125 кбит/с.
Для полного диапазона скоростей шины протокола CAN требуется кварцевый ге-
нератор.
Узел сети CAN с самым высоким требованием точности синхрогенератора опре-
деляет точность синхрогенераторов для всех других узлов.
9. СИНХРОНИЗАЦИЯ
В CAN существует два вида синхронизации:
? аппаратная синхронизация (HARD SYNCHRONIZATION), проводящаяся по
'доминантного' бита начала фрейма;
? ресинхронизация (RESYNCHRONIZATION), выполняемая по переходам от
'рецессивных' значений к 'доминантным' в процессе передачи, которые формируют-
ся при кодировании методом разрядного наполнения.
10. СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА СТАН-
ДАРТНОГО И РАСШИРЕННОГО ФОРМАТОВ
Имеются два различных формата, которые отличаются по длине поля идентифи-
катора:
- стандартный (STANDARD) -11 бит (рис. 2);
- расширенный (EXTENDED) - 29 бит (рис. 3).
Bas Arbitration field Control field Data field
idle
S 11 bit R
O Identifier T d d DLC
F R
Рис. 2. Идентификатор стандартного формата
Arbitration field Control field Data field
Bas
idle
S 11 bit S I 18 bit R
O Identifier R D Identifier T d d DLC
F R E R
Рис. 3. Идентификатор расширенного формата
Идентификатор расширенного формата разделен на две секции:
? основной идентификатор состоит из 11 битов (ID-28 … ID-18), что эквивалентно
ID-10 … ID-0 идентификатора стандартного формата. Основной идентификатор оп-
ределяет приоритет расширенного фрейма;
? Расширенный идентификатор состоит из 18 битов (ID-17 … ID-0).
При использовании стандартного и расширенного фреймов одновременно, стан-
дартный фрейм будет преобладать над расширенным.
В стандартном формате имеется возможность для увеличения идентификатора,
используя для этого один или два байта поля данных, получая при этом идентификатор
длиной 19 или 27 бит соответственно.
Как видно из графика (рис. 4), полученного расчётным путем, стандартный фор-
мат, даже при использовании расширения идентификатора, имеет пропускную способ-
ность (кБод) выше, чем у расширенного формата.
Рис. 4. Сравнительная характеристика стандартного и расширенного форматов
Отсюда можно сделать вывод, что использование стандартного формата предпоч-
тительней, так как при относительной простоте исполнения достигается наибольшая
пропускная способность шины.
Что касается контроллеров, то более новые модели имеют поддержку расширен-
ного формата и, при этом, полностью поддерживают стандартный. Но большинство
старых моделей поддерживают только стандартный формат. Поэтому, если в сети есть
хотя бы один такой узел, то передачу нельзя вести в расширенном формате.
11. СТРУКТУРА CAN-СЕТИ
Структура CAN-сети приведена на рис. 5 .
заглушка
120 Ом
параллельный
интерфейс TH
TxD
8 TL
последовательный
интерфейс RH
RxD
IRQ RL
Рис. 5. Структура CAN-сети
Сеть состоит из следующих элементов:
- CAN-контроллера;
- центрального процессора, который соединен с контроллером параллельным и по-
следовательным интерфейсами, а также имеется канал запроса на прерывание
(IRQ);
- трансивера (TRANCEIVER), через который контроллер общается с шиной; он со-
единен последовательным интерфейсом с контроллером и последовательным диф-
ференциальным интерфейсом с шиной;
- шины.
Максимальная протяжённость сегмента сети 1000 м. Дальнейшее увеличение
длины сети требует включения специальных усилительных устройств – ретранслято-
ров.
Обычно используют трёхпроводное исполнение шины, которую выполняют в ви-
де дифференциальной линии связи. Передача сигнала разностью потенциалов на двух
сигнальных линиях, расположенных параллельно или в виде витой пары позволяет
уменьшить влияние синфазных помех.
Из большого многообразия способов построения систем передачи информации
(линий связи, топологии, интерфейсов, протоколов обмена и других уровней вычисли-
тельной сети) для создания промышленных сетей, максимально удовлетворяющими
предъявленным выше требованиям являются сети, выполненные на базе протокола
CAN.
Стандартного формат данного протокола при эксплуатации предпочтительней,
чем расширенный формат, так как при относительной простоте исполнения достигается
наибольшая пропускная способность шины.
ЛИТЕРАТУРА
1. "CAN Specification", ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30.
2. Hans-Christian Reuss "Extended Frame Format. A New Option of the CAN Protocol",
Product Concept & Application Laboratory Hamburg, F. R. Germany
14
2