Установка авторадара с интерфейсом SAE J1939 на автомобиль без CAN шины

в 10:47, , рубрики: CAN, IT-стандарты, автомобили, Беспроводные технологии, датчик, интерфейсы, радар

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

Установка авторадара с интерфейсом SAE J1939 на автомобиль без CAN шины

(про датчики для систем предотвращения столкновений, например, здесь). Работают такие датчики в выделенном специально для авторадаров диапазоне 77 ГГц, дальность действия имеют в пределах 200-250 метров, угол обзора пространства в современных моделях до ±30 градусов. На структурных схемах систем предотвращения столкновений и автопилотов их обозначают как LRR (Long Range Radar) и ставятся они обычно на переднем бампере. Эти датчики сейчас достаточно распространены, фирма BOSCH, к примеру, недавно выпустила миллионный датчик, и стоят сравнительно недорого (<$1000). Тем не менее, тогда это была еще некая экзотика. Мы тогда занимались разработкой аналогичного по назначению датчика, но на 100% из отечественных комплектующих, у нас был образец и хотелось провести сравнительные испытания. Машина для испытаний была также отечественная, ГАЗ-66, на шоферском жаргоне «шишига». Отличная машина, полный привод, удобный кунг с климат-контролем, но не до конца приспособленная для подключения импортных радарных датчиков.
В сопроводительной документации на датчик был указан стандарт протокола обмена данными с системами автомобиля: SAE J1939. Проблема состояла в том, что протокол этот диалоговый, и для правильной работы датчика требовался обмен сообщениями.

Датчик был подключен к ноутбуку через переходник USB/CAN, обмен сообщениями первоначально осуществлялся с использованием программы CANView. После включения датчик выдавал в шину несколько сообщений, одно или два из которых впоследствии повторялись периодически. Нужного сообщения, с информацией о дальности до препятствия не выдавалось. Природа первоначальных сообщений была понятна, датчик пытался «прописаться» в системе, рассказывал все о себе, и где произведен, и для чего предназначен, и даже описывал типы транспортных средств, на которые мог быть установлен, но в ответ не получал ничего и посылал запросы снова и снова. Был сымитирован ответ транспортного средства на его запрос, после чего произошло какое-то изменение в посылках (датчик удивился), но нужной информации все равно получить не удалось. После дополнительного частичного изучения стандарта (к слову, платного — в SAE запросили около 650 баксов в год), удалось расшифровать периодические сообщения от датчика, оказалось, что он постоянно сообщает об отсутствии автомашины. Стало понятно, что для работы датчику необходима информация от систем автомобиля, такая например, как скорость или направление движения. Все, что могло его касаться, ему было дано — но этого ему оказалось мало. Автомашину он все равно «не видел». Какая-то информация была нужна ему еще. Тогда возникла мысль сымитировать автомобиль полностью. После рассмотрения примерного состава сообщений нужного стандарта от датчиков и систем современных западных автомобилей, идея показалась не самой удачной. Например, описание диагностических сообщений для грузового авто одной из западных фирм занимало порядка 1000 страниц в формате pdf. Пришлось обратить внимание на продукцию китайских товарищей. В результате не слишком продолжительных поисков, в интернете был найден документ, сильно смахивающий на перечень команд по стандарту J1939 для какого-то китайского чуда техники. В документе присутствовала таблица сообщений по стандарту с пояснениями на английском языке, а все остальное было в иероглифах. Таблица была не очень большой, всего-то около двух десятков сообщений, и сымитировать их не составило труда. После чего датчик заработал.
Путем последовательного исключения сообщений было выяснено, чего же ему, в конце концов, было нужно. Оставшийся минимум, при котором радар работает, вместе с выдаваемыми им при этом сообщениями, выглядит так:

Установка авторадара с интерфейсом SAE J1939 на автомобиль без CAN шины.

Оказалось, что помимо данной ему в самом начале информации о скорости и т.п., датчику зачем-то нужно было сообщение от 2-го контроллера транспортного средства. Скорее всего, его радовал сам факт наличия такого контроллера, потому как содержанием сообщения он, похоже, не интересовался совершенно.
Дальнейшая подготовка датчика к работе свелась к его установке на прочный (железо 10 мм) бампер путем просверливания бампера и привинчивания болтами, прокладке кабелей и подключения к ноутбуку через переходник. Примерно так:

Установка авторадара с интерфейсом SAE J1939 на автомобиль без CAN шины

Была написана программа, отображающая информацию от этого датчика параллельно с информацией от датчика собственной разработки. Для контроля дорожной обстановки в кабине была установлена USB камера, изображение с которой показывалось в окне рядом с окном программы. Видео с испытаний

Автор: AlexHa

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js