14.6. Цифровая шина данных CAN

На современных автомобилях применяются несколько сетевых шин обмена данными CAN (Controller Area Network) между модулями/блоками управления различных систем и контроллерами исполнительных устройств автомобиля.

Обмен данными по шине CAN

B — Датчик 1
CAN — Шина данных

М — Исполнительные элементы I - III (сервомеханизмы)
N — Блоки управления (контроллеры) I - V

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

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

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

Преимущества

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

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

По сравнению со стандартной кабельной разводкой шина данных обеспечивает:

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

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

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

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

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

Порядок и формат передаваемых и принимаемых пользователями (абонентами) сообщений определен в протоколе обмена данными.

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

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

Объем данных в одном сообщении по шине CAN составляет 8 байт.

Блок-приемник обрабатывает только те сообщения, которые сохранены в его собственном идентификационном списке (контроль приемлемости).

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

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

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

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

Формат передачи данных

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

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

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

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

Формат кадра

Приоритеты

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

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

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

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

Приоритет, с которым сообщение передается по шине CAN, определяется идентификатором (адресом) соответствующего сообщения.

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

Протокол шины данных CAN основывается на двух логических состояниях: Биты являются или «рецессивными» (логическая «1»), или «доминантными» (логический «0»). Если доминантный бит передается как минимум одним модулем, то рецессивные биты, передаваемые другими модулями, перезаписываются.

Пример

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

При передаче поля идентификатора блок-передатчик после каждого бита проверяет, обладает ли он еще правом передачи, или уже другой блок управления передает по шине сообщение с более высоким приоритетом.

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

Пример организации арбитража

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

Второй блок управления (N II) сохраняет право доступа к шине данных CAN и
может передавать свое сообщение

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

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

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

Механизмы на уровне Data Frame

Cyclic-Redundancy-Check

На основе передаваемого по шине данных CAN сообщения блок-передатчик рассчитывает контрольные биты, которые передаются вместе с пакетом данных в поле «CRC Field» (контрольные суммы). Блок-приемник заново вычисляет эти контрольные биты на основе принятого по шине данных CAN сообщения и сравнивает их с контрольными битами, полученными вместе с этим сообщением.

Frame Check

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

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

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

Мониторинг

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

Bit Stuffing

В каждом кадре данных между полем «Start of Frame» и концом поля «CRC Field» должно быть не более 5 следующих друг за другом битов с одинаковой полярностью.

После каждой последовательности из 5 одинаковых битов блок-передатчик добавляет в поток битов один бит с противоположной полярностью.

Блоки-приемники удаляют эти биты после приема сообщения по шине данных CAN.

Устранение ошибок

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

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

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

Блок управления, чье сообщение по шине данных CAN обусловило возникновение ошибки, также начинает повторную передачу своего сообщения (функция Automatic Repeat Request).

Типы шин CAN

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

Скорость передачи по шине данных CAN области «двигатель и ходовая часть» (CAN-C) составляет 125 Кбит/с, а шина данных CAN «Салон»(CAN-B) вследствие меньшего количества особо срочных сообщений рассчитана на скорость передачи данных только 83 Кбит/с.

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

Оптоволоконная шина D2B (Digital Daten-Bus) данных применена для области «Аудио/коммуникации/навигация». Оптоволоконный кабель может передавать существенно больший объем информации, чем шина с медным кабелем.

CAN C - шина «Двигатель и ходовая часть»

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

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

К шине CAN-С может быть подключено более 7 блоков управления.

CAN-B - шина «Салон»

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

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

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

Если в режиме пассивного ожидания шины данных CAN салона какой-либо блок управления (например, модуль управления единого замка) передает по ней сообщение, то его принимает только главный системный модуль (электронный замок зажигания, EZS/EIS). Модуль EZS сохраняет это сообщение в памяти и посылает сигнал активации (Wake-up) на все блоки управления, подключенные к шине CAN-В.

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

К шине CAN-В может быть подключено более 20 блоков управления.