Промышленная сеть реального времени CAN представляет собой сеть с общей средой передачи данных. Это означает, что все узлы сети одновременно принимают сигналы передаваемые по шине. Невозможно послать сообщение какому-либо конкретному узлу. Все узлы сети принимают весь трафик передаваемый по шине. Однако, CAN-контроллеры предоставляют аппаратную возможность фильтрации CAN-сообщений.
Каждый узел состоит из двух составляющих. Это собственно CAN контроллер, который обеспечивает взаимодействие с сетью и реализует протокол, и микропроцессор (CPU).
Рис. 1. Топология сети CAN.
CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии — CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица — в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В). Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях. Логический ноль — называется доминантным битом, а логическая единица — рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN. При одновременной передаче в шину лог. нуля и единицы, на шине будет зарегестрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).
Типы сообщений сети CAN.
Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:
- Data Frame
- Remote Frame
- Error Frame
- Overload Frame
Видео:лекция 403 CAN шина- введениеСкачать
Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:
- поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
- для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
- для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)
Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).
Рис. 2. Data frame стандарта CAN 2.0A.
Remote Frame — это Data Frame без поля данных и с выставленным битом RTR (1 — рецессивные бит). Основное предназначение Remote кадра — это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется).
Error Frame — это сообщение которое явно нарушает формат солобщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame. Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов. Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag.
Overload Frame — повторяет структуру и логику работы Error кадра, с той разницей, что он используется перегруженным узлом, который в данный момент не может обработать поступающее сообщение, и поэтому просит при помощи Overload-кадра о повторной передаче данных. В настоящее время Overload-кадр практически не используется.
Контроль доступа к среде передачи (побитовый арбитраж).
Видео:Экспресс диагностика CAN шины на автомобиле. №21Скачать
Поле арбитража CAN-кадра используется в CAN для разрешения коллизий доступа к шине методом не деструктивного арбитража. Суть метода не деструктивного арбитража заключается в следующем. В случае, когда несколько контроллеров начинают одновременную передачу CAN кадра в сеть, каждый из них сравнивает, бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны, оба контроллера передают следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится. Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.
Читайте также: Шины продаются вместе с дисками или нет
Рис. 3. Побитовый арбитраж на шине CAN.
Методы обнаружения ошибок.
CAN протокол определяет пять способов обнаружения ошибок в сети:
- Bit monitoring
- Bit stuffing
- Frame check
- ACKnowledgement Check
- CRC Check
Bit monitoring — каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку Bit Error. Естественно, что во время арбитража на шине (передача поля арбитража в шину) этот механизм проверки ошибок отключается.
Bit stuffing — когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.
Видео:CAN шина👏 Как это работаетСкачать
Frame Check — некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Т.е. протокол CAN точно определяет какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.
ACKnowledgement Check — каждый узел получив правильное сообщение по сети посылает в сеть доминантный (0) бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.
CRC Check — каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы, не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.
Механизм ограничения ошибок (Error confinement).
Каждый узел сети CAN, во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). Все остальные узлы обнаруживают Error Frame и принимают соответствующие действия (сбрасывают принятое сообщение). Кроме того, каждый узел ведет два счетчика ошибок: Transmit Error Counter (счетчик ошибок передачи) и Receive Error Counter (счетчик ошибок приема). Эти счетчики увеличиваются или уменьшаются в соответствие с несколькими правилами. Сами правила управления счетчиками ошибок достаточно сложны, но сводятся к простому принципу, ошибка передачи приводит к увеличению Transmit Error счетчика на 8, ошибка приема увеличивает счетчик Receive Error на 1, любая корректная передача/прием сообщения уменшают соответствующий счетчик на 1. Эти правила приводят к тому, что счетчик ошибок передачи передающего узла увеличивается быстрее, чем счетчик ошибок приема принимающих узлов. Это правило соответствует предположению о большой вероятности того, что источником ошибок является передающий узел.
Каждый узел CAN сети может находится в одном из трех состояний. Когда узел стартует он находится в состоянии Error Active. Когда, значение хотя бы одного из двух счетчиков ошибок превышает предел 127, узел переходит в состояние Error Passive. Когда значение хотя бы одного из двух счетчиков превышает предел 255, узел переходит в состояние Bus Off.
Узел находящийся в состоянии Error Active в случае обнаружения ошибки на шине передает в сеть Active Error Flags. Active Error Flags сотстоит из 6 доминантных бит, поэтому все узлы его регистрируют. Узел в состоянии Passive Error передает в сеть Passive Error Flags при обнаружении ошибки в сети. Passive Error Flags состоит из 6 рецессивных бит, поэтому остальные узлы сети его не замечают, и Passive Error Flags лишь приводит к увеличению Error счетчика узла. Узел в состоянии Bus Off ничего не передает в сеть (не только Error кадры, но вообще никакие другие).
Адресация и протоколы высокого уровня
В CAN не существует явной адресации сообщений и узлов. Протокол CAN нигде не указывает что поле арбитража (Identification field + RTR) должно использоваться как идентификатор сообщения или узла. Таким образом, идентификаторы сообщений и адреса узлов могут находится в любом поле сообщения (в поле арбитража или в поле данных, или присутствовать и там, и там). Точно также протокол не запрещает использовать поле арбитража для передачи данных.
Утилизация поля арбитража и поля данных, и распределение адресов узлов, идентификаторов сообщений и приоритетов в сети является предметом рассмотрений так называемых протоколов высокого уровня (HLP — Higher Layer Protocols). Название HLP отражает тот факт, что протокол CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI, а остальные уровни описываются протоколами HLP.
Видео:Подробно про CAN шинуСкачать
Читайте также: Шины гудиер в хабаровске
Рис. 4. Логическая структура протокола CAN.
Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:
Физичекий уровень протокола CAN
Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411).
В подавляющем большинстве случаев используется физический уровень CAN определенный в стандарте ISO 11898. ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом. Физический уровень CAN реализован в специальных чипах — CAN приемо-передатчиках (transceivers), которые преобразуют обычные TTL уровни сигналов используемых CAN-контроллерами в уровни сигналов на шине CAN. Наиболее распространенный CAN приемо-передатчик — Phillips 82C250, который полностью соответствует стандарту ISO 11898.
Махимальная скорость сети CAN в соответствие с протоколом равна 1 Mbit/sec. При скорости в 1 Mbit/sec максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью света и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространится по всему кабелю за единичный отсчет времени в сети. Соотношение между скоростью передачи и максимальной длиной кабеля приведено в таблице:
скорость передачи максимальная длина сети 1000 Кбит/сек 40 метров 500 Кбит/сек 100 метров 250 Кбит/сек 200 метров 125 Кбит/сек 500 метров 10 Кбит/сек 6 километров Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.
Шины для бортовых автомобильных систем
Читатели нашего еженедельника в большинстве своем хорошо знакомы с локальными сетями (ЛС, ЛВС). Однако внедрение микропроцессоров и микропроцессорных контроллеров в самое различное оборудование
потребовало наличия сетей, объединяющих многообразные электронные управляющие устройства (ECU).
Рис. 1. Топология шины CANВидео:поиск нерабочей can шины, часть дваСкачать
Рассмотрим в качестве примера такой сети шину (и соответствующий ей протокол) CAN (Controller Area Network). Она была предложена Робертом Бошем (Robert Bosch) в 80-х годах для автомобильной промышленности, затем стандартизована ISO (ISO 11898) и SAE (Society of Automotive Engineers). (Описание стандартов и большой объем документации по CAN можно найти на сайте http://www.can-cia.de/) Сегодня большинство европейских автомобильных гигантов (например, Audi, BMW, Renault, Saab, Volvo, Volkswagen) используют CAN в системах управления двигателем, безопасности и обеспечения комфорта. В Европе в ближайшие годы будет введен единый интерфейс для систем компьютерной диагностики автомобиля. Это решение также разрабатывается на базе CAN, так что со временем в каждом автомобиле будет по крайней мере один узел этой сети.
Однако сети CAN используются и в таких сложных установках, как современные оптические телескопы с большим диаметром зеркала. Так как такие зеркала невозможно сделать монолитными, их сейчас делают составными, а управление отдельными зеркальцами (их может быть больше сотни) осуществляется сетью микроконтроллеров. Другие сферы применения — корабельные бортовые сети, управление системами кондиционирования воздуха, лифтами, медицинскими и промышленными установками. В мире уже установлено более 100 млн. узлов сетей CAN, ежегодный прирост составляет более 50%.
CAN представляет собой асинхронную последовательную шину, использующую в качестве среды передачи витую пару проводов (см. рисунок 1). При скорости передачи 1 Мбит/с длина шины может достигать 30 м. При меньших скоростях ее можно увеличить до километра. Если требуется большая длина, то ставятся мосты или повторители. Теоретически число подсоединяемых к шине устройств не ограничено, практически — до 64-х. Шина мультимастерная, т. е. сразу несколько устройств могут управлять ею.
Если базироваться на семиуровневой модели OSI, то CAN описывает передачу данных между узлами на двух нижних уровнях — физическом и канальном. Физический уровень разбит на три подуровня: физических сигналов (PLS), соединения с физической средой (PMA) и физического соединения (MDI). Битовый поток кодируется по методу NRZ (без возвращения к нулю), что позволяет работать на меньших частотах, чем, например, при других видах кодирования. Над CAN надстроена реализация протоколов более высоких уровней. Здесь нет жесткой стандартизации и имеется много протоколов или решений компаний. Примером одного из них является разработанный компанией Allen Bradley протокол DeviceNet.
На рынке CAN присутствует в двух версиях: версия А задает 11-битную идентификацию сообщений (т. е. в системе может быть 2048 сообщений), версия B — 29-битную (536 млн. сообщений). Отметим, что версия В, часто именуемая FullCAN, все больше вытесняет версию А, которую называют также BasicCAN.
Сеть CAN состоит из узлов с собственными тактовыми генераторами. Любой узел сети CAN
Характеристики шины Controller Area Network (CAN) посылает сообщение всем системам, подсоединенным к шине, таким, как приборная доска или подсистема определения температуры бензина в автомобиле, а уж получатели решают, относится ли данное сообщение к ним. Для этого в CAN имеется аппаратная реализация фильтрации сообщений. В мире производится множество типов контроллеров CAN. Их объединяет общая структура — каждый контроллер имеет обработчик протокола (CAN protocol handler), память для сообщений, интерфейс с ЦП. Во многих популярных однокристальных микропроцессорах есть встроенный контроллер шины CAN. Поддержкой технологии CAN занимается некоммерческая международная группа CiA (CAN in Automation, http://www.can-cia.de/), образованная в 1992 г. и объединяющая пользователей и производителей технологии CAN. Группа предоставляет техническую, маркетинговую и продуктовую информацию. Осенью 1999 г. в CiA было около 340 членов. Она также занимается разработкой и поддержкой различных базирующихся на CAN протоколов высокого уровня, таких, как CAL (CAN Application Layer), CAN Kingdom, CANopen и DeviceNet. Кроме того, члены группы дают рекомендации, касающиеся дополнительных свойств физического уровня, например скорости передачи и назначения штырьков в разъемах. Замечу, что эта шина развивается в нескольких направлениях. В новом проекте стандарта будет увеличена скорость передачи данных, так как в автомобиле появилось много компьютерных подсистем, связанных с передачей аудио- и видеоинформации. Повышение надежности требует введения так называемой двойной (дублированной) шины CAN. Другие изменения достаточно кардинальны и вызваны появлением нового протокола, рассмотренного ниже. В системах реального времени существует два основных способа управления — по событиям (например, по прерываниям) и по временным меткам. Если первый подход широко распространен, то для второго требуются специальные средства. Одно из них — TTP, Time Triggered Protocol, коммуникационный протокол для высоконадежных приложений. Первоначально он разрабатывался в рамках исследовательской программы, финансируемой Евросоюзом. В этой 15-летней программе принимало участие множество фирм, таких, как DaimlerChrysler, British Aerospace, Alcatel, Temic, Fiat, Ford, Marelli, Bosh, Volvo, и Венский технический университет. Разработкой занято около 100 человек, в нее вложено примерно 25 млн. долл. Созданная в ходе выполнения программы архитектура TTA (Time-Triggered Architecture) признана эффективной для критичных по безопасности систем (автомобильных, железнодорожных, авиационных). TTP является центральной частью проектов SETTA (System Engineering for TTA) и FIT (Fault Injection for TTA), разрабатываемых ЕС в рамках программы ESPRIT. В настоящее время поддержка протокола TTP осуществляется специально созданной для этого компанией TTTech (http://www.ttttech.com/), которая выпускает интегрированные средства разработки (пакет TTPtools) и занимается обучением пользователей протокола. Сотрудничество этой фирмы с Венским техническим университетом привело к появлению протокола TTP/C. Буква C в его названии говорит о том, что протокол удовлетворяет требованиям класса C Ассоциации инженеров автомобилестроения (SAE) на отказоустойчивые протоколы передачи данных для жесткого реального времени.- Топология: последовательная шина, с обоих концов линии стоят заглушки (120 Ом)
- Обнаружение ошибок: 15-битовый CRC-код
- Локализация ошибок: различают ситуации с постоянной ошибкой и временной; устройства с постоянной ошибкой отключаются
- Текущая версия: CAN 2.0B
- Скорость передачи: 1 Мбит/с
- Длина шины: до 30 м
- Количество устройств на шине:
64 (теоретически неограничено)
В отличие от большинства стандартов на мультиплексированные шины для встраиваемых систем, TTP с самого начала разрабатывалась для высоконадежных приложений. В системах управления автомобиля очень важны устойчивость к ошибкам и временные характеристики, связанные, например, с заменой обычных гидравлических тормозов на электромеханические (brake-by-wire), управляемые по сети. Поэтому сети CAN при большом потоке сообщений будут заменяться на TTP/C. Замена гидравлических и механических компонентов в автомобиле обозначается общим термином by-wire applications. При этом образуется жесткая связь между электроникой и исполнительными механизмами, когда требуются надежность, простота сборки и обслуживания. Другой член семейства протоколов TTP — протокол TTP/A — дешевый протокол для сети датчиков и приводов. Он бесшовно интегрируется с TTP/C. Получающаяся в результате архитектура TTA гарантирует, что каждое чтение с датчика и команда на привод будут полностью предсказуемы в соответствии с их временными свойствами. Система управления на базе протокола TTP/C состоит по крайней мере из одного вычислительного кластера, содержащего набор узлов. Узлы общаются по широковещательной шине. Общее время устанавливается с помощью синхронизации таймеров каждого из узлов. На уровне кластера ошибки узла или коммуникаций могут быть замаскированы за счет дублирования узлов и объединения их в группы, устойчивые к сбоям. Такие группы называются FPU (Fault Tolerant Units). Доступ к среде передачи осуществляется по схеме статического TDMA, определенной перед запуском системы. Каждому узлу разрешается посылать до 16 байт данных с 4-байтовым заголовком и 16-битовым контрольным кодом (CRC). Эта посылка осуществляется в предопределенный интервал времени, называемый TDMA-слотом. Источник
В современном автомобиле используется больше сотни микропроцессоров- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
🌟 Видео
Кан шина, что это? Поймет школьник! принцип работыСкачать
Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
#10. Как отправлять сообщения и команды в CAN-шину для управления автомобилем?Скачать
CAN шина поиск неисправностейСкачать
Компьютерная диагностика авто. K-линия и CAN шинаСкачать
CAN Шина. Что такое протокол КАН. Часть 1Скачать
Шина локальной сети контроллеров CAN шина ElectudeСкачать
Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
CAN шина на осциллографе FINIRSI ADS1013DСкачать
Проверка исправности CAN шиныСкачать
тестирование разветвителя CAN-шиныСкачать
CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать