Схема кан шины. CAN шина в автомобиле: что это такое

Современные автомобили всё больше подстраиваются под конкретные потребности людей. В них появилось много дополнительных систем и функций, которые связаны с необходимостью передачи определённой информации. Если бы к каждой такой системе пришлось подключать отдельные провода, как это было раньше, то весь салон превратился бы в сплошную паутину и водителю сложно было бы управлять машиной из-за большого количества проводов. Но решение этой проблемы нашлось – это установка Can-шины. Какая её роль водитель смогут узнать сейчас.

Can шина – имеет ли она что-то общее с обычными шинами и для чего нужна

ВНИМАНИЕ! Найден совершенно простой способ сократить расход топлива! Не верите? Автомеханик с 15-летним стажем тоже не верил, пока не попробовал. А теперь он экономит на бензине 35 000 рублей в год!

Услышав такое определение, как «CAN шина», неопытный водитель подумает что это ещё один вид автомобильной резины. Но на самом деле, к обычным шинам это устройство не имеет никакого отношения. Это устройство создавалось для того, чтобы не было необходимости устанавливать в машине кучу проводов, ведь управление всеми системами машин должно вестись из одного места. Can шина даёт возможность сделать салон автомобиля комфортным для водителя и пассажиров, ведь при её наличии не будет большого количества проводов, позволяет вести управление всеми системами машины и подключать в удобный способ дополнительное оборудование – трекеры, сигнализации, маяки, секретки и другое. В машина старого образца ещё нет такого приспособления, это доставляет много неудобств. Цифровая шина лучше справляется с поставленными на неё задачами, а стандартная система – с кучей проводов, является сложной и неудобной.

Когда была разработана цифровая CAN шина и какое её назначение

Разработка цифровой шины началась ещё в двадцатом веке. Ответственность за этот проект взяли на себя две компании – INTEL и BOSCH.
После некоторых совместных усилий, специалистами этих компаний был разработан сетевой индикатор – CAN. Это была проводная система нового образца, по которой передаются данные. Такую разработку назвали шиной. Она являет собой два витых провода достаточно крупной толщины и по ним передаётся вся необходимая информация для каждой из систем автомобиля. Есть и шина, которая представляет из себя жгут проводов – её называют параллельной.

Если к CAN шине подключить автосигнализацию, то возможности охранной системы увеличатся, а прямым назначением этой автомобильной системы можно назвать:

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

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

Can шина – параметры скорости и особенности передачи данных

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

  • общая скорость передачи информационных потоков по цифровой шине –1 мб/с;
  • скорость передачи переработанной информации между блоками управления автомобиля – 500 кб/с;
  • скорость поступления информации к системе «Комфорт» — 100 кб/с.

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

Цифровая шина – это целая сеть контролёров, которые объединились в одно компактное устройство и имеют возможность быстро получать или передавать информацию, запуская или отключая определённые системы. Последовательный режим передачи данных делает работу системы более слаженной и корректной. CAN шина – это механизм, который имеет тип доступа Collision Resolving и при установке дополнительного оборудования необходимо учитывать этот факт.

Могут ли возникать проблемы в работе кан шины

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

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

  • проверить работу системы в целом и запросить банк неисправностей;
  • проверка напряжения и сопротивления проводников;
  • проверка сопротивления резисторных перемычек.

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

Какие системы входят в современную Can шину автомобиля

Все знают что кан шина – это анализатор информации и доступное устройство для передачи команд к основным и дополнительным системам транспортного средства, дополнительному оборудованию – автосигнализация, датчики, трекеры. Современная цифровая шина включает в себя следующие системы:

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

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

CAN шина, как подключается автосигнализация к цифровой шине

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

  1. Автосигнализация по стандартной схеме подключается ко всем точкам автомобиля.
  2. Владелец транспортного средства ищет оранжевый, толстый провод – он ведёт к цифровой шине.
  3. Адаптер сигнализации подключается к проводу цифровой шины автомобиля.
  4. Производятся необходимые закрепляющие действия –установка системы в надёжном месте, изоляция проводов, проверка правильности произведённого процесса.
  5. Настраиваются каналы для работы с системой, задаётся функциональный ряд.

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

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

Для обмена информацией между ними требовалась надежная коммуникационная сеть.
В середине 80-х годов прошлого столетия компанией BOSCH была предложена новая концепция сетевого интерфейса CAN (Controller Area Network).

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

Как правило, провода CAN-шины оранжевого цвета, иногда они отличаются различными цветными полосами (CAN-High - черная, CAN-Low - оранжево-коричневая).

Благодаря применению данной системы из состава электрической схемы автомобиля высвободилось определенное количество проводников,которые обеспечивали связь, например, по протоколу KWP 2000 между контроллером системы управления двигателем и штатной сигнализацией, диагностическим оборудованием и т.д.

Скорость передачи данных по CAN-шине может достигать до 1 Мбит/с, при этом скорость передачи информации между блоками управления (двигатель - трансмиссия, ABS - система безопасности) составляет 500 кбит/с (быстрый канал), а скорость передачи информации системы "Комфорт" (блок управления подушками безопасности, блоками управления в дверях автомобиля и т.д.), информационно-командной системы составляет 100 кбит/с (медленный канал).

На рис. 1 показана топология и форма сигналов CAN-шины легкового автомобиля.

При передаче информации какого-либо из блоков управления сигналы усиливаются приемо-передатчиком (трансивером) до необходимого уровня.

Каждый подключенный к CAN-шине блок имеет определенное входное сопротивление, в результате образуется общая нагрузка шины CAN. Общее сопротивление нагрузки зависит от числа подключенных к шине электронных блоков управления и исполнительных механизмов. Так, например, сопротивление блоков управления, подключенных к CAN-шине силового агрегата, в среднем составляет 68 Ом, а системы "Комфорт" и информационно-командной системы - от 2,0 до 3,5 кОм.

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

На рис. 2 показан фрагмент CAN-шин с распределением нагрузки в линиях CAN-High, CAN-Low.

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

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

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

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

В данном случае большим плюсом в проведении диагностических работ является наличие единого унифицированного диагностического разъема (колодка OBD).

На рис. 3 показана блок-схема межсетевого интерфейса.

Следует учесть, что на некоторых марках автомобилей, например, на Volkswagen Golf V, CAN-шины системы "Комфорт" и информационно-командная система не соединены межсетевым интерфейсом.

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

Диагностика неисправностей CAN-шины производится с помощью специализированной диагностической аппаратуры (анализаторы CAN-шины) осциллографа (в том числе, со встроенным анализатором шины CHN) и цифрового мультиметра.

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

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

CAN-шины современного автомобиля

  • CAN шина силового агрегата
  • Электронный блок управления двигателя
  • Электронный блок управления КПП
  • Блок управления подушками безопасности
  • Электронный блок управления АБС
  • Блок управления электроусилителя руля
  • Блок управления ТНВД
  • Центральный монтажный блок
  • Электронный замок зажигания
  • Датчик угла поворота рулевого колеса
  • CAN-шина системы "Комфорт"
  • Комбинация приборов
  • Электронные блоки дверей
  • Электронный блок контроля парковочной

Системы

  • Блок управления системы "Комфорт"
  • Блок упрввления стеклоочистителей
  • Контроль давления в шинах

CAN-шина информационно-командной системы

  • Комбинация приборов
  • Система звуковоспроизведения
  • Информационная система
  • Навигационная система

В современных машинах используются электронные блоки управления (ЭБУ, ECU - Electronic Control Unit) для контроля и управления различными системами машины, такими как гидравликой, коробкой передач и двигателем.
Аналогично тому, как компьютеры могут быть соединены в одну сеть, блоки управления в машине тоже можно объединить.

Преимущества сетевого соединения:

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

Например, ЭБУ двигателя может обмениваться с другими ЭБУ машины по системе сети CAN .

Система CAN :Controller Area Network - сеть контроллеров. CAN разработан компанией Robert Bosch GmbH в середине 1980-х и в настоящее время получил широкое применение в автомобильной, авиационной, тракторостроительной и других видах промышленности.

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

Рисунок - CAN шина из 4-х блоков управления.

Выше показана шина CAN, состоящая из 4-х блоков управления. На концах общего кабеля (шины) устанавливается согласующие сопротивления (терминаторы, резисторы) Обычно сопротивление каждого резистора составляет 120 Ом. Применение согласующих резисторов на концах системы позволяет избежать отражение сигнала в конце линии тем самым обеспечивая нормальную работу всей CAN сети.

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

В нашем случае блок №2 отправляет один сигнал по двум витым проводам в шину CAN, причем у этого сигнала будет различное напряжение на каждом проводе витой пары. Другие блоки в сети читают сигнал и определяют какому блоку оно предназначено и какую команду нужно выполнить (Блоки №1 и №4)

Передача одного и того же сигнала на два провода (CAN High и CAN low) с разным напряжением происходит методом "дифференциальной передачи данных". В состоянии покоя напряжение на проводе CAN High и CAN low составляет 2,5 В. Такое состояние называется "рецессивное" и упрощенно соответствует значению бита "0" При переходе в активное "доминантное" состояние (такое состояние может создать любой элемент сети) напряжение на проводе CAN High будет повышаться не меньше чем на 1 В до 3,5 В, а CAN low понижаться - тоже на 1 В до 1,5В. Чтобы "понимать" разницу напряжений между CAN High и CAN low, каждый блок управления подключается к шине CAN через трансивер, где происходит преобразование разности напряжений U CAN Hi и U CAN Lo в итоговое напряжение U DIFF . Разница между CAN High и CAN low будет 2В и будет восприниматься принимающими блоками управления как значение бита, равное "1". Такая "дифференциальная передача" сигнала, исключает влияние базового напряжения 2,5 В и другие скачки напряжений из-за различных помех на работу блоков управления. Например, происходит просадка напряжения в бортовой сети на 1,5 В из-за включения мощного потребителя в сеть: U CAN Hi и U CAN Lo в состоянии покоя 2,5 -1,5 = 1 В (U DIFF = 1 - 1 = 0 - Значение бита "0") Разница, при переходе в доминантное состояние U CAN Hi = 2,5 +1 -1,5 = 2 В; U CAN Lo =2,5 -1 -1,5 = 0 В. Итого U DIFF = 2 - 0 = 2 В (Значение бита "1"), даже такая нереальная просадка не повлияла на работу.

Рисунок - Принцип линии CAN

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

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

Рисунок -Структура сообщения

Напоследок пример работы:

Переключением кнопки инициируем команду блока управления №1 передачу сообщений в шину CAN. Блок №2 получает сообщение и расшифровав в сообщении что кадр пришел для него с командой включить свет. Подается бортовое напряжение на потребитель.

Рисунок - Принцип коммуникации через CAN

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

Шина CAN-bus была создана в конце 80-х годов фирмой Robert Bosch GmbH (Германия) как решение для распределенных систем, работающих в режиме реального времени. Отличительной особенностью шины является ее высокая помехозащищенность. Дополнительным преимуществом шины CAN выступает ее устойчивость к механическим повреждениям - замыкание проводников шины на общий провод, питание или между собой не приводит к выходу из строя устройств. Более того, некоторые модификации шины способны функционировать при обрыве одного из проводников.

CAN-шина в промышленных сетях

Полевая шина CAN (Controller Area Network) характеризуется высокими скоростью передачи данных и помехоустойчивостью, а также способностью обнаруживать любые возникающие ошибки. Благодаря этому CAN сегодня широко используется в таких областях, как автомобильный и железнодорожный транспорт, промышленная автоматика, авиация, системы доступа и контроля. По данным ассоциации CiA (CAN in Automation, www.can-cia.de), в настоящее время в эксплуатации находится около 300 млн CAN-узлов по всему миру. В Германии CAN-шина занимает первое место по популярности среди остальных полевых шин.

Характеристики протокола CAN Преимущества CAN

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

Испытанный стандарт. Протокол CAN активно используется уже более 20 лет, что очень важно для таких консервативных областей как железнодорожный транспорт или судостроение. CAN был разработан в 1980 г. фирмой Robert Bosch для автомобильной промышленности. CAN-интерфейс регламентирован международными стандартами ISO 11898 для высокоскоростных и ISO 11519-1 для низкоскоростных приложений. Низкая стоимость определяется хорошим соотношением цена/производительность, также широкой доступностью CAN-контроллеров на рынке. Надежность определяется линейной структурой шины и равноправностью ее узлов, так называемой мультимастерностью (Multi Master Bus), при которой каждый узел CAN может получить доступ к шине. Любое сообщение может быть послано одному или нескольким узлам. Все узлы одновременно считывают с шины одну и ту же информацию, и каждый из них решает, принять данное сообщение или игнорировать его. Одновременный прием очень важен для синхронизации в системах управления. Отказавшие узлы отключаются от обмена по шине.



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

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

Работа в реальном времени становится возможной благодаря механизмам сетевого взаимодействия (мультимастерность, широковещание, побитовый арбитраж) в сочетании с высокой скоростью передачи данных (до 1 Мбит/с), быстрой реакцией на запрос передачи и изменяемой длиной сообщения от 0 до 8 байт.

Приложения CAN

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

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

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

Физический уровень CAN-шины представляет собой соединение «монтажное И» между всеми устройствами, подключенными к ней. Дифференциальные сигнальные линии называются CAN_H и CAN_L и в статическом состоянии находятся под потенциалом 2,5 В. Лог. 1 (рецессивный бит) обозначает состояние шины, при котором уровень на линии CAN_H выше, чем уровень CAN_L. При лог. 0 (доминантный бит) уровень на линии CAN_H ниже, чем уровень CAN_L. Принято следующее соглашение о состоянии шины: пассивное состояние шины соответствует уровню лог. 1, а активное - уровню лог. 0. Когда сообщения не передаются по шине, она находится в пассивном состоянии. Передача сообщения всегда начинается с доминантного бита. Логика работы шины соответствует «проводному И»: доминантный бит «0» подавляет рецессивный бит «1» (рис. 12.1).

Рис. 12.1. Логика работы CAN шины

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

Максимальная скорость передачи данных составляет 1 Мбит/с при длине шины 40 м и около 40 Кбит/с при длине шины 1000 м.

Разновидности CAN

В настоящее время доступны различные устройства с CAN-интерфейсом, которые помимо передачи данных из одной точки в другую позволяют реализовать синхронизацию процессов и обслуживание по приоритетам. Более ранние реализации CAN-контроллеров используют кадры с 11-разрядным идентификатором и возможностью адресации до 2048 сообщений и соответствуют спецификации CAN V. 2.0A. Такие контроллеры носят название Basic CAN и характеризуются сильной загруженностью центрального процессора (ЦПУ), так как каждое входящее сообщение запоминается в памяти и ЦПУ решает, нужны ему данные сообщения или нет (рис. 12.2). Контроллеры Basic CAN содержат один передающий буфер и один или два приемных буфера сообщений. Чтобы послать или получить сообщение, требуется задействовать ЦПУ через прерывания «сообщение_послано» и «сообщение_получено». В результате проверки каждого входящего сообщения загрузка ЦПУ очень велика, что ограничивает реальную скорость обмена по сети. По этой причине такие контроллеры используются в сетях CAN с низкой скоростью обмена и/или малым количеством сообщений.

Рис. 12.2. Структура контроллера Basic CAN

Большинство выпускаемых сегодня CAN-контроллеров используют расширенные кадры сообщений с идентификатором длиной 29 разрядов, что позволяет адресовать до 536 млн сообщений. Такие контроллеры соответствуют спецификации CAN V. 2.0B (active) и называются контроллеры Full-CAN. В них предусмотрен буфер для нескольких сообщений, причем каждое сообщение имеет свою маску, и фильтрация осуществляется по соответствию идентификатора маске.

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

Рис. 12.3. Структура контроллера Full-CAN

До недавнего времени в промышленности был широко распространен Basic CAN с 11-разрядным идентификатором. Этот протокол допускает простую связь между микроконтроллерами и периферийными устройствами при скорости обмена вплоть до 250 Кбит/с. Однако при стремительном удешевлении CAN-контроллеров использование Full-CAN стало оправданным и для связи с медленными устройствами. Если в промышленных приложениях требуется высокоскоростной (до 1 Мбит/с) обмен данными, то непременно следует использовать Full-CAN.

Арбитраж узлов CAN-шины

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

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

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

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

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

Формат сообщений

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

Рис. 12.4. Кадр данных (Data Frame)

Для передачи данных служит кадр данных - Data Frame (рис. 12.4), который содержит:

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

Для запроса информации узел CAN использует кадр запроса данных Remote Frame (рис. 12.5), который содержит:

  • идентификатор, определяющий тип запрашиваемой информации («скорость_ двигателя», «температура_масла») и приоритет сообщения;
  • два байта контрольной суммы CRC .

Рис. 12.5. Кадр запроса данных Remote Frame

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

Дополнительная информация, содержащаяся в кадре, позволяет определить формат и синхронизацию протокола передачи сообщения и тип посылки:

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

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

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

В CAN существует несколько разновидностей ошибок. Из них три типа на уровне сообщений:

  • CRC Error - ошибка контрольной суммы (при несовпадении принятой в поле CRC и вычисленной контрольных сумм).
  • Form Error - ошибка формата кадра при несоответствии принятого сообщения формату CAN.
  • Acknowledgement Error - ошибка подтверждения приема сообщения, если ни один из узлов не подтвердил правильного получения сообщения.

Кроме того, существует два типа ошибок на битовом уровне:

  • Bit Error - обнаружение активным узлом расхождения между посланным в шину уровнем и фактическим значением за счет реализации узлом механизма самоконтроля.
  • Stuff Error - наличие в поле сообщения шести следующих подряд бит 0 или 1 (ошибка битстаффинга).

Благодаря этим механизмам обнаружения и коррекции ошибок вероятность пропуска ошибки крайне мала. Например, при скорости 500 Кбит/с, загруженности шины 25 % и использовании в течение 2000 часов в год возникает лишь одна необнаруженная ошибка за 1000 лет. Кроме того, в шине невозможна ситуация блокировки неисправным узлом работы всей сети. Такие узлы обнаруживаются и отключаются от обмена по шине.

В данной статье не будем полностью расписывать CAN протокол, а обратим внимание лишь на вещи, которые надо обязательно знать и понимать для использования или разработки электронных устройств с поддержкой CAN.

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

Канальный и физический уровни CAN

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

Структура узла сети CAN

Рассматриваемый нами узел сети CAN состоит из микроконтроллера, CAN контроллера и приемопередатчика (рисунок 1). Чаще всего мы используем микроконтроллеры с встроенным CAN контроллером для упрощения схемы, но иногда используется автономный контроллер CAN с интерфейсом SPI (MCP2510). Далее приемопередатчик подключается к витой паре, на концах которой размещены согласующие резисторы (терминатор) с сопротивлением 120 Ом.

Рисунок 1 – Узел сети CAN

Для формирования логической единицы в витой паре, или свободной шине, на оба провода подается напряжение, равное половине разности напряжения между 0 или Vcc. Логическому нулю соответствует подача на провода линии дифференциального напряжения (рисунок 2).




Рисунок 2 – Логические уровни на CAN-шине

Шина CAN позволяет передавать данные со скоростью 1 Мбит/c при длине кабеля не более 40 м. В обучающей литературе написано, что при снижении скорости передачи до 10кбит/с можно добиться длины сети в 1.5км.

Пакет сообщения CAN

Формат сообщения CAN показан на рисунке 3.




Рисунок 3 – Пакет сообщения CAN

По факту пакет сообщения формируется CAN контроллером, а прикладное ПО только устанавливает идентификатор сообщения, длину сообщения и предоставляет байты данных, поэтому полностью рассматривать пакет не будем, а посмотрим на данные которые мы изменяем при работе с CAN шиной.

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

Арбитраж на шине CAN

Если без подробностей, то первым по шине CAN всегда передается сообщение с наименьшим идентификатором.

Настройка скорости передачи данных по шине CAN

Скорость передачи данных по CAN шине настраивается за счет формирования квантов времени, а не как во многих других протоколах последовательной передачи данных за счет делителя скорости. В большинстве случаев используются скорости 10Кбит/c, 20Кбит/c, 50Кбит/c, 100Кбит/c, 125Кбит/c, 500Кбит/c, 800Кбит/c, 1MBaud и настройки для этих скоростей уже посчитаны. На рисунке 4 изображено окно выбора скорости в программе PcanView.



Рисунок 4 – Выбор скорости передачи данных в программе PcanView

Как мы видим при установке стандартной скорости настройки проставляются автоматически, но бывают случаи когда необходимо использовать другую скорость передачи данных. Например бортовой CAN автомобиля может работать со скоростью 83Кбит/c. В этом случае придется провести расчет настроек самостоятельно или поискать специализированный калькулятор скорости в интернете. Для самостоятельного расчета скорости необходимо понимать, что для передачи одного бита сообщения используется несколько квантов, а интервал передачи состоит из трех сегментов (рисунок 5).




Рисунок 5 – Время передачи одного бита

Первый сегмент всегда фиксирован и равняется одному кванту. Далее идет два сегмента Tseg1 и Tseg2 и количество квантов в каждом сегменте определяется пользователем и может быть равно от 8 до 25. Точка выборки находится между Tseg1 и Tseg2, т.е. в конце первого и в начале второго сегмента. Так же пользователь может определить ширину скачка синхронизации (Synchronization Jump Width - SJW) для подстройки битовой скорости принимающего устройства, который может быть в диапазоне 1 – 4 квантов времени.

Теперь приведем формулу расчета скорости (Пример расчета скорости для CAN контроллера SJA1000):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR – скорость передачи данных,

Pclk – частота работы CAN контроллера,

BRP – значение предделителя частоты генератора скорости передачи

Tseg1 – первый сегмент

Tseg2 – Второй сегмент

Для проверки возьмем уже посчитанную скорость 125Кбит/c и попробуем получить настройки вручную. Pclk возьмем 16 МГц.

BRP = 16МГц /(125K * (1 + Tseg1 + Tseg2))

Затем подбираем интервал передачи бита находящийся в диапазоне от 8 до 25 квантов времени, так что бы получилось целое значение BRP. В нашем случае если взять (1 + Tseg1 + Tseg2) = 16, то BRP будет равен 30.

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Подставляем значения и получаем 16 * 0.7 = 11.2, что соответствует соотношению Tseg1 = 10, Tseg2 = 5, т.е. 1 + 10 + 5 = 16. Далее смотрим если Tseg2 >= 5, то SJW = 4, если Tseg2 < 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

Итого для получения скорости 125Кбит/c необходимо в параметрах указать, BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4.

P.S. Конфигурирование baud rate значительно отличается между старыми модулями USB-CANmodul (GW-001 и GW-002) с контроллером SJA1000 и новыми модулями sysWORXX с контроллером AT91SAM7A3. В статье описывающей работу с бортовым CAN автомобиля на скорости 83кбит/c приведен расчет скорости для контроллера AT91SAM7A3.


Пример получения и передачи данных по CAN-интерфейсу

В примере будем использовать CAN-адаптер с программой PcanView от SYSTEC и подключимся к салонному CAN автомобиля, работающему со скоростью 125Кбит/с. Рассматриваемый нами автомобиль оснащен креслами с электроприводом и поэтому исследуем данные отвечающие за положение кресел и постараемся изменить положение спинки подменив пакет с помощью компьютера.

Для начала на схеме автомобиля находим наиболее удобно расположенный разъем с линиями CANH и CANL и подключаем к нему наш адаптер. Если разъем и провода найти не получилось, то можно подлезть к блоку управления кресла, найти там два скрученных между собой провода и аккуратно надрезав провода подключить адаптер. Если после подключения и настройки адаптера сообщения не приходят, то в первую очередь попробуйте поменять между собой CANH CANL и проверить включено ли зажигание.
Далее запускаем программу PcanView, в открывшемся окне настроек устанавливаем Baudrate = 125Кбит/c и нажимаем ОК (рисунок 4). В следующем окне устанавливаем Message filter = Standard, диапазон адресов от 000 до 7FF и нажимаем ОК (рисунок 6).



Рисунок 6 – Настройка CAN фильтра

Если все сделано правильно, то мы увидим сообщения от кресел (рисунок 7), а при нажатии кнопки наклона спинки на пульте управления мы увидим еще одно сообщение с адресом 1F4 идущее от пульта к креслу (рисунок 8).



Рисунок 7 – CAN сообщения от кресла с электроприводом


Рисунок 8 – CAN сообщения от кресла с электроприводом и сообщение от пульта управления к креслу

Теперь мы знаем какие должны быть адрес, длина и данные в CAN пакете для имитации нажатия кнопки изменения положения спинки. Во вкладке Transmit нажимаем NEW и в открывшемся окне создаем копию пакета 1F4, т.е. ID = 1F4, Length = 3, Data = 40 80 00. Period можно оставить 0 ms, тогда сообщения будут отправляться по факту нажатия кнопки пробел (рисунок 9).



Рисунок 9 – Создание CAN сообщения

На рисунке 10 отображено поле Transmit главного окна содержащее все отправляемые сообщения в CAN и информацию о них. При выделении сообщения и нажатии кнопки пробел произойдет отправка пакета в CAN сеть и кресло немного сдвинется в нужном направлении.



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

Итог

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