Скачать презентацию CAN-шина Выполнила Иванова Е И CAN — Скачать презентацию CAN-шина Выполнила Иванова Е И CAN —

can-шина 3.ppt

  • Количество слайдов: 25

CAN-шина Выполнила: Иванова Е. И. CAN-шина Выполнила: Иванова Е. И.

CAN - от английского Controller Area Network, что переводится как Сеть Распределения Контроллеров. В CAN - от английского Controller Area Network, что переводится как Сеть Распределения Контроллеров. В настоящее время широко распространён в промышленной автоматизации, технологиях «умного дома» , автомобильной промышленности и многих других областях:

Впервые идея CAN была предложена в середине 80 -х немецкой компанией Robert Bosch, которая Впервые идея CAN была предложена в середине 80 -х немецкой компанией Robert Bosch, которая задумывала ее в качестве экономичного средства для объединения контроллеров, расположенных внутри автомобиля. Традиционный способ связи распределенных по объекту контроллеров жгутами проводов по своей технической сложности, по ценовым и по весовым параметрам для столь массового изделия, коим является автомобиль, оказался непригоден. Требовалось альтернативное решение, сокращающее количество проводов, поэтому был предложен протокол CAN, для которого достаточно любой проводной пары. Идея заключалась в том, чтобы создать сетевое решение для распределённых систем, работающих в реальном времени. Первоначально CAN применялся в автомобилях, но затем область его применения расширилась и на проблемы автоматизации технологических процессов.

CAN является идеальным решением для любого приложения, где микроконтроллеры обмениваются сообщениями друг с другом CAN является идеальным решением для любого приложения, где микроконтроллеры обмениваются сообщениями друг с другом и с удаленными периферийными устройствами. CAN-это протокол связи, с высоконадежной передачей данных по последовательному каналу (шине) в широковещательном режиме. Скорость обмена данными до 1 Mbit/s возможна в сетях протяженностью не более 40 м. Снижение скорости обмена позволяет увеличить протяженность сети, например - 250 Kbit/s при 250 м. скорость передачи максимальная длина сети 1000 Кбит/сек 40 метров 500 Кбит/сек 100 метров 250 Кбит/сек 200 метров 125 Кбит/сек 500 метров 10 Кбит/сек 6 километров

Физический уровень CAN-шины представляет собой соединение «монтажное И» между всеми устройствами, подключенными к ней. Физический уровень CAN-шины представляет собой соединение «монтажное И» между всеми устройствами, подключенными к ней. CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии - CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица - в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0. 5 В). Логический ноль - называется доминантным битом, а логическая единица - рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN.

Когда сообщения не передаются по шине, она находится в пассивном состоянии. Передача сообщения всегда Когда сообщения не передаются по шине, она находится в пассивном состоянии. Передача сообщения всегда начинается с доминантного бита. Логика работы шины соответствует «проводному И» : доминантный бит « 0» подавляет рецессивный бит « 1» (рис. 1). Рисунок Логика работы CAN шины

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

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

Если передача узла А приостанавливается узлом B, посылающим сообщение с более высоким приоритетом, то, Если передача узла А приостанавливается узлом B, посылающим сообщение с более высоким приоритетом, то, как только шина освободится, будет сделана другая попытка передачи сообщения от узла A. Этот принцип получил название CSMA/CA: Carrier Sense Multiple Access/Collision Avoidance (общий доступ с опросом/предотвращение конфликтов). Такой режим в отличие от Ethernet не позволяет конфликтующим узлам в шине выяснять отношения, а сразу выявляет победителя и сокращает время обмена. Итак, благодаря арбитражу шины сообщение с высшим приоритетом передается первым, обеспечивая функционирование системы в реальном масштабе времени и быструю передачу информации. Распределение приоритетов между различными типами сообщений задается разработчиком при проектировании сети.

Формат сообщений Если не учитывать процедуру повтора сообщения, принятого с ошибкой, существует два вида Формат сообщений Если не учитывать процедуру повтора сообщения, принятого с ошибкой, существует два вида связи между узлами: один узел передает информацию, а другой получает, или узел A запрашивает узел B о данных и получает ответ. Рисунок - Кадр данных (Data Frame) Для передачи данных служит кадр данных — Data Frame , который содержит: • идентификатор, указывающий на тип сообщения ( «скорость_двигателя» , «температура_масла» ) и на приоритет доступа к шине. Поле идентификатора содержит различное количество бит в зависимости от разновидности протокола: в стандартном формате CAN V 2. 0 A предусмотрен 11 -разрядный идентификатор, а в расширенном CAN V 2. 0 B — 29 -разрядный; • поле данных, содержащее соответствующее сообщение ( «скорость_двигателя» = 6000 об/мин, «температура_масла» =110 °C) длиной до восьми байт; • два байта контрольной суммы — Cyclic Redundancy Check (CRC) для выявления и коррекции ошибок передачи.

Для запроса информации узел CAN использует кадр запроса данных Remote Frame, который содержит: • Для запроса информации узел CAN использует кадр запроса данных Remote Frame, который содержит: • • идентификатор, определяющий тип запрашиваемой информации ( «скорость_ двигателя» , «температура_масла» ) и приоритет сообщения; два байта контрольной суммы CRC. В этом случае за идентификатором не следуют данные и код длины данных не имеет прямого отношения к количеству байт данных. Узел, которому предложено передать информацию (датчик температуры масла), передает кадр данных, содержащий требуемую информацию. Таким образом, если узел А направляет узлу В кадр запроса с идентификатором «температура_масла» , то узел В опрашивает датчик температуры и направляет узлу А кадр данных, содержащий идентификатор «температура_масла» и требуемую информацию.

Дополнительная информация, содержащаяся в кадре, позволяет определить формат и синхронизацию протокола передачи сообщения и Дополнительная информация, содержащаяся в кадре, позволяет определить формат и синхронизацию протокола передачи сообщения и тип посылки: какое сообщение послано — запрос о данных или собственно данные определяют бит удаленного запроса передачи (RTR для 11 разрядного идентификатора и SRR для 29 -разрядного); код длины данных, сообщающий, сколько байтов данных содержит сообщение; все узлы принимают кадр данных, но те из них, которым эта информация не нужна, ее не сохраняют; для обеспечения синхронизации и контроля кадр содержит поля начала кадра Start of Frame, конца кадра End of Frame и подтверждения Acknowledgement Field; вход в режим синхронизации на шине осуществляется первым битом поля Start of Frame, далее синхронизация поддерживается фронтом при смене уровня посылаемых битов; используется механизм битстаффинга — вставка дополнительного бита при следующих подряд пяти нулях или единицах.

Формат кадра Базовый формат кадра данных Поле Длина (в битах) Описание Начало кадра 1 Формат кадра Базовый формат кадра данных Поле Длина (в битах) Описание Начало кадра 1 Сигнализирует начало передачи кадра Идентификатор 11 Уникальный идентификатор Запрос на передачу (RTR) 1 Должен быть доминантным Бит расширения идентификатора (IDE) 1 Должен быть доминантным Зарезервированный бит (r 0) 1 Резерв Длина данных (DLC) 4 Длина поля данных в байтах (0 -8) Поле данных 0 -8 байт Передаваемые данные (длина в поле DLC) Контрольная сумма (CRC) 15 Контрольная сумма всего кадра Разграничитель контрольной суммы 1 Должен быть рецессивным Промежуток подтверждения (ACK) 1 Передатчик шлёт рецессивный, приёмник вставляет доминанту Разграничитель подтверждения 1 Должен быть рецессивным Конец кадра (EOF) 7 Должен быть рецессивным Первые 7 бит идентификатора не должны быть все рецессивными.

Расширенный формат кадра данных Длина (в битах) Описание Начало кадра 1 Сигнализирует начало передачи Расширенный формат кадра данных Длина (в битах) Описание Начало кадра 1 Сигнализирует начало передачи кадра Идентификатор A 11 Первая часть идентификатора Подмена запроса на передачу (SRR) 1 Должен быть рецессивным Бит расширения идентификатора (IDE) 1 Должен быть рецессивным Идентификатор B 18 Вторая часть идентификатора Запрос на передачу (RTR) 1 Должен быть доминантным Зарезервированные биты (r 1 и r 0) 2 Резерв Длина данных (DLC) 4 Длина поля данных в байтах (0 -8) Поле данных 0 -8 байт Передаваемые данные (длина в поле DLC) Контрольная сумма (CRC) 15 Контрольная сумма всего кадра Разграничитель контрольной суммы 1 Должен быть рецессивным Промежуток подтверждения (ACK) 1 Поле Разграничитель подтверждения 1 Должен быть рецессивным Конец кадра (EOF) 7 Должен быть рецессивным Идентификатор получается объединением частей A и B.

Дополнительная информация, содержащаяся в кадре, позволяет определить формат и синхронизацию протокола передачи сообщения и Дополнительная информация, содержащаяся в кадре, позволяет определить формат и синхронизацию протокола передачи сообщения и тип посылки: • • • какое сообщение послано — запрос о данных или собственно данные определяют бит удаленного запроса передачи (RTR для 11 -разрядного идентификатора и SRR для 29 -разрядного); код длины данных, сообщающий, сколько байтов данных содержит сообщение; все узлы принимают кадр данных, но те из них, которым эта информация не нужна, ее не сохраняют; для обеспечения синхронизации и контроля кадр содержит поля начала кадра Start of Frame, конца кадра End of Frame и подтверждения Acknowledgement Field; вход в режим синхронизации на шине осуществляется первым битом поля Start of Frame, далее синхронизация поддерживается фронтом при смене уровня посылаемых битов; используется механизм битстаффинга — вставка дополнительного бита при следующих подряд пяти нулях или единицах.

Обнаружение ошибок Сигнализация об ошибках происходит путем передачи кадра ошибки Error Frame (ошибочная структура). Обнаружение ошибок Сигнализация об ошибках происходит путем передачи кадра ошибки Error Frame (ошибочная структура). Он инициируется любым узлом, обнаружившим ошибку. CAN-контроллеры используют метод статистической обработки ошибок. Каждый узел содержит счетчики ошибок при передаче и приеме Transmit Error Counter (передаваемый ошибочный счетчик) и Receive Error Counter (получаемый ошибочный счетчик). Если передатчик или приемник обнаруживают ошибку, значение соответствующего счетчика увеличивается. Когда значение счетчика превышает некоторый предел, текущая передача прерывается. Узел выдает сигнал об ошибке в виде Error Frame, где выставляет активный доминантный флаг ошибки длиной 6 бит. После этого узел, передача которого была прервана, повторяет сообщение. Ненадежным или частично поврежденным узлам разрешено посылать лишь пассивный рецессивный флаг ошибки.

В CAN существует несколько разновидностей ошибок. Из них три типа на уровне сообщений: CRC В CAN существует несколько разновидностей ошибок. Из них три типа на уровне сообщений: CRC Error — ошибка контрольной суммы (при несовпадении принятой в поле CRC и вычисленной контрольных сумм). Form Error — ошибка формата кадра при несоответствии принятого сообщения формату CAN. Acknowledgement Error — ошибка подтверждения приема сообщения, если ни один из узлов не подтвердил правильного получения сообщения. Кроме того, существует два типа ошибок на битовом уровне: Bit Error — обнаружение активным узлом расхождения между посланным в шину уровнем и фактическим значением за счет реализации узлом механизма самоконтроля. Stuff Error — наличие в поле сообщения шести следующих подряд бит 0 или 1 (ошибка битстаффинга).

Разновидности CAN В настоящее время доступны различные устройства с CAN-интерфейсом, которые помимо передачи данных Разновидности CAN В настоящее время доступны различные устройства с CAN-интерфейсом, которые помимо передачи данных из одной точки в другую позволяют реализовать синхронизацию процессов и обслуживание по приоритетам. Более ранние реализации CAN-контроллеров используют кадры с 11 разрядным идентификатором и возможностью адресации до 2048 сообщений и соответствуют спецификации CAN V. 2. 0 A. Такие контроллеры носят название Basic CAN и характеризуются сильной загруженностью центрального процессора (ЦПУ), так каждое входящее сообщение запоминается в памяти и ЦПУ решает, нужны ему данные сообщения или нет.

Контроллеры Basic CAN содержат один передающий буфер и один или два приемных буфера сообщений. Контроллеры Basic CAN содержат один передающий буфер и один или два приемных буфера сообщений. Чтобы послать или получить сообщение, требуется задействовать ЦПУ через прерывания «сообщение_послано» и «сообщение_получено» . В результате проверки каждого входящего сообщения загрузка ЦПУ очень велика, что ограничивает реальную скорость обмена по сети. По этой причине такие контроллеры используются в сетях CAN с низкой скоростью обмена и/или малым количеством сообщений.

Большинство выпускаемых сегодня CAN-контроллеров используют расширенные кадры сообщений с идентификатором длиной 29 разрядов, что Большинство выпускаемых сегодня CAN-контроллеров используют расширенные кадры сообщений с идентификатором длиной 29 разрядов, что позволяет адресовать до 536 млн сообщений. Такие контроллеры соответствуют спецификации CAN V. 2. 0 B (active) и называются контроллеры Full-CAN. В них предусмотрен буфер для нескольких сообщений, причем каждое сообщение имеет свою маску, и фильтрация осуществляется по соответствию идентификатора маске. В случае Full-CAN ЦПУ максимально разгружено, поскольку не обрабатывает ненужные сообщения. При приеме сообщения с идентификатором, соответствующим маске, оно запоминается в специальной зоне двухпортового ОЗУ, и работа ЦПУ прерывается. Full. CAN имеет также специальный тип сообщения, которое означает: «у кого бы ни находилась эта информация, пожалуйста, пошлите ее сейчас же» . Контроллер Full-CAN автоматически прослушивает все сообщения и посылает запрошенную информацию. Рисунок - Структура контроллера Full-CAN

Элементная база для CAN На самом нижнем уровне CAN-шины находится собственно двухпроводная линия с Элементная база для CAN На самом нижнем уровне CAN-шины находится собственно двухпроводная линия с терминальными резисторами. Далее для повышения помехоустойчивости расположен дифференциальный приемопередатчик — трансивер. На следующем уровне — контроллер со встроенным модулем или автономный модуль CAN, подключаемый к главному контроллеру через параллельный или последовательный порт. Связь с узлами CAN, осуществляющими обмен информацией, ведется через линии портов микроконтроллеров. CAN-контроллеры осуществляют процедуру приемапередачи данных и соединяются с шиной двумя сигналами: Rx. D для приема с шины и Tx. D для передачи на шину. Реализация CAN-шины с помощью микроконтроллеров Infineon представлена на рисунке. Рисунок - Реализация CAN-шины с помощью микроконтроллеров Infineon

Преимущества • • Возможность работы в режиме жёсткого реального времени. Простота реализации и минимальные Преимущества • • Возможность работы в режиме жёсткого реального времени. Простота реализации и минимальные затраты на использование. Высокая устойчивость к помехам. Арбитраж доступа к сети без потерь пропускной способности. Надёжный контроль ошибок передачи и приёма. Широкий диапазон скоростей работы. Большое распространение технологии, наличие широкого ассортимента продуктов от различных поставщиков.

Недостатки Небольшое количество данных, которое можно передать в одном пакете (до 8 байт). • Недостатки Небольшое количество данных, которое можно передать в одном пакете (до 8 байт). • Большой размер служебных данных в пакете (по отношению к полезным данным). • Отсутствие единого общепринятого стандарта на протокол высокого уровня, однако же, это и достоинство. Стандарт сети предоставляет широкие возможности для практически безошибочной передачи данных между узлами, оставляя разработчику возможность вложить в этот стандарт всё, что туда сможет поместиться. В этом отношении CAN подобен простому электрическому проводу. Туда можно «затолкать» любой поток информации, который сможет выдержать пропускная способность шины. Известны примеры передачи звука и изображения по шине CAN (Россия). Известен случай создания системы аварийной связи вдоль автодороги длиной несколько десятков километров (Германия). (В первом случае нужна была большая скорость передачи и небольшая длина линии, во втором случае — наоборот). Изготовители, как правило, не афишируют, как именно они используют полезные байты в пакете. •

Список использованных источников: 1. http: //www. itt-ltd. com/reference/ref_can. html 2. http: //equs. ru/chto_takoe_can_shina http: Список использованных источников: 1. http: //www. itt-ltd. com/reference/ref_can. html 2. http: //equs. ru/chto_takoe_can_shina http: //kazus. ru/nuke/pic/parts/can_pic 18 cxx 8. pdf - модуль CAN в микроконтроллерах PIC 18 CXX 8 С. А. Третьяков, CAN-локальная сеть контроллеров http: //www. inp. nsk. su/~kozak/canbus/980926_doc-01. pdf http: //www. compitech. ru/html. cgi/arhiv/01_07/stat_74. htm CAN шина в промышленных сетях 3. 4. 5.