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