0,0
рейтинг
17 июля 2014 в 14:47

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

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



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

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

.

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



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

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (28)

  • +13
    Очень занимательный рассказ ни о чём. Слишком мало технических подробностей и описания как же оно работает, что пичалька.
    • +1
      Да как же — и проблему вроде бы расписал, и решение привел, с табличкой. Не очень конечно глобальная проблема, но все-таки. Кому-то может пригодится, если захочет датчик по стандарту SAE J1939 включить. А какие подробности нужны конкретно?
      • +3
        Если кто-то захочет подключить, то наверное откроет документацию, а не этот пост. Написали бы лучше подробно что и как, фотографии бы привели, примеры применений и результаты. А так — это пост в стиле «во чего я могу».
        • +1
          Откроет документацию и обнаружит, что нужно строить с датчиком диалог. А как строить, не совсем понятно. Вы пост-то прочитайте, мы же так и поступили — изучили стандарт, а потом все равно пришлось искать данные в интернете. У нас возникли проблемы, мы их решили и поделились с прочими гражданами, как именно решали. И что у нас в конце концов получилось :) Какие фотографии, проблема-то была в том, как строить обмен. Провода разве что сфотографировать :) Там в железе все подключено по документации на датчик, но конкретных сообщений, которые требуются для задействования датчика, в документации не было, оговаривалась его установка на авто с шиной CAN J1939. И все. А у нас не было этого авто, и пришлось его имитировать.
  • +1
    А куда ваша автоматизированная система должна ставиться? На какой вид транспорта?
    • 0
      На грузовые автомобили. Но конкретно этот датчик и на легковые устанавливают. Это фактически стандартный датчик, многие фирмы делают такие датчики, в тех же габаритах и с аналогичным интерфейсом, не только BOSCH.
      • +1
        Это-то понятно, система явно делалась под какой-то проект. Вряд ли для розночной продажи ведь? Ну вот, какой род занятий у коммерческой организации, если необходимы эти датчики на автомобилях? Для какой цели?
        • –3
          У нас не ширпотребовская коммерческая организация, а оборонный НИИ. Сугубо оборонный. Вы с какой целью интересуетесь? :) Эти датчики применяют в системах предотвращения столкновений и в автопилотах. В посте это есть, есть и соответствующие ссылки. Посмотрите.
          • +4
            Знаете по словам ширпотребовская коммерческая организация понятно что вы ещё в советском периоде.
            • –4
              В советском или не советском, но за прошлый год объем продаж был порядка 150000 долларов на одного работника, включая уборщиц :) Причем 90% работ — экспортные. А объем гражданских заказов здесь и в самом деле менее 1%.
          • +1
            > У нас не ширпотребовская коммерческая организация, а оборонный НИИ…

            Это вон оно как в оборонном НИИ «датчики подключают». Страшно мне как-то становится
            • 0
              Так сравнить же надо было. :) Свое с ихним. А иначе как?
          • +1
            Автопилот на шишиге? Упаси господь, да с ней не всякий биопилот справиться способен.
            • 0
              Американцы на своих старых моделях сделали, аж 60-х годов разработки. Привод вращения руля, на педали тоже устанавливают соответствующие исполнительные механизмы — в составе колонны едет без вопросов. Испытывали на полигоне в Техасе в этом году, в феврале. Полигон знаменитый, там за последнее время военнослужащие дважды стрельбу открывали по сослуживцам. Автопилот от Локхид Мартин, видео испытаний есть у них на сайте, хотя с главной страницы мне туда попасть не удалось. Только по ссылке, ссылку вроде бы кто-то здесь на Хабре давал, в статье про какой-то робомобиль. У меня не сохранилось, я видео оттуда скачал и еще кое-какие материалы, а ссылка осталась на работе, там общий комп к интернету подключен.
              • 0
                Американцы и АКПП на военных машинах освоили на полвека раньше нас, понимая, что раненый воин хреново переключает передачи…
                • 0
                  Сейчас они стремятся воинов вообще исключить из процесса.
  • +4
    Никаких подробностей!
    Я уж молчу про исходники на гитхабе, но хотя бы краткие технические характеристики…
    Скажите, что это за датчик бошевский? Он выдает картинку по типу киннекта (карту глубины)? С какой частотой?
    Ссылку на этот мифический документ китайских товарищей приведите, нам тоже интересно почитать!
    Может кто и за паяльник возьмется… Автомобильный 77 ГГц радар на Arduino)
    • 0
      Датчик выдает данные по стандарту SAE J1939, там есть раздел про такие датчики. В частности — номер луча и дальность до препятствия в луче. Частота видна на картинке — 100 мС. Мы испытывали конкретно не бошевский датчик, а аналогичный, от другой фирмы.
    • 0
      Документ от китайских товарищей был не мифический, честно, но я его потерял :) Все-таки 3 года прошло. Да и зачем он вам, сообщения-то необходимые приведены в скриншоте программы PCANView. Исходники вы имеете в виду программы отображения информации, окно которой на видео? Но там тоже нет ничего интересного, обычный обмен через переходник USB/CAN с использованием прилагаемых к переходнику библиотек. Примените другой переходник, придется другую программу писать. Ну а уж внешний вид, окна-кнопки это наверное здесь вообще неприлично.
  • +1
    Если датчик подключать к системе климат-контроля, кажется, мы никуда не уедем :D
    • +8
      Подогрев сидений обратно пропорционален средней дистанции к впереди идущей машине, деленной на скорость. У водителя незаметно вырабатывается рефлекс держать нормальную дистанцию.
  • 0
    1. А как вы связывали CAN интерфейс с ECU?
      Или идея была только в получении комманд управления от датчика по CAN'у?
    2. А почему датчик решили крепить на бампер, а не за решётку радиатора?
    • 0
      На ГАЗ-66, разумеется, нет никакого ECU. Поэтому, мы имитировали его программой на ноутбуке, а связывали ноутбук с датчиком через переходник USB/CAN. CAN, в свою очередь, работал по стандарту J1939. Идея да, была только в получении информации от датчика. У нас был свой аналогичный датчик и нужно было их сравнить.
      По поводу места крепления датчика, он же радиолокационный. Железная решетка радиатора радиоволны не пропускает.
      • 0
        Поэтому, мы имитировали его программой на ноутбуке

        А какую роль играл сам ГАЗ-66 в эксперименте?
        Т.е. он обеспечивал исключительно движение или всё-же предоставлял некий массив данных для передачи в датчик через ноут?

        По поводу места крепления датчика, он же радиолокационный. Железная решетка радиатора радиоволны не пропускает.

        Да, не подумал…

        На самом деле меня эта тема интересует. Я в свободное время CAN/LIN через OBD2 ковыряю.
        Да и в скором времени АСУ для ТС получат новый веток развития.
        • 0
          На ГАЗ-66 мы просто ездили. Я здесь шучу по этому поводу, если вы не поняли :) Это очень древняя машина, ее настолько давно сняли с производства, что даже МО от нее избавилось из-за отсутствия запчастей. Данные, тем не менее, в ноут поступали, но не от агрегатов ГАЗ-66, а от датчиков, которые мы на него повесили. Например, от механического датчика скорости. Соответственно, из ноута данные шли в локатор. С этим, кстати, тоже вроде была какая-то заморочка, с единицами. Датчик первоначально воспринимал данные по скорости в размерности миль в час, если не ошибаюсь. Как-то мы с этим вроде бы разобрались, то ли через J1939 выставили нужный бит, то ли в программе скорость просто втупую пересчитывали, не помню точно. Там в самом локаторе достаточно крутая встроенная обработка, он кроме собственно дальности до препятствия еще и время до столкновения выдает, где-то возможно так. Формат сообщения от радара в J1939 можно посмотреть, какой-то 71 что ли стандарт из этого комплекта. Нужно посмотреть перечень стандартов, входящих в эту систему, и найти нужный по содержанию. Мы его в интернете даже на русском вроде бы нашли.
          • 0
            >На ГАЗ-66 мы просто ездили
            Этот вопрос был связан с актуальными проблемами АКК:
            1. Масса ТС с АКК может быть больше, чем масса впередиидущего ТС (Актуально при экстренном торможении).
            2. Погодные условия. Глядя на видео, тесты производились летом. Тот-же бошевский АКК, никак не учитывает отрицательную температуру.
              (Может только если термопара через CAN не передаст)
            • 0
              Безопасная дистанция рассчитывается исходя из тормозного пути ТС, на котором установлена система. Т.е. если даже у впереди идущего ТС совсем нет тормозного пути, при экстренном торможении столкновения не произойдет. Разве что только впереди идущее ТС назад сдавать начнет.
              По поводу влияния погоды на тормозной путь, радар качество дорожного покрытия не оценивает, только наличие объектов в луче. А рабочие температуры у него от -40 до +85, где-то вроде так. Время до столкновения, которое радар выдает, это время до столкновения без учета торможения вообще. Просто расстояние деленное на скорость.
  • 0
    Климат-контроль на шишиге это круто

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