CAN-шина в автоэлектронике. Краткая справка

Усложнение бортовой электронной сети современного автомобиля, увеличение количества исполнительных и управляющих устройств, всевозможных датчиков, контроллеров и, как следствие, объемов информационного обмена между ними привело к необходимости создания новой высокотехнологичной коммуникационной сети. Ею стала CAN-шина, пришедшая на смену менее производительным К- и L-линиям.
      Сегодня уже можно с полной уверенностью сказать, что CAN-шина — один из наиважнейших составных элементов бортовой электроники современного автомобиля. Обмен данными по ней осуществляется практически на всех новых машинах.
      Немного истории.
      Все началось где-то около 25 лет назад, когда компаниями BOSCH и INTEL был разработан сетевой интерфейс CAN (Controller Area Network) для создания бортовых мультипроцессорных систем реального времени.
      Название «шина» пришло из компьютерной терминологии. Оно обозначает связанные друг с другом провода, по которым передаются электрические сигналы между структурными элементами системы (управляющими и исполнительными устройствами).
      CAN-шина — это двухпроводная, последовательная, асинхронная шина с равноправными узлами и подавлением синфазных помех, с хорошим соотношением «цена/производительность». Первое применение коммуникация нашла в промышленных и индустриальных сетях (где очень хорошо себя зарекомендовала), после чего «плавно перетекла» в автомобилестроение. Это было не удивительно, ведь CAN характеризуется высокой скоростью передачи (гораздо большей, чем по К-линии), высокой помехоустойчивостью и способностью обнаруживать любые возникающие ошибки. CAN оказалась идеальным решением для любого приложения, где микроконтроллеры обмениваются сообщениями друг с другом и с удаленными периферийными устройствами.
     По сути CAN — это фактически Ethernet: шина очень многое наследует от локальных компьютерных сетей, но только в несколько урезанном виде. Урезанном, потому что некоторые функции ей, в общем-то, ни к чему — во главу угла прежде всего ставится высокая скорость и помехозащищенность. Благодаря тому, что CAN с успехом решает поставленные задачи, многие автопроизводители встраивают топологию CAN уже на этапе разработки автомобиля в конструкторском бюро.
      Так почему именно CAN?
      Действительно, а почему нельзя было обойтись существовавшими прежде системами и, продолжая их совершенствование, добиться лучших показателей? Дело в том, что, несмотря на то что параллельная, т. е. одновременная передача данных (принцип действия предшествующих систем), хоть и обеспечивает, в общем-то, достаточно высокую скорость передачи, требует большого количества проводов: для любой передаваемой информационной единицы, для соединения каждого контроллера с другим контроллером необходим отдельный провод.
     Представляете, сколько проводов потребуется для современного автомобиля, в котором количество всевозможных электронных блоков измеряется десятками, если не сотнями! Одна только кузовная электроника представляет собой целую группу блоков, на каждый элемент которой приходится до 5–6 контролеров.А в двери автомобиля премьер-класса, например, может оказаться свыше 10 модулей.
     И плюс еще «обязательные» ABS, подушки безопасности, блок управления двигателем, коробка передач, климатические системы, подвеска, светотехника, иммобилайзер, панель управления… и все это надо как-то объединить, заставить связываться друг с другом. Предыдущей технологии — коммуникации по многочисленным проводам — просто физически не хватало.
     К тому же вы сами понимаете, что такое автомобиль и в каких условиях работает его электроника: наводки от высоковольтной системы, серьезные температурные флуктуации и т. д. А помехозащищенность одного провода крайне низка. При увеличении скорости передачи сигнала его достоверность из-за помех сильно нарушается.
     Вот и был найден выход из положения: создать единое физическое пространство для обмена данными между элементами системы — последовательный цифровой интерфейс шины CAN.
     При этом часть жгутов электропроводки заменяется двухпроводной CAN-сетью. Можно сказать, что таким образом система эволюционировала, выйдя на новый качественный уровень. Идея-то, по сути, лежала на поверхности. Сегодня чипы, полностью интегрирующие функции CAN, можно покупать чуть ли не на вес. Применяя CAN, можно без особых проблем построить внутреннюю автомобильную сеть, состоящую из сотен электронных модулей и блоков, каждый из которых будет знать, что происходит в системе, не укладывая под капот километры проводов.
     Хотя физически с точки зрения проводов CAN-линия ничем не отличается от К-линии и L-линии — тоже два провода: Can-High и Can-Low (соответственно: высокое и низкое напряжение). Однако CAN-шина построена на технологии «витая пара (аналогия с Ethernet на лицо) — Twisted Pair». А как известно, помехозащищенность витой пары в разы больше одиночного провода.
     ВРЕЗ:
     Провода CAN-шины, как правило, оранжевого цвета. Визуальное отличие Can-High от Can-Low — наличие на проводе Can-High черной полосы. Can-Low — оранжево-коричневый.
     Вот именно по этим проводам и производится обмен данными между блоками управления. Они могут нести любую информацию, определенную автопроизводителем, причем скорость передачи этой информации может достигать 1 Мбит/с при высочайшей степени надежности прохождения сигнала.
     В статическом состоянии дифференциальные сигнальные линии находятся под потенциалом, приблизительно равным 2,5 V (максимальное напряжение по шине CAN — 5 V). Такое состояние называется рецессивным и соответствует «1». В доминантном состоянии, когда линии Can-Low и Can-High расходятся, мы получаем «0». Это позволяет контроллеру, считывающему сигнал, всегда знать, где единичка, а где нолик (доминантный бит «0» подавляет рецессивный бит «1»).
     Подключение модулей электронной системы автомобиля к шине происходит посредством специального устройства — трансивера, основной элемент которого представляет собой дифференциальный усилитель. По сути, это приемопередатчик сигналов, установленный на входе. После обработки поступивших с линий Can-High и Can-Low сигналов он передает их непосредственно электронному модулю автомобиля.
      Дифференциальный усилитель формирует выходное напряжение как разность между напряжениями на проводах High и Low шины CAN. Таким образом, исключается влияние величины базового напряжения (напряжения в рецессивном состоянии) или какого-либо иного напряжения, вызванного, например, внешними помехами.
     Также на конечных узлах шины предусмотрены «терминаторы» — сопротивления порядка 75 Ом, для того чтобы гасить сигнал, потому что на такой скорости передачи отражение сигнала от конца провода очень сильно влияет на стабильность сигнала.
      Возможности CAN.
      Использование CAN-коммуникации позволило одновременно подключать много контроллеров на одну шину. Но так как топология сети усложнилась, она стала немного более капризна к нюансам. То есть мы можем с уверенностью говорить о том, что это надежная шина, но шина именно капризная к нюансам, поскольку контроллеры, имея встроенные чипы с CAN, должны укладываться в жесткую структуру существующей топологии, которая программируется при создании автомобиля. При этом шинные системы имеют структурные различия, и каждый производитель придерживается своей топологии.
      Известны структуры в виде цепи, звезды или кольца. Связанные по шине электронные модули: датчики, контроллеры и пр. называются абонентами шины.
      Главное достоинство шины состоит в том, что каждый блок, находящийся на шине, как мы уже сказали, всегда «слышит», что происходит в системе, он всегда «слышит» запрос другого блока, всегда присутствует на шине. Каждый модуль фактически равноправен. Любое сообщение может быть послано одному или нескольким узлам. Все узлы одновременно считывают с шины одну и ту же информацию, и уже каждый из них в отдельности решает, принять ли ему данное сообщение или игнорировать его. Кроме того, каждый блок можно запрограммировать так, чтобы он «слышал» только определенные блоки или группу блоков.
      Подобная форма коммуникации — одновременный прием — очень важен для синхронизации в системах управления. При этом отказавшие узлы просто отключаются от обмена по шине. В терминологии CAN данная функция называется «мультимастер» (Multi Master). Благодаря ей реакция системы увеличивается многократно.
      Но не всегда есть необходимость в том, что бы «все слушали всех». Зачастую крайне важно отдать предпочтение в передаче одному или нескольким модулям, позволив им без помех общаться между собой. Для этого предусмотрена система распределения приоритетов между блоками. Реализуется она посредством своеобразных идентификаторов, определяющих статус того или иного модуля. Кроме того, этот же идентификатор обозначает и тип сообщения. Идентификатор, прописанный в стандарте CAN, это несколько бит в сообщениях, которыми обмениваются абоненты шины. Чем меньше битовое значение идентификатора (самый главный — это тот, чей идентификатор состоит из одних нулей), тем он главнее, тем выше его статус, тем выше его приоритет. Как только кто-то выходит на шину и собирается произвести свою передачу, происходит физическое сравнение идентификаторов — так называемый арбитраж шины. Предпочтение отдается наименьшему — все остальные сразу уходят и позволяют главному в данный момент блоку произвести передачу.
      То есть передача сообщения начинается с отправки на шину идентификатора. Если доступ к шине требуют несколько сообщений, то сначала будет передано сообщение с наиболее высоким приоритетом, т. е. с меньшим значением идентификатора, независимо от других сообщений и текущего состояния шины. Каждый узел перед передачей сообщения проверяет, работает ли узел с более высоким приоритетом. Если да, то он возвращается в состояние приемника и пытается передать сообщение в другое время. Это свойство имеет особое значение при использовании в системах управления реального времени, поскольку значение приоритета жестко определяет время ожидания.
      Благодаря арбитражу шины сообщение с высшим приоритетом передается первым, обеспечивая функционирование системы в реальном масштабе времени и быструю передачу информации. Распределение приоритетов между различными типами сообщений задается разработчиком при проектировании сети.

По материалам  http://www.remontauto.ru