Установка can шины в ваз
Беспилотный автомобиль StarLine на платформе Lexus RX 450h — научно-исследовательский проект, стартовавший в 2018 году. Проект открыт для амбициозных специалистов из Open Source Community. Мы предлагаем всем желающим поучаствовать в процессе разработки на уровне кода, опробовать свои алгоритмы на реальном автомобиле, оснащенном дорогостоящим оборудованием. Для управления автомобилем было решено использовать Apollo, открытый фреймворк. Для работы Apollo нам необходимо было подключить набор модулей. Эти модули помогают программе получать информацию об автомобиле и управлять им по заданным алгоритмам.
К таким модулям относятся:
- модуль позиционирования автомобиля в пространстве с помощью GPS-координат;
- модуль управления рулем, ускорением и торможением авто;
- модуль состояния систем автомобиля: скорость, ускорение, положение руля, нажатие на педали и т.д.;
- модуль получения информации об окружении автомобиля. С этим справятся ультразвуковые датчики, камеры, радары и лидары.
Теоретическая часть
Что такое CAN-шина
В современных автомобилях управление всеми системами взяли на себя электронные блоки (Рис. 1.). Электронные блоки — это специализированные компьютеры, каждый из которых имеет все необходимые интерфейсы для интеграции с автомобилем. С помощью цифровых интерфейсов связи, блоки объединяются в сеть для обмена информацией друг с другом. Самые распространенные цифровые интерфейсы в автомобилях — CAN, LIN, FLEXRay. Из них наибольшее распространение получил именно CAN.
Рис. 1. Шина CAN автомобиля.
На физическом уровне шина представляет собой витую пару из медных проводников. Сигнал передается дифференциально, за счет чего достигается высокая помехоустойчивость.
Рис. 2. Физическое представление сигнала в CAN шине
Посредством CAN шины можно получать информацию о состоянии различных датчиков и системах автомобиля. Также по CAN можно управлять узлами автомобиля. Именно эти возможности мы и используем для своего проекта.
Мы выбрали Lexus RX, потому что знали, что сможем управлять всеми необходимыми узлами по CAN. Так как самое сложное при исследовании автомобиля — это закрытые протоколы. Поэтому одной из причин выбора именно этой модели авто стало наличие описания части протокола CAN-шины в opensource-проекте Openpilot.
Правильно управлять автомобилем — означает понимать, как работают механические части систем автомобиля. Нам было необходимо хорошо понимать, как правильно работать с электроусилителем или управлять замедлением автомобиля. Ведь, например, при повороте колеса создают сопротивление на рулевое управление, что вносит свои ограничения на управление при повороте. Некоторые системы невозможно использовать без ввода авто в специальные рабочие режимы. Эти и другие детали нам пришлось изучать в процессе работы.
Электроусилитель руля
Электроусилитель устанавливается на рулевой вал автомобиля, части которого соединены между собой торсионным валом. На торсионный вал устанавливается датчик величины крутящего момента (Torque Sensor). При вращении руля происходит скручивание торсионного вала, которое регистрируется датчиком момента. Данные, полученные от датчика момента, датчиков скорости и оборотов коленвала, поступают в электронный блок управления ECU. А ECU, в свою очередь, уже вычисляет необходимое компенсационное усилие и подает команду на электродвигатель усилителя.
Рис. 3. Схематичное изображение системы электроусилителя руля
Видео: cистема LKA рулит автомобилем с помощью системы EPS.
Электронная педаль газа
Дроссельная заслонка — это механизм регулировки количества топливной смеси, которая попадет в двигатель. Чем больше смеси попадет, тем быстрее едет автомобиль.
Электронная педаль газа — это система, которая задействует работу нескольких электронных узлов. Сигнал о положении педали, при ее нажатии, поступает в блок управления двигателем ECM (Engine Control Module). ECM, на основе этого сигнала, рассчитывает необходимое количество топлива, которое нужно подать в двигатель. В зависимости от необходимого количества топлива, ECM регулирует угол открытия дроссельной заслонки.
Рис. 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 позволяет задавать напрямую угол поворота рулевого колеса в градусах. Так как в нашем автомобиле нет данной системы, проверить и освоить рулевое управление таким способом нельзя.
Поворот руля влево на 360 градусов
Поворот руля вправо на 270 градусов
Рис. 5. Команда управления рулем с помощью системы LKA
На графике (Рис. 6.) представлена диаграмма работы LKA. Torque Sensor — значение с датчика момента на торсионном валу. Torque Cmd — команда от LKA для управления рулем. Из картинки видно, как происходит подруливание LKA для удержания автомобиля в полосе. При переходе через ноль меняется направление поворота руля. Т.е. отрицательное значение сигнала говорит о повороте вправо, положительное — влево. Удержание команды в нуле говорит об отсутствии управления со стороны LKA. При вмешательстве водителя, система перестает выдавать управление. О вмешательстве водителя LKA узнает с помощью второго датчика момента на валу со стороны рулевого колеса.
Рис. 6. График работы системы LKA
Нам предстояло проверить работу команды управления рулем. С помощью модуля StarLine Сигма 10 мы подготовили прошивку для проверки управления. StarLine Сигма 10 должен выдавать в CAN-шину команды на поворот руля влево или вправо. На тот момент у нас не было графического интерфейса для управления модулем, поэтому пришлось использовать штатные средства автомобиля. Мы нашли в CAN-шине статус положения рычага круиз-контроля и запрограммировали модуль таким образом, что верхнее положение рычага приводило к повороту руля вправо, нижнее положение — к повороту влево (Рис. 7).
Рис. 7. Первые попытки рулить
На видео видно, что управление осуществляется короткими секциями. Это возникает по нескольким причинам.
Первая из причин — это отсутствие обратной связи. Если расхождение между сигналом Torque Cmd и Torque Sensor превышает определенное значение Δ, система автоматически перестает воспринимать команды (Рис. 8). Мы настроили алгоритм на корректировку выдаваемой команды (Torque CMD) в зависимости от значения момента на валу (Torque Sensor).
Рис. 8. Расхождение сигнала приводит к ошибке работы системы
Следующее ограничение связано с системой защиты встроенной в EPS. Система EPS не позволяет командами от LKA рулить в широком диапазоне. Что вполне логично, т.к. при езде по дороге резкое маневрирование не безопасно. Таким образом, при превышении порогового значения момента на валу, система LKA выдает ошибку и отключается (Рис. 9).
Рис. 9. Превышение порогового значения регулировки момента на валу
Рис. 11. Плавная регулировка поворота руля без ошибок
Управление газом
Система адаптивного круиз-контроля ACC управляет ускорением и торможением программно по CAN-шине. Блок управления двигателем ECU принимает команды DSU, если необходимо ускориться — активирует электронную педаль газа. Для торможения автомобиля используется рекуперативное торможение. При этом на торможение и ускорение используется одна команда, отличаются только значения.
Команда управления ускорением или замедлением представлена на рисунке 12. Она состоит из величины ускорения ACCEL_CMD, пары служебных бит и контрольной сумма Checksum. Для ускорения автомобилем значение ACCEL_CMD положительное, для замедления — отрицательное. Ускорение задается в диапазоне от 0 до 3 м/с^2, замедление аналогично, но со знаком минус. Для отправки данных в шину необходимо пересчитать желаемое ускорение или замедление с коэффициентом 0,001. Например, для ускорения 1 м/с^2, ACCEL_CMD = 1000 (0x03E8).
Рис. 12. Команда управления ускорения/замедления автомобиля
Мы сняли логи со штатной системы ACC и проанализировали команды. Сравнили с имеющимся у нас описанием команд и приступили к тестированию.
Рис. 13. Лог управления ускорением/замедлением системы адаптивного круиз-контроля ACC (выделено маркером)
Здесь не обошлось без трудностей. Мы выехали на дорогу с оживленным трафиком для тестирования команды ускорения. Команды управления ускорением или замедлением автомобиля работают только при активированном круиз контроле, не достаточно активировать его кнопкой. Необходимо найти движущийся впереди автомобиль и включить режим следования за ним.
Рис. 14. Активация круиз контроля происходит при наличии впереди другого траснпортного средства
С помощью модуля StarLine Сигма 10 посылаем команду ускорения, и автомобиль начинает набирать скорость. К этому моменту мы подключили графический интерфейс для управления модулем StarLine Сигма 10. Теперь мы управляем рулем, ускорением и торможением с помощью кнопок в приложении.
Команды работали до тех пор, пока не потеряли автомобиль впереди. Система круиз-контроля отключилась, а следовательно, и команды ускорения перестали работать.
Мы приступили к исследованию возможности использовать команды без активного круиз-контроля. Пришлось много времени потратить на анализ данных в шине CAN, чтобы понять как создать условия для работы команд. Нас интересовало, в первую очередь, какой блок блокирует выполнение команд ACC на ускорение или замедление. Пришлось изучить какие ID идут от DSU, LKA, радара и камеры, подсовывая липовые данные различных датчиков.
Наша идея заключалась в подмене данных радара. Мы сняли лог следования за автомобилем, вытащили из него данные радара в момент следования. Теперь, после включения круиз-контроля, мы посылаем фейковые данные о наличии впереди идущего авто. Получается обманывать наш автомобиль, говоря что впереди движется другое авто на конкретном расстоянии.
a) б)
Рис. 15. Активация круиза: a) попытка активировать без подмены данных радара; б) активация при подмене данных от радара.
Когда запускаем нашу обманку, на приборной панели загорается значок наличия впереди идущего автомобиля. Теперь мы можем тестировать наше управление. Запускаем команду на ускорение, и автомобиль начинает быстро ускоряться.
Как мы уже узнали, команда на ускорение и замедление одна. Поэтому тут же проверили и замедление. Поехали на на скорости с активным круиз-контролем, запустили команду на торможение, и авто сразу же замедлилось.
В итоге сейчас получается разгонять и замедлять автомобиль именно так, как нам было нужно.
Что еще мы используем
Для создания беспилотника необходимо управление вспомогательными системами: поворотниками, стоп-сигналами, аварийной сигнализацией, клаксоном и пр. Всем этим так же можно управлять по CAN шине.
Оборудование и ПО
Для работ с автомобилем сегодня мы используем набор различного оборудования:
Беспилотный автомобиль StarLine — это открытая площадка для объединения лучших инженерных умов России и мира с целью создания прогрессивных технологий беспилотного вождения, которые сделают наше будущее безопасным и комфортным.
В предыдущей статье мы поговорили о проблемах в шине передачи данных CAN, возникших в результате износа аккумуляторной батареи и просадки питающего напряжения при запуске ниже порога работоспособности шины. Сегодня продолжим разговор о CAN-шине, но немного в другом ключе: прежде всего вспомним принцип ее работы, а затем рассмотрим один из случаев топологии шины и разберем осциллограмму дефекта.
Эта шина используется чаще всего как средство обмена данными в системах, для которых критично быстродействие и время принятия решения. Таковыми являются, например, система управления движением, объединяющая между собой блоки управления двигателем, автоматической трансмиссией, антиблокировочной системой тормозов, усилителем руля и т.п.
Конструктивно шина представляет собой неэкранированную витую пару. Провода шины называются CAN High и CAN Low.
Шина может находиться в двух состояниях:
- Рецессивное состояние, или логическая единица. Оба провода в этой ситуации имеют практически одинаковый потенциал: и на проводе CAN High, и на проводе CAN Low присутствует около 2,5 В. В рецессивном состоянии шина может находиться сколь угодно долго, хотя в реальности этого не происходит, ведь рецессивное состояние – это всего лишь пауза между сеансами передачи информации.
- Доминантное состояние, или логический ноль. В него шина переходит тогда, когда один из входящих в сеть блоков управления начинает передачу данных. Потенциалы на проводах шины меняются следующим образом: на проводе CAN High потенциал повышается на один вольт, на проводе CAN Low наоборот, становится на один вольт ниже.
Рассмотрим форму сигнала шины, чтобы обосновать ее помехоустойчивость:
На рисунке показаны доминантный и рецессивный уровни шины, а также воздействие на шину электромагнитной помехи. Особенностью обработки сигналов шины является то, что в расчет берется не сам уровень сигнала, а разница уровней между проводами CAN High и CAN Low. При рецессивном уровне эта разница близка к нулю, при доминантном уровне она максимальна.
В витой паре провода располагаются очень близко друг к другу. Если возникает внешняя электромагнитная помеха X, то она является синфазной и наводит одинаковый всплеск напряжения в обоих проводах шины. В итоге на обоих проводах появляется наведенный помехой импульс, но разница потенциалов между проводами при этом не меняется. Это позволяет эффективно подавлять внешние помехи, что является большим преимуществом CAN-шины.
На самом деле витая пара – давно известный способ борьбы с помехами. В медицине, например, в кардиостимуляторах, где требуется высочайшая помехоустойчивость, она применяется очень широко.
Сигнал шины поступает в блок управления на дифференциальный усилитель и обрабатывается. Иллюстрация поясняет процесс обработки:
Большинство автопроизводителей придерживаются скорости передачи 500 кБд, соответственно, продолжительность одного бита при этом составит 2 мкс.
На современных автомобилях шина CAN очень разветвленная. Чтобы не перегружать линию большим количеством передаваемых данных, шина может состоять из нескольких ветвей, объединенных межсетевым шлюзом, иначе называемым Gateway. В итоге сеть представляет собой несколько ответвлений, в том числе и на диагностический разъем, использующих разную скорость и протоколы обмена.
Поэтому топология шины – вопрос для диагноста очень актуальный и, к сожалению, довольно сложный. Из тех электрических схем, которыми располагает диагност, не всегда можно понять топологию. Но в документации некоторых автопроизводителей приводится полная и подробная информация, в этом случае задача сильно упрощается.
Не зная тонкостей организации шины, найти в ней неисправность бывает достаточно сложно. Например, при наличии окисления контактов в разъеме пропадает связь с целым рядом блоков управления. Наличие под рукой топологии шины позволяет легко находить подобные проблемы, а отсутствие приводит к большой потере времени.
Ну что ж, мы немного освежили в памяти теорию шины, теперь самое время перейти к практике.
Перед нами автомобиль Infinitit Q50, оснащенный весьма редким турбированным мотором VR30DDT объемом 3.0 л и мощностью 400 лошадиных сил. Но проблема заключается не в этом замечательном агрегате, а как раз в CAN-шине: подключив диагностический сканер, не удается установить связь с доброй половиной блоков управления.
Нам повезло – Nissan относится к тому узкому кругу производителей, которые дают диагностам качественную и полноценную информацию. В том числе есть в документации и подробная топология бортовой шины обмена данными. Открываем, смотрим:
Следует сказать, что приведенная блок-схема достаточно общая. В документации имеется гораздо более подробная электрическая схема со всеми проводами и номерами контактов в блоках, но сейчас она нам пока что ни к чему, нам важно понять общую топологию.
Итак, первое, что нужно увидеть, это то, что вся сеть разделена на три большие ветви, обведенные пунктиром:
- CAN communication circuit 1 (Коммуникационная цепь CAN 1);
- CAN communication circuit 2 (Коммуникационная цепь CAN 2);
- Chassis communication circuit (Коммуникационная цепь шасси).
Первые две цепи связаны между собой посредством CAN gateway (найдите его на иллюстрации). Цепь шасси связана с цепью CAN 2 через блок управления шасси, который также играет роль своеобразного Gateway.
А теперь вновь обратимся к сканеру и посмотрим, какие из блоков управления не выходят на связь. Дилерский сканер предоставляет нам очень удобную функцию: на экран выводятся блоки каждой из цепей по отдельности, а цветом отображается возможность (зеленый) либо невозможность (красный) установить с ними связь. Вот блоки цепи CAN 1:
А это – блоки цепи CAN 2. Как видно, связи с ними попросту нет:
Также нет связи с блоками цепи шасси, но это и понятно: эта цепь, согласно блок-схеме, подключена к цепи CAN 2.
Ну что ж, задача почти решена, осталось лишь локализовать неисправность. А для этого воспользуемся мотортестером и снимем осциллограмму на проводах шины сначала в CAN 1, а затем в CAN 2 и сравним их.
Сделать это очень несложно, ведь обе шины выведены прямо на диагностический разъем. Согласно более подробной схеме, о которой упоминалось выше, на контакты диагностической колодки 6 и 14 выведены провода CAN 1, а на контакты 12 и 13 – провода CAN 2.
Снимаем осциллограмму в цепи CAN 1. Она имеет прямо-таки академический вид:
Давайте обмерим ее с помощью линеек.
- На проводе CAN High в рецессивном состоянии потенциал составил 2,26 В, на проводе CAN Low – 2,25 В.
- На проводе CAN High в доминантном состоянии потенциал составил 3,58 В, на проводе CAN Low – 1,41 В.
- Ширина импульса, соответствующего одной единице передаваемой информации, составляет 2 мкс (обведено красным прямоугольником).
Просто идеальное соответствие теории и практики. Конечно, полосы пропускания нашего прибора явно недостаточно для корректного отображения сигнала, слишком уж широк его спектр. Однако, если закрыть на это глаза, то вполне можно оценить качество сигнала и сделать необходимые выводы.
А теперь делаем ту же операцию на контактах диагностической колодки 12 и 13, чтобы получить осциллограмму сигнала CAN 2. Вот она:
Для наглядности масштаб осциллограмм на обеих иллюстрациях один и тот же.
Но в нашем случае все проще. Кстати, маленький лайфхак, возьмите на заметку. В автомобилях Nissan и Infiniti чаще всего причиной наличия мусора в CAN-шине является блок ABS. Сняв разъем с блока, сразу получаем нормальный обмен и связь сканера со всеми блоками ветви CAN 2:
Обратите внимание на то, что связь в цепи CAN 2 есть со всеми блоками, кроме блока ABS, ведь он отключен.
Завершая разговор, хотелось бы обратить ваше внимание еще на один важный нюанс. Частота следования импульсов по CAN-шине составляет 500 кГц. Поэтому при получении осциллограммы необходимо задействовать максимально возможную частоту дискретизации мотортестера, на какую только он способен.
Если частоту дискретизации вы зададите низкую, то импульсы на осциллограмме будут сильно искажены. В качестве примера посмотрите, как выглядит осциллограмма сигнала CAN-шины при специально сниженной частоте дискретизации прибора:
Красным прямоугольником обведено время, в которое укладывается одно деление сетки. Оно составляет 0,2 мс. А на осциллограмме, которую мы рассматривали ранее, это время было равно 5 мкс, поэтому отображение импульсов было более правильным. Имейте это ввиду и не допускайте ошибок!
Всем привет. Очень давно ищу инфу и так не могу найти внятного ответа. Как определить на наших ВАЗах с электронным газом как диагностировать К линией или по CAN шине. И можно ли если там CAN шина диагностировать обычным адаптером К линии? Кто то говорил, что есть в колодке проводок К линии даже на СANовских ЭБУ. Разжуйте зеленому пожалуйста, а то калина просится 2111 года выпуска с Е газом. Отказывать не охото.
36 регион
На калине 11 года с е-газом стоит м74. В Этом авто кана нет вообще
Правда на калинах спорт может стоять бош 17.9.7, но они довольно таки редки, но и этот бош по к-линии
Максим87
Александр-70
Ну так по разъёму диагностики видно же, есть в нём CAN шина или нет. По наличию соответствующих пинов.
А не проше купить нормальный сканер . Если вы уж решили заняться диагностикой Он сам разберется как диагностировать
Незнакомец
А не проше купить нормальный сканер . Если вы уж решили заняться диагностикой Он сам разберется как диагностировать
Не проще. Диагностика от случая к случаю тобишь 1 клиент в месяц. Зачем мне проф сканер? Деньги когда на него окупятся? И я не планирую деньги рубить диагностикой, мне для себя это интересно разобраться что как.
Все калины диагностируются по К линии как я понял. А калина 2 уже по пинам смотреть?
36 регион
Смотрите по автомобилю. Сначала по K-Line, если ответа нет, подключайте адаптер по CAN. Но сканер или программа должна в этом случае поддерживать CAN.
анжен
Александр-70
Поскольку почти все процессоры американские, то через 95 лет автомобильные контролеры будут записывать все переговоры, которые идут в салоне и рядом с машиной, анализировать их, и всю важную информацию передавать на серверы Пентагона или ЦРУ.
Олег_Б
Поскольку почти все процессоры американские, то через 95 лет автомобильные контролеры будут записывать все переговоры, которые идут в салоне и рядом с машиной, анализировать их, и всю важную информацию передавать на серверы Пентагона или ЦРУ.
36 регион
Толят
Тогда наверно авто уже не будет. будет просто перемещение во времени и местонахождение. забыл как это по научному называется.
Аль-кор
В 2001 году тоже мечтали на Марс на каникулы летать, а через 95 лет Siemens всё так же будет дохнуть от нашего бензина.
Олег_Б
пеший
У меня сканматик 2 сегодня не взял ниву 2131((((. Другой сканер взял. Это пипец, сканматик 2 не надежный сканер, однозначно. Как всегда рашин продукт((( Железо в нем через попу сделали рукожопы
Elektrik-dia
У меня сканматик 2 сегодня не взял ниву 2131((((. Другой сканер взял. Это пипец, сканматик 2 не надежный сканер, однозначно. Как всегда рашин продукт((( Железо в нем через попу сделали рукожопы
Это у вас "рукожопы", а не у производителя "Сканматик" - это однозначно. Странно что вы ещё "Ниву" не обозвали.
Владимир63
Странно, но у меня почему-то вчера отлично Сканматик2 взял Ниву. И позавчера тоже. Да и всегда. И АBS вчера смотрел на Ниве. Что-то не так делаю?
Тогда вам зачем сканер? Да и при чем здесь окупится - не окупится. Если нужно, покупается. Не нужно - не покупается. Времена фриваров для новых блоков ушли в прошлое.
Компьютер или ноут вы тоже покупаете с мыслью, а окупится ли? Или просто покупаете, раз нужно. Пусть и не с целью заработать. Холодильник, телевизор и т.д. и т.п. тоже ждете, когда себя оправдает? Даже если диагностика это хобби, то разве собиратели марок не стараются приобрести лучшее? Почему не собирают скрины с инета?
Рыжик, я не был бы столь котегоричен.
Отличное железо. Пользую каждый день уже третий год и на ПК и на Андроиде. Очень удобная железка.
Вчера было опрятная и ухоженная (заглядение, игрушка, конфетка) ВАЗ-2104 12г 120т/км.
Обрыв нагревателя ДК2.
СМ2 в автоопределение не смогла определить блок и после раздумий выдавало окно, типа ". in.exe. ошибка приложения. Приложение будет закрыто."
Софт сам закрывался.
При выборе в ручную "М74К" связь появилась моментально. Показания адекватные. ИМ работают.
Стоковая прошивка I429RF02
Чел менял ДК два раза. Решился на репрог.
Перевел ему М74К на Е-2. Чел доволен.
Но СМ2 и после репрога в автомате не конектился.
- 2170-3801010-50 без CAN-шины;
- 2170-3801010-60 с CAN-шины.
Они не взаимозаменяемы, поэтому перед покупкой следует определить, используется ли на вашем автомобиле CAN-шина или нет.
- до 06.2012 года выпускались машины без CAN-шины;
- снять комбинацию приборов и посмотреть артикул или на колодку с проводами (см. распиновку разъемов ниже).
Для Калины (ВАЗ 1117, 1118, 1119) — все машины без CAN-шины.
Также можно купить готовые комплекты (приборка + антенна + переключатель):
Что такое CAN-шина в автомобиле?
В современных автомобилях в единую сеть объединены датчики со следующих устройств:
Установка
Замена старой панели приборов без CAN на щиток с навигацией без CAN (2170-3801010-50) выполняется без доработок. Снимаем старую панель и вместо нее устанавливаем новую, вставляем разъем с проводами, подключаем антенну (закрепляем ее на крыше) и при необходимости меняем правый подрулевый переключатель.
После установки новой панели приборов пробег обнулится.
Что собой представляет CAN-шина
Для чего все таки нужна CAN-шина, принципы ее работы?
Современный автомобиль обладает современной бортовой электроникой с огромным количеством управляюще-исполнительных модулей, к ним можно отнести всевозможные контроллеры, датчики и пр…, а для обмена информацией требовалась надежная и быстрая передача данных, для общения между приборами.
Современная CAN-шина обеспечивает дуплексную систему для одновременной приемо-передачи цифровой информации, обрабатывая ее одним блоком, где скорость передачи данных играет немаловажную роль. Реализация кан шины представляет с собой витую пару и позволила в разы уменьшить электромагнитные поля, которые возникают при работе генератора и других немаловажных систем автомобиля.
Обычно проводка CAN-шины оранжевых цветов, отличаясь друг от друга различными цветными полосками (CAN-Higt – черная, а CAN-Low – оранжево-серая).
С приходом CAN шины и началом ее применения, схема автомобильных проводников высвободилась от определенного количества проводников, которые обеспечивали связь контроллера управления между диагностическим разъемом, двигателем, мультимедией (навигационные системы на ОС Android), системой защиты автомобиля и пр…, по протоколу KWP 2000.
Протокол управления автомобилем при помощи CAN шины KWP 2000
Скорость обработки данных по CAN-шине может быть до 1 Мбит/с, а скорость обработки информации между жизненно важными системами в автомобиле, например – система безопасности торможения ABS, трансмиссия двигателя составляет 500 кбит/с. Помимо основных систем в автомобиле присутствует система комплектации в которую входят – подушки безопасности, мультимедия для автомобиля, блоки управления в дверях авто и пр.. может составить 100 кбит/с.
При обмене информацией между какими-либо блоками управления, и при помощи трансивера сигналы приемо-передачи информации усиливаются до необходимого уровня.
Топология и формы сигналов CAN-шины
Фрагмент CAN-шины с распределением нагрузки в проводах: CAN High CAN Low.
Системные, автомобильные блоки управления, обладают помимо различных нагрузочных сопротивлений еще и скоростью передачи данных, что может привести к препятствию в момент обработки разнохарактерных импульсов.
Для решения технической проблемы разнохарактерных импульсов применяется для связи между шинами межсетевой преобразователь.
Преобразователь – это, так называемый межсетевой-интерфейс, в автомобиле применяется в блоке управления или отдельно стоящим блоком и пр… Преобразовывающий интерфейс применяется для различного ввода / вывода информации диагностического разъема OBD, по определенному проводу выведенному к диагностическому разъему и соединяющий центральный блок управления OBD разъемом при помощи CAN-шины.
OBD – это унифицированный диагностический разъем с массой удобств и преимуществ для сканирования автомобиля на предмет ошибок и диагностики.
Блок-схема межсетевого CAN интерфейса.
Как показано на картинке, общение в автомобиле электронных блоков CAN шины происходят при помощи разных блоков, но делающие одно дело, силовой агрегат CAN-шины, информационной-командной системы и системы Комфорт, в зависимости от марки автомобиля и по своему составу, блоки могут отличаться, но суть идее остается неизменной.
Диагностика автомобиля на предмет неисправностей производится посредством подключения специализированного диагностического оборудования с необходимым программным обеспечением, так называемого анализатора CAN-шины или при помощи осциллографа (с анализатором шины CHN) и мультиметра (цифрового).
В основном все неисправности CAN-шины заключаются в обрыве или замыкании линий, нагрузочных резисторов, нарушением логики работы или понижением уровня сигналов. В случае с нарушением логики поиск и обнаружение проблемы можно только при помощи анализатора CAN – шины.
Плюсы и минусы CAN шины
Специалисты по автомобильной электронике, высказываясь в пользу использования CAN-интерфейса, отмечают следующие преимущества:
- простой канал обмена данными;
- скорость передачи информации;
- широкая совместимость с рабочими и диагностическими приборами;
- более простая схема установки автосигнализации;
- многоуровневый мониторинг и контроль интерфейсов;
- автоматическое распределение скорости передачи с приоритетом в пользу основных систем и узлов.
Но есть у CAN-шины и функциональные недостатки:
Разработка сниффера и изучение протокола CAN шины
После того как я получил доступ к прослушиванию CAN шины, мне нужно расшифровать кто кому и что передает. Формат пакета CAN показан на рисунке.
Все утилиты из набора can-utils сами умеют разбирать CAN пакеты и отдают только полезную информацию, а именно:
- Идентификатор
- Длина данных
- Данные
Данные передаются в не зашифрованном виде, это облегчило изучение протокола. На Raspberry Pi я написал маленький сервер который перенаправляет данные с candump в TCP/IP, чтобы на компьютере разобрать поток данных и красиво показать их.
Для macOS я написал простое приложение, которое для каждого адреса устройства добавляет ячейку в табличку и в этой ячейке я уже вижу какие данные меняются.
Нажимаю кнопку стеклоподъемника я нашел ячейку в которой меняются данные, затем я и определил какие команды соответствуют нажатию вниз, нажатию вверх, удержанию вверх, удержанию вниз.
Проверить, что команда работает, можно отправив из терминала, например команду поднять левое стекло вверх:
Как работает CAN шина
Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.
Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:
- Способ передачи видео с фронтальной камеры, которую я добавлю.
- Способ отображения на экране картинки с камеры заднего вида в любое время.
Запуск на экране оказался более сложным, и после некоторого расследования я пришёл к выводу, что машина должна подавать сигнал от камеры заднего вида на экран через какую-то шину данных.
У Chevrolet две разные шины данных. Первая — это стандартная CAN, быстрая (500 Кбит/с) и надёжная, она используется для критических данных. Вторая — то, что GM называет LAN (GMLAN), более старая и медленная шина (33,3 Кбит/с), которая используется для данных, не связанных с безопасностью.
Мне нужен был способ прослушивать трафик по CAN, то есть снифер. Для этой цели невероятно полезно устройство PCAN.
Peak Can
Поскольку камера заднего вида менее важна для безопасности, чем другие компоненты, я предположил, что искомые данные, скорее всего, будут на шине GMLAN.
Самая простая точка доступа — разъём OBD2. Я подключил Peak Can к шине GMLAN, запустил программное обеспечение — и сразу началось прослушивание трафика.
Впрочем, я не планировал постоянно ездить с ноутбуком. Нужен был способ автоматизировать эти функции — и здесь пригодилась Arduino. Возможность напрямую получать питание 12V в сочетании с большим количеством ресурсов и поддержки в интернете сделала этот выбор очевидным.
В дополнение к Arduino для завершения проекта мне понадобилось два компонента: модуль CAN и модуль реле. По сути, Arduino — это мозг, запускающий и выполняющий код. Модуль CAN предоставляет возможность взаимодействовать с шиной данных, а реле обеспечивает питание фронтальной камеры, а также действует как видеомикшер между ней и камерой заднего вида.
Модуль mcp2515 (сверху), Arduino Uno (посередине), модуль реле (снизу)
После добавления и настройки соответствующих библиотек Arduino установил связь с автомобилем.
Прослушивание трафика через Arduino
Распознавание однократного нажатия кнопки
После долгого уикенда изучения функции millis и отладки кода я успешно запрограммировал распознавание двойного нажатия.
Распознавание двойного нажатия
И когда я привязал его к своим командам для управления дисплеем, у меня собралась довольно крутая небольшая утилита.
Двойное нажатие + команды
Теперь у меня была возможность включать и выключать дисплей, но оставалась одна проблема — что насчёт камеры заднего вида? Мне нужно было, чтобы они с фронтальной камерой работали вместе, словно их так настроили на заводе.
На блок-схеме я изобразил, как я это представляю.
Я быстро понял, что для такой системы нужно в любой момент времени знать состояние трёх переменных:
- Модуль передней камеры: водитель включил или выключил его?
- Дисплей камеры: изображение на дисплее включено или выключено?
- Задний ход: автомобиль в реверсе или нет?
В конце концов, я добился успеха!
Активный мониторинг
Теперь я смог реализовать операционную логику, которая контролирует реле.
Управление через реле
На протяжении всего процесса я всё больше узнавал об Arduino и заметил, что версия Nano способна делать всё, что нужно, при этом у неё меньший размер и более низкая цена. Она идеально подходит для постоянной установки в автомобиль. Я разработал модель и распечатал на 3D-принтере корпус для размещения компонентов в качестве компактного блока для установки.
3D корпус
Наконец настал день, когда я увидел результаты. Хотя нужно ещё повозиться с таймингом, но было приятно видеть, что модуль корректно работает.
Включение/выключение режима парковки, включение/выключение фронтальной камеры, автоматическое переключение на камеру заднего вида и автоматическое переключение обратно
В целом, этот опыт меня многому научил и открыл глаза на возможности интеграции непосредственно с шиной CAN. Довольно удивительно, чего можно достичь соединением по двум проводам.
В будущем я планирую написать углублённый учебник о том, как добавить дополнительную функциональность к существующим кнопкам в вашем автомобиле, используя бесплатное программное обеспечение и компоненты.
Читайте также: