Can2sky.com – облачный сервис расшифровки CAN-шины автомобилей
Автомобили, коммерческая техника и спецтехника напичканы электронными модулями, общающимися по шине CAN. Узнать о чем они “говорят” стремятся как компании, которые предоставляют услуги дистанционного мониторинга автопарка (GPS-мониторинг), так и отдельные гики, которым интересно вмешаться в работу личного автомобиля, добавив собственный мультимедийный дисплей или уникальный радар.
Для считывания информации из шины CAN существует большое количество USB-CAN адаптеров, создающих на компьютере текстовый лог из HEX-значений. Хотя профессионалы могут сразу глядя на лог сказать, что “вот есть идентификатор 18FEF207, он отвечает за мгновенный расход топлива, а вот температура масла в этой CAN-шине не передается” – было решено сделать несложный сервис can2sky.com, который переводит записанные CAN-логи в удобно-читаемый формат для простого просмотра и анализа.
Уже работающие функции проекта
1. Поддержка нескольких форматов CAN-логов. Среди них самый популярный у нас формат программы CanHacker (trc-файл), текстовые логи утилиты candump, которая является главным инструментом у linux-пользователей, текстовый лог CAN от GPS-трекеров АвтоГРАФ, а также общий формат СSV, в который можно превратить почти любой другой формат CAN-лога. Поддерживается 11-битный CAN (типичный для легковых авто) и 29-битный (коммерческая техника, сельхозтехника).
Пора вставить уже первые картинки.
2. Разборка кан-логов с помощью различных протоколов. Если для коммерческой техники общепринятым является протокол SAE J1939, пусть и с недокументированными дополнениями от производителей, то среди легковых авто никакого единого стандарта расшифровки 11-битного CAN не существует. Поэтому работа сервиса основа на подключении различных вариантов парсеров, а также их последующем редактировании пользователем. После загрузки лога сервис предложит выбрать наиболее подходящий парсер.
Сервис указывает в скобках число идентификаторов (CAN-ID), совпадающих в логе и парсере. Первым желанием является выбрать парсер с наибольшим числом совпадающих CAN-ID. Однако, у разных производителей одни и те же CAN-ID могут означать совершенно разные параметры, поэтому рекомендуем использовать парсер от автомобилей того же производителя.
3. Отображение распознанных параметров
4. Средства анализа нераспознанных параметров
Практически в каждом CAN-логе будут неизвестные парсеру параметры. Сервис дает набор простейших инструментов для создания пользовательских парсеров на основе дефолтных и ручного декодирования нераспознанных параметров. Для начала они помечаются красным фоном, и в них подсвечиваются байты, изменяющиеся за период записи лога
Далее мы можем перейти в редактор парсера и добавить вручную правила декодирования идентификатора
Работа парсера основана на DBC-файлах формата Vector Informatik GmbH. Вероятно, кому-то будет удобнее создать свой DBC-файл в редакторе CANdb++ от Vector - его можно загрузить на сервис, и после этого у вас появится свой собственный парсер.
5. Первые инструменты совместной работы над CAN-логом нескольких пользователей сервиса. Пока есть только функция сделать лог публичным, то есть доступным для всех пользователей сервиса для просмотра и комментирования.
Планы по развитию проекта
Существующие инструменты анализа CAN-шины создавались для одиночной работы профессионалов, в рамках данного проекта хотелось бы объединить усилия энтузиастов этого направления. Для этого будем добавлять средства совместного создания и редактирования парсеров группой пользователей. Требуется добавлять поддержку бОльшего числа форматов CAN-логов для быстрой загрузки их на сервис.
Для эффективной расшифровки параметров будем добавлять инструменты поиска возрастающих и убывающих параметров, сравнения нескольких логов между собой.
Зачем это нам надо и почему все бесплатно
В текущем виде, и даже с описанными доработками сервис can2sky.com был и будет оставаться бесплатным для всех пользователей - хотя бы потому, что этот проект несложно сделать. Его разработкой занимаются 2 человека - я (автор идеи) и один программист. Финансирование разработки ведется компанией, на которую внутри сервиса указана ссылка. Вероятно, когда-нибудь повесим баннер. Предполагаю, что в будущем платными функциями проекта будет API конвертации CAN-данных "на лету" для встраивания сервиса в качестве модуля в системы регистрации и расширенного анализа CAN-данных. А пока основным профитом от проекта является созданный телеграм-чат
куда я приглашаю всех энтузиастов, занимающихся анализом автомобильной шины CAN.