Camry 2017 CAN шина, уровень топлива

Очень часто в процессе работы с телематическим оборудованием для мониторинга транспорта требуется контролировать уровень топлива в баке. Сигнал уровня топлива можно измерить как непосредственно на датчике уровня топлива подключив его к аналоговому входу блока мониторинга так и найти этот сигнал уже в оцифрованном виде в CAN шине транспортного средства. Вариант c получением уровня топлива по CAN значительно удобнее, поскольку сразу можно получитать большое количество других параметров из одной точки подключения.  Но в случае с CAN есть проблема — Как найти пакет несущий в себе информацию об уровне топлива? Этот сигнал изменяется очень медленно, достать датчик уровня топлива из бака не всегда удобно и не всегда возможно.

В этой статье мы  расскажем о поиске сигнала уровня топлива в CAN шине на примере автомобиля Toyota Camry V55 2017 г.в. Но сначала посмотрите видео:

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

схема датчика уровня топлива Toyota JPG

При изучении схем было выяснено, что датчик уровня топлива подключен непосредственно к панели приборов и именно панель приборов осуществляет фактическое измерение уровня топлива.  Датчик уровня топлива подключен двумя проводами: Фиолетовый и Серый. Фиолетовый — общий а серый — сигнал уровня топлива.

Так же выяснить какой блок осуществляет измерение можно при помощи диагностического сканера. Для этого нужно заходить в каждый блок по отдельности, и смотреть в текущих параметрах есть ли там уровень топлива. Но в этом случае есть вероятность сбиться с правильного пути. Уровень топлива может и быть в текущих параметрах, но поступать он будет  в исследуемый блок из другого места.

Итак, мы выяснили что уровень сигнала с датчика уровня топлива измеряет панель — демонтируем панель с автомобиля и подключим ее на лабораторном столе к источнику питания и анализатору CAN шины — CAN-Hacker. Точки подключения питания и CAN так же легко найти в документации.

панель датчки не подключен

После подачи питания панель сразу начинает ругаться на низкий уровень топлива в баке.

На вход сигнала уровня топлива подключим низкоомный резистор или обычную лампочку накаливания, другой вывод которой подцепим к массе (GND)

лампочка

Через некоторое время стрелка уровня топлива поползет в большую сторону. Этот процесс достаточно медленный поскольку измерение сигнала уровня топлива осуществляется с большим периодом для компенсации качания поплавка в баке. Процесс этот можно ускорить просто отключив-подключив питание панели.

панель датчик на массе

Что же происходит в это время в CAN шине? Откроем программу CAN-Hacker и посмотрим

полный бак JPG

На скриншоте уже выделен пакет с ID=0x617 несущий в себе информацию об уровне топлива. Как он был обнаружен?  При подключении было видно что данные меняются достаточно быстро в пакета с ID меньше 0x614.  Поэтому решено было смотреть на статичные данные в нижней части таблицы.  При отключении лампочки от входа уровня топлива данные в пакете 617 менялись на такие:

без датчика JPG

Значение FF FF указывают на отсутствие датчика уровня топлива. Если мы вместо лампочки подключим низкоомный переменный резистор или сам датчик уровня топлива и будем изменять его сопротивление то данные в пятом и шестом байтах будут пропорционально изменяться с некоторой задержкой.

Дополнения

Уже  после публикации видео внимательный зритель под ником may87ist указал на пакет с ID=0x612. За что ему большое Спасибо. В этом пакете в шестом байте передается ОДНОБАЙТОВОЕ значение уровня топлива с меньшей дискретностью (точностью), но отслеживать это значение можно с более высокой скоростью.  Все это сподвигло составить небольшую таблицу соответствия сопротивления датчика уровня топлива, значений в CAN и показаниями стрелки:

Для пакета с ID=0x617 двухбайтовое значение:

02 40        73    Ohm На деление меньше макс
02 15       112  Ohm  3/4 бака
02 0A      148   Ohm   между 1/2 и 3/4
01 8A      185   Ohm на деление больше половины
01 43      223   Ohm на деление больше половины

Для пакета с ID=0x612 однобайтовое значение:

E6           73 Ohm     На одно деление меньше максимального
CE          112 Ohm   3/4 бака
B2          148 Ohm   между 1/2 и 3/4
93          185 Ohm   На деление больше половины
73          223 Ohm   На деление меньше половины

 

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