В рамках проекта по разработке бортового компьютера для 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 получается правдиво.