Цифровая шина данных CAN
Основные сведения
На автомобиле применены несколько сетевых шин обмена данными CAN (Controller Area Network) между блоками (модулями) управления различных систем и контроллерами исполнительных устройств автомобиля.
Отдельные блоки управления объединены друг с другом в общую сеть и могут обмениваться данными.
Шина является двунаправленной, т.е. любое подключённое к ней устройство может принимать и передавать сообщения.
Сигнал с чувствительного элемента (датчика) поступает в ближайший блок управления, который обрабатывает его и передаёт на шину данных CAN.
Любой блок управления, подключённый к шине данных CAN, может считывать этот сигнал, вычислять на его основе значение управляющего воздействия и управлять исполнительным сервомеханизмом.
Обмен данными по шине CAN
B — Датчик 1 CAN — Шина данных | М — Исполнительные элементы I - III (сервомеханизмы)N — Блоки управления (контроллеры) I - V |
Преимущества
При обычном кабельном соединении электрических и электронных устройств осуществляется прямое соединение каждого блока управления со всеми датчиками и исполнительными элементами, от которых он получает результаты измерений или которыми управляет.
Усложнение системы управления приводит к чрезмерной длине или многочисленности кабельных линий.
По сравнению со стандартной кабельной разводкой шина данных обеспечивает:
- Уменьшение количества кабелей. Провода от датчиков тянутся только к ближайшему блоку управления, который преобразует измеренные значения в пакет данных и передаёт его в шину CAN.
- Управлять исполнительным механизмом может любой блок управления, который по шине CAN получает соответствующий пакет данных, и на его основе рассчитывает значение управляющего воздействия на сервомеханизм.
- Улучшение электромагнитной совместимости.
- Уменьшение количества штекерных соединений и уменьшение количества контактных выводов на блоках управления.
- Снижение веса.
- Уменьшение количества датчиков, т.к. сигналы одного датчика (например, с датчика температуры охлаждающей жидкости) могут быть использованы различными системами.
- Улучшение возможностей диагностирования. Т.к. сигналы одного датчика (например, сигнал скорости) используются различными системами, то в случае, если сообщение о неисправности выдают все использующие данный сигнал системы, неисправным является, как правило, датчик или блок управления, обрабатывающий его сигналы. Если же сообщение о неисправности поступает только от одной системы, хотя данный сигнал используется и другими системами, то причина неисправности, чаще всего, заключена в обрабатывающем блоке управления или сервомеханизме.
- Высокая скорость передачи данных – возможна до 1Мбит/с при максимальной длине линии 40 м. В настоящее время на а/м скорость передачи данных составляет от 83 Кбит/с до 500 Кбит/с.
- Несколько сообщений могут поочерёдно передаваться по одной и той же линии.
Шина данных CAN состоит из двужильного провода, выполненного в виде витой пары. К этой линии подключены все устройства (блоки управления устройствами).
Передача данных осуществляется с дублированием по обоим проводам, причём логические уровни шины данных имеют зеркальное отображение (то есть, если по одному проводу передаётся уровень логического нуля, то по другому проводу передаётся уровень логической единицы, и наоборот).
Двухпроводная схема передачи используется по двум причинам: для выявления ошибок и как основа надёжности.
Если пик напряжения возникает только на одном проводе (например, вследствие проблем с ЭМС (электромагнитная совместимость)), то блоки-приёмники могут идентифицировать это как ошибку и проигнорировать этот пик напряжения.
Если же произойдёт короткое замыкание или обрыв одного из двух проводов шины данных CAN, то благодаря интегрированной программно-аппаратной системе надёжности произойдёт переключение в режим работы по однопроводной схеме. Повреждённая передающая линия использоваться не будет.
Порядок и формат передаваемых и принимаемых пользователями (абонентами) сообщений определён в протоколе обмена данными.
Существенным отличительным признаком шины данных CAN по сравнению с другими шинными системами, базирующимися на принципе абонентской адресации, является соотнесённая с сообщением адресация.
Это значит, что каждому сообщению по шине данных CAN присваивается его постоянный адрес (идентификатор), маркирующий содержание этого сообщения (например: температура охлаждающей жидкости). Протокол шины данных CAN допускает передачу до 2048 различных сообщений, причём адреса с 3 по 2048 являются постоянно закреплёнными.
Объём данных в одном сообщении по шине данных CAN составляет 8 байт.
Блок-приёмник обрабатывает только те сообщения (пакеты данных), которые сохранены в его списке принимаемых по шине данных CAN сообщений (контроль приемлемости).
Пакеты данных могут передаваться только в том случае, если шина данных CAN свободна (т.е., если после последнего пакета данных последовал интервал в 3 бита, и никакой из блоков управления не начинает передавать сообщение).
При этом логический уровень шины данных должен быть рецессивным (логическая «1»).
Если несколько блоков управления одновременно начинают передавать сообщения, то вступает в силу принцип приоритетности, согласно которому сообщение по шине данных CAN с наивысшим приоритетом будет передаваться первым без потери времени или битов (арбитраж запросов доступа к общей шине данных).
Каждый блок управления, утрачивающий право арбитража, автоматически переключается на приём и повторяет попытку отправить своё сообщение, как только шина данных CAN снова освободится.
Кроме пакетов данных существует также пакет запроса определённого сообщения по шине данных CAN.
В этом случае блок управления, который может предоставить запрашиваемый пакет данных, реагирует на данный запрос.
Формат пакета данных
В обычном режиме передачи пакеты данных имеют следующие конфигурации блоков (фреймы):
• Data Frame (фрейм сообщения) для передачи сообщений по шине данных CAN (например: температура охлаждающей жидкости).
• Remote Frame (фрейм запроса) для запроса сообщений по шине данных CAN от другого блока управления.
• Error Frame (фрейм ошибки) все подключённые блоки управления уведомляются о том, что возникла ошибка и последнее сообщение по шине данных CAN является недействительным.
Протокол шины данных CAN поддерживает два различных формата фреймов сообщения по шине данных CAN, которые различаются только по длине идентификатора:
- стандартный формат;
- расширенный формат.
В настоящее время используется стандартный формат.
Пакет данных для передачи сообщений по шине данных 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 сообщение с более высоким приоритетом.
Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока-передатчика, то первый блок-передатчик теряет своё право передачи (арбитраж) и становится блоком-приёмником.
Первый блок управления (N I) утрачивает арбитраж с 3-го бита.
Третий блок управления (N III) утрачивает арбитраж с 7-го бита.
Второй блок управления (N II) сохраняет право доступа к шине данных CAN и может передавать своё сообщение.
Другие блоки управления попытаются передать свои сообщения по шине данных 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) данных применена для области «Аудио/коммуникации/навигация». Оптоволоконный кабель может передавать существенно больший объём информации, чем шина с медным кабелем.