Низкоуровневый анализ данных CAN-шины NMPS2

В рамках проекта по разработке бортового компьютера для NMPS провожу низкоуровневый анализ данных, гуляющих по CAN-шине. Главная цель - уменьшить количество запросов к ЭБУ двигателя, попытавшись извлекать максимальное количество данных из тех данных, что идут по шине по-умолчанию.

Для этого был использован сниффер, сохраняющий полный лог данных. Данные анализировались отдельно в самописной утилите CANview:

В первую очередь посылки с ID 0x7Ex: это посылки протокола диагностики, которые инициирует сам бортовой компьютер. Остальные - это штатно гуляющие по шине данные.

ID  - ОПИСАНИЕ
100 - Единожды.
101 - Возможно, состояние зажигания.
110 - Единожды.
111 - Единожды.
325 - 2 одинаковых байта.
415 - Непонятная посылка, одинаковые данные.
445 - Меняются только по зажиганию.
447 - 3 одинаковых байта.
584 - Отправлялась только при наличии на шине CAN ADAPTOR, скорее всего его посылка.

212 - Пока не понятно:
      b0 реагирует на скорость или на педаль газа, возможно х-ка подачи топлива
      b6-b7 - Дублируемый уровень нажатия на газ.
215 - Данные скорости в этой посылке:
      b0-b1 - данные о скорости движения (требуется разделить на 128)
      b2-b3 и b4-b5 - Возможно состояние педали газа (идет дублирование).
218 - Вроде реагируют на рычаг.
      b0-b1 - Непонятное значение
      b2 - 11 - D(1), 22 - D(2), 33 - D(3), 44 - D(4), dd - P, bb - R
      b3 - Вроде растет, но на температуру не похоже.
308 - В данной посылке есть тахометр.
      b1-b2 данные тахометра, остальное не понятно.
312 - Состояние педали газа: 
      b0-b1 и b2-b3, с дублированием (на педали 2 датчика Холла).
424 - ???
      b4-b5 - Счетчик минут. У меня 0x308e (на 19.03.16), ~200 часов.
608 - Из данной посылки можно вытащить температуру двигателя.
      b0 - температура двигателя.
      b5-b6 - предположительно х-ка подачи топлива. При рассчете g/h получается правдиво.

Файлы

  1. Лог 1
  2. Лог 2
Original: http://igorkov.org/can-nmps2,
Author: igorkov