Поиск по сайту: |
|
По базе: |
|
Главная страница > Интерфейсы > CAN |
|
|||||||||
CAN 2.0 А1. Введение CAN (Controller Area Network) - это последовательный протокол связи с эффективной поддержкой распределения контроля в реальном времени и очень высоким уровнем безопасности. Протокол CAN можно разделить на следующие уровни:
Объектный и канальный уровни включают весь сервис и функции передачи данных определяемых ISO/OSI моделью. Область объектного уровня включает:
Объектный уровень можно реализовывать различными способами. Область канального уровня главным образом - протокол передачи, т.е. управление кадрами, выполнение арбитража, проверка и сигнализация ошибок, типизация ошибок. Внутри канального уровня решается, является ли шина свободной для начала новой передачи. Все что находится внутри канального уровня, не имеет ни какой свободы к модификации. Область физического уровня - фактическая передача бит между различными узлами. Внутри одной сети физический уровень должен быть одинаков для всех узлов. Физический уровень можно реализовать различными способами. 2. Основные характеристики протокола
Сообщения Информация по шине посылается в фиксированном формате сообщений различной, но фиксированной длины. Когда шина свободна, любой узел может начать передачу нового сообщения. Информационная маршрутизация В CAN нет ни какой информации относительно конфигурации сети (например, адреса узла). Это имеет несколько важных следствий: Гибкость системы: Узел может быть добавлен в CAN - сеть, без каких либо изменений в программном или аппаратном обеспечении, какого - либо узла в сети. Маршрутизация сообщений: Содержание сообщения определяется идентификатором. Идентификатор не указывает адреса сообщения, а описывает значение данных так, чтобы все узлы сети были способны решить фильтрацией сообщений, нужны им эти данные или нет. Передача группе: Как следует из фильтрации сообщений, любое число узлов может одновременно получать и реагировать на одно и тоже сообщение. Непротиворечивость данных: Внутри сети CAN гарантировано, что сообщение принято всеми узлами или ни одним узлом. Скорость передачи информации Скорость передачи информации в CAN - сети может быть различной для каждой сети. Однако в каждой конкретной сети скорость передачи информации фиксирована. Приоритеты Идентификатор и RTR - бит определяют статический приоритет сообщения в течение доступа к шине. Удаленный запрос данных Посылая кадр удаленного запроса данных, узел может потребовать данные от другого узла. Кадр данных и кадр удаленного запроса данных должны иметь одинаковый идентификатор. Multimaster Когда шина свободна, любой узел может начать передачу сообщения. Доступ к шине получает узел, передающий кадр с наивысшим приоритетом. Арбитраж Когда шина свободна, любой узел может начать передачу сообщения. Если два или больше узла начинают передавать сообщения в одно и тоже время, конфликт при доступе к шине будет решен поразрядным арбитражем используя идентификатор и RTR - бит. Механизм арбитража гарантирует, что ни время, ни информация не будут потеряны. Если кадр данных и кадр удаленного запроса данных начинают передаваться в одно время, то кадр данных имеет более высокий приоритет, чем кадр удаленного запроса данных. В течение арбитража каждый передатчик сравнивает уровень переданного бита с уровнем, считываемым с шины. Если эти уровни одинаковы, узел может продолжать посылать данные дальше. Если был послан уровень лог. '1' (recessive), а с шины считан уровень лог. '0' (dominant), то узел теряет право дальнейшей передачи данных и должен прекратить посылку данных на шину. Безопасность Чтобы достичь высокой безопасности передачи данных, приняты мощные меры нахождения ошибок, сигнализации ошибок и самотестирование в каждом CAN - узле. Обнаружение ошибок Для обнаружения ошибок приняты следующие меры:
Эффективность обнаружения ошибок Механизмы обнаружения ошибок имеют следующие возможности:
Общая остаточная вероятность ошибки для необнаруженных, разрушенных сообщений, меньше чем: скорость появления ошибки * 4.7*10Е-11 Сигнализация ошибки и время восстановления Разрушенные сообщения помечаются узлом, обнаружившим ошибку. Такие сообщения прерываются и будут переданы снова. Время восстановления от обнаружения ошибки до начала следующего сообщения в большинстве случаев = 29 * время передачи одного бита, если не имеется никаких дальнейших ошибок. Типизация ошибок Узлы CAN способны отличить временные ошибки от постоянных отказов. Дефектные узлы будут отключены. Соединения Линия связи по протоколу CAN - это шина, к которой может быть подключён ряд узлов. Количество узлов не имеет никакого теоретического предела. Фактически количество узлов будет ограничено временами задержек и/или электрической нагрузкой на линии шины. Способ, которым выполнена шина, не установлен в данной спецификации. Например, это может быть одиночный провод (+земля), два дифференциальных провода, оптическое стекловолокно. Уровни шины Шина может принимать одно из дополняющих друг друга значений: "dominant" и "recessive". В случае одновременной подачи "dominant" бита и "recessive" бита, возникающее в результате значение шины будет "dominant". Подтверждение Все приёмники проверяют непротиворечивость принимаемого сообщения и подтверждают непротиворечивое сообщение. Режим "сна" / пробуждения Чтобы уменьшить потребляемую мощность системы, узел CAN может быть переведен в режим "сна". Режим "сна" заканчивается при любом действии на шине или внутреннем состоянии системы. При пробуждении запускается внутренняя синхронизация, канальный уровень ждёт стабилизации генератора системы, а затем будет ожидать самосинхронизации к действиям на шине (синхронизация к действиям на шине заканчивается после принятия последовательности 11 битов с лог. "1"). Для пробуждения узла из режима покоя может использоваться некоторое сообщение пробуждения со специальным идентификатором. 3. Передача сообщений При передаче информации с помощью протокола CAN используется четыре типа кадров. Кадр данных содержит данные, передаваемые передатчиком приёмнику (ам). Кадр удаленного запроса данных передается на шину для запроса передачи кадра данных с тем же самым идентификатором. Кадр ошибки передаётся при обнаружении ошибки на шине. Кадр перегрузки используется для обеспечения дополнительной задержки между предшествующим и последующим кадрами данных или кадрами удаленного запроса данных. Кадры данных и кадры удаленного запроса данных отделяются от предшествующих кадров межкадровым пространством. 3.1 Кадр данных (DATA FRAME) Кадр данных состоит из 7 различных полей: "Начало кадра", "поле арбитража", "поле контроля", "поле данных", "поле CRC", "поле подтверждения", "конец кадра". Начало кадра (Start of Frame)
Отмечает начало кадра данных или кадра удаленного запроса данных. Состоит из бита с лог. '0'. Поле арбитража (Arbitration Field) Состоит из идентификатора и RTR-бита.Идентификатор (Identifier) Имеет длину 11 бит. Эти биты должны быть переданы в порядке от ID10 до ID4. Самый старший бит ID0. 7 старших битов не должны быть все битами с лог '1'. RTR-бит (RTR - bit) Бит запроса передачи. Поле контроля (CONTROL FIELD) Включает 6 бит. Это - код длины данных (4бита) и 2 бита зарезервированные под будущие расширения. Зарезервированные биты должны быть "0". Код длины данных (DLC) Показывает количество байт в поле данных. Код длины данных имеет размер 4 бита и передаётся внутри контрольного поля. Поле данных (DATA FIELD) Включает данные, передаваемые внутри кадра данных. Оно может содержать от 0 до 8 байт, каждый из которых содержит 8 бит. CRC поле (CRC FIELD) Содержит CRC - последовательность, сопровождаемую разделителем. CRC-последовательность (CRC Sequence): Для вычисления CRC полинома, полином, коэффициенты которого задаются потоком, состоящим из значений, бит полей: "начало кадра ", "поле арбитража", "поле контроля", "поле данных" (если имеется) (самые младшие 15 коэффициентов полинома =0), должен быть разделён полином следующего вида: x^15+x^14+x^10+x^8+x^7+x^4+x^3+1 CRC-разделитель (CRC Delimiter): CRC-последовательность сопровождается CRC-разделителем, который всегда равен лог. "1". Поле подтверждения (ACK FIELD) Длина 2 бита. Содержит область подтверждения (1 бит) и разделитель подтверждения (1 бит). В поле подтверждения передающий узел посылает два бита с лог. "1". Приемник, получивший правильное сообщение, информирует об этом передатчик, посылая бит с лог. "0" (т.е. перезаписывая бит в области подтверждения с лог. "1" на бит с лог. "0"). Область подтверждения (ACK Slot) Все узлы, получившие соответствующую CRC-последовательность, сообщают об этом внутри области подтверждения перезаписью бита с лог. "1" на бит с лог. "0". Разделитель подтверждения (ACK Delimiter) Второй бит области подтверждения должен быть - лог. "1". Следовательно, область подтверждения окружена битами с лог. "1" (CRC-разделитель и разделитель подтверждения). Конец кадра (END OF FRAME) Каждый кадр данных и кадр удаленного запроса данных разграничены последовательностью флагов, состоящей из семи битов с лог. "1". 3.2 Кадр удаленного запроса данных (REMOTE FRAME) Узел может инициализировать передачу кадра данных другим узлом, посылая кадр удаленного запроса данных. 3.3. Кадр ошибки (ERROR FRAME) Состоит из двух различных полей. Первое поле является суперпозицией флагов ошибки различных узлов, второе поле - поле разделителя ошибки. Для корректного завершения кадра ошибки, узлу в состоянии "пассивной ошибки" может быть необходим доступ к шине, поэтому шина должна быть свободной, по крайней мере, три времени передачи бита. Следовательно, шина не должна быть загружена на 100%. Флаг ошибки (Error Flag): Существует 2 формы флага ошибки: активный и пассивный флаг ошибки. 1. активный флаг ошибки состоит из 6 последовательных бит с лог. "0". 2. пассивный флаг ошибки состоит из 6 последовательных бит с лог. "1, если они не перезаписаны битами с лог. "0" других узлов. Разделитель ошибки (Error Delimiter) Разделитель ошибки состоит из 8 бит с лог. "1". После передачи флага ошибки каждый узел посылает биты с лог. "1" и контролирует шину, пока не обнаружит бит с лог. "1". Впоследствии он начинает передавать 7 бит с лог. "1". 3.4. Кадр перегрузки (OVERLOAD FRAME) Кадр перегрузки содержит два битовых поля: флаг перегрузки и разделитель перегрузки. Имеются два вида перегрузки, которые оба приводят к передаче кадра перегрузки. 1. Внутреннее состояние приёмника, которое требует задержки следующего кадра данных или кадра удаленного запроса данных. 2. Обнаружение бита с лог. "0" в течение поля перерыва (см. межкадровое пространство). Флаг перегрузки (Overload flag) Состоит из 6 бит с лог. "0". Формат соответствует активному флагу ошибки. Разделитель перегрузки (Overload Delimiter) Состоит из 8 бит с лог. "1". 4. Межкадровое пространство (INTERFRAME SPACE) Кадры данных и кадры удаленного запроса данных отделяются от предшествующих кадров любого типа (кадра данных, кадра удаленного запроса данных, кадра ошибки, кадра перегрузки). Это разделяющее битовое поле называется межкадровым пространством. Кадрам перегрузки и кадрам ошибки не предшествует межкадровое пространство; несколько кадров перегрузки также не отделяются межкадровым пространством. Поле перерыва (Intermission) Состоит из 3 бит с лог. "1". В течение перерыва никакому узлу нельзя начинать передачу кадра данных или кадра удаленного запроса данных. Единственно возможное действие - это сигнализация состояния перегрузки. Простой шины (Bus Idle) Простой шины может иметь произвольную длину. Если шина опознана как свободная, любой узел, который имеет что - либо для передачи может начать передачу. Сообщение, которое было задержано для передачи другого сообщения, начинает передаваться в первом бите после поля перерыва. Обнаружение бита с лог. "0" на шине в течение этого поля интерпретируется как поле "начало кадра". Приостановка передачи Узел в состоянии "пассивной ошибки", после передачи сообщения, посылает 8 бит с лог. "1" после поля перерыва, перед началом передачи дальнейших сообщений или определением занятости шины. Если тем временем началась передача (вызванная другим узлом), узел станет приёмником этого сообщения. 5. Определение передатчика / приемника Передатчик Узел, передающий сообщение называется передатчиком этого сообщения. Узел является передатчиком до тех пор, пока он не потерял арбитраж. Приёмник Узел называется приёмником сообщения, если он не передатчик сообщения и шина занята. 6. Корректность сообщения Точка времени, в которой сообщение является корректным, различна для передатчиков и приёмников сообщений. Передатчик Сообщения пригодно для передатчика, если нет ошибок до конца кадра. Если сообщение разрушено, ретрансляция будет происходить автоматически и согласно приоритетам. Чтобы решить приоритеты доступа к шине с другими сообщениями, ретрансляция должна начаться, как только шина освободится. Приёмник Сообщение корректно для приёмника, если нет ошибок до конца кадра. 7. Кодирование битового потока Следующие поля: "начало кадра", "поле арбитража", "поле контроля", "поле данных" и "поле CRC" кодированы методом разрядного заполнения. Всякий раз, когда передатчик передает пять последовательных бит идентичной величины в битовом потоке, он автоматически вставляет дополняющий бит противоположного значения в фактически передаваемый битовый поток. 8. Обработка ошибок Существует пять типов не взаимоисключающих ошибок:
В состоянии отключения от шины узлу не разрешено оказывать влияние на шину. Для типизации ошибок у каждого узла - CAN есть два счетчика: 1. счетчик ошибок передачи 2. счетчик ошибок приема Узел находится в состоянии "пассивной ошибки", если счетчик ошибок передачи и / или счетчик ошибок приема больше или равен 128. Узел отключается от шины, если счетчик ошибок передачи или приема больше или равен 256. Узел, находившиеся в состоянии "пассивной ошибки" переходит в состояние "активной ошибки", если счетчик ошибок передачи и счетчик ошибок приема меньше или равен 127. Узлу, который находится в состоянии "отключения от шины", разрешается перейти в состояние "активной ошибки", с установкой обоих счетчиков в 0, после того, как на шине будут проконтролированы 128 прохождений 11 последовательных битов с лог. "1". Обратите внимание: 1. Величина счетчика ошибки большая, чем 96 указывает на серьезные нарушения на шине. Это можно использовать для проверки состояния шины. 2. Запуск / Пробуждение: Если в некоторый момент времени активен только один узел, и если этот узел передает некоторое сообщение, он не получит подтверждения, обнаруживается ошибка и происходит повтор сообщения. Из-за этого он может перейти в состояние "пассивной ошибки", но не может перейти в состояние "отключения от шины". 10. Требования к синхронизации Номинальная скорость передачи информации в битах Номинальная скорость передачи информации в битах - число битов за секунду, передаваемое в отсутствии пересинхронизации идеальным передатчиком. Номинальное время передачи бита Номинальное время передачи бита можно представить как время, разделенное на отдельные не перекрывающиеся сегменты времени. Это сегменты: - Сегмент синхронизации (SYNC_SEG) - Сегмент времени распространения (PROP_SEG) - Сегмент TSEG1 (PHASE_SEG1) - Сегмент TSEG2 (PHASE_SEG2) SYNC SEG Эта часть времени передачи бита используется, чтобы синхронизировать различные узлы на шине. Ожидается, что фронт сигнала находится внутри этого сегмента. PROP SEG Эта часть времени передачи бита используется, чтобы компенсировать физическую задержку времён внутри сети. Это удвоенная сумма времени распространения сигнала по шине, входной задержки компаратора, и выходной задержки формирователей. TSEG1 и TSEG2. Эти сегменты используются, чтобы компенсировать ошибки смещения фазы сигнала. Эти сегменты могут быть удлинены или укорочены пересинхронизацией. Точка считывания (Sample point) Точка считывания - точка времени, в которой уровень шины читается и интерпретируется, как величина соответствующего бита. Ее место - в конце TSEG1. Время обработки информации Время обработки информации - отрезок времени, начинающийся с точки считывания, зарезервированный для вычисления уровня бита. Квант времени Квант времени - фиксированная единица времени, полученная из периода генератора. Существует программируемый делитель, оперирующий целочисленными величинами, изменяющимися, по крайней мере, от 1 до 32. Начиная с минимального кванта времени, квант времени может иметь длительность: квант времени = m * минимальный квант времени ,где m - величина делителя. Длительность отрезков времени
12. Синхронизация Аппаратная синхронизация После аппаратной синхронизации внутреннее время передачи бита перезапускается с SYNC_SEG. Таким образом, аппаратная синхронизация вынуждает фронт находиться внутри сегмента SYNC_SEG. Ширина перехода пересинхронизации В результате пересинхронизации TSEG1 может быть удлинен, или TSEG2 может быть сокращен. Количество удлинения или сокращения сегментов TSEGx (x=1,2) имеет верхний предел, связанный с шириной перехода пересинхронизации. Ширина перехода пересинхронизации должна быть программируема между 1 и min(4, TSEG1). Синхронизация информации может быть получена из переходов от одного бита к другому. Максимальная длина между двумя переходами, которые могут использоваться для пересинхронизации - 29 времен передачи бита. Фазовая ошибка фронта Фазовая ошибка фронта определяется позицией фронта относительно SYNC_SEG, измеряется в квантах времени. Знак фазовой ошибки определяется следующим образом:
Пересинхронизация Эффект пересинхронизации - также как и от аппаратной синхронизации, когда величина фазовой ошибки фронта сигнала, которая вызывает пересинхронизацию - меньше или равна программируемой величине ширины перехода пересинхронизации. Когда величина ошибки фазы больше чем ширина перехода пересинхронизации,
Правила синхронизации Синхронизация и пересинхронизация - две формы синхронизации. На них действуют следующие правила: 1. Позволяется только одна синхронизация внутри одного интервала передачи бита. 2. Для синхронизации будет использоваться фронт только, если величина, полученная в предыдущей точке считывания (предыдущая величина на шине) отличается от величины на шине сразу после фронта. 3. Синхронизация выполняется всякий раз, по фронту "1" -> "0" в течение простоя шины. 4. Все другие фронты "1" -> "0" (и фронты "0" -> "1" в случае низких скоростей), выполняемые по правилам 1 и 2, будут использоваться для пересинхронизации. Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|