Евгений Глазов
CAN-шина, бортовой компьютер, FMS, J1939, J1708... Что это?
В каждом современном автомобиле есть много различных датчиков, которые что-то измеряют или о чем-то сигнализируют. Все эти данные собираются и обрабатываются определенными узлами (блоками) и отображаются водителю на приборной панели.
CAN-шина в автомобиле
Физически это два витых провода (точнее несколько пар витых проводов), которые дополняются специальными контроллерами-узлами и трансмиттерами, усиливающими и синхронизирующими передаваемый сигнал. Создана она была для того, чтобы сократить в десятки раз километры проводов, которыми должны были питаться и соединяться все датчики в машине.
      Суть технологии простыми словами
      Есть множество датчиков, все они собирают информацию о состоянии автомобиля и передают её на своём языке контроллерам, которые понимают их. Каждый контроллер переводит полученные данные на единый, принятый в CAN-шине, язык и "выпускает" информацию дальше в систему.

      Все контроллеры связаны между собой теми самыми двумя проводами. Возможен и обратный процесс: из единой системы — к датчикам. В итоге сотни датчиков по всей машине могут обмениваться друг с другом информацией.
      Схема CAN-шины автомобиля
      Протокол J1939
      По сути CAN — это сеть для передачи данных, но со своими особенностями и топологией. Но для того, чтобы организовать автоматическое распределение имён (идентификаторов) между узлами и датчиками, стандартизировать и привести к единообразию управление устройствами различных типов и производителей на разных автомобилях, на рынке стали разрабатываться протоколы более высокого уровня для CAN. Одним из таких стандартов (протоколов) и является J1939.

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

      Главная его идея — это стандартизировать "имена" (идентификаторы/адреса) и "правила общения" (запросов и ответов) между сегментами сети CAN.
          Протокол FMS
          The Fleet Management Systems Interface (FMS) представляет собой стандартный протокол для работы с данными коммерческого транспорта разных производителей.

          Его разработали (договорились между собой и согласовали) шесть европейских производителей: Daimler AG, MAN AG, Scania, Volvo (включая Renault), DAF Trucks и IVECO в 2002 году. Они преследовали цель — сделать процесс считывания данных и диагностики ошибок более простым и универсальным. Как итог, теперь на разных машинах, например Scania и Volvo, можно одинаково "прочитать" в CAN-шине текущую скорость или обороты двигателя.

          Есть несколько поколений данного стандарта, в рамках которых меняется количество доступных стандартных, единых параметров. Сейчас их уже около 30. Наличие этой функции у многих производителей опционально при заказе нового автомобиля и "включение" её в комплектацию является платным.
              Протокол J1708
              Это устаревший и предшествующий J1939 протокол с очень схожим смыслом и функционалом. И про него никто бы не вспоминал, не будь нашего желания экономить :)

              Дело в том, что некоторые производители, например Volvo, ряд параметров FMS-стандарта открывали для свободного чтения, а самые интересные из них, топливные например, скрывали. Получить их можно было либо приобретая специальный FMS-шлюз, либо "открывая" параметры на сервисе, естественно, не бесплатно.

              Тогда наши смекалистые соседи из Литвы вспомнили про устаревший J1708, проверили — и да, здесь ничего не "скрывали", поэтому можно было достать те самые актуальные топливные параметры. По этой причине на рынке было важным и популярным, чтобы GPS трекер "умел читать" J1708.

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

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

                  К слову, на рынке есть ряд так называемых переходников. Их создатели либо добились от производителей автомобилей, либо самостоятельно подобрали нужные "правила общения" и "имена" (идентификаторы, ID) датчиков во многих моделях автомобилей. Переходники "переводят" их на язык J1939 или другие, понятные GPS трекерам, протоколы.

                  В своей работе мы используем такие, а в последнее время учимся подбирать протоколы самостоятельно.
                      Для чего всё это? Или полезность считывания данных CAN-шины
                      Первичная цель — это получать и удалённо мониторить показания с бортового компьютера, которые видит водитель.
                      Вторая и более востребованная — возможность хранить историю информации и проводить в дальнейшем её анализ. Это позволяет, например:
                          • увидеть расхождения пробегов путевого листа водителя и одометра автомобиля;
                          • увидеть подкрутки спидометра;
                          • отслеживать необходимость прохождения ТО;
                          • выделять периоды "агрессивного", неэкономного вождения;
                          • выделять периоды, когда водитель ехал на "магните".
                              На основе таких данных, как: показания спидометра, факты стоянок и начала движения, приближение и прохождение контрольных точек, прибытие и выезд из базы — можно:
                                  • составлять автоматические путевые листы;
                                  • достаточно точно фиксировать пробеги по странам для выплаты командировочных;
                                  • видеть точный пробег для оплаты платных дорог (если по факту);
                                  • и многое другое.
                                      Ну и бонусный момент: помимо стандартных вещей в некоторых протоколах можно увидеть диагностические коды ошибок и даже получать уведомления об их возникновении в системе мониторинга Wialon. Что особенно актуально для легковых автомобилей.
                                          Можем сделать вывод:
                                          Наличие у прибора возможности считывать данные CAN-шины — это интересный и полезный функционал, игнорировать который не стоит.
                                          Мы постарались помочь вам понять суть, не запутаться в названиях и буквах, и уже на одном языке вести диалог с любым поставщиком телематических услуг.
                                              Теперь вы знаете! ;)