Кто разработал автомобильную шину can bus

Добавил пользователь Алексей Ф.
Обновлено: 19.09.2024

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

очертание

CAN (Controller Area Network) - это сеть контроллера, которая представляет собой сеть последовательной связи, способную осуществлять распределенное управление в реальном времени. Думайте о CAN и думайте о Bosch в Германии, потому что CAN был разработан этой компанией (и Intel). CAN имеет много отличных характеристик, что делает его широко применимым. Например: скорость передачи до 1 Мбит / с, расстояние до 10 км, механизм арбитража битов без потерь, структура с несколькими мастерами. В последние годы цена на контроллеры CAN становится все ниже и ниже, и многие микроконтроллеры также имеют встроенные контроллеры CAN. Шина CAN теперь установлена ​​в каждом автомобиле. Типичный сценарий применения CAN:


Стандарт CAN шины

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


CAN-трансивер отвечает за преобразование между логическими уровнями и физическими сигналами.


Преобразует логические сигналы в физические сигналы (дифференциальный уровень) или преобразует физические сигналы в логические уровни.

Существует два стандарта CAN, а именно IOS11898 и IOS11519, которые имеют различные характеристики дифференциального уровня.


Низкая и высокая амплитуда, соответствующая высокой скорости передачи;



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

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

CAN имеет три интерфейсных устройства



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

Как и 485 и 232, скорость передачи CAN обратно пропорциональна расстоянию.


Шина CAN, подключение нагрузочного резистора:


Почему это 120 Ом, потому что волновое сопротивление кабеля составляет 120 Ом, чтобы имитировать бесконечную линию передачи

Канальный уровень

Шина CAN передает кадры CAN, а кадры связи CAN делятся на пять типов: кадры данных, удаленные кадры, кадры ошибок, кадры перегрузки и интервалы кадров.

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

Кадры данных делятся на стандартные кадры (2.0A) и расширенные кадры (2.0B) в зависимости от длины арбитражного сегмента.

Начало кадра


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

Конец кадра состоит из 7 невидимых битов (высокий уровень).

Арбитражный раздел

Как шина CAN решает проблему многоточечной конкуренции?

Ответ дается арбитражным отделом.

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


Чем меньше идентификатор кадра, тем выше приоритет. Поскольку бит RTR кадра данных является доминирующим уровнем, а удаленный кадр является рецессивным уровнем, когда формат кадра и идентификатор кадра одинаковы, кадр данных имеет приоритет над удаленным кадром, поскольку бит IDE стандартного кадра является доминирующим уровнем, Бит IDE расширенного кадра невидим. Для стандартных кадров и расширенных кадров с одинаковым идентификатором в первых 11 битах стандартный кадр имеет более высокий приоритет, чем расширенный кадр.

Контрольная секция

Всего 6 битов. Кадр управления стандартного кадра состоит из IDE флага расширенного кадра, зарезервированного бита r0 и кода DLC длины данных. Секция управления расширенным кадром состоит из IDE, r1, r0 и DLC.


Сегмент данных

0-8 байт, короткая структура кадра, хорошая производительность в реальном времени, подходит для автомобильных и промышленных областей управления;


CRC сегмент

Контрольный сегмент CRC состоит из 15-битного значения CRC и разделителя CRC.


ACK сегмент

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

Дистанционная рамка

Удаленный кадр разделен на 6 сегментов, также разделен на стандартный кадр и расширенный кадр, и бит RTR равен 1 (рецессивный уровень)


CAN является высоконадежной шиной, но также имеет пять типов ошибок.

Ошибка CRC: отправленное и полученное значение CRC отличается.

Ошибка формата: неверный формат кадра.

Ошибка вставки битов: эта ошибка возникает, когда на кабеле связи нарушается правило связи.

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

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


Рамка перегрузки


Интервал кадра

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


// Понять 1.6 последний ппт

Построение CAN-узлов

Узлы построены и реализовано соответствующее управление, которое разделено снизу вверх на четыре части: схема узла CAN, драйвер контроллера CAN, протокол прикладного уровня CAN, прикладная программа узла CAN.

Хотя разные узлы выполняют разные функции, все они имеют одинаковую аппаратную и программную структуру.


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

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


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

Контроллер CAN является основным компонентом CAN, он реализует все функции канального уровня в протоколе CAN и может автоматически выполнять анализ протокола CAN. Как правило, существует два типа контроллеров CAN, один из которых представляет собой контроллер IC (SJA1000), а другой - MCU (LPC11C00) со встроенным CAN-контроллером.

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


Логика управления интерфейсом: интерпретация инструкций MCU, адреса блоков регистров каждого функционального модуля в контроллере CAN и предоставление информации о прерываниях и информации о состоянии главному контроллеру.

Буферы передачи и приема могут хранить полную информацию в сети шины CAN.

Ядро CAN реализует все протоколы канала передачи данных.

Обзор прикладного уровня протокола CAN

CAN трансивер

SJA1000 имеет много режимов вывода. Наиболее часто используемый режим - это обычный режим вывода. Режим ввода обычно не выбирает режим компаратора, который может увеличить расстояние связи и уменьшить ток в спящем режиме.


Трансиверы делятся на высокоскоростные CAN-трансиверы и отказоустойчивые CAN-трансиверы в зависимости от скорости связи.

Используйте один и тот же CAN-трансивер в той же сети.

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


CAN изолированные приемопередатчики (встроенные фильтры и схемы защиты от помех) также могут быть использованы.



CAN контроллер и MCU соединение


Страсти вокруг кода P 0500, часть 4

Да не о шине вопрос, вопрос о системе.

Описание шины CAN: CAN шина - CAN BUS - КАН ШИНА Controller Area Network — CAN шина

Описание шины CAN

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

Поэтому начнем с определения:

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

В нашем случае, объектом управления является автомобиль, фото 1:


А если это так, то возможно построить безадресную и абсолютно децентрализованную систему.

Это вам не в очереди за медицинскими полюсами… где возле одной двери сошлись Герой Соцтруда, Ветеран Куликовской битвы и Мать Героиня на сносях.

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

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

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

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

Что сбивает с толку, и что пугает некоторых диагностов, и не только начинающих.

Давайте немного подробнее, о самом простом, о витой паре. Фото 2:


Скрин сделан с Мотордаты. Хотя без разницы, можно и любой иноземный мануал взять, результат будет тот же. Все неисправности в CAN сведены к трем возможным:

- неисправность блока;
- неисправность проводки (шины);
- наведенные помехи в шине данных.

Способы проверки просты. Дается вот такая, или наподобие картинка, фото 3:


И предлагается выполнить осциллографирование… или использовать тот же омметр.

Посмотрите на эту картинку внимательно. Затем возьмите каждый свой мультиметр, которым вы работаете ежедневно… и вытащите из него источник питания и посмотрите, на сколько он Вольт. И сравните его со значением уровней, которые действуют в шине. Так вот, обрыв и замыкание вы обнаружите, в этом сомнений никаких нет. А ассиметрию в шине, длиною в 1метр или менее? Да даже если взять витую пару предельно допустимой длины - 4 метра… фигушки.



А теперь я дам другой скрин, и посмотрим где удобнее, фото 6:


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

Пайка на витой паре, насколько мне известно, не приветствуется. В случае ее повреждения, соединение восстанавливают с помощью вот таких клипс, фото 7:


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

Что нельзя проверить в системе? В системе не получается или не всегда получается имеемыми средствами проверить исправность контролеров CAN . Если это удается, то тогда, в некоторых случаях, клиент несет меньшие затраты по ремонту. А диагност получает не только моральное удовлетворение, а значительное заслуженное материальное. Система CAN не новинка. Системы обмена данными существовали и до нее. И более серьезные, замечу я вам. Но как-то вопрос о поиске неисправностей и их локализации не стоял. Стандарт CAN также ничем не отличается от тех стандартов, и в нем предусмотрен этот вопрос. Просто система, несмотря на то, что давно разработана, вводится по частям, а не в полном объеме сразу. Ведь развитие самих систем управления применяемых в автомобиле тоже на месте не стоит. Да плюс еще пресловутый маркетинг. Которому отдача нужна сейчас и немедленно. Есть новое, давай-давай! Потом доработаем. Главное, есть фишка, которая позволяет реализовывать продукцию и получать прибыль. И не только от продажи автомобилей.

А придет время, и CAN будет тестироваться со сканера, обычно и привычно .


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

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

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

Цифровой сигнал - это данные в виде цифрового кода. На осциллографе мы можем видеть импульсы, но ни один из параметров импульсной последовательности или импульса к цифровому сигналу неприменим.

И еще что хотелось бы отметить:- жаргон технический или то, что многие используют при объяснении или общении… Это тоже не терминология. Это … короче смотрим, фото 9:


А теперь реализм, фото 10:



Так вот, во втором случае жаргон можно принять, он не меняет основ. А в первом - меняет и искажает, потому что это совершенно другой сигнал. Это все равно, что валенок горшком назвать, и только лишь потому, что и туда и туда жидкость можно налить. Но в горшке можно хранить, варить, есть в конце концов… а из валенка слабо? А на форуме не слабо, прикрыть пробел в фрагментальных знаниях жаргонным красивым словечком, или фразой на иноземном языке. А то и целой выдержкой из текста. Можно читать по-английски, можно переводить, но думать нужно на родном языке. А если, прочитав иноземный текст, не можешь объяснить это на том языке, на котором тебя учили думать, извините уважаемый, вы сути процесса не понимаете.


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

Смотрим фото 13-14:



И крупным планом финал, фото 15:


А это означает только одно - сигнал датчика представляет собой импульсную последовательность. С ярко выраженной дискретностью. Возьмите любые моменты времени на оси и им будут соответствовать только два значения – максимальная амплитуда или минимальная. Цифровым сигналом тут и близко не пахнет. Если бы это был он, то изображение было бы только на оси времени. И никаких периодов, и никаких частот. Цифровой сигнал это данные в виде кода. А здесь данные о количестве воздуха заложены в величине периода .

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

Вот сколько всплыло всего в обыкновенной теме. А началось-то все с простого кода Р0500. Да, совсем забыл. Шин, где используется оптоволокно, вообще не нужно боятся. Их проверить очень легко. Для этого нужно иметь всего лишь источник света. Все шины сходятся в общую, соединение параллельное. Поэтому подсветив любую шину вы увидите свет на других, а там где он не проходит – шина повреждена.

Как там говорят: "Ищущий да обрящет?". Всё правильно. А если проще, то так: "Без труда не выловишь . ". Ну вы поняли -) .

Маркин Александр Васильевич

(ник на форуме Легион-Автодата - A_V_M)
г. Белгород, Таврово мкр 2, пер.Парковый, д.29-б.

Controller Area Network (шина данных CAN)

В период с 1984 по 1986 г.г., компанией Robert Bosch GmbH был придуман, разработан и воплощен в производство стандарт CAN - Controller Area Network (сеть контроллеров) , основной целью которого является объединение в единую сеть различных исполнительных устройств, датчиков, сенсоров и т.п.

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

Электромагнитная совместимость

Раньше об этом понятии задумывались мало или вообще не задумывались. Потому что автомобилям хватало небольшого пучка проводов и пару-тройку устройств для нормальной работы двигателя внутреннего сгорания.

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

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

Шина CAN как раз отвечает этим важным требованиям.

Более конкретно об этом вопросе чуть позже.

Уменьшение количества кабельных соединений


Сначала немного о том, что же такое эта шина и как она выглядит:

Почему используется двухпроводная схема передачи данных:

  • для стабильности распознавания ошибок
  • для увеличения и повышения надёжности работы по передаче данных

Предположим, что пик напряжения возникнет только на одном проводе (например, вследствии проблем по электромагнитной совместимости) .

И тогда блоки-приёмники могут идентифицировать это как ошибку и проигнорировать данный пик напряжения.

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

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

Пакет данных шины CAN


Описание полей пакета данных

Start of Frame

Arbitration Field

Это поле состоит из идентификатора адреса в 11 бит и 1 контрольного бита и запрос (Remote Transmission Request-Bit).

Control Field (управл. биты)

Поле управления (6 бит) содержит бит IDE (Identifier Extension Bit) для распознавания стандартного и расширенного формата, резервный бит для последующих расширений и - в последних 4 битах - количество байтов данных, заложенных в Data Field (поле данных).

Data Field (данные)

CRC Field (контрольное поле)

Поле CRC (Cyclic-Redundancy-Check Field) содержит 16 бит и служит для контрольного распознавания ошибок при передаче данных.

АСК Field (подтверждение приема)

End of Frame (конец фрейма)

Маркирует конец пакета данных

Intermission (интервал)

Интервал между двумя пакетами данных. Интервал должен составлять не менее 3 битов. После этого любой блок управления может передавать следующий пакет данных.

IDLE (режим покоя)

Прием и передача данных


К примеру на некоторых автомобилях, шлюзом между быстрой и медленной шиной является панель приборов (Ауди,Фольксваген), у Мерседеса функции шлюза выполняет EZS (замок зажигания), хотя сама панель работает в двух сетях, для отображения как салонной, так и моторной информации.

Например, High-Speed-CAN – это шина двигателя, АКПП и т.п., имеет скорость передачи данных 500 Кбит

Low-Speed-CAN - это шины для управления стеклоподъемниками, кондиционером и т.п. , со скоростью передачи данных 100 Кбит.

Шина данных CAN: РАСШИРЕННЫЕ ВОЗМОЖНОСТИ проведения Диагностики

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

Высокий уровень защиты передаваемых данных

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

При этом обеспечивается высокая скорость передачи данных (до 1 Mbit/s)

За счет чего это достигается:

    Механизм обнаружения ошибок Механизм исправления ошибок

Распознавание ошибок

Помехи при передаче данных могут приводить к возникновению ошибок. Такие ошибки при передаче данных надо распознавать и устранять. Протокол шины данных CAN различает два уровня распознавания ошибок:

Cyclic-Redundancy-Check:

Frame Check:

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

Распознанные функцией Frame Check ошибки обозначаются как ошибки формата.

Механизмы на уровне битов

Bit Stuffing:

Механизм устранения ошибок

ПРИОРИТЕТЫ шины данных CAN

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

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


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

Первый блок управления (N 1) утрачивает арбитраж с 3-го бита.

Третий блок управления (N 3) утрачивает арбитраж с 7-го бита.

Виды существующих шин

(на примере VW, Audi, Opel, Mercedes)

Шина CAN силового агрегата (быстрая шина), позволяющая передавать информацию со скоростью 500 кбит/с. Она служит для связи между блоками управления на линии двигателя и трансмиссии.

Шина CAN системы "Комфорт" (медленная шина), позволяющая передавать информацию со скоростью 100 кбит/с. Она служит для связи между блоками управления, входящими в систему "Комфорт".

Виды шин по классификации Mercedes:

Шина CAN-D – диагностическая шина (используется для диагностики).

В автомобилях, имеющих диагностику по CAN шине, в качестве шлюза всех трёх шин установлен блок ZGW (центральный интерфейс). Это на более современных Мерседесах с 2002 года выпуска.

Цветовая маркировка шин на Mercedes

На рисунках в различного рода руководствах и справочниках, провода шин CAN, для наглядности, могут быть обозначены приблизительно таким образом:


Общими для всех систем является следующее:

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

Области применения шины данных CAN

(применительно к Mercedes)

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

Обмен данными между обеими шинными системами осуществляется через так называемые "межсетевые шлюзы", т.е. блоки управления, подключенные к обеим шинам данных.

CAN-C (шина данных CAN моторного отсека)

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

Шина данных CAN моторного отсека активирована только при включенном зажигании.

CAN-B (шина данных CAN салона)

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

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

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

Топология шины CAN


Она зависит от модели конкретного автомобиля и Производителя.

Например, звездообразная топология запатентованная фирмой Daimler-Benz. Эта топология позволяет уменьшить резонансные проблемы в линии.

CAN контроллеры соединяются с помощью шины, которая имеет как минимум два провода CAN H и CAN L , по которым передаются сигналы при помощи специализированных ИМС приемо-передатчиков. Кроме того, ИМС приемо- передатчиков реализуют дополнительные сервисные функции:

    Регулировка скорости нарастания входного сигнала путем изменением тока на входе.

Наиболее широкое распространение получили два типа приемоперадатчиков (трансиверов):

Трансиверы, выполненные в соответствии со стандартом

"Fault-Tolerant" приемопередатчики (не чувствительные к повреждениям на шине) позволяют построить высоконадежную малопотребляющую сеть со скоростями передачи данных не выше 125 кбит/c.

ПРАКТИЧЕСКАЯ РАБОТА

Ошибка была такая:



(Эта неисправность – гниение проводов на этом крыле и выход их из строя, является конструктивно-технологической недоработкой фирмы).

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

Для поиска неисправности применили два рекомендуемых метода:

    Проверка шины CAN по сопротивлению

Проверка по сопротивлениям

Шина представляет собой два провода витой пары.

    Если шина исправна и оконечные блоки подключены, то на шине мы увидим сопротивление 60 Ом (два по 120 в параллель).

Подключенные в параллель блоки мультиметром (по сопротивлению) не контролируются.

В ML350 один из конечных блоков будет моторный, второй, в зависимости от года выпуска, вероятнее всего AAM, EAM или EZS.

Другие проверки

Определение КЗ (короткого замыкания) в шине данных CAN – определенно сложная задача. Как можно поступить:

    Визуально осмотреть провода с целью выявления и определения внешних повреждений

Отключение блоков

На блоке EGS (управление коробкой) , расположеный справа в ногах у водителя, было, как обычно, обнаружено масло.

Именно масло иногда является причиной неисправности этого блока.

Эта ошибка конструктивная: некачественные уплотнения жгута проводов к соленоидам в коробке АКПП. По жгуту оно и поднимается в электронный блок.

Блок ААМ – тоже оказался исправным.

Кстати, если уж заговорили о нем:

Отключение блоков тоже ничего не дало.

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

- номер фирмы Mercedes

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

Какой можно сделать вывод : причиной неисправности С1020 на данном автомобиле явилась неправильно закодированная комплектация автомобиля.

Как раз наоборот.

Это на бумаге и в этой статье вся работа по определению неисправности уложилась в несколько строчек.

Controller Area Network или, как более привычно звучит для автомобильной диагностики — CAN шина

* Взаимосвязь открытых систем (Open System Interconnection (OSI))

* Controller Area Network (CAN)

* Основные принципы CAN

* Как выглядит CAN шина на примере автомобилей произведённых в Японии

Парк автомобилей на наших улицах стремительно омолаживается и вместе с этим приходится осваивать и решать новые задачи связанные с диагностикой и ремонтом. Всё чаще и чаще сталкиваешься в своей повседневной работе с проблемами коммуникации между различными бортовыми системами автомобиля. Если ещё несколько лет назад приезжающие на диагностику автомобили с ошибками по CAN шине (первый символ в классификации диагностического кода неисправности — U) были редкими гостями, то сейчас это практически повседневная практика. Информация на эту тему в принципе доступна и её достаточно много, даже очень много - что с одной стороны хорошо, а с другой представляет собой определённую сложность в поиске необходимой информации. Этой статьёй хотелось бы в первую очередь дать общее представление о системе CAN (Controller Area Network) тем, кто только начинает с ней знакомство, и тем, кто желает в этом поглубже разобраться.

Что такое CAN?

Controller Area Network — это понятие вошло в обиход после того, как в начале 1980-х годов в Robert Bosch GmbH разработали стандарт промышленной сети, ориентированный прежде всего на объединение в единую сеть различных исполнительных устройств и датчиков. Одно их первых внедрений в автомобильной промышленности было осуществлено на нескольких моделях автомобилей Mercedes-Benz в 1992 году. До этого момента электронное управление исполнительными функциями строилось по системе - один блок управления принимал электронные сигналы с различных датчиков и после их обработки посылал соответствующие команды на исполнительные устройства (такие как бензонасос, форсунки, катушки зажигания и прочие. ). Увеличение объёма функций управления автомобилем, передаваемое электронике, привело к появлению таких дополнительных систем как ABS, SRS, AT, Immobilaser и других. Совмещение этих функций в одном ЭБУ привело бы к его громоздкости и чрезмерной сложности, а так же к потере надёжности, когда выход из строя одной системы мог бы привести к потере управляемости всего автомобиля. Поэтому автопроизводители пошли по пути разделения функций управления и выделения всех систем в отдельные блоки. А для того, чтобы увязать все системы в единое целое для решения общих задач управления автомобилем, на помощь пришёл коммуникационный стандарт CAN от Robert Bosch GmbH и это всё шире и шире стало применяться в автомобилестроении. На сегодняшний день практически каждый новый автомобиль оснащён этой системой.

Всё в принципе просто и понятно, но как устроена CAN шина и на чём основывается принцип её работы? Вот один из примеров взаимосвязи электронных блоков управления и устройств завязанных в единую бортовую коммуникационную сеть автомобиля,- рис. 1

Вот один из примеров взаимосвязи электронных блоков управления и устройств завязанных в единую бортовую коммуникационную сеть автомобил


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

Немного предыстории — Взаимосвязь открытых систем (Open System Interconnection (OSI)).

Вот эти семь уровней:

1) Уровень приложений (Application Layer) — этот уровень определяет какие приложения (программы) имеют доступ к сети. Например — электронная почта, передача файлов, терминалы удалённого доступа и веб-браузеры.

2) Уровень представления данных (Presentation Layer) — этот уровень определяет такие моменты, как стандарты сжатия данных и их шифрования.

3) Уровень передачи данных (Transport Layer) — этот уровень обеспечивает стандарты передачи данных между адресатами, осуществляет контроль ошибок и безопасности.

4) Сетевой уровень (Network Layer) — этот уровень отвечает за вопросы маршрутизации сетевого трафика данных.

5) Уровень каналов связи (Data Link Layer) — этот уровень обеспечивает синхронизацию передачи данных и контроль ошибок.

6) Уровень контроля за сеансами связи (Session Layer) — этот уровень обеспечивает стандартизацию начала и завершения сеансов связи между различными приложениями и сетевыми блоками.

7) Физический уровень (Physical Layer) — этот уровень определяет стандарты физических характеристик устройств в сети, в том числе типы соединений и разъёмов, электрические характеристики кабелей, уровня напряжения, силы тока и тд.

Но задачи, решаемые протоколом OSI не в полной мере отвечали нуждам автомобильной электроники, и как следствие этого, инженерами Robert Bosch GmbH был разработан, в развитие протокола OSI, специальный протокол CAN, который определял стандарты физического и канального уровней модели OSI в кремнии для осуществления последовательной передачи информации между двумя или более устройствами.

Controller Area Network (CAN)

Основные принципы CAN

Error Frame - может быть передан любым узлом, который обнаруживает ошибку в сети.

Overload Frame - используются как запрос на предоставление дополнительной паузы между получаемыми данными (Data Frame) или запросами на получение данных (Remote Frame).

Ниже проиллюстрированы различия между Data Frames для стандартов CAN 2.0A и CAN 2.0B,- рис. 2

Ниже проиллюстрированы различия между Data Frames для стандартов CAN 2.0A и CAN 2.0B


Различие между форматами CAN 2.0А и CAN 2.0B заключаются в том что фрейм данных для CAN 2.0B поддерживает как стандартный идентификатор фрейма данных — 11 бит, так и расширенный идентификатор фрейма данных — о 29 бит. Фреймы стандартного и расширенного формата могут без проблем передаваться по одной на той же шине, и даже иметь в цифровой форме эквивалентный идентификатор.

В этом случае у стандартного фрейма будет более высокий приоритет,- рис. 3

Идентификатор (Identifier) — 11 бит, уникальный идентификатор, указывает приоритет.

Резерв (Reserved) — 2 бита, должны быть доминантными.

Длина кода данных (Data Length Code (DLC)) — 4 бита, количество байтов данных (0-8).

Поле передаваемых данных (Data Field) — от 0 до 8 байт, размер определен в поле DLC.

Контрольный циклический избыточный код (Cyclic Redundancy Check (CRC)) — 15 бит.

Разделитель CRC — 1 бит, должен быть рецессивный.

Подтверждение (Acknowledge (ACK)) — 1 бит, передатчик отправляет рецессивный; получатель подтверждает доминантным.

Разделитель ACK — 1 бит, должен быть рецессивным.

Идентификатор стандартного и расширенного форматов (Identifier) — 11 бит, уникальный идентификатор, соответствует базовому ID в расширенном формате.

Идентификатор расширенного формата (Identifier – Extended Format) — 29 бит, состоит из 11 бит базового ID и 18 бит расширенного ID.

Поле IDE – для стандартного и расширенного форматов — 1 бит, должен быть рецессивным для расширенного формата и доминантным для стандартного.

Резерв (Reserved r0) для стандартного формата — 1 бит, должен быть доминантным.

Резерв (Reserved r1, r0) для расширенного формата — 2 бита, должны быть рецессивными.

Длина кода данных (Data Length Code (DLC)) — 4 бита, количество байтов данных (0-8).

Поле передаваемых данных (Data Field) — от 0 до 8 байт, размер определен в поле DLC.

Контрольный циклический избыточный код (Cyclic Redundancy Check (CRC)) — 15 бит.

Разделитель CRC — 1 бит, должен быть рецессивный.

Подтверждение (Acknowledge (ACK)) — 1 бит, передатчик отправляет рецессивный; получатель подтверждает доминантным.

Разделитель ACK — 1 бит, должен быть рецессивным.

Фрейм данных CAN

Арбитраж (Arbitration)

Ниже проиллюстрирован приоритет сетевого арбитража где третий узел имеет высший приоритет и первый низший,- рис. 5

Обработка ошибок (Error Handling)

Запрос данных от конкретного узла сети (The CAN Remote Frame)

Загрузка шины (Bus Loading)

Interframe Space = 1 + 11 + 1 + 6 + 16 + 2 + 7 + 3 = 47 bits).

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

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


Протоколы синхронизированные по времени (Time-triggered Protocols)

Ну вот, в принципе, вся основная информация о протоколе CAN, а теперь немного о том, как выглядит CAN шина на примере автомобилей произведённых в Японии. Сразу хочу отметить, что без надлежащего диагностического оборудования проводить диагностику и ремонт неисправностей CAN шины можно в очень ограниченном диапазоне. Всё сведётся к проверке физической целостности проводов, проверки состояния соединительных разъёмов, проверки сопротивления проводки и Terminal resistor, проверки соответствующего уровня напряжения на CANlow и CANhigh линиях. Применение в диагностике дилерского оборудования тоже лишь облегчит проверку и сузит круг поиска неисправности, с очень большой неохотой автопроизводители допускают контакт с программным обеспечением, своей интеллектуальной собственностью. В случае проблем на программном уровне возможно только перепрограммирование или замена соответствующего ЭБУ.

Пример CAN шины автомобиля Nissan 2007г.в. - Рис. 7

Пример CAN шины автомобиля Nissan 2007г.в.


Интерфейс программы Consult III (Nissan), окно диагностики CAN шины,- рис. 8

Интерфейс программы Consult III (Nissan), окно диагностики CAN шины


Пример CAN шины автомобиля Mitsubishi 2004г.в. – рис. 9

Пример CAN шины автомобиля Mitsubishi 2004г.в.


Пример CAN шины автомобиля Mazda 2004г.в. – рис. 10

Пример CAN шины автомобиля Mazda 2004г.в.


Пример CAN шины автомобиля Toyota 2007г.в. – рис. 11

Пример CAN шины автомобиля Toyota 2007г.в.


За дополнительной и полной информацией по системе каждого диагностируемого автомобиля следует обращаться к соответствующим документам автопроизводителей (WSM и TSB).

Удачных всем ремонтов и беспроблемного обслуживания своих автомобилей.

Задать вопрос или обсудить статью вы можете на форуме Легион-Автодата (нажать)

Боровиков Игорь Александрович
© Легион-Автодата
(ник на форуме Легион-Автодата – semirek)
СОЮЗ АВТОМОБИЛЬНЫХ ДИАГНОСТОВ

image

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

Шина CAN

Образно говоря, шина CAN это нервная система вашего автомобиля. По ней передаётся вся информация о состоянии блоков и систем, а также управляющие команды, которые во многом определяют поведение автомобиля. Зажигание фар, открывание и закрывание дверей, управление проигрыванием музыки в салоне машины, срабатывание сигнализации и т. д. — всё это работает и управляется по этой шине.

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

Контроллеры CANNY

image

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

image

Кроме CANNY 7 в линейке контроллеров присутствует ещё несколько моделей, мы будем проводить свои эксперименты с более простой встраиваемой моделью CANNY 5 Nano. Она также поддерживает работу с CAN шиной, но при этом похожа на уже знакомую нам Arduino Nano.

Визуальное программирование

image

Ни одной строчки кода!

CannyLab является бесплатной средой разработки и вы можете свободно скачать её с сайта разработчиков, она также не требует специальной процедуры инсталляции — достаточно распаковать файл с архивом — и вы можете начинать работу.

Подключение

Подключение CANNY 5 Nano к компьютеру мало чем отличается от подключения контроллеров Arduino. При наличии в системе драйвера Silicon Labs CP210x, либо после его установки из скаченного дистрибутива CannyLab, Windows создаёт виртуальный COM порт и CANNY готов к работе. В моём случае понадобилось ещё перезагрузить компьютер, но возможно это особенность моей системы.

Практические примеры

Давайте на простых примерах разберём, как в CannyLab выполнять действия, привычные нам в Arduino IDE. Начнём с традиционного мигания светодиодом.

В контроллере CANNY 5 на выводе С4 (Channel 4) присутствует тестовый светодиод (аналог светодиода, находящегося на 13 выводе в Arduino). И его тоже можно использовать для индикации и экспериментов, чем мы и воспользуемся.

Что же нужно, чтобы помигать светодиодом в контроллере CANNY? Нужно сделать всего две вещи — сконфигурировать пин четвертого канала как выход и подать на этот выход сигнал с ШИМ генератора. Все эти действия мы уже не раз проделывали в Arduino IDE, посмотрим как это выглядит в CannyLab.

Итак, конфигурируем пин четвертого канала как выход

image

image

Режим симуляции

image

Среда разработки CannyLab позволяет запускать и отлаживать программу, не записывая её в память контроллера. В режиме симуляции вы можете видеть результат работы программы прямо в реальном времени и даже вмешиваться в её работу.

Заливка в контроллер

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

Аналоговые входы

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

Мы будем отслеживать уровень напряжения на 10 пине контроллера и если он находится в диапазоне 2,5 В ± 20%, будем зажигать встроенный в плату светодиод.

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

image

Включаем АЦП на 10-м канале.

image

Далее пользуемся двумя логическими блоками, которые выдают 1 на выход, если напряжение находится в заданном диапазоне. Полный диапазон от 0 до 4095.

image

Вот и всё. То, что мы привычно делали на Arduino, мы легко сделали в CannyLab. Осталось только освоиться в этой среде программирования и вы сможете легко и непринуждённо создавать свои проекты на этой платформе.

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

Заключение по вводной статье цикла

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

Если вам нравится визуальное программирование в стиле CannyLab, то контроллеры CANNY могут стать для вас интересной альтернативой Arduino или работать в связке с контроллерами Arduino. Об этом мы поговорим во второй статье цикла, в которой я расскажу вам об интеграции контроллеров CANNY с системой Arduino Mega Server.

Напомню, что AMS теперь работает не только на платах Arduino, но и на беспроводных Wi-Fi модулях ESP8266 и именно о такой связке пойдёт речь в следующий раз.

Читайте также: