Шина данных can трансмиссии
- Ох эти три буквы… Спокойно, всё пристойно, я про CAN.
- Еще раз о диагностике CAN-шины
- Введение в протокол CAN
- Типы сообщений сети CAN.
- Контроль доступа к среде передачи (побитовый арбитраж).
- Методы обнаружения ошибок.
- Механизм ограничения ошибок (Error confinement).
- Адресация и протоколы высокого уровня
- Физичекий уровень протокола CAN
- CAN шина в автомобиле: что это такое
- Что такое CAN шина
- Как работает CAN шина
- Для чего CAN шина в автомобиле
- Плюсы и минусы CAN шины
- Возможные проблемы с CAN шиной
- CAN-шина
- Особенности устройства CAN-шины
- Передача данных по Кан-шине
- Обзор возможностей протокола CAN
- Скорость передачи данных CAN-шины
- Протоколы высокого уровня
- Достоинства и недостатки протокола CAN
- Принцип работы и диагностика CAN-шины в автомобиле
- Суть CAN-шины
- Неисправности
Ох эти три буквы… Спокойно, всё пристойно, я про CAN.
CAN шина, что же это такое? Много информации читал, но нихрена не понимал. А тут вот нашлось простое и доходчивое объяснение, которое поймёт и ребёнок. А может и не поймет…
В CAN сети все ЭБУ подключены к шине параллельно. Обмен данными производится короткими пакетами — сообщениями.
CAN сообщение
Каждое сообщение содержит идентификатор, который в сети является уникальным (например, «Температура двигателя 100 град» или «Скорость автомобиля 50 км/ч»). При передаче, все ЭБУ в сети получают сообщение и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному ЭБУ, то оно обрабатывается, в противном случае – игнорируется. Идентификатор может быть длиной 11 бит или 29 бит.
Арбитраж
В шине CAN биты 0 и 1 имеют ещё одно название: рецессивный уровень и доминантный уровень, соответственно. Если двумя разными передатчиками будет одновремнно передан рецессивный и доминантный уровни, то доминантный уровень подавит рецессивный. Этим механизмом подавления обеспечивается арбитраж на шине. Каждый передатчик одновремнено считывает то, что он предаёт в шину. Передатчик с более низким приоритетом вынужден отпустить шину, так как чужой доминантный уровень с более высоким приоритетом исказил его предачу. В то же время, пакет с более высоким уровнем остался неизменным. Передатчик, потерявший арбитраж, может повторить попытку через некоторе время.
Физический уровень
В автомобиле может применяться несколько типов шин CAN.
Высокоскоростной CAN (High speed) применяется в основном в сети управления двигателем и управления шасси. Там, где необходима высокая скорость реакции. Скорость обмена по этой шине 500 или 250 кбит/сек.
Схема подключения ЭБУ к высокоскоростной шине CAN
Низкоскоростной CAN (Low speed) применяется в сети управления кузова. Скорость обмена по этой шине, как правило, равняется 125 кбит/сек.
Схема подключения ЭБУ к низкоскоростной шине CAN
Однопроводный CAN (1-wire) Это удешевлённый варинат Low speed CAN, применяется в основном концерном GM. Используется для коммуникации между ЭБУ кузова машины. Работает на скорости 33,3 кбит/сек.
Схема подключения ЭБУ к однопроводной шине CAN
Надёжность
Двухпроводная шина сохраняет свою работоспособность при обрыве или замыкании одного из проводов (для двухпроводной шины).
Фазы работы
Шина CAN используется в автомобилях достаточно давно. Изначально шина CAN использовалась в простых конфигурациях. Например, для надёжной и быстрой связи между ЭБУ мотора и ЭБУ автоматической коробки передач. В этой конфигурации шина использовалась только для передачи данных. В ЭБУ заводилась линия питания и линия от замка зажигания, диагностика производилась по отдельным К-линиям, идущим из каждого ЭБУ.
В более современных автомобилях, по шине CAN передаётся не только управляющая, но и диагностическая информация. Помимо этого, шина CAN стала управлять системой питания ЭБУ. В этой конфигурации все ЭБУ подключены к общему питанию и шине CAN. Замок зажигания является электронным блоком управления и информация о включении зажигания передаётся от него по CAN шине.
Можно выделить четыре основные фазы работы шины:
Спящий режим
В этом режиме все ЭБУ, кроме ЭБУ замка, находятся в выключенном состоянии. На драйвер CAN подается питание. Драйвер так же находится в спящем состоянии. При этом, его энергопотребление составляет около 0,3 мА.
Пробуждение
Когда вставляется ключ зажигания или открывается дверь, замок выдаёт доминантное состояние в шину CAN. Это приводит к пробуждению CAN драйверов в спящих ЭБУ. Драйверы при обнаружении активности на шине включают стабилизаторы питания в своих ЭБУ.
Активный режим
В активном режиме ЭБУ постоянно обмениваются информацией. Энергопотребление каждого предатчика при доминантных уровнях может достигать 80 мА.
Засыпание
В момент выключения зажигания, по шине CAN выдаётся команда на выключение, после чего каждый ЭБУ сам себя обесточивает и преходит в спящий режим.
Примечание:
Для однопроводной шины CAN сигнал пробуждения имеет уровень 12 В, обычный обмен 0-4 В.
Немного отступлю от первоисточника.
Самый главный плюс, это очень высокая помехозащищённость сигнала. В чём прикол? Одновременно идут два дублирующих сигнала, только один высокий, второй низкий. Ловят они помеху. Помеха воздействует одинаково на оба сигнала. А на выходе у нас одинаковый уровень. Два уровня сигнала компенсируют помеху. Наглядно это выглядит вот так:
Вот такие пироги. Наткнулся тут : quantexlab
Еще раз о диагностике CAN-шины
В мы поговорили о проблемах в шине передачи данных CAN, возникших в результате износа аккумуляторной батареи и просадки питающего напряжения при запуске ниже порога работоспособности шины. Сегодня продолжим разговор о CAN-шине, но немного в другом ключе: прежде всего вспомним принцип ее работы, а затем рассмотрим один из случаев топологии шины и разберем осциллограмму дефекта.
Эта шина используется чаще всего как средство обмена данными в системах, для которых критично быстродействие и время принятия решения. Таковыми являются, например, система управления движением, объединяющая между собой блоки управления двигателем, автоматической трансмиссией, антиблокировочной системой тормозов, усилителем руля и т.п.
Конструктивно шина представляет собой неэкранированную витую пару. Провода шины называются CAN High и CAN Low.
Шина может находиться в двух состояниях:
- Рецессивное состояние, или логическая единица. Оба провода в этой ситуации имеют практически одинаковый потенциал: и на проводе CAN High, и на проводе CAN Low присутствует около 2 , 5 В. В рецессивном состоянии шина может находиться сколь угодно долго, хотя в реальности этого не происходит, ведь рецессивное состояние – это всего лишь пауза между сеансами передачи информации.
- Доминантное состояние, или логический ноль. В него шина переходит тогда, когда один из входящих в сеть блоков управления начинает передачу данных. Потенциалы на проводах шины меняются следующим образом: на проводе CAN High потенциал повышается на один вольт, на проводе CAN Low наоборот, становится на один вольт ниже.
Рассмотрим форму сигнала шины, чтобы обосновать ее помехоустойчивость:
На рисунке показаны доминантный и рецессивный уровни шины, а также воздействие на шину электромагнитной помехи. Особенностью обработки сигналов шины является то, что в расчет берется не сам уровень сигнала, а разница уровней между проводами CAN High и CAN Low. При рецессивном уровне эта разница близка к нулю, при доминантном уровне она максимальна.
В витой паре провода располагаются очень близко друг к другу. Если возникает внешняя электромагнитная помеха X, то она является синфазной и наводит одинаковый всплеск напряжения в обоих проводах шины. В итоге на обоих проводах появляется наведенный помехой импульс, но разница потенциалов между проводами при этом не меняется. Это позволяет эффективно подавлять внешние помехи, что является большим преимуществом CAN-шины.
На самом деле витая пара – давно известный способ борьбы с помехами. В медицине, например, в кардиостимуляторах, где требуется высочайшая помехоустойчивость, она применяется очень широко.
Сигнал шины поступает в блок управления на дифференциальный усилитель и обрабатывается. Иллюстрация поясняет процесс обработки:
Большинство автопроизводителей придерживаются скорости передачи 500 кБд, соответственно, продолжительность одного бита при этом составит 2 мкс.
Поговорим о топологии CAN-шины. Физически у шины нет начала и нет конца, шина – это просто единая сеть. Чаще всего встречаются два типа топологии: линейная топология и топология «пассивная звезда», а также их сочетания.
На современных автомобилях шина CAN очень разветвленная. Чтобы не перегружать линию большим количеством передаваемых данных, шина может состоять из нескольких ветвей, объединенных межсетевым шлюзом, иначе называемым Gateway. В итоге сеть представляет собой несколько ответвлений, в том числе и на диагностический разъем, использующих разную скорость и протоколы обмена.
Поэтому топология шины – вопрос для диагноста очень актуальный и, к сожалению, довольно сложный. Из тех электрических схем, которыми располагает диагност, не всегда можно понять топологию. Но в документации некоторых автопроизводителей приводится полная и подробная информация, в этом случае задача сильно упрощается.
Не зная тонкостей организации шины, найти в ней неисправность бывает достаточно сложно. Например, при наличии окисления контактов в разъеме пропадает связь с целым рядом блоков управления. Наличие под рукой топологии шины позволяет легко находить подобные проблемы, а отсутствие приводит к большой потере времени.
Ну что ж, мы немного освежили в памяти теорию шины, теперь самое время перейти к практике.
Перед нами автомобиль Infinitit Q 50 , оснащенный весьма редким турбированным мотором VR 30 DDT объемом 3 . 0 л и мощностью 400 лошадиных сил. Но проблема заключается не в этом замечательном агрегате, а как раз в CAN-шине: подключив диагностический сканер, не удается установить связь с доброй половиной блоков управления.
Нам повезло – Nissan относится к тому узкому кругу производителей, которые дают диагностам качественную и полноценную информацию. В том числе есть в документации и подробная топология бортовой шины обмена данными. Открываем, смотрим:
Следует сказать, что приведенная блок-схема достаточно общая. В документации имеется гораздо более подробная электрическая схема со всеми проводами и номерами контактов в блоках, но сейчас она нам пока что ни к чему, нам важно понять общую топологию.
Итак, первое, что нужно увидеть, это то, что вся сеть разделена на три большие ветви, обведенные пунктиром:
- CAN communication circuit 1 (Коммуникационная цепь CAN 1 );
- CAN communication circuit 2 (Коммуникационная цепь CAN 2 );
- Chassis communication circuit (Коммуникационная цепь шасси).
Первые две цепи связаны между собой посредством CAN gateway (найдите его на иллюстрации). Цепь шасси связана с цепью CAN 2 через блок управления шасси, который также играет роль своеобразного Gateway.
А теперь вновь обратимся к сканеру и посмотрим, какие из блоков управления не выходят на связь. Дилерский сканер предоставляет нам очень удобную функцию: на экран выводятся блоки каждой из цепей по отдельности, а цветом отображается возможность (зеленый) либо невозможность (красный) установить с ними связь. Вот блоки цепи CAN 1 :
А это – блоки цепи CAN 2 . Как видно, связи с ними попросту нет:
Также нет связи с блоками цепи шасси, но это и понятно: эта цепь, согласно блок-схеме, подключена к цепи CAN 2 .
Ну что ж, задача почти решена, осталось лишь локализовать неисправность. А для этого воспользуемся мотортестером и снимем осциллограмму на проводах шины сначала в CAN 1 , а затем в CAN 2 и сравним их.
Сделать это очень несложно, ведь обе шины выведены прямо на диагностический разъем. Согласно более подробной схеме, о которой упоминалось выше, на контакты диагностической колодки 6 и 14 выведены провода CAN 1 , а на контакты 12 и 13 – провода CAN 2 .
Снимаем осциллограмму в цепи CAN 1 . Она имеет прямо-таки академический вид:
Давайте обмерим ее с помощью линеек.
- На проводе CAN High в рецессивном состоянии потенциал составил 2 , 26 В, на проводе CAN Low – 2 , 25 В.
- На проводе CAN High в доминантном состоянии потенциал составил 3 , 58 В, на проводе CAN Low – 1 , 41 В.
- Ширина импульса, соответствующего одной единице передаваемой информации, составляет 2 мкс (обведено красным прямоугольником).
Просто идеальное соответствие теории и практики. Конечно, полосы пропускания нашего прибора явно недостаточно для корректного отображения сигнала, слишком уж широк его спектр. Однако, если закрыть на это глаза, то вполне можно оценить качество сигнала и сделать необходимые выводы.
А теперь делаем ту же операцию на контактах диагностической колодки 12 и 13 , чтобы получить осциллограмму сигнала CAN 2 . Вот она:
Для наглядности масштаб осциллограмм на обеих иллюстрациях один и тот же.
То, что вы видите на этой осциллограмме, называется «мусор». Часто диагносты так и говорят: блок мусорит в шину. Вот только как найти блок, который это делает? Методика здесь очень проста и сводится она к поочередному отключению блоков и повторному наблюдению за сигналом шины.
Где именно находится тот или иной блок на автомобиле, в документации, как правило, показано. Например, на этом «финике» блоки расположены так:
Но в нашем случае все проще. Кстати, маленький лайфхак, возьмите на заметку. В автомобилях Nissan и Infiniti чаще всего причиной наличия мусора в CAN-шине является блок ABS. Сняв разъем с блока, сразу получаем нормальный обмен и связь сканера со всеми блоками ветви CAN 2 :
Обратите внимание на то, что связь в цепи CAN 2 есть со всеми блоками, кроме блока ABS, ведь он отключен.
Завершая разговор, хотелось бы обратить ваше внимание еще на один важный нюанс. Частота следования импульсов по CAN-шине составляет 500 кГц. Поэтому при получении осциллограммы необходимо задействовать максимально возможную частоту дискретизации мотортестера, на какую только он способен.
Если частоту дискретизации вы зададите низкую, то импульсы на осциллограмме будут сильно искажены. В качестве примера посмотрите, как выглядит осциллограмма сигнала CAN-шины при специально сниженной частоте дискретизации прибора:
Красным прямоугольником обведено время, в которое укладывается одно деление сетки. Оно составляет 0 , 2 мс. А на осциллограмме, которую мы рассматривали ранее, это время было равно 5 мкс, поэтому отображение импульсов было более правильным. Имейте это ввиду и не допускайте ошибок!
Введение в протокол CAN
Промышленная сеть реального времени 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
Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:
- поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
- для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
- для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)
Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).
- поле данных (data field) содержит от 0 до 8 байт данных
- поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок
- слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение.
Рис. 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-кадра используется в 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.
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.
Рис. 4. Логическая структура протокола CAN.
Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:
- DeviceNet
- CAL/CANopen
- SDS
- CanKingdom
Физичекий уровень протокола 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-сети.
CAN шина в автомобиле: что это такое
CAN-шина – это электронное устройство, встроенное в электронную систему автомобиля для контроля технических характеристики и ездовых показателей. Она является обязательным элементом для оснащения автомобиля противоугонной системой, но это лишь малая часть её возможностей.
Что такое CAN шина
CAN-шина – это одно из устройств в электронной автоматике автомобиля, на которое возлагается задача по объединению различных датчиков и процессоров в общую синхронизированную систему. Она обеспечивает сбор и обмен данными, посредством чего в работу различных систем и узлов машины вносятся необходимые корректировки.
Аббревиатура CAN расшифровывается как Controller Area Network, то есть сеть контроллеров. Соответственно, CAN-шина – это устройство, принимающее информацию от устройств и передающее между ними. Данный стандарт был разработан и внедрён более 30 лет назад компанией Robert Bosch GmbH. Сейчас его используются в автомобилестроении, промышленной автоматизации и сфере проектирования объектов, обозначаемых «умными», например, домов.
Как работает CAN шина
Фактически, шина представляет собой компактное устройство со множеством входов для подключения кабелей или разъём, к которому подсоединяются кабели. Принцип её действия заключается в передаче сообщений между разными компонентами электронной системы.
Для передачи разной информации в сообщения включаются идентификаторы. Они уникальны и сообщают, например, что в конкретный момент времени автомобиль едет со скоростью 60 км/ч. Серия сообщения отправляется на все устройства, но благодаря индивидуальным идентификаторам они обрабатывают только те, которые предназначаются именно для них. Идентификаторы CAN-шины могут иметь длину от 11 до 29 бит.
В зависимости от назначения КАН шины разделяются на несколько категорий:
- Силовые. Они предназначены для синхронизации и обмена данными между электронным блоком двигателя и антиблокировочной системой, коробкой передач, зажиганием, другими рабочими узлами автомобиля.
- Комфорт. Эти шины обеспечивают совместную работу цифровых интерфейсов, которые не связаны с ходовыми блоками машины, а отвечают за комфорт. Это система подогрева сидений, климат-контроль, регулировка зеркал и т.п.
- Информационно-командные. Эти модели разработаны для оперативного обмена информацией между узлами, отвечающими за обслуживание авто. Например, навигационной системой, смартфоном и ЭБУ.
Для чего CAN шина в автомобиле
Распространение интерфейса КАН в автомобильной сфере связано с тем, что он выполняет ряд важных функций:
- упрощает алгоритм подсоединения и функционирования дополнительных систем и приборов;
- снижает влияние внешних помех на работу электроники;
- обеспечивает одновременное получение, анализ и передачу информации к устройствам;
- ускоряет передачу сигналов к механизмам, ходовым узлам и иным устройствам;
- уменьшает количество необходимых проводов;
В современном автомобиле цифровая шина обеспечивает работу следующих компонентов и систем:
- центральный монтажный блок и замок зажигания;
- антиблокировочная система;
- двигатель и коробка переключения передач;
- подушки безопасности;
- рулевой механизм;
- датчик поворота руля;
- силовой агрегат;
- электронные блоки для парковки и блокировки дверей;
- датчик давления в колёсах;
- блок управления стеклоочистителями;
- топливный насос высокого давления;
- звуковая система;
- информационно-навигационные модули.
Этот не полный список, так как в него не включаются внешние совместимые приборы, которые тоже можно соединить с шиной. Часто таким образом подключается автомобильная сигнализация. CAN-шина также доступна для подключения внешних устройств для мониторинга рабочих показателей и диагностики на ПК. А при подключении автосигнализации вместе с маяком можно управлять отдельными системами извне, например, со смартфона.
Читайте также: Что такое центральный замок в автомобиле.
Плюсы и минусы CAN шины
Специалисты по автомобильной электронике, высказываясь в пользу использования CAN-интерфейса, отмечают следующие преимущества:
- простой канал обмена данными;
- скорость передачи информации;
- широкая совместимость с рабочими и диагностическими приборами;
- более простая схема установки автосигнализации;
- многоуровневый мониторинг и контроль интерфейсов;
- автоматическое распределение скорости передачи с приоритетом в пользу основных систем и узлов.
Но есть у CAN-шины и функциональные недостатки:
- при повышенной информационной нагрузке на канал вырастает время отклика, что особенно характерно для работы автомобилей, «напичканных» электронными устройствами;
- из-за использования протокола высшего уровня встречаются проблемы стандартизации.
Возможные проблемы с CAN шиной
По причине включения во многие функциональные процессы, неполадки в работе CAN-шины проявляются очень быстро. Среди признаков нарушений чаще всего проявляются:
- индикация вопросительного знака на приборной панели;
- одновременное свечение нескольких лампочек, например, CHECK ENGINE и ABS;
- исчезновение показателей уровня топлива, оборотов двигателя, скорости на приборной панели.
Такие проблемы возникают по разным причинам, связанным с питанием или нарушением электроцепи. Это может быть замыкание на массу или аккумулятор, обрыв цепи, повреждение перемычек, падение напряжения из-за проблем с генератором или разряд АКБ.
Первая мера для проверки шины – компьютерная диагностика всех систем. Если она показывает шину, необходимо измерить напряжение на выводах H и L (должно быть
4V) и изучить форму сигнала на осциллографе под зажиганием. Если сигнала нет или он соответствует напряжению сети, налицо замыкание или обрыв.
Ввиду сложности системы и большого количества подключений компьютерную диагностику и устранение неисправностей целесообразно передать в руки специалистов с высококачественным оборудованием.
Читайте также: Что такое адаптивный круиз контроль и для чего он нужен.
CAN-шина
CAN – стандарт обмена информации промышленной автоматики, призванный объединить в единое сообщество все многообразие электронного оборудования.
Протокол разработан на основе стандартов ISO передачи данных.
В середине 80-х годов прошлого столетия компании Intel и Robert Bosch GmbH разработали цифровое устройство для обмена данных, которое стало стандартом автомобильной
электроники.
Подобно тому, как собираются в единую сеть несколько компьютеров, CAN собирает в цепь все электронные блоки автомобиля. Это делает управление более надежным, быстрым и эффективным. Кроме того, через кабель CAN происходит обмен данными между ЭБУ и сторонними электроприборами, что делает диагностику автомобиля максимально точной и быстрой.
- 1 Особенности устройства CAN-шины
- 2 Передача данных по Кан-шине
- 3 Обзор возможностей протокола CAN
- 4 Скорость передачи данных CAN-шины
- 5 Протоколы высокого уровня
- 6 Достоинства и недостатки протокола CAN
Особенности устройства CAN-шины
Передаются данные, со скоростью 1Мбит/сек, по радиоканалам или на оптоволоконном уровне. Биты данных одномоментно превращаются в кадры (подобие ограниченных порций). Есть сложная схема разделения кадров на доминантные и рецессивные и приоритетов формирования очереди передачи, с применением арбитража. Однако в эти области высоких технологий, простому автолюбителю заглядывать нет никакой нужды.
На физическом уровне CAN-сеть – это непрерывная «шина» дифференциальной пары, в роли проводника информации, прописанной стандартом ISO. Доступ к ней осуществляется посредством драйвера CAN-шины.
Во всех системах современного автомобиля применяется протокол CAN для взаимодействия электронного блока управления с контрольными блоками систем, исполнительными устройствами, датчиками, и в целом всей совокупности периферийного оборудования. Устройство столь умного прибора, на удивление, очень простое (можно сказать примитивное) – два провода и чип. Вот и все!
Первые поколения прибора были снабжены множеством выходов, по каждому их которых передавался лишь один сигнал. Сейчас, по каждому проводу проходят сотни импульсов.
В последних выпусках есть функции подключения к смартфонам.
Есть заложенная функция предвидения и устранения некоторых неполадок электрооборудования автомобиля. Даже электробрелки зажигания, подключаясь через CAN, получают необходимые данные от ЭБУ автомобиля.
CAN – шина, практически, абсолютно нечувствительна к радиопомехам, с высокой степени изолированными контактами.
Передача данных по Кан-шине
Сигналы с электронных приборов, параллельно соединенных в цепь Кан-шины, по двум сплетенным проводам (витой паре), поступает на полосы шины. При этом, на каждом проводе будет свое напряжение, отличное от напряжения во втором проводе.
Другие участники считывают эту информацию. Путем проставления фильтров и идентификаторов, зашифрованных в самом послании, определяется адресат сообщения.
Тот, получив наказ на какое-либо действие, спешит его выполнить.
В покое, напряжение в проводах витой пары одинаковое и составляет 2,5В. Это, так называемое, рецессивное положение. Во время начала сеанса, провода приводятся в возбуждение участником, посылающим сообщение. Напряжение на одном из проводов (CAN High) начинает возрастать, достигая 3,5В. На другом (CAN low) – убывать, до достижения отметки 1В.
Каждое звено общей цепи подключается к CAN кабелю посредством трансивера, в котором разность двух напряжений преобразуется в одно, выходное (2В). Его и получают участники процесса. Таким образом, исключается влияние на обмен информации, непостоянство напряжения электрической сети автомобиля.
Обзор возможностей протокола CAN
- микросхема, инструменты разработки, модули, инструменты проектирования;
- каждый участник будет иметь возможность выбирать к просмотру сообщения, касающиеся только его. Для этого предусмотрены фильтры;
- – если участник не выбрал только свои сообщения, то он имеет возможность просмотра всего потока информации;
- нет явного адресата. Выбираются адреса контента по идентификатору в самом сообщении;
- кадр данных, удаленный, ошибки, перезагрузки;
- отличаются длиной установленного идентификатора. Если в станд. варианте он равен 11битам, то в его «толстом» собрате – 29 бит;
- чтобы избежать одновременной передачи данных несколькими участниками, выработан арбитражный механизм. Все пакеты поделены на доминантный и рецессивный. Не вдаваясь в подробности, отметим только, что всегда приоритет на стороне доминантного сообщения.
- :
— сигнальная сбалансированная двухпроводная схема high–speed CAN представляет вторую часть стандарта ISO 11898;
— третья часть ISO 11898 составляет следующий уровень вышеназванной схемы;
— однопроводной уровень, описываемый стандартом SAE J2411. Шины этого уровня установлены, например, на автомобилях линейки Дженерал Моторс.
- – CAN-шина должна содержать на конце резисторное сопротивление (120ОМ), для гашения отражения сигнала, создания уровня постоянного тока.
- – сопротивление должно укладываться в интервал 108 – 132ОМ.
- – нет стандартов для разъемов CAN. Каждый протокол описывает свои предпочтения. Однако есть фактический стандарт для автопромышленности.
- – контролер найдет ее и отметит флажком, разрушая передачу. Эти флажки станут знаком для всех участников цепи на ее сброс.
- – при различных сбоях дается возможность дальнейшего функционирования. Сбои могут быть разного характера: прерывание, короткое замыкание в разных частях, разъединение с оконечным сопротивлением.
Скорость передачи данных CAN-шины
Все составляющие сети CAN должны иметь единую скорость передачи информации. Однако данный стандарт не задает одного определенного параметра, ограничиваясь лишь максимальным пределом – 1Мбит/с. Изменения объема передаваемого кадра должно успеть распространиться по всей длине сети, что ставит в обратную зависимость скорости от протяженности – чем длиннее провод, тем ниже скорость. Для передачи 1Мбита за 1секунду нужная длина должна составлять не менее 40 метров. Добавьте к этому объективные факторы, снижающие скорость – защита от помех и разветвленная сеть, где происходят множественные отражения сигнала.
В угоду ускорения процесса, разработчики уменьшают протяженность проводов, одновременно увеличивая число цепей, с возможностью подключения большего количества приборов. Например, общая длина шины, составляющая 10 метров, способна пропускать через себя кадры, со скоростью 2 Мбит/c, с 64 подключенными приборами. Если автомобиль снабжен большим числом электрооборудования, то добавляется одна, две, и т. д. цепи.
Протоколы высокого уровня
CAN всего лишь решает проблему доставки информации из одного пункта в другой, малыми пакетами (всего 8 байт). Многие аспекты обмена данных, остаются вне его компетенции. Ввиду большого спроса на рынке, незамедлительно, появились разработки усовершенствованных протоколов – так называемые, протоколы высокого уровня. Они взялись оказывать более расширенный пакет услуг. Ими пользуются, когда нужно:
- Задать стандарты запуска, в т.ч. скорости обмена;
- Распределение, предварительно распознанных, адресов взаимодействующих элементов и видов сообщений;
- Точная разметка послания;
- Порядок разбора ошибок.
Достоинства и недостатки протокола CAN
Протокол CAN вошел в состав стандартного протокола OBD-II.
К несомненным преимуществам CAN относятся:
- Передача информации в реальном времени;
- Простота и дешевизна использования;
- Помехоустойчивость;
- Обеспечение доступа, путем арбитража, без снижения пропускных характеристик сети;
- Контроль всех ошибок обмена данных;
- Большой интервал рабочих скоростей;
- Широкое его применение, большое разнообразие ассортимента от разных поставщиков.
К недостаткам относятся:
- Маленький объем одного пакета данных, который составляет не более 8 байт;
- Служебные данные занимают больше объема, чем передаваемые, что значительно влияет на скорость (разработчикам есть куда расширяться);
- Нет общего стандарта на протоколы повышенного уровня. В CAN можно прописать любой протокол, если его исполнение помещается в рамках пропускной способности CAN.
Применяется этот протокол не только в автомобильной промышленности. В некоторых отраслях промышленности, дорожного строительства, при строительстве высокотехнологичных объектов (так называемые, умные дома), в велосипедном производстве.
Принцип работы и диагностика CAN-шины в автомобиле
Появление цифровых шин в автомобилях произошло позднее, чем в них начали широко внедряться электронные блоки. В то время цифровой «выход» им был нужен только для «общения» с диагностическим оборудованием – для этого хватало низкоскоростных последовательных интерфейсов наподобие ISO 9141-2 (K-Line). Однако кажущееся усложнение бортовой электроники с переходом на CAN-архитектуру стало ее упрощением.
Действительно, зачем иметь отдельный датчик скорости, если блок АБС уже имеет информацию о скорости вращения каждого колеса? Достаточно передавать эту информацию на приборную панель и в блок управления двигателем. Для систем безопасности это ещё важнее: так, контроллер подушек безопасности уже становится способен самостоятельно заглушить мотор при столкновении, послав соответствующую команду на ЭБУ двигателя, и обесточить максимум бортовых цепей, передав команду на блок управления питанием. Раньше же приходилось для безопасности применять не надежные меры вроде инерционных выключателей и пиропатронов на клемме аккумулятора (владельцы BMW с его «глюками» уже хорошо знакомы).
Однако на старых принципах реализовать полноценное «общение» блоков управления было невозможно. На порядок выросли объем данных и их важность, то есть потребовалась шина, которая не только способна работать с высокой скоростью и защищена от помех, но и обеспечивает минимальные задержки при передаче. Для движущейся на высокой скорости машины даже миллисекунды уже могут играть критичную роль. Решение, удовлетворяющее таким запросам, уже существовало в промышленности – речь идет о CAN BUS (Controller Area Network).
Суть CAN-шины
Цифровая CAN-шина – это не конкретный физический протокол. Принцип работы CAN-шины, разработанный Bosch еще в восьмидесятых годах, позволяет реализовать ее с любым типом передачи – хоть по проводам, хоть по оптоволокну, хоть по радиоканалу. КАН-шина работает с аппаратной поддержкой приоритетов блоков и возможностью «более важному» перебивать передачу «менее важного».
Для этого введено понятие доминантного и рецессивного битов: упрощенно говоря, протокол CAN позволит любому блоку в нужный момент выйти на связь, остановив передачу данных от менее важных систем простой передачей доминантного бита во время наличия на шине рецессивного. Это происходит чисто физически – например, если «плюс» на проводе означает «единицу» (доминантный бит), а отсутствие сигнала – «ноль» (рецессивный бит), то передача «единицы» однозначно подавит «ноль».
Представьте себе класс в начале урока. Ученики (контроллеры низкого приоритета) спокойно переговариваются между собой. Но, стоит учителю (контроллеру высокого приоритета) громко дать команду «Тишина в классе!», перекрывая шум в классе (доминантный бит подавил рецессивный), как передача данных между контроллерами-учениками прекращается. В отличие от школьного класса, в CAN-шине это правило работает на постоянной основе.
Для чего это нужно? Чтобы важные данные были переданы с минимумом задержек даже ценой того, что маловажные данные не будут переданы на шину (это отличает CAN шину от знакомого всем по компьютерам Ethernet). В случае аварии возможность ЭБУ впрыска получить информацию об этом от контроллера SRS несоизмеримо важнее, чем приборной панели получить очередной пакет данных о скорости движения.
В современных автомобилях уже стало нормой физическое разграничение низкого и высокого приоритетов. В них используются две и даже более физические шины низкой и высокой скорости – обычно это «моторная» CAN-шина и «кузовная», потоки данных между ними не пересекаются. К всем сразу подключен только контроллер CAN-шины, который дает возможность диагностическому сканеру «общаться» со всеми блоками через один разъем.
Например, техническая документация Volkswagen определяет три типа применяемых CAN-шин:
- «Быстрая» шина, работающая на скорости 500 килобит в секунду, объединяет блоки управления двигателем, ABS, SRS и трансмиссией.
- «Медленная» функционирует на скорости 100 кбит/с и объединяет блоки системы «Комфорт» (центральный замок, стеклоподъемники и так далее).
- Третья работает на той же скорости, но передает информацию только между навигацией, встроенным телефоном и так далее. На старых машинах (например, Golf IV) информационная шина и шина «комфорт» были объединены физически.
Интересный факт: на Renault Logan второго поколения и его «соплатформенниках» также физически две шины, но вторая соединяет исключительно мультимедийную систему с CAN-контроллером, на второй одновременно присутствуют и ЭБУ двигателя, и контроллер ABS, и подушки безопасности, и ЦЭКБС.
Физически же автомобили с CAN-шиной используют ее в виде витой дифференциальной пары: в ней оба провода служат для передачи единственного сигнала, который определяется как разница напряжений на обоих проводах. Это нужно для простой и надежной помехозащиты. Неэкранированный провод работает, как антенна, то есть источник радиопомех способен навести в нем электродвижущую силу, достаточную для того, чтобы помеха воспринялась контроллерами как реально переданный бит информации.
Но в витой паре на обоих проводах значение ЭДС помехи будет одинаковым, так что разница напряжений останется неизменной. Поэтому, чтобы найти CAN-шину в автомобиле, ищите витую пару проводов – главное не перепутать ее с проводкой датчиков ABS, которые так же для защиты от помех прокладываются внутри машины витой парой.
Диагностический разъем CAN-шины не стали придумывать заново: провода вывели на свободные пины уже стандартизированной в OBD-II колодки, в ней CAN-шина находится на контактах 6 (CAN-H) и 14 (CAN-L).
Поскольку CAN-шин на автомобиле может быть несколько, часто практикуется использование на каждой разных физических уровней сигналов. Вновь для примера обратимся к документации Volkswagen. Так выглядит передача данных в моторной шине:
Когда на шине не передаются данные или передается рецессивный бит, на обоих проводах витой пары вольтметр покажет по 2,5 В относительно «массы» (разница сигналов равна нулю). В момент передачи доминантного бита на проводе CAN-High напряжение поднимается до 3,5 В, в то время как на CAN-Low опускается до полутора. Разница в 2 вольта и означает «единицу».
На шине «Комфорт» все выглядит иначе:
Здесь «ноль» — это, наоборот, 5 вольт разницы, причем напряжение на проводе Low выше, чем на проводе High. «Единица» же – это изменение разности напряжений до 2,2 В.
Проверка CAN-шины на физическом уровне ведется с помощью осциллографа, позволяющего увидеть реальное прохождение сигналов по витой паре: обычным тестером, естественно, «разглядеть» чередование импульсов такой длины невозможно.
«Расшифровка» CAN-шины автомобиля также ведется специализированным прибором – анализатором. Он позволяет выводить пакеты данных с шины в том виде, как они передаются.
Сами понимаете, что диагностика шины CAN на «любительском» уровне без соответствующего оборудования и знаний не имеет смысла, да и банально невозможна. Максимум, что можно сделать «подручными» средствами, чтобы проверить кан-шину – это измерить напряжения и сопротивление на проводах, сравнив их с эталонными для конкретного автомобиля и конкретной шины. Это важно – выше мы специально привели пример того, что даже на одном автомобиле между шинами может быть серьезная разница.
Неисправности
Хотя интерфейс CAN и хорошо защищен от помех, электрические неисправности стали для него серьезной проблемой. Объединение блоков в единую сеть сделало ее уязвимой. КАН-интерфейс на автомобилях стал настоящим кошмаром малоквалифицированных автоэлектриков уже по одной своей особенности: сильные скачки напряжения (например, зимний запуск на сильно разряженном аккумуляторе) способны не только «повесить» ошибку CAN-шины, обнаруживаемую при диагностике, но и заполнить память контроллеров спорадическими ошибками, случайного характера.
В результате на приборной панели загорается целая «гирлянда» индикаторов. И, пока новичок в шоке будет чесать голову: «да что же это такое?», грамотный диагност первым делом поставит нормальный аккумулятор.
Чисто электрические проблемы – это обрывы проводов шины, их замыкания на «массу» или «плюс». Принцип дифференциальной передачи при обрыве любого из проводов или «неправильном» сигнале на нем становится нереализуем. Страшнее всего замыкание провода, поскольку оно «парализует» всю шину.
Представьте себе простую моторную шину в виде провода, на котором «сидят в ряд» несколько блоков – контроллер двигателя, контроллер АБС, приборная панель и диагностический разъем. Обрыв у разъема автомобилю не страшен – все блоки продолжат передавать информацию друг другу в штатном режиме, невозможной станет только диагностика. Если оборвать провод между контроллером АБС и панелью, мы сможем увидеть сканером на шине только ее, ни скорость, ни обороты двигателя она показывать не будет.
А вот при обрыве между ЭБУ двигателя и АБС машина, скорее всего, уже не заведется: блок, не «видя» нужный ему контроллер (информация о скорости учитывается при расчете времени впрыска и угла опережения зажигания), уйдет в аварийный режим.
Если не резать провода, а просто постоянно подать на один из них «плюс» или «массу», автомобиль «уйдет в нокаут», поскольку ни один из блоков не сможет передавать данные другому. Поэтому золотое правило автоэлектрика в переводе на русский цензурный звучит как «не лезь кривыми руками в шину», а ряд автопроизводителей запрещает подключать к CAN-шине несертифицированные дополнительные устройства стороннего производства (например, сигнализации).
Благо подключение CAN-шины сигнализации не разъем в разъем, а врезаясь непосредственно в шину автомобиля, дают «криворукому» установщику возможность перепутать провода местами. Автомобиль после этого не то что откажется заводиться – при наличии контроллера управления бортовыми цепями, распределяющего питание, даже зажигание не факт что включится.
Источник: