Команды can шины mercedes

Цифровая шина данных CAN Мерседес W203

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

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

Отдельные блоки управления объединены друг с другом в общую сеть и могут обмениваться данными.

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

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

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

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

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

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

· Уменьшение количества кабелей. Провода от датчиков тянутся только к ближайшему блоку управления, который преобразует измеренные значения в пакет данных и передаёт его в шину CAN.
· Управлять исполнительным механизмом может любой блок управления, который по шине CAN получает соответствующий пакет данных, и на его основе рассчитывает значение управляющего воздействия на сервомеханизм.
· Улучшение электромагнитной совместимости.
· Уменьшение количества штекерных соединений и уменьшение количества контактных выводов на блоках управления.
· Снижение веса.
· Уменьшение количества датчиков, т.к. сигналы одного датчика (например, с датчика температуры охлаждающей жидкости) могут быть использованы различными системами.
· Улучшение возможностей диагностирования. Т.к. сигналы одного датчика (например, сигнал скорости) используются различными системами, то в случае, если сообщение о неисправности выдают все использующие данный сигнал системы, неисправным является, как правило, датчик или блок управления, обрабатывающий его сигналы. Если же сообщение о неисправности поступает только от одной системы, хотя данный сигнал используется и другими системами, то причина неисправности, чаще всего, заключена в обрабатывающем блоке управления или сервомеханизме.
· Высокая скорость передачи данных – возможна до 1Мбит/с при максимальной длине линии 40 м. В настоящее время на а/м Mercedes-Benz скорость передачи данных составляет от 83 Кбит/с до 500 Кбит/с.
· Несколько сообщений могут поочерёдно передаваться по одной и той же линии.
Шина данных CAN состоит из двужильного провода, выполненного в виде витой пары. К этой линии подключены все устройства (блоки управления устройствами).

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

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

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

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

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

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

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

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

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

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

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

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

Кроме пакетов данных существует также пакет запроса определённого сообщения по шине данных CAN.

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

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

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

• Data Frame (фрейм сообщения) для передачи сообщений по шине данных CAN (напр.: температура охлаждающей жидкости).
• Remote Frame (фрейм запроса) для запроса сообщений по шине данных CAN от другого блока управления.
• Error Frame (фрейм ошибки) все подключённые блоки управления уведомляются о том, что возникла ошибка и последнее сообщение по шине данных CAN является недействительным.

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

— стандартный формат;
— расширенный формат.

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

Приоритеты

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

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

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

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

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

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

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

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

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes

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

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

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

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

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

· механизмы на уровне Data Frame (фрейм сообщения);
· механизмы на уровне битов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Элементы сети обмена данными (CAN)

CAN B (Салон)

Передний блок регистрации и управления с коробкой предохранителей и реле (SAM/SRB-V)

Задний блок регистрации и управления с коробкой предохранителей и реле (SAM/SRB-H)

Блок управления левого сиденья (SSG)

Блок управления правого сиденья (SSG)

Блок управления передней левой двери (TSG)

Блок управления передней правой двери (TSG)

Блок управления задней левой двери (TSG)

Блок управления задней правой двери (TSG)

Блок управления крыши (DBE)

Верхнее поле управления (OBF)

Нижнее поле управления (UBF)

Электронный стартовый выключатель зажигания (EZS)

Приборная доска (KI)

Система COMMAND/аудио 10/аудио 30/аудио 30 APS

Система Parktronic (PTS)

Прибор сцепного устройства прицепа (AAG)

Блок многофункционального управления для специальных моделей (MSS)

Отопитель (KKLA/BKLA – SA)

Распределитель CAN-B RBA правый

Распределитель CAN-B RBA левый

Распределитель CAN-B Cockpit

Подушки безопасности со встроенной системой вызова ARMINCA

CAN С (Привод и ходовая часть)

Выключатель зажигания (EZS)

Приборная доска (KI)

Электронное управление коробки передач (EGS или KGS)

Блок управления двигателя (MSG)

Электронный блок селектора передач (EMW)

Распределитель CAN Класс-C RBA левый

Электронная противозаносная система (ESP)

Не включённые в сеть SG

Автоматическая регулировка дальности света (ALWR)

Элементы, подключенные к оптоволоконной шине D2B

D2B (Аудио/Связь/Навигация)

Оптоволоконный кабель

COMMAND/аудио 10/аудио 30/аудио 30 APS

Телефонная система (MINNA, аварийный вызов)

Устройство голосового управления Linguatronic (SBS)

Контроллер мобильного телефона (интерфейс)

Показаны не все

Радиоприёмник или магнитола

Дисплей и блок управления функционирования системы COMAND

Блок управления системы голосового управления

Интерфейс D2B для мобильного/встроенного телефона

Приёмопередатчик сотового телефона (CTEL)/системы аварийного вызова TELE AID

Источник

Управление автомобилем по CAN

Введение

Беспилотный автомобиль StarLine на платформе Lexus RX 450h — научно-исследовательский проект, стартовавший в 2018 году. Проект открыт для амбициозных специалистов из Open Source Community. Мы предлагаем всем желающим поучаствовать в процессе разработки на уровне кода, опробовать свои алгоритмы на реальном автомобиле, оснащенном дорогостоящим оборудованием. Для управления автомобилем было решено использовать Apollo, открытый фреймворк. Для работы Apollo нам необходимо было подключить набор модулей. Эти модули помогают программе получать информацию об автомобиле и управлять им по заданным алгоритмам.

К таким модулям относятся:

Теоретическая часть

Что такое CAN-шина

В современных автомобилях управление всеми системами взяли на себя электронные блоки (Рис. 1.). Электронные блоки — это специализированные компьютеры, каждый из которых имеет все необходимые интерфейсы для интеграции с автомобилем. С помощью цифровых интерфейсов связи, блоки объединяются в сеть для обмена информацией друг с другом. Самые распространенные цифровые интерфейсы в автомобилях — CAN, LIN, FLEXRay. Из них наибольшее распространение получил именно CAN.

CAN (Controller Area Network) шина — это промышленный стандарт сети. В 1986 году этот стандарт разработали в компании Bosch. А первым автомобилем с CAN-шиной стал Mercedes-Benz W140, выпущенный в 1991 году. Стандарт разрабатывался для возможности устройствам общаться друг с другом без хоста. Обмен информацией осуществляется с помощью специальных сообщений, которые состоят из полей ID, длины сообщения и данных. Каждый блок имеет свой набор ID. При этом приоритет на шине имеет сообщение с меньшим ID. Поле данных может нести информацию, например, о состоянии систем и датчиков, команды управления механизмами и т.д.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 1. Шина CAN автомобиля.

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

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 2. Физическое представление сигнала в CAN шине

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

Мы выбрали Lexus RX, потому что знали, что сможем управлять всеми необходимыми узлами по CAN. Так как самое сложное при исследовании автомобиля — это закрытые протоколы. Поэтому одной из причин выбора именно этой модели авто стало наличие описания части протокола CAN-шины в opensource-проекте Openpilot.

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

Электроусилитель руля

Электроусилитель руля EPS (Electric Power Steering) — система, предназначенная снизить усилие на руль при повороте (Рис. 3). Приставка «электро» говорит о типе системы — электрическая. Управление рулем с этой системой становится комфортным, водитель поворачивает руль в нужном направлении, а электродвигатель помогает довернуть его до необходимого угла.

Электроусилитель устанавливается на рулевой вал автомобиля, части которого соединены между собой торсионным валом. На торсионный вал устанавливается датчик величины крутящего момента (Torque Sensor). При вращении руля происходит скручивание торсионного вала, которое регистрируется датчиком момента. Данные, полученные от датчика момента, датчиков скорости и оборотов коленвала, поступают в электронный блок управления ECU. А ECU, в свою очередь, уже вычисляет необходимое компенсационное усилие и подает команду на электродвигатель усилителя.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 3. Схематичное изображение системы электроусилителя руля

Видео: cистема LKA рулит автомобилем с помощью системы EPS.

Электронная педаль газа

Дроссельная заслонка — это механизм регулировки количества топливной смеси, которая попадет в двигатель. Чем больше смеси попадет, тем быстрее едет автомобиль.
Электронная педаль газа — это система, которая задействует работу нескольких электронных узлов. Сигнал о положении педали, при ее нажатии, поступает в блок управления двигателем ECM (Engine Control Module). ECM, на основе этого сигнала, рассчитывает необходимое количество топлива, которое нужно подать в двигатель. В зависимости от необходимого количества топлива, ECM регулирует угол открытия дроссельной заслонки.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 4. Система электронной педали газа.

Видео: Для работы круиз-контроля используется управление электронной педалью газа.

Электронные системы помощи водителю

Мы купили автомобиль, который оборудован множеством цифровых блоков и систем помощи водителю (ADAS). В нашем проекте мы используем LKA, ACC и PCS.

LKA (Lane Keep Assist) — это система удержания в полосе, которая состоит из фронтальной камеры и вычислительного блока. LKA удерживает автомобиль в полосе движения, когда водитель, например, отвлекся. Алгоритмы в вычислительном блоке получают данные от камеры и на их основе принимают решение о состоянии автомобиля на дороге. Система способна понимать, что автомобиль неконтролируемо движется к правой или левой полосе. В таких случаях подается звуковой сигнал для привлечения внимания водителя. При пересечении полосы система сама скорректирует угол поворота колес так, чтобы автомобиль остался в полосе движения. Система должна вмешиваться только в том случае, если осознает, что маневр между полосами движения не был вызван действием водителя.

ACC (Adaptive Cruise Control) — система адаптивного круиз-контроля, который позволяет выставить заданную скорость следования. Автомобиль сам ускоряется и притормаживает для поддержания нужной скорости, при этом водитель может убрать ногу с педалей газа и тормоза. Этот режим удобно использовать при езде по скоростным магистралям и автострадам. Адаптивный круиз контроль способен видеть препятствия впереди автомобиля и притормаживать для избежания столкновения с ними. Если впереди автомобиля едет другое транспортное средство с меньшей скоростью, ACC сбавит скорость и будет следовать за ним. При обнаружении статичного объекта, ACC сбавит скорость до полной остановки. Для обнаружения объектов перед автомобилем такая система использует радар с миллиметровым диапазоном длин волн. Обычно такие радары работают на частоте 24-72 ГГц и способны уверенно видеть объекты на расстоянии до 300 метров. Радар обычно установлен за передним значком на решетке радиатора.

PCS (Pre-Collision System) — система предотвращения столкновения. Система призвана предотвратить столкновение с автомобилем, который движется впереди. При неизбежности столкновения, система минимизирует урон от столкновения. Здесь так же используются радар для оценки расстояния до объекта и фронтальная камера для его распознавания. Фронт PCS прогнозирует вероятность столкновения на основе скорости автомобиля, расстояния до объекта и его скорости. Обычно у системы есть два этапа срабатывания. Первый этап — система звуком и индикацией на приборной панели оповещает об опасности водителя. Второй этап — активируется экстренное торможение с помощью системы ABS, и включаются преднатяжители ремней безопасности.

Практическая часть

Управление рулем

Первое, что захотелось сделать нашей команде, — это научиться рулить. Рулем в автомобиле могут управлять две системы: парковочный ассистент IPAS (Intelligent Park Assist) и LKA.

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

Поэтому мы изучили электрические схемы автомобиля и поняли, какие CAN-шины могут быть полезны. Мы подключили анализатор CAN-шины. Лог содержит файл записей сообщений в шине в хронологической последовательности. Наша задача была найти команды управления электроусилителем руля EPS (Electric Power Steering). Мы сняли лог поворота рулевого колеса из стороны в сторону, в логе смогли найти показания угла поворота и скорость вращения рулевого колеса. Ниже пример изменения данных в шине CAN. Интересующие нас данные выделены маркером.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Поворот руля влево на 360 градусов

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Поворот руля вправо на 270 градусов

Следующим этапом мы исследовали систему удержания в полосе. Для этого мы выехали на тихую улицу и записали логи обмена между блоком удержания в полосе и DSU (Driving Support ECU). С помощью анализатора шины CAN нам удалось вычислить сообщения от системы LKA. На рисунке 6 изображена команда управления EPS.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 5. Команда управления рулем с помощью системы LKA

LKA управляет рулем путем задания значения момента на валу (STEER_TORQUE_CMD) рулевого колеса. Команду принимает модуль EPS. Каждое сообщение содержит в заголовке значение счетчика (COUNTER), которое инкрементируется при каждой отправке. Поле LKA_STATE содержит информацию о состоянии LKA. Для захвата управления необходимо выставлять бит STEER_REQUEST.

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

На графике (Рис. 6.) представлена диаграмма работы LKA. Torque Sensor — значение с датчика момента на торсионном валу. Torque Cmd — команда от LKA для управления рулем. Из картинки видно, как происходит подруливание LKA для удержания автомобиля в полосе. При переходе через ноль меняется направление поворота руля. Т.е. отрицательное значение сигнала говорит о повороте вправо, положительное — влево. Удержание команды в нуле говорит об отсутствии управления со стороны LKA. При вмешательстве водителя, система перестает выдавать управление. О вмешательстве водителя LKA узнает с помощью второго датчика момента на валу со стороны рулевого колеса.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 6. График работы системы LKA

Нам предстояло проверить работу команды управления рулем. С помощью модуля StarLine Сигма 10 мы подготовили прошивку для проверки управления. StarLine Сигма 10 должен выдавать в CAN-шину команды на поворот руля влево или вправо. На тот момент у нас не было графического интерфейса для управления модулем, поэтому пришлось использовать штатные средства автомобиля. Мы нашли в CAN-шине статус положения рычага круиз-контроля и запрограммировали модуль таким образом, что верхнее положение рычага приводило к повороту руля вправо, нижнее положение — к повороту влево (Рис. 7).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 7. Первые попытки рулить

На видео видно, что управление осуществляется короткими секциями. Это возникает по нескольким причинам.

Первая из причин — это отсутствие обратной связи. Если расхождение между сигналом Torque Cmd и Torque Sensor превышает определенное значение Δ, система автоматически перестает воспринимать команды (Рис. 8). Мы настроили алгоритм на корректировку выдаваемой команды (Torque CMD) в зависимости от значения момента на валу (Torque Sensor).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 8. Расхождение сигнала приводит к ошибке работы системы

Следующее ограничение связано с системой защиты встроенной в EPS. Система EPS не позволяет командами от LKA рулить в широком диапазоне. Что вполне логично, т.к. при езде по дороге резкое маневрирование не безопасно. Таким образом, при превышении порогового значения момента на валу, система LKA выдает ошибку и отключается (Рис. 9).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 9. Превышение порогового значения регулировки момента на валу

Независимо от того, активирована система LKA или нет, сообщения с командами от нее присутствуют в шине постоянно. Мы посылаем модулю EPS команду повернуть колеса с конкретным усилием влево или вправо. А в это время LKA перебивает наши посылки «пустыми» сообщениями. После нашей команды со значением момента, приходит штатная с нулевым (Рис. 10).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 10. Штатные сообщения приходят с нулевыми значениями момента и перебивают наше управление

Тогда мы, с помощью модуля StarLine Сигма 10, смогли фильтровать весь трафик от LKA и блокировать сообщения с ID 2E4, когда нам это было нужно. Это решило проблему, а нам удалось получить плавное управления рулем (Рис. 11).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 11. Плавная регулировка поворота руля без ошибок

Управление газом

Система адаптивного круиз-контроля ACC управляет ускорением и торможением программно по CAN-шине. Блок управления двигателем ECU принимает команды DSU, если необходимо ускориться — активирует электронную педаль газа. Для торможения автомобиля используется рекуперативное торможение. При этом на торможение и ускорение используется одна команда, отличаются только значения.

Команда управления ускорением или замедлением представлена на рисунке 12. Она состоит из величины ускорения ACCEL_CMD, пары служебных бит и контрольной сумма Checksum. Для ускорения автомобилем значение ACCEL_CMD положительное, для замедления — отрицательное. Ускорение задается в диапазоне от 0 до 3 м/с^2, замедление аналогично, но со знаком минус. Для отправки данных в шину необходимо пересчитать желаемое ускорение или замедление с коэффициентом 0,001. Например, для ускорения 1 м/с^2, ACCEL_CMD = 1000 (0x03E8).

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 12. Команда управления ускорения/замедления автомобиля

Мы сняли логи со штатной системы ACC и проанализировали команды. Сравнили с имеющимся у нас описанием команд и приступили к тестированию.

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 13. Лог управления ускорением/замедлением системы адаптивного круиз-контроля ACC (выделено маркером)

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

Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 14. Активация круиз контроля происходит при наличии впереди другого траснпортного средства

С помощью модуля StarLine Сигма 10 посылаем команду ускорения, и автомобиль начинает набирать скорость. К этому моменту мы подключили графический интерфейс для управления модулем StarLine Сигма 10. Теперь мы управляем рулем, ускорением и торможением с помощью кнопок в приложении.

Команды работали до тех пор, пока не потеряли автомобиль впереди. Система круиз-контроля отключилась, а следовательно, и команды ускорения перестали работать.
Мы приступили к исследованию возможности использовать команды без активного круиз-контроля. Пришлось много времени потратить на анализ данных в шине CAN, чтобы понять как создать условия для работы команд. Нас интересовало, в первую очередь, какой блок блокирует выполнение команд ACC на ускорение или замедление. Пришлось изучить какие ID идут от DSU, LKA, радара и камеры, подсовывая липовые данные различных датчиков.

Решение пришло спустя 3 недели. К тому времени мы представляли как происходит взаимодействие блоков автомобиля, провели исследование трафика сообщений и выделили группы сообщений, посылаемых каждым блоком. За работу адаптивного круиз-контроля ACC отвечает блок Driving Support ECU (DSU). DSU выдает команды на ускорение и замедление автомобиля, и именно этот блок получает данные от радара миллиметрового диапазона. Радар сообщает DSU на каком расстоянии от машины движется объект, с какой относительной скоростью и определяет его положение по горизонтали (левее, правее или по центру).

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

a) Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedesб)Команды can шины mercedes. Смотреть фото Команды can шины mercedes. Смотреть картинку Команды can шины mercedes. Картинка про Команды can шины mercedes. Фото Команды can шины mercedes
Рис. 15. Активация круиза: a) попытка активировать без подмены данных радара; б) активация при подмене данных от радара.

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

Как мы уже узнали, команда на ускорение и замедление одна. Поэтому тут же проверили и замедление. Поехали на на скорости с активным круиз-контролем, запустили команду на торможение, и авто сразу же замедлилось.

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

Что еще мы используем

Для создания беспилотника необходимо управление вспомогательными системами: поворотниками, стоп-сигналами, аварийной сигнализацией, клаксоном и пр. Всем этим так же можно управлять по CAN шине.

Оборудование и ПО

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *