Цифровая шина данных CAN
Общие сведения
На современных автомобилях применяются несколько сетевых шин обмена данными CAN (Controller Area Network) между модулями/блоками управления различных систем и контроллерами исполнительных устройств автомобиля.
Обмен данными по шине CAN
B — Датчик 1
|
М — Исполнительные элементы I - III (сервомеханизмы)
|
Шина является полнодуплексной (или просто дуплексной), т.е. любое подключенное к ней устройство может одновременно принимать и передавать сообщения.
Сигнал с чувствительного элемента соответствующего информационного (датчика) поступает в ближайший блок управления, который обрабатывает его и передает на шину обмена данными CAN.
Любой блок управления, подключенный к шине данных CAN, может считывать этот сигнал, вычислять на его основе параметры управляющего воздействия и управлять исполнительным сервомеханизмом.
Преимущества
При обычном кабельном соединении электрических и электронных устройств осуществляется прямое соединение каждого блока управления со всеми датчиками и исполнительными элементами, от которых он получает результаты измерений или которыми управляет.
Усложнение системы управления приводит к чрезмерной длине или многочисленности кабельных линий.
По сравнению со стандартной кабельной разводкой шина данных обеспечивает:
- Уменьшение количества кабелей. Провода от датчиков тянутся только к ближайшему блоку управления, который преобразует измеренные значения в пакет данных и передает его в шину CAN;
- Управлять исполнительным механизмом может любой блок управления, который по шине CAN получает соответствующий пакет данных, и на его основе рассчитывает значение управляющего воздействия на сервомеханизм;
- Улучшение электромагнитной совместимости;
- Уменьшение количества штекерных соединений и уменьшение количества контактных выводов на блоках управления;
- Снижение веса;
- Уменьшение количества датчиков, т.к. сигналы одного датчика (например, с датчика температуры охлаждающей жидкости) могут быть использованы различными системами;
- Улучшение возможностей диагностирования. Т.к. сигналы одного датчика (например, сигнал скорости) используются различными системами, то в случае, если сообщение о неисправности выдают все использующие данный сигнал системы, неисправным является, как правило, датчик или блок управления, обрабатывающий его сигналы. Если же сообщение о неисправности поступает только от одной системы, хотя данный сигнал используется и другими системами, то причина неисправности, чаще всего, заключена в обрабатывающем блоке управления или сервомеханизме;
- Высокая скорость передачи данных - возможна до 1 Мбит/с при максимальной длине линии 40 м. В настоящее время на а/м Mercedes-Benz скорость передачи данных составляет от 83 Кбит/с до 500 Кбит/с;
- Несколько сообщений могут поочередно передаваться по одной и той же линии.
Шина данных CAN состоит из двужильного провода, выполненного в виде витой пары. К этой линии подключены все устройства (блоки управления устройствами).
Передача данных осуществляется с дублированием по обоим проводам, причем логические уровни шины данных имеют зеркальное отображение (то есть, если по одному проводу передается уровень логического нуля (0), то по другому проводу - уровень логической единицы (1), и наоборот).
Двухпроводная схема передачи используется по двум причинам: для контроля ошибок и как основа надежности.
Если пик напряжения возникает только на одном проводе, - например, вследствие проблем, связанных с электромагнитной совместимостью (ЭМС), - то блоки-приемники могут идентифицировать это как ошибку и проигнорировать данный пик.
В случае же короткого замыкания или обрыва одного из двух проводов шины CAN, благодаря интегрированной программно-аппаратной системе надежности осуществляется переключение в режим работы по однопроводной схеме. Поврежденная передающая линия перестает использоваться.
Порядок и формат передаваемых и принимаемых пользователями (абонентами) сообщений определен в протоколе обмена данными.
Существенным отличительным признаком шины данных CAN по сравнению с другими шинными системами, базирующимися на принципе абонентской адресации, является соотнесенная с сообщением адресация.
Сказанное означает, что каждому передаваемому по шине сообщению присваивается его постоянный адрес (идентификатор), маркирующий содержание этого сообщения (например: температура охлаждающей жидкости). Протокол шины данных CAN допускает передачу до 2048 различных сообщений, причем адреса с 2033 по 2048 являются постоянно закрепленными.
Объем данных в одном сообщении по шине CAN составляет 8 байт.
Блок-приемник обрабатывает только те сообщения, которые сохранены в его собственном идентификационном списке (контроль приемлемости).
Пакеты данных могут передаваться только в том случае, если шина обмена CAN свободна (т.е., если после передачи последнего пакета последовал интервал в 3 бита, и никакой из блоков управления не начинает передавать очередное сообщение). При этом логический уровень шины данных должен быть рецессивным (логическая «1»).
Если несколько блоков управления одновременно начинают передавать сообщения, то вступает в силу принцип приоритетности, согласно которому сообщение, обладающее наивысшим приоритетом, будет передаваться первым без потери времени или битов (арбитраж запросов доступа к общей шине данных).
Каждый блок управления, утрачивающий право арбитража, автоматически переключается на прием и повторяет попытку отправить свое сообщение, как только шина данных вновь освободится.
Кроме пакетов данных используются также пакеты запроса определенного сообщения по шине данных CAN, - на подобный запрос реагирует тот блок управления, который может предоставить запрашиваемую информацию.
Формат передачи данных
В обычном режиме передачи используются пакеты следующих конфигураций:
- Data Frame (кадр сообщения) для передачи сообщений по шине данных CAN (например: температура охлаждающей жидкости);
- Remote Frame (кадр запроса) для запроса сообщений по шине данных CAN от другого блока управления;
- Error Frame (кадр ошибки), - все подключенные блоки управления уведомляются о том, что возникла ошибка и последнее сообщение по шине данных CAN является недействительным.
Протокол шины данных CAN поддерживает два различных формата кадров сообщения по шине данных CAN, которые различаются только по длине идентификатора:
- Стандартный формат;
- Расширенный формат.
В настоящее время в системах обмена данными систем управления автомобилей компании Daimler Chrysler используется только стандартный формат.
Каждый кадр передаваемых по шине CAN сообщений состоит из семи последовательных полей:
Формат кадра
|
- Start of Frame (стартовый бит): Маркирует начало сообщения и синхронизирует все модули;
- Arbitration Field (идентификатор и запрос): Это поле состоит из идентификатора (адреса) в 11 бит и 1 контрольного бита (Remote Transmission Request-Bit). Этот контрольный бит маркирует кадр как Data Frame (кадр данных) или как Remote Frame (кадр удаленного запроса) без байтов данных;
- Control Field (управляющие биты): Поле управления (6 бит) содержит IDE-бит (Identifier Extension Bit) для распознавания стандартного и расширенного формата, резервный бит для последующих расширений и - в последних 4 битах - количество байтов данных, заложенных в Data Field (поле данных);
- Data Field (данные): Поле данных может содержать от 0 до 8 байт данных; сообщение по шине данных CAN длиной 0 байт используется для синхронизации распределенных процессов;
- CRC Field (контрольное поле): Поле CRC (Cyclic-Redundancy-Check Field) содержит 16 бит и служит для контрольного распознавания ошибок при передаче;
- ACK Field (подтверждение приема): Поле ACK (Acknowledgement Field) содержит сигнал подтверждения приема всех блоков-приемников, получивших сообщение по шине CAN без ошибок;
- End of Frame (конец кадра): Маркирует конец кадра;
- Intermission (интервал): Интервал между двумя кадрами данных. Интервал должен составлять не менее 3 битов. После этого любой блок управления может начинать передачу очередного пакета;
- IDLE (режим покоя): Если ни один блок управления не передает сообщений, то шина CAN остается в режиме покоя до начала передачи следующего пакета.
Приоритеты
Для обработки данных в режиме реального времени должна быть обеспечена возможность их быстрой передачи.
Это предполагает не только наличие линии с высокой физической скоростью передачи данных, но и требует также оперативного предоставления доступа к общей шине CAN, если нескольким блокам управления необходимо одновременно передать сообщения.
С целью разграничения передаваемых по шине данных CAN сообщений по степени срочности, для отдельных сообщений предусмотрены различные приоритеты.
Угол опережения зажигания, например, имеет высший приоритет, значения пробуксовки - средний, а температура наружного воздуха - низший приоритет.
Приоритет, с которым сообщение передается по шине CAN, определяется идентификатором (адресом) соответствующего сообщения.
Идентификатор, соответствующий меньшему двоичному числу, имеет более высокий приоритет, и наоборот.
Протокол шины данных CAN основывается на двух логических состояниях: Биты являются или «рецессивными» (логическая «1»), или «доминантными» (логический «0»). Если доминантный бит передается как минимум одним модулем, то рецессивные биты, передаваемые другими модулями, перезаписываются.
Пример
Если несколько блоков управления одновременно начинают передачу данных, то конфликт доступа к общей шине данных разрешается посредством «побитового арбитража запросов общего ресурса» с помощью соответствующих идентификаторов.
При передаче поля идентификатора блок-передатчик после каждого бита проверяет, обладает ли он еще правом передачи, или уже другой блок управления передает по шине сообщение с более высоким приоритетом.
Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока-передатчика, то первый блок-передатчик теряет свое право передачи (арбитраж) и становится блоком-приемником.
Пример организации арбитража
Другие блоки управления попытаются передать свои сообщения по шине данных CAN только после того, как она снова освободится. При этом право передачи опять будет предоставляться в соответствии с приоритетностью сообщения по шине данных CAN.
Распознавание ошибок
Помехи могут приводить к ошибкам в передаче данных. Такие, возникающие при передаче, ошибки следует распознавать и устранять. Протокол шины данных CAN различает два уровня распознавания ошибок:
- Механизмы на уровне Data Frame (кадр данных);
- Механизмы на уровне битов.
Механизмы на уровне 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 блоков управления.