Интерфейс CAN

Автор работы: Пользователь скрыл имя, 30 Апреля 2013 в 13:05, курсовая работа

Описание работы

CAN (Controller Area Network) - это последовательный протокол связи с эффектив-ной поддержкой распределения контроля в реальном времени и очень высоким уров-нем безопасности.
Основное назначение: организация передачи информации в сложных условиях, таких как среды с высоким уровнем различного рода помех. Этот протокол передачи приме-няется в автомобильной электронике, машинных устройствах управления, датчиках при передаче информации со скоростями до 1 Мбит/сек.

Содержание работы

1. Введение 3
2. Основные характеристики протокола 3
3. Передача сообщений 6
4. Межкадровое пространство (INTERFRAME SPACE) 11
5. Определение передатчика / приемника 12
6. Корректность сообщения 13
7. Кодирование битового потока 13
8. Обработка ошибок 13
9. Сигнализация ошибок 14
10. Типизация ошибок 15
11. Синхронизация 17
Литература 19

Файлы: 1 файл

Интерфейсы ПУ.doc

— 157.00 Кб (Скачать файл)


МИНОБРНАУКИ РОССИИ

Сарапульский политехнический  институт (филиал)

федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Ижевский государственный  технический университет 

имени М.Т. Калашникова»

Кафедра КиПР

 

 

 

 

КУРСОВАЯ РАБОТА

по дисциплине: «Интерфейсы периферийных устройств»

На тему: «Интерфейс CAN»

 

 

 

 

 

Выполнил:                студент гр.762 ЗДУ         Иванов А.М.

 

Проверил:        преподаватель

Городилов И.А.

 

 

 

 

г. Сарапул 

2012

ОГЛАВЛЕНИЕ

1. Введение 3

2. Основные характеристики  протокола 3

3. Передача сообщений 6

4. Межкадровое пространство (INTERFRAME SPACE) 11

5. Определение передатчика  / приемника 12

6. Корректность сообщения 13

7. Кодирование битового  потока 13

8. Обработка ошибок 13

9. Сигнализация ошибок 14

10. Типизация ошибок 14

11. Синхронизация 17

Литература 19

 

1. Введение

CAN (Controller Area Network) - это последовательный  протокол связи с эффективной поддержкой распределения контроля в реальном времени и очень высоким уровнем безопасности. 
Основное назначение: организация передачи информации в сложных условиях, таких как среды с высоким уровнем различного рода помех. Этот протокол передачи применяется в автомобильной электронике, машинных устройствах управления, датчиках при передаче информации со скоростями до 1 Мбит/сек.

Протокол CAN можно разделить на следующие уровни:

  • объектный уровень
  • канальный уровень
  • физический уровень

Объектный и канальный уровни включают весь сервис и функции передачи данных определяемых ISO/OSI моделью. Область объектного уровня включает:

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

Объектный уровень можно реализовывать  различными способами.

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

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

2. Основные характеристики  протокола

  • каждое сообщение имеет определенный приоритет
  • существуют гарантированные времена ожидания
  • гибкость конфигурации
  • групповой приём с временной синхронизацией
  • система непротиворечивости данных
  • multimaster
  • обнаружение и сигнализация ошибок
  • автоматическая ретрансляция разрушенных сообщений
  • различие между временными ошибками и постоянными отказами узлов и автономное отключение дефектных узлов

Сообщения

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

Информационная маршрутизация

В CAN нет ни какой информации относительно конфигурации сети (например, адреса узла). Это имеет несколько важных следствий:

Гибкость системы:

Узел может быть добавлен в CAN - сеть, без каких либо изменений в  программном или аппаратном обеспечении, какого - либо узла в сети.

Маршрутизация сообщений:

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

Передача группе:

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

Непротиворечивость  данных:

Внутри сети CAN гарантировано, что  сообщение принято всеми узлами или ни одним узлом.

Скорость передачи информации

Скорость передачи информации в CAN - сети может быть различной для каждой сети. Однако в каждой конкретной сети скорость передачи информации фиксирована.

Приоритеты

Идентификатор и RTR - бит определяют статический приоритет сообщения  в течение доступа к шине.

Удаленный запрос данных

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

Multimaster

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

Арбитраж

Когда шина свободна, любой узел может  начать передачу сообщения. Если два  или больше узла начинают передавать сообщения в одно и тоже время, конфликт при доступе к шине будет решен поразрядным арбитражем используя идентификатор и RTR - бит. Механизм арбитража гарантирует, что ни время, ни информация не будут потеряны. Если кадр данных и кадр удаленного запроса данных начинают передаваться в одно время, то кадр данных имеет более высокий приоритет, чем кадр удаленного запроса данных. В течение арбитража каждый передатчик сравнивает уровень переданного бита с уровнем, считываемым с шины. Если эти уровни одинаковы, узел может продолжать посылать данные дальше. Если был послан уровень лог. '1' (recessive), а с шины считан уровень лог. '0' (dominant), то узел теряет право дальнейшей передачи данных и должен прекратить посылку данных на шину.

Безопасность

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

Обнаружение ошибок    

Для обнаружения ошибок приняты  следующие меры:

  • текущий контроль (передатчики сравнивают уровни битов, которые переданы, с уровнями на шине).
  • побитовое заполнение
  • проверка кадра сообщения

Эффективность обнаружения ошибок    

Механизмы обнаружения ошибок имеют  следующие возможности:

  • обнаружение всех глобальных ошибок
  • обнаружение всех локальных ошибок передатчиков
  • обнаружение до 5 случайно распределённых ошибок в сообщении
  • обнаружение последовательной группы ошибок длиной до 15
  • обнаружение любого числа нечетных ошибок в сообщении

Общая остаточная вероятность ошибки для необнаруженных, разрушенных  сообщений, меньше чем:    

скорость появления ошибки * 4.7*10Е-11

Сигнализация ошибки и время восстановления

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

Типизация ошибок

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

Соединения

Линия связи по протоколу CAN - это  шина, к которой может быть подключён  ряд узлов. Количество узлов не имеет никакого теоретического предела. Фактически количество узлов будет ограничено временами задержек и/или электрической нагрузкой на линии шины. Способ, которым выполнена шина, не установлен в данной спецификации. Например, это может быть одиночный провод (+земля), два дифференциальных провода, оптическое стекловолокно.

Уровни шины

Шина может принимать одно из дополняющих друг друга значений: "dominant" и "recessive". В случае одновременной подачи "dominant" бита и "recessive" бита, возникающее в результате значение шины будет "dominant".  
(Прим. переводчика: далее считается что "recessive" = лог. "1", а "dominant" = "0").

Подтверждение

Все приёмники проверяют непротиворечивость принимаемого сообщения и подтверждают непротиворечивое сообщение.

Режим "сна" / пробуждения

Чтобы уменьшить потребляемую мощность системы, узел 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)

Бит запроса передачи. 
В кадре данных RTR-бит - "0". Внутри кадра удаленного запроса данных - "1".

Поле контроля (CONTROL FIELD)

Включает 6 бит. Это - код длины данных (4бита) и 2 бита зарезервированные под  будущие расширения. Зарезервированные биты должны быть "0".

Код длины данных (DLC)

Показывает  количество байт в поле данных. Код  длины данных имеет размер 4 бита и передаётся внутри контрольного поля. 
Допустимые значения: 0.......8. 
Другие значения использоваться не могут.

Поле данных (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-разделитель (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)

Узел может инициализировать передачу кадра данных другим узлом, посылая  кадр удаленного запроса данных. 
Этот кадр состоит из 6 полей: 
"Начало кадра", "поле арбитража", "поле контроля", "поле CRC", "поле подтверждения", "конец кадра".  
В отличие от кадра данных , RTR бит = "1". Здесь нет поля данных, зависящего от значения "кода длины данных", внутри этого поля может быть записано любое из допустимых значений (0…….8).  
Полярность RTR бита показывает, является ли передаваемый кадр кадром данных или кадром удаленного запроса данных

Информация о работе Интерфейс CAN