3.1.1 Физический уровень CAN сети

Передача сигналов производится по двухпроводной линии, классический вариант - витая пара. Могут применяться и другие физические линии связи, например, предусматривается возможность передачи по линии связи и сигналов, и питающего напряжения. Скорость передачи данных стандартизована и может лежать в диапазоне от 10 кбит/с до 1 Мбит/с. Из-за особенностей алгоритма арбитража применяется сигнальный код NRZ, а максимальная длина линии связи и скорость передачи данных жестко связаны. Время двойного оборота, которое определяется задержкой сигналов, должно быть меньше длительности одного битового интервала. На количество узлов ограничений нет.

Побитовый неразрушающий арбитраж использует доминантный и рецессивный уровни сигналов в линии связи. Если трансиверы двух узлов формируют разные уровни сигналов, то в линии связи будет передаваться доминантный уровень. Протокол предполагает контроль уровня сигнала в линии связи параллельно с передачей, если сигнал в линии отличается от передаваемого, узел обязан прервать передачу. Таким образом, передача сообщения с доминантными сигналами всегда будет продолжаться, а передача сообщения с рецессивными сигналами может быть прервана при одновременной работе нескольких трансиверов.

CAN протокол амплитуду сигналов жестко не определяет, границы сигналов заданы на уровне 1/3 от напряжения питания. При стандартном напряжении 5 В эти границы составляют 1,5 В и 3,5 В. Доминантный сигнал (0) соответствует напряжению больше 3,5 В на шине CAN H и напряжению меньше 1,5 В на шине CAN L. Рецессивный уровень (1) - одинаковые напряжения на обеих шинах. Входы трансиверов идентифицируют сигналы по разности напряжений, поэтому синфазные помехи не приводят к искажению сигналов. Для повышения надежности в трансиверах рекомендуется применять стандартные средства гальванической развязки.

Синхронизация требует выделения синхросигналов из принимаемых сигналов.Т. к. код NRZ предполагает переключение сигналов только на границах битовых интервалов, протокол запрещает передачи длинных последовательностей одинаковых сигналов. Используемый алгоритм бит-стаффинга реализует добавление противоположного бита после любой последовательности, содержащей пять одинаковых бит. Это позволяет обеспечить надежную синхронизацию при передаче произвольных битовых последовательностей. Кроме того, последовательности, содержащие более пяти одинаковых бит подряд, используются как сообщения об ошибках.

Тактовые генераторы всех узлов автономны и должны работать на номинально одинаковых частотах. Для обеспечения надежной синхронизации битовый интервал (время передачи одного бита, определяемое скоростью передачи) разбивается на временные кванты (период тактовых импульсов). В битовом интервале по стандарту может содержаться от 8 до 25 временных квантов. Для синхронизации всегда используется первый временной квант каждого битового интервала, а идентификация сигнала производится в последней четверти битового интервала (sample point). Максимальное расхождение во временных границах не превышает одного временного кванта для узлов с несколько отличающимися реально тактовыми частотами (частоты совпадают только номинально). И это расхождение не выводит точку идентификации (sample point) за допустимые пределы. Синхроимпульсы формируются по каждому переключению из доминантного в рецессивный уровень. Т.к. бит-стаффинг запрещает в кадре передачу более 5 одинаковых бит подряд, синхроимпульсы будут формироваться не реже одного раза за десять битовых интервалов. Разница в тактовых частотах узлов сети не должна приводить к ошибкам синхронизации за этот период, что несложно обеспечить современными аппаратными средствами.

Рекомендуемые значения скоростей передачи (с указанием максимальной длины линий связи), временных квантов (величина обратная тактовой частоте) и количества временных квантов в битовом интервале приведены в таблице. Стандартное номинальное значение тактовой частоты, необходимое для синхронизации на максимальной скорости, равно 8 МГц.

Для решения основных задач физического уровня выпускаются интегральные схемы трансиверов для различных стандартных напряжений питания и типов линий связи в соответствии с требованиями CAN протокола.

 

3.1.2 Канальный уровень CAN сети

Реализация процедур CAN протокола производится специальными аппаратными средствами - CAN контроллерами. Эти контроллеры выпускаются либо в виде отдельных интегральных схем, либо являются встроенными элементами более сложных устройств. CAN контроллер в комплекте с ИС CAN трансивера обеспечивает работу локальной сети, реализуя все необходимые функции: от управления доступом к разделяемой среде передачи данных (MAC - процедуры) до передачи сигналов по линии связи. Для HLP протоколов остаются только функции настройки сети: автоматический выбор и задание скорости передачи, поддержка алгоритмов контроля сообщений, передача сообщений большого объема, автоматическое распределение идентификаторов в сети и т.п. Эти задачи могут быть решены без HLP протоколов, при проектировании сети можно вручную задать все необходимые параметры и режимы и произвести настройку CAN контроллеров. HLP протоколы позволяют автоматизировать эти процедуры и в ряде случаев изменять их в процессе работы.

CAN сеть мультимастерная, т.е. все узлы имеют равные права доступа. Если шина свободна, каждый из узлов в произвольный момент времени может начинать передачу сообщения (кадра). Все передаваемые сообщения принимаются всеми узлами, CAN контроллер каждого узла содержит фильтр сообщений. Этот фильтр может быть настроен на обработку сообщений с определенными идентификаторами, все остальные сообщения будут игнорироваться. Т.е. сообщения в сети могут приниматься и обрабатываться любым числом узлов в зависимости от настройки их входных фильтров. Это позволяет, например, обрабатывать сообщения одного датчика всеми узлами, которым эти данные необходимы.

При попытке одновременной передачи кадров несколькими узлами работает механизм поразрядного неразрушающего арбитража, обеспечивающего первоочередной доступ сообщениям с высоким уровнем приоритета (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority - CSMA/CD+AMP). Передача приоритетного сообщения будет продолжена, а остальные узлы должны прервать передачу до освобождения шины. Уровень приоритета определяется положением и количеством доминантных бит в поле арбитража, в котором передается идентификатор сообщения. Меньшему значению идентификатора соответствует более высокий уровень приоритета.

Каждый передающий узел, формируя сигналы на шине, контролирует ее состояние и продолжает передачу до тех пор, пока состояние шины и передаваемые сигналы совпадают. Прекращение передачи происходит только при передаче рецессивного бита, если одновременно какой-либо другой узел передает доминантный бит. При этом узел, формирующий доминантный бит, передачу сообщения продолжит.

Содержание передаваемых данных обозначается 11-битным идентификатором (29-битный идентификатор в расширенном формате), стоящим в самом начале сообщения. Особенностью является то, что этот идентификатор определяет приоритет сообщения. Кроме того, идентификаторы присваиваются не узлам, а сообщениям и определяются содержащимися в сообщениях данными. Такой тип рассылки сообщений называется "схема адресации, ориентированная на содержимое". При этом один узел может отправлять сообщения с различными идентификаторами в зависимости от характера передаваемых данных, а также принимать и обрабатывать сообщения с различными идентификаторами в зависимости от настройки входных фильтров.

В результате применения схемы адресации, ориентированной на содержимое, обеспечивается высокая степень конфигурируемости и гибкости системы. Добавление в сеть новых узлов может осуществляться без модификации аппаратной или программной части сети.

CAN протокол предусматривает два алгоритма передачи данных:

передающий узел самостоятельно передает кадр данных, остальные узлы его принимают и обрабатывают;

узел может послать запрос на необходимые данные, по этому запросу узел-источник данных передает сообщение, которое, как и в первом случае, принимается и обрабатывается.

Данные передаются в кадре данных (data frame), а для запроса данных предусмотрен кадр запроса (remote frame), имеющий сходную структуру. Кадр для передачи по шине состоит из семи основных полей. CAN протокол поддерживает два формата кадров (стандартный и расширенный), которые различаются только длиной идентификатора (ID).

Кадр стандартного формата начинается стартовым битом "начало кадра" (SOF - Start of Frame). За ним следует поле арбитража, содержащее 11-битный идентификатор и бит RTR запроса удаленной передачи (Remote Transmission Request). Этот бит указывает, передается ли кадр данных (0) или кадр запроса (1), в котором отсутствует поле данных.

Управляющее поле содержит бит расширения идентификатора (IDE - identifier extension), который указывает тип формата кадра - стандартный (0) или расширенный (1). (В расширенном формате после бита IDE следуют 18 дополнительных бит идентификатора). Кроме того, в этом поле находятся зарезервированный для будущего применения бит R0 и четыре бита DLC для указания длины поля данных. За управляющим полем идут поле данных (0-8 байт) и поле (15 бит + рецессивный бит ограничителя этого поля) циклического контроля CRC, используемое для контроля кадра (x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1).

Поле подтверждения (АСК) состоит из области АСК длиной в 1 бит и ограничителя поля АСК. АСК-бит помещается на шину передатчиком как рецессивный (логическая 1). Приемники, корректно принявшие эти данные, преобразуют его в логический 0, делая его доминантным. Таким образом, передающий узел получает подтверждение, что хотя бы один приемник правильно принял его сообщение. Сообщения подтверждаются приемниками независимо от результата тестирования данных при приёме.

Конец сообщения указывается EOF (7 рецессивных бит), после которого идет пауза. Длина паузы равна минимальному количеству битов (3 бита), отделяющих последовательные сообщения.

В отличие от других шинных систем, в CAN протоколе не используются подтверждающие сообщения. Вместо этого он сигнализирует о возникших ошибках передачи. Всего в CAN-протоколе реализовано пять механизмов проверки на наличие ошибок. Флаг ошибки - это сообщение, содержащее 6 доминантных бит подряд. Другие узлы, приняв такую последовательность, также могут передать флаг ошибки. Поэтому максимальная длина этого поля может достигать 12 доминантных бит. Завершается кадр ошибки ограничителем флага ошибки из 8 рецессивных бит, после стандартной паузы (3 бита), прерванная кадром ошибки передача должна быть повторена.

Первые три алгоритма контроля реализованы на уровне сообщений:

Циклический контроль. Контролируемые поля кадра от SOF до CRC. При использовании этого метода в конце передачи добавляются биты циклического избыточного кода. При приеме сообщения происходит его повторное вычисление и сравнение с полученным кодом циклического контроля. Если эти два значения не совпадают, то выявляется ошибка CRC.

Контроль кадра. Проверяется соответствие структуры передаваемого кадра его фиксированному формату и размеру. Ошибки, которые могут возникнуть при проверке кадра, получили название "ошибки формата".

Ошибки подтверждения. Как уже ранее было сказано, принятые кадры подтверждаются всеми приемниками. Если передатчик не получил никакого подтверждения, то это может означать, что приемники обнаружили ошибку (искажено поле АСК), либо приемники вообще отсутствуют в сети.

Следующие два алгоритма определения ошибок реализованы в протоколе CAN на битовом уровне:

Мониторинг шины. Одна из особенностей CAN сети состоит в том, что передающий узел может контролировать свой собственный сигнал на шине во время передачи. Таким образом, каждый узел может наблюдать за уровнем сигнала на шине и определять различие переданного и принятого бита. Расхождение сигналов в поле арбитража требует прекращения передачи, а расхождение в других полях кадра генерирует ошибку.

Заполнение битами. В CAN используется сигнальный код NRZ. Однако, если подряд идет слишком много битов с одним и тем же значением, то возможен сбой синхронизации. Если в сообщении подряд идут пять битов с одинаковым значением, то передатчик автоматически вставляет дополнительный бит. Этот бит автоматически удаляется из сообщения приемниками. Если будет получено шесть последовательных битов с одним и тем же значением, то по CAN протоколу это считается ошибкой.

Если в течение передачи кадра хотя бы одна станция обнаружит ошибку по любому из алгоритмов контроля (локальная ошибка), то она передает кадр ошибки, который аварийно завершает текущую передачу. В этом случае все узлы сети не обрабатывают принятое сообщение, чем достигается непротиворечивость данных во всей сети. Узлы сети, не обнаружившие ошибку, после приема кадра ошибки должны повторить передачу кадра ошибки (глобализация ошибки), поэтому максимальная длина этого поля может достигать 12 доминантных бит. Завершается кадр ошибки ограничителем флага ошибки из 8 рецессивных бит, после стандартной паузы (3 бита), прерванная кадром ошибки передача должна быть повторена. Как правило, повторная передача начинается в течение периода времени, соответствующего передаче 23 битов, отсчитываемого с момента обнаружения ошибки.

Для реализации процедур самоконтроля каждый узел CAN сети содержит два счетчика: счетчик ошибок приема (REC) и счетчик ошибок передачи (TEC). Счетчики автоматически инкрементируются после обнаружения каждой ошибки и декрементируются после корректной передачи или приема кадра. В зависимости от состояния счетчиков ошибок узел может находиться в одном из трех состояний: активной ошибки, пассивной ошибки, отключен от шины.

Состояние активной ошибки является основным для узла CAN сети и предполагает его нормальное функционирование. При обнаружении ошибки в этом состоянии узел посылает кадр активной ошибки (6 доминантных бит). Состояние активной ошибки будет продолжаться до тех пор, пока число ошибок в любом из счетчиков не превышает 127. Если число ошибок превышает 96, микроконтроллеру узла передается сообщение о критическом числе ошибок. При числе ошибок более 127, но менее 256 узел переходит в состояние пассивной ошибки.

Состояние пассивной ошибки свидетельствует о часто повторяющихся ошибках. Узел из этого состояния может самостоятельно вернуться к активной ошибке, если число ошибок в счетчиках станет менее 128. При обнаружении очередной ошибки узел имеет право передать только кадр пассивной ошибки (6 рецессивных бит), который не может изменить текущую передачу любого другого узла. При повторении прерванной передачи этого узла должна быть сделана дополнительная пауза (8 рецессивных бит) для того, чтобы не мешать передаче кадров других узлов.

Если число ошибок в любом из счетчиков превысит 255, узел должен отключиться от шины (на практике REC содержит только 8 дв. разрядов и поэтому число ошибок приема не может превысить этот порог). Самостоятельно CAN контроллер узла не может вернуться в рабочее состояние. Если произведен внешний сброс, CAN контроллер возвращается в состояние активной ошибки и после паузы 128х11 (1408) может передавать сообщения.

CAN протокол определяет правила накопления числа ошибок в счетчиках REC и TEC. В зависимости от вида ошибки увеличение числа ошибок в счетчиках может быть от 1 до 8 при обнаружении однократной ошибки. Декремент содержимого счетчиков в состоянии активной ошибки производится всегда только на 1. Это позволяет присваивать разные веса различным ошибкам. Например, обнаружение ошибки при приеме увеличивает REC на единицу одновременно с отправкой кадра активной ошибки; если принимается доминантный бит после отправки узлом кадра активной ошибки, REC увеличивается на 8, т.к это означает, что только данный узел обнаружил ошибку. Успешный прием кадра узлом уменьшает REC (если он был не нулевым) на 1 в состоянии активной ошибки; если узел был в состоянии пассивной ошибки, в REC устанавливается величина от 119 до 127 (т.е. при TEC менее 128 узел перейдет в состояние активной ошибки).

Любой узел может также послать кадр перегрузки (overload frame), если, во-первых, он не успевает обрабатывать поступающие сообщения и не может обеспечить прием следующего сообщения, во-вторых, при приеме доминантных бит в паузе между кадрами (это может означать потерю синхронизации при приеме). Кадр перегрузки имеет такой же формат, как и кадр ошибки, но передается всегда только после завершения приема кадра. А кадр ошибки может быть передан только в процессе передачи кадра. Кадр перегрузки не увеличивает состояние счетчиков ошибок и не приводит к повторной передаче кадров. Допускается передача узлом не более 2 кадров перегрузки подряд.

В соответствии со всеми процедурами контроля:

передача кадра считается успешной, если не обнаружено ошибок до конца поля EOF;

прием кадра считается успешным, если не обнаружено ошибок и в течение межкадрового интервала (3 бита после EOF).

Необходимо помнить, что CAN протокол не содержит эффективных средств контроля и восстановления искаженных данных кроме процедуры контроля CRC. Процедуры LLC не предусмотрены, несмотря на высокую помехоустойчивость возможны выпадения и вставки. Если необходимы дополнительные средства контроля данных, они должны реализовываться HLP протоколами.

В настоящее время выпускают CAN контроллеры, которые поддерживают одну из трех версий протокола. Версия CAN 2.0A поддерживает работу только с кадрами стандартного формата, имеющими 11-битный идентификатор. CAN 2.0B passive обеспечивает передачу кадров стандартного формата, а прием и обработку кадров и стандартного формата, и расширенного формата с 29-битным идентификатором. CAN 2.0B active обеспечивает обработку кадров обоих форматов.

Рис.1. Архитектура CAN контроллера

Очевидно, что CAN контроллер должен содержать буферные ЗУ и для передаваемых данных, и для принимаемых данных. Реализация процедур CAN протокола, как правило, производится аппаратно с передачей через трансивер выходных сигналов узла (Tx) и входных сигналов с шины (Rx). Приемный фильтр аппаратно производит селективную запись принимаемых кадров по их идентификаторам в буферное ЗУ. Предполагается, что буфер передачи должен обеспечивать хранение, по крайней мере, одного сообщения, а буфер приема - не менее двух сообщений. Чаще всего CAN контроллеры имеют больший объем буферных ЗУ. Доступ к данным в буферных ЗУ может производиться по алгоритму FIFO либо в более сложных реализациях с учетом уровня приоритета, определяемого идентификатором. Интерфейс CAN контроллера с управляющим микроконтроллером узла - стандартный. Через этот интерфейс производится настройка параметров, режимов, приемного фильтра и т.п., а также обмен данными с CAN шиной. В настоящее время производится достаточно большое число управляющих микроконтроллеров, которые содержат встроенные средства для обмена данными по CAN сети.

В связи с тем, что CAN протокол определяет только процедуры физического и MAC уровней, а построение сети требует решения и других задач, связанных, например, с процедурами LLC, процедурами автоматического выбора параметров и режимов при инициализации работы узлов, разработаны так называемые CAN HLP протоколы.

К настоящему времени известно уже более четырех десятков CAN HLP. Среди CAN HLP наибольшее распространение в системах промышленной автоматизации получили четыре, поддерживаемых ассоциацией CiA: CAL/CANopen, CAN Kingdom, DeviceNet и SDS.

 


Информация о работе «Локальные сети»
Раздел: Коммуникации и связь
Количество знаков с пробелами: 60247
Количество таблиц: 6
Количество изображений: 3

Похожие работы

Скачать
181929
3
48

... сети. Коммутатор поддерживает и глобальные связи с топологией "точка-точка" по линиям T1/E1, позволяя связывать несколько локальных сетей, построенных на его основе, друг с другом. Рис. 7.1. Структура коммутатора ES/1 Коммутатор ES/1 работает по технологии коммутации с буферизацией, что позволяет ему транслировать протоколы канального уровня, осуществлять пользовательскую фильтрацию, сбор ...

Скачать
142638
22
20

... стоимость создания такой сети без учета затрат на подключения к сети каждой конкретной квартиры. Рисунок 2.1 – Общий вид расположения домов Основными целями проектирования «домашней» локальной сети, являются: 1)  совместная обработка информации; 2)  совместное использование файлов; 3)  централизованное управление компьютерами; 4)  контроль за доступом к информации; 5)  централизованное ...

Скачать
134036
26
14

... части локальной сети не позволяют останавливаться на известных достигнутых результатах и побуждают на дальнейшее исследование в дипломной работе в направлении разработки локальной сети с беспроводным доступом к ее информационным ресурсам, используя перспективные технологии защиты информации. 2. Выбор оборудования, для перспективных технологий СПД   2.1 Выбор передающей среды Зачастую перед ...

Скачать
32820
0
1

ществует более 130 миллионов компьютеров и более 80% из них объединены в различные информационно-вычислительные сети от малых локальных сетей в офисах до глобальных сетей типа Internet. Всемирная тенденция к объединению компьютеров в сети обусловлена рядом важных причин, таких как ускорение передачи информационных сообщений, возможность быстрого обмена информацией между пользователями, получение и ...

0 комментариев


Наверх