Принцип работы датчиков давления в шинах и их основные разновидности

Нормальный уровень давления обеспечивает управляемость машины, длительную эксплуатацию шин, экономный расход топлива и безопасность езды. Системы автоматического контроля давления стали разрабатываться в 70-е годы ХХ столетия и вначале устанавливались на военных грузовиках вместе с системой автоматической подкачки:

  • в 1987-1989 гг — первая автоматическая система контроля устанавливалась на модели Порше 959;
  • с 1991 года — на все машины Шевроле Корвет;
  • с 2008 года — опция стала обязательной для всех автомашин, выпускаемых в США и затем и в ряде стран ЕС.


Датчик давления является главной деталью автоматической системы. В России можно подобрать необходимые вам системы и датчики давления.
Если вас интересует покупка новых шин и дисков, то можете смело обращаться в интернет-магазин https://www.planetakoles.ru/.

Принцип работы датчика давления в шинах

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

Для обозначения рассматриваемой системы используется аббревиатура TPMS – Tires Pressure Monitoring System. Встроенная с завода в транспортное средство система автоматически оповещает о чрезмерно низком давлении. Рассматриваемая система может быть приобретена, впоследствии установлена отдельно. В США, ЕС и некоторых азиатских странах установка TPMS обязательна для всех без исключения ТС.

Все датчики, позволяющие контролировать уровень давления воздуха, можно разделить на две основные категории:

  • косвенные;
  • прямого.

Принцип работы таковых отличается.

Замена шин / обслуживание / сервис TPMS

  • При замене шин для систем TPMS необходимо соблюдать следующее:
  • Проверить датчики на работоспособность и при необходимости провести техническое обслуживание. Ремонт клапанов.
  • Каждый раз при замене шины необходимо проверять батареи TPMS и при необходимости заменять их. Выключатель.
  • Для прямых систем TPMS требуется специальное программное обеспечение, которое должно быть адаптировано к автомобилю, производители датчиков предоставляют это. Каждый встроенный датчик имеет свой собственный идентификатор, этот идентификатор необходимо узнать в автомобиле, чтобы транспортное средство могло правильно распознать, какое колесо теряет воздух.
  • Системы TPMS требуют специальных знаний и абсолютно требуют, чтобы дилер по шинам сменил шины.
  • Если в вашем автомобиле еще нет TPMS, его не нужно модернизировать. Новые автомобили должны быть оснащены системой TPMS только с ноября 2014 года.

Система косвенного измерения давления

Данная конструкция является наиболее просто устроенной. Потому стоимость её сравнительно невелика. Фактически она является расширением программного блока ABS. Фактически, система регистрирует не отсутствие давления, а уменьшение габаритов колеса.

При наличии прокола, выходе воздуха и покрышки диаметр его уменьшается. Соответствующая информация передается в ЭБУ, после чего сравнивается с заданными стандартными параметрами. Обнаружение несоответствия позволяет определить, в каком именно колесе присутствует прокол. Далее «загорается» сигнал о недостаточном давлении.

Ещё одна разновидность – осуществляется измерение частоты вращения колес. Подобное решение также представляет собой подпрограмму, встроенную в систему ABS. Определяется отрезок пути для каждой шины. Далее полученная информация проверяется, сравнивается с записанной в ABS. Несоответствие обозначается соответствующим сигналом.

Так как определение должного уровня давления определяется на основании полученных данных, их сравнения, то после проведения сервисных работ требуется провести калибровку. ЭБУ получает новые данные для последующего сравнения с информацией, получаемой от подсистемы ABS. Основные преимущества косвенной системы:

  • сравнительно низкая цена;
  • отсутствие дополнительных конструктивных элементов.

Имеется и существенны недостаток: низкая точность. Порог отклонения от указанного давления составляет 30%.

Система прямого измерения давления

Данная схема предполагает получение данных от каждого колеса через специальный датчик. Схема работы предполагает наличие:

  • датчик давления в шине;
  • блок управления;
  • дисплей;
  • специальная антенна.

Установка датчиков давления обычно не доставляет каких-либо затруднений. Данное устройство представляет собой обычный вентиль, он вставляется в колесо вместо штатного. Информация передается на центральный узел управления по беспроводному каналу. Устанавливается определенная периодичность. Обычно интервал равен 1 минуте.

Нужно отметить: периодически требуется замена батарейки. Обычно срок работы одного аккумулятора составляет 7-10 лет. Сам АКБ чаще всего представляет собой компактную батарейку в виде небольшой таблетки.

Важным узлом является приемная антенна. Она получает информацию от всех датчиков одновременно и передает их на блок управления. Обычно в качестве приемной антенны выступает антенна ЦЗ – центрального замка.

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

Основным вычислительным устройством в подобных системах является блок управления. Он получает информацию от всех без исключения датчиков. После выполняет их анализ: сравнивает полученные значения со стандартными. При несоответствии таковых выводит сообщение на панель приборов автомобиля. Стоит отметить: далеко не все системы позволяют осуществлять контроль за давлением в шине на каждом колесе.

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

Некоторые TPMS позволяют оценить уровень изменения давления, определить его интенсивность:

  • незначительное;
  • сильное;
  • внезапное.

Отдельные виды TPMS предусматривают автоматическую адаптацию: не требуется осуществлять какие-либо манипуляции с системой. В некоторых случаях при замене шин либо датчиков требуется осуществить перепрограммирование с использованием специального оборудования. Прописать нужные значения возможно и самостоятельно. Но подобное возможно далеко не на всех моделях TPMS.

Исследование протокола системы контроля давления воздуха в шинах автомобиля (TPMS)

Система дистанционного контроля давления воздуха в шинах автомобиля (англ. аббревиатура TPMS

— Tyre Pressure Monitoring System) предназначена для оперативного информирования пользователя о снижении давления в шинах и о критической температуре шин. Датчики имеют внутреннее или внешнее исполнение. Внутренние устанавливаются внутрь покрышки бескамерного колеса, внешние навинчиваются на штуцер колеса. Колесо с внутренним датчиком на внешний вид совершенно идентично колесу без датчика. Такое колесо просто накачивать. Внешний датчик заметен, его можно украсть и при накачивании колеса его надо предварительно открутить. Также он подвергается влиянию атмосферных явлений.

Исследовать протокол работы системы TPMS меня побудила идея установить такую систему на детскую коляску для оперативного слежения за давлением в шинах.


Рис.1. Внешний вид системы TPMS

Рис.2. Плата контроллера системы TPMS
Просто так установить штатный приемный блок не было возможности, так как минимальное допустимое значение давления у него 1.1 Bar, а в детской коляске меньше. Поэтому модуль постоянно пищит, информируя о низком давлении в шинах. Почитать про разработку контроллера для «Умной» детской коляски «Максимка», в которой как раз и применены результаты исследования, можно в моей статье [1].

Сбор информации о работе TPMS начал с поиска статей в Интернет. Но, к сожалению, информации мало. Да и она касается обычно штатных систем автомобилей, которые немного сложнее и много дороже. А мне надо было информацию о простой китайской дешевой системе. Какое-то минимальное понимание у меня сложилось, теперь надо было приступить к экспериментам.

Итак, вооружаемся USB-свистком DVB-тюнера, запускаем RTL-SDR и смотрим эфир. Датчики работают на частоте 433.92 МГц в модуляции FSK. Изначально я записывал эфир и потом вручную разбирал протокол. Тут начались сложности. Ранее сталкивался только с OOK-модуляцией. Там все просто. Здесь немного сложнее. Информация кодируется двумя частотами. Поэтому изучал примеры, теорию по модуляциям. Потом увидел как применяют программу URH-Universal Radio Hacker [2, 3]. Пробовал поставить, но на мою WinXP 32bit она не идет. Пришлось искать компьютер с win8 64bit и тогда программа установилась. Подробнее о ее работе можно почитать на сайте разработчика. URH-мне в чем-то облегчила процесс, т.к. она производит захват сигнала с эфира, отображает его осциллограммой и сразу декодирует в сырой цифровой вид как в двоичном, так и в hex-виде.


Рис.3. Screenshot программы с захваченным кадром посылки TPMS

Датчик шлет несколько посылок друг за другом за один сеанс. Период между сеансами может достигать минуты или даже более. Если случается тревожная ситуация, то датчик немедленно начинает слать пакеты данных. Звуковой файл посылки от датчика [8]. Пример одной посылки от датчика взятый из программы URH:

010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011001100110100110101001011001011010011010100110101001100101010101011010010101010101010110101001011001101010010101100101101001010101011001011001100110101001 В шестнадцатиричном виде эта посылка примет вид: 5555555555555555555555555555555555555555555555555555555555555555555556669a965a6a6a6555a5555a966a565a556599a9 Видно было что все 4 посылки за одну сессию имели одни и те же данные, а значит пакет принялся верно и можно приступать к его анализу.

На примере выше видно преамбулу (последовательность 01010101….), потом идут данные. Почитав Интернет, понимаем, что перед нами посылка, закодированная кодировкой Манчестер (G. E. Thomas). Каждый бит кодируется двумя битами 01 или 10. Я изначально кодировал вручную, тем самым, закрепляя теорию кодирования/декодирования. Но потом решил обратиться к онлайн декодировщику [4,5,6] что очень ускорило процесс.

Итак, декодировав исходную посылку от датчика кодом Манчестер, получим

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101101110010011011101110100000011000000001110010111000100110000010010101110 Первые 136 нулей это преамбула, ее можно отбросить. Нас интересуют только данные.

Переведя их в шестнадцатиричный вид, получим: 0x15B937740C03971304AE

Это уже есть красивые исходные данные, в которых где-то кроется идентификатор, давление в шинах и температура.

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

Вся посылка занимает 10 байт. Если выстроить полученные декодированные данные в столбец, то видно постоянные данные и изменяющиеся.

15B937740C03971304AE 15B937740C03A1FC00A4 15B937740C03A700087B На датчиках на корпусе имеется наклейки. На каждом датчике разные: 0A, 1B, 2C, 3D.

Стереотипность мышления тут сыграло не на пользу. Я подумал что это и есть ID-датчика. Засомневался, почему ID занимает всего 1 байт, но потом забыл про это и пытался в потоке искать эти идентификаторы. Потом в меню оригинального приемника системы увидел что к этому приемнику можно привязывать другие датчики, а сам приемник показывает идентификатор датчика на каждом колесе. И, о чудо, обнаружил что датчик четвертого колеса имеет ID=3774.

15B937740C03971304AE Значит 3-й и 4-й байты посылки это идентификатор колеса. Сравнил с другими датчиками и также идентификаторы совпали с теми что отображает штатная панель.

1-й байт я посчитал за префикс начала данных, а 2-й байт как идентификатор подсистемы TPMS. Ниже привел для сравнения посылки от разных датчиков.

15B9F3FA2300BE1B007B Датчик 0A ID=0xF3FA 15B91AA43201B71B002A Датчик 1B ID=0x1AA4 15B9ABFF32027B1B029B Датчик 2C ID=0xABFF 15B937740C03971304AE Датчик 3D ID=0x3774

И понял что надписи на датчиках (0A, 1B, 2C, 3D) это всего лишь нумерация колес в цифровом виде и в буквенном, а не шестнадцатиричный идентификатор колеса. Но, тем не менее, 6-й байт в посылке очень сходится с порядковым номером датчика. Для себя сделал вывод что это идентификатор колеса. А значит, еще один байт декодирован.

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

Следующий декодированный байт это температура колеса. Тут повезло. Температура занимает 1 байт и представлена в целых градусах. Отрицательная температура в дополнительном коде. Значит в байт уместится температура -127…128 градусов Цельсия.

В нашей посылке температура это 8-й байт

15B9F3FA2300BE1B007B 0x1B соответствует +27 градусам 15B937740C03A1FC00A4 0xFC соответствует -4 градусам

Осталось три нераспознанных байта 5-й, 7-й, 9-й. Судя по динамике изменения давление в шинах скрывается в 7 байта, а в 9-ом байте, скорее всего, статусные биты датчика. По разным источникам информации в Интернет, а также по функционалу моей системы TPMS там должен быть бит разряженной батареи, бит быстрой потери давления и еще пару бит, которые не ясно для чего.

Итак, будем анализировать 7-й байт, т.к. подразумеваем, что давление прячется в нем. Набрав статистику по разным датчикам с разным давлением, я не смог четко определить формулу, пересчитывающую давление. Да и не ясно в каких единицах по умолчанию датчик передает давление (Bar, PSI). В итоге таблица, построенная в Excel, не давала точное соответствие со штатным табло TPMS. Можно было бы пренебречь этой разницей в 0.1 Bar, но хотелось понятия протокола до последнего бита. Азарт брал верх.

Если не получается понять как формируется байт давления, то надо сделать эмулятор датчика давления и, меняя значение давления, смотреть что отображает штатная панель.

Оставалось выяснить назначение 5-го и 9-го байтов пакета, но они редко меняются, поэтому можно принять их значения как в оригинальном пакете, меняя только байт давления. Теперь вопрос только в расчете контрольной суммы. Без нее штатная панель проигнорирует мой пакет и ничего не покажет.

Для эмуляции датчика надо было передать пакет. Для этого у меня имелся трансивер SI4432 подключенный к PIC16F88, когда-то использовавшийся для других целей.


Рис.4. Фото тестовой платы

Воспользовавшись старыми наработками по передаче данных, я набросал программу для PIC, которая передает один из пакетов, принятых мною программой URH. Спустя некоторое время после включения передатчика панель отобразила данные что передал в нее! Но это готовый пакет с готовой CRC, а чтобы мне менять байт давления, надо и CRC пересчитывать.

Начал читать, искать информацию о том какие CRC используются, пробовал разные Xor, And и прочее, но ничего не получалось. Уже думал, что ничего не получится и придется довольствоваться давлением, которое получил по своей таблице, но немного не сходящееся с оригинальным табло. Но вот на просторах Интернет увидел статью про подбор CRC. Там была программа, которой даешь несколько пакетов, а она пытается подобрать контрольную сумму и, в случае успеха, выдает величину полинома и значение инициализации CRC. [7]

Задаем программе несколько пакетов:

reveng -w 8 -s 15B9ABFF3202AA1B0017 15B9ABFF3202AA1B0249 15B9F3FA2300D01A00D8 15B937740C037B130089 15B937740C03BD18025E 15B9ABFF32028F150834 Программа выдает: width=8 poly=0x2f init=0x43 refin=false refout=false xorout=0x00 check=0x0c residue=0x00 name=(none) Написал программу расчета CRC с учетом этих данных и прогнал по пакетам, что получил ранее – все сошлось! // Считаю CRC для этого crc=0x43; // Начальное значение для корректного расчета for(j=0;j<9;j++) { crc ^= tmp[j]; for(i=0;i<8;i++) crc=crc&0x80 ? (crc<<1)^0x2F : crc<<1; // Полином 0x2F для расчета корректной CRC } Руки чесались передать в эфир данные по давлению. Дополнив тестовую программу расчетом CRC, я передал первый пакет. Штатная панель приняла сигнал и отобразила давление и температуру. Небольшая проблема была в том, что штатная панель имела один разряд после запятой и, передавая значение в эфир, на экране отображалась всегда одно и тоже давление, т.к. остальные разряды были не видимы. Передавал значение байта 0..255. Но снова как-то не ясно. Оказалось, что давление 0.00 Bar начинается когда 7-й байт содержит значение 97. Не ясно почему так. Но зато далее с дискретностью 0,01 Bar все четко.

Байт P Давление, Bar 255 1,58 254 1,57 … … 107 0,10 106 0,09 105 0,08 104 0,07 103 0,06 102 0,05 101 0,04 100 0,03 99 0,02 98 0,01 97 0,00

Судя по таблице, максимальное давление, которое умещается в одном байте всего 1,58 Bar, но система позволяет замерять давление до 4 Атм. Значит где-то еще прячется 1 бит старшего разряда. Перебирать все байты и менять в них биты не было желания. Было найдено колесо от автомобиля, на него накручен датчик, произведен захват сигнала. Любопытство брало верх, я в уме делал ставки на то, в каком месте появится этот бит. И что это будет именно один бит, а не какая-то другая схема кодировки.

Декодировав пакет, я увидел этот бит. Он является 7-м битом 6-го байта. А значит, 6-й байт содержит не только номер колеса, но и старший бит давления в шинах. 15B937740C833C18025C

Старший бит от 0x83 и 0x3C дают 0x13C = 219 что соответствует давлению 2,19 Bar Формула для пересчета давления в Bar: P=(ADC-97)/100, Где ADC = (B7>>7)*0x100+B6, где B6 и B7 это значение байта 6 и байта 7.

При значении 511 имеем максимальное давление 4,14 Bar. Также не ясно было почему планка в 4,14 Bar, но догадываюсь что это равно 4 Атм – максимального допустимого давления для датчика.

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

Для упрощения анализа была написана программа [8]


Рис.5. Внешний вид интерфейса программы для исследования пакетов TPMS

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

Как-то полез снова в меню штатной панели и увидел что идентификатор датчика это не два байта, а четыре. Панель имеет большой и маленький индикаторы и я сразу не обратил внимание на то что 2-й и 5-й байты тоже входят в идентификатор датчика.

15B937740C833C18025C

Тем самым нераспознанным остается только 1-й байт, но он всегда 0x15 (0b010101), а это похоже на некую преамбулу пакета или идентификатора его начала.

Также не распознаны точно биты статуса, но тех, что есть хватает.

Любопытство узнать что внутри датчика брало верх и я разобрал один из них (рис.6)


Рис.6. Датчик системы TPMS

В основе лежит микросхема Infineon SP372 с небольшой обвязкой. Поиск документации именно этой микросхемы ничего не дал. Те, что нашел либо обзорные, либо рекламные. Так что выяснить про протокол не удалось. Но в статьях упоминается про то, что это программируемый контроллер, поэтому программа может быть любой. Поэтому не рискнул купить микросхему отдельно.

Протокол

Теперь о приеме данных от датчика на трансивер SI4432. Изначально планировалось принимать сырые данные от SI4432, чтобы контроллер декодировал Манчестер и собирал байты. Но у данного трансивера есть функция обработки пакета. То есть для передачи можно настроить передатчик на нужную частоту, модуляцию, девиацию, задать длину преамбулу, кодировку, синхрослово, скорость потока, длину данных. Потом записать в буфер передатчика исходный пакет данных (например наш 15B937740C833C18025C) и запустить передачу. Трансивер сам сформирует пакет и выдаст его в эфир, соблюдая все заданные параметры, а контроллер в это время свободен для обработки другой информации.
В идеале хотелось получить от SI4432 пакетную обработку данных при приеме. Чтобы приемник принял пакет и сформировал прерывание о том, что пакет принят. Тогда контроллер просто читает буфер приема, в котором хранятся уже данные в чистом виде, тем самым освобождается процессорное время на другие функции.

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

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

Для того чтобы приемник смог принять пакет данных, ему надо указать длину преамбулы, синхрослово, которое обязательно должно присутствовать, а также длину данных. Также можно чтобы приемник сам считал контрольную сумму, но в SI4432 алгоритм расчета не соответствует алгоритму CRC датчиков давления.

Обязательное присутствие синхрослова из двух байт могло омрачить идею приема пакета, но тут повезло, что посылка от датчика начинается на 0x15B9 (15B937740C833C18025C) и одинакова для всех датчиков. А значит, для синхрослова было задано 0x15B9. Длина пакета данных составляет 8 байт, анализ контрольной суммы отключен. Выставляем генерацию прерывания при приеме пакета и запускаем процедуру приема.

Когда приемник примет преамбулу, синхрослово 0x15B9 и 8 байт данных, то он выдаст прерывание основному контроллеру, который просто считает из буфера приемника 8 байт данных. Далее основной контроллер рассчитает контрольную сумму, сравнит ее и декодирует принятые данные. К счастью, все получилось, как было задумано!


Рис.7. Фото штатного индикатора TPMS и дисплея «умной» коляски

Далее приведу пример инициализации трансивера SI4432 на прием:

WriteSI4432(0x06, 0x05); // interrupt all disable WriteSI4432(0x07, 0x01); // to ready mode WriteSI4432(0x09, 0x7f); // cap = 12.5pf WriteSI4432(0x0A, 0x06); // uC CLK: 1 MHz WriteSI4432(0x73, 0x00); // no frequency offset WriteSI4432(0x74, 0x00); // no frequency offset WriteSI4432(0x75, 0x53); // 430-440MHz range WriteSI4432(0x76, 0x62); // 0x621A-433.924 кГц WriteSI4432(0x77, 0x1A); // младшая часть WriteSI4432(0x79, 0x00); // no frequency hopping WriteSI4432(0x7a, 0x00); // no frequency hopping // Настройка регистров приемника для скорости 9090/2 WriteSI4432(0x1C, 0x81); // 01 IF Filter Bandwidth регистр WriteSI4432(0x1D, 0x44); // 44 AFC Loop Gearshift Override регистр WriteSI4432(0x1E, 0x0A); // 0A AFC Timing Control WriteSI4432(0x1F, 0x05); // 00 Clock Recovery Gearshift Override WriteSI4432(0x20, 0x28); // 64 Clock Recovery Oversampling Ratio регистр WriteSI4432(0x21, 0xA0); // 01 Clock Recovery Offset 2 регистр WriteSI4432(0x22, 0x18); // 47 Clock Recovery Offset 1 регистр WriteSI4432(0x23, 0xD2); // AE Clock Recovery Offset 0 регистр WriteSI4432(0x24, 0x08); // 12 Clock Recovery Timing Loop Gain 1 регистр WriteSI4432(0x25, 0x19); // 8F Clock Recovery Timing Loop Gain 0 регистр WriteSI4432(0x2A, 0x00); // 00 AFC Limiter регистр WriteSI4432(0x69, 0x60); // 60 AGC Override 1 WriteSI4432(0x70, 0x26); // Кодирование Manchester, данные в инверсии WriteSI4432(0x71, 0x22); // Модуляция FSK, FIFO WriteSI4432(0x72, 31); // Девиация 31*625=19375 Гц (можно пробовать убрать в режиме приема) WriteSI4432(0x34,10); // 10 — длина преамбулы в 4-битных ниблах WriteSI4432(0x35,0x1A); // preambula threshold WriteSI4432(0x36,0x15); // Синхрослово 3 равно 0x15 WriteSI4432(0x37,0xB9); // Синхрослово 2 равно 0xB9 WriteSI4432(0x27,0x2C); // RSSI // Настройки заголовков WriteSI4432(0x33, 0x0A); // fixpklen=1, Synchronization Word 3 and 2 WriteSI4432(0x32, 0x00); // Отключаю фильтрацию заголовков WriteSI4432(0x30, 0x80); // Skip2ph, Enable Packet RX Handling=0 (можно попробовать убрать Skip2ph…) WriteSI4432(0x3E, 0x08); // Длина принимаемых данных 8 байт WriteSI4432(0x0B, 0x12); // настройка GPIO0 для включения режима передачи TX WriteSI4432(0x0C, 0x15); // настройка GPIO1 для включения режима приема RX // Сброс FIFO TX WriteSI4432(0x08, 0x01);//запись 0x01 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00);//запись 0x00 в Operating Function Control 2 регистр // Сброс FIFO RX WriteSI4432(0x08, 0x02);//запись 0x02 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00);//запись 0x00 в Operating Function Control 2 регистр //Отключение всех прерываний кроме: Прием преамбулы, Прием синхрослова, Прием пакета WriteSI4432(0x05, 0x02); // Прерывание при приеме пакета WriteSI4432(0x06, 0x00); //Чтение регистров статусов прерываний, для очистки текущих прерываний и сброса NIRQ в лог. 1 SI4432_stat[0] = ReadSI4432(0x03); SI4432_stat[1] = ReadSI4432(0x04); WriteSI4432(0x07, 0x05); // Включаю ПРИЕМ эфира Сам прием данных будет выглядеть так: if (si_int) // Если пришло прерывание от приемника SI4432 { //чтение статусных регистров для очистки флагов прерываний SI4432_stat[0] = ReadSI4432(0x03); SI4432_stat[1] = ReadSI4432(0x04); SI4432_RSSI = ReadSI4432(0x26); if (SI4432_stat[0]&0x02) { WriteSI4432(0x07, 0x01); // Завершаю прием. Тем самым можно потом продолжить.Если не завершить, то пакеты больше не примутся SI4432_ReadFIFO(); // Читаю из FIFO 8 принятых байт TPMS_Parsing(); // Проверка CRC и разбор данных // Сброс FIFO WriteSI4432(0x08, 0x02); // запись 0x02 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00); // запись 0x00 в Operating Function Control 2 регистр //WriteSI4432(0x07, 0x05); // Включаю ПРИЕМ эфира } else { // Сброс FIFO TX WriteSI4432(0x08, 0x01);//запись 0x01 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00);//запись 0x00 в Operating Function Control 2 регистр // Сброс FIFO RX WriteSI4432(0x08, 0x02);//запись 0x02 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00);//запись 0x00 в Operating Function Control 2 регистр } if (SI4432_stat[0]&0x80) { // Сброс FIFO RX WriteSI4432(0x08, 0x02);//запись 0x02 в Operating Function Control 2 регистр WriteSI4432(0x08, 0x00);//запись 0x00 в Operating Function Control 2 регистр } WriteSI4432(0x07, 0x05); // Включаю ПРИЕМ эфира si_int=0; } Функция SI4432_ReadFIFO() просто читает 8 байт из буфера приемника, которые содержат данные от датчика.

Функция TPMS_Parsing() производит анализ контрольной суммы и декодирует информацию в конечные единицы давления и температуры, а также статусную информацию.

Проблемы

  1. Читая информацию про датчики, упоминалась синхронизация датчиков между собой. Зачем-то надо спаривать датчики, что-то было про скорость движения более 20 км/ч на протяжении 30 минут. Не ясно зачем это надо. Может быть это связано с моментом передачи информации, но это моя догадка.
  2. Не выяснил до конца функции статусных битов датчика давления.
  3. Не ясно про настройку трансивера SI4432 на прием, про скорость передачи с применением кодировки Манчестер. У меня работает, но осознания принципа пока нет.

Результаты работы

Исследования, освещенные в данной статье, заняли около месяца свободного времени.
В результате работы по исследованию протокола работы системы контроля давления в шинах затронуты вопросы передачи и приема данных по эфиру, вкратце рассмотрены кодировки сигнала, опробован трансивер SI4432 на передачу и прием. Данная задача позволила интегрировать TPMS в основной проект «умной» детской коляски. Зная протокол обмена, можно подключить большее количество датчиков и интегрировать в свою разработку. Причем контролируемое давление может находиться в широких пределах, а не как в штатной системе 1.1-3.2 Bar, т.к. давление вне этого диапазона сопровождается тревожным писком системы штатного центрального блока. Также теперь TPMS можно применять для контроля давления в шинах мотоцикла, велосипеда или, например, надувного матраса. Останется лишь физически установить датчик и написать программу верхнего уровня.

Ссылки

  1. «Умная» детская коляска «Максимка»
  2. github.com/jopohl/urh
  3. www.rapidtables.com/convert/number/hex-to-binary.html
  4. www.rapidtables.com/convert/number/binary-to-hex.html
  5. eleif.net/manchester.html
  6. hackaday.com/2019/06/27/reverse-engineering-cyclic-redundancy-codes
  7. Мои утилиты, пример пакета, подбор CRC. Пароль архива «tPmSutiLity» dropmefiles.com/MtS9W»
  8. i56578-swl.blogspot.com/2017/08/eavesdropping-wheels-close-look-at-tpms.html
  9. www.rtl-sdr.com/tag/tpms

Где находятся датчики давления и их основные разновидности

Не составит труда самостоятельно разобраться с тем, как работает датчик давления. Все их можно разделить на следующие основные категории:

  • механического типа;
  • электрические.

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

Визуально механические датчики представляют собой обычный колпачок от камеры – декоративного типа. Верхняя часть выполнена прозрачной, под ней находятся 3 коаксиальных цилиндра. Представляют собой слои пластика разных цветов. Цилиндр самого малого диаметра имеет желтый цвет. Располагается таковой внутри красного. Под давлением все слои легко перемещаются друг внутри друга.

Каждый цвет обозначает давление. Если оно нормальное – то цвет под колпачком зеленый. Если чуть меньше, чем нормальное – выдвигается желтый слой. При падении ниже 1.5 атм – выдавливается красный цвет.

Электронные датчики обычно устанавливаются внутрь колеса. Наиболее удобный, точный – вентиль. Предполагается монтаж вместо стандартного, установленного в шину. Разобраться где находятся датчики большого труда не составит. При необходимости можно легко разобраться? как отключить систему.

Возможные неисправности

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

Датчик давления колес Kia Sportage 4 передает информацию на приемное устройство посредством радиочастоты, поэтому не его работоспособность могут оказывать влияние другие устройства, использующие аналогичный принцип трансляции данных. Если работоспособность TPMS нарушена в результате помех, то сигнальная лампа на панели приборов будет гореть желтым цветом. Если с колесами все в порядке и давление находится на безопасном уровне, то можно выполнить отключение системы оповещения о неисправности, если источник помех не будет найден.

Как установить датчик давления в колеса автомобиля?

Сложность самостоятельно установки зависит от типа выбранной системы. Например, обычные механические датчики, не предполагающие передачу данных на центральный блок управления, не требуют специального оборудования, разборки колеса. Достаточно установить колпачки с встроенными «манометрами».

Электронные датчики в виде вентиля являются наиболее популярными. Обычно процесс установки включает следующие основные этапы:

  • колесо бортируется – вместо стандартных вентилей устанавливаются электронные датчики:

  • далее выполняется кодировка датчиков, их настройка:

  • в салоне осуществляется установка специального приемника – на который и передаются все данные о давлении в колесах:

Иногда возникает необходимость установки новых датчиков на место старых. В первую очередь нужно определить, где стоят компоненты системы на самом транспортном средстве. Необходимо заранее ознакомиться со всеми тонкостями, нюансами монтажа. Если должный опыт отсутствует – стоит обратиться за помощью к профессионалам. Особенно если автомобиль приобретался новый и он до сих пор на гарантии.

Использование системы контроля давления воздуха позволяет избежать серьезных неприятностей на дороге. Нередко водитель просто не замечает пробитие колеса, продолжает ехать на спущенной шине. Следствием подобного может стать лопина на шине. Что приведет к заносу и аварии.

Датчик давления в шинах позволяет постоянно осуществлять мониторинг колес. Необходимо лишь своевременно осуществлять замену батареек.

Принцип работы TPMS

Датчики прямого измерения TPMS — более сложная система, чем при косвенном контроле с помощью датчиков ABS. В установленной штатно системе TPMS каждый датчик давления комбинируется с датчиками температуры, ускорения и напряжения. Датчик напряжения следит за состоянием аккумуляторной батареи, датчик скорости активирует непосредственно сам датчик давления при начале движения автомобиля, датчик температуры контролирует перегрев шины и обеспечивает температурную компенсацию передаваемых данных. Данные замеров передаются радиосигналом на ресивер каждые 60 с, при изменении давления в шинах частотность передачи увеличивается до 15 с.

Рейтинг
( 2 оценки, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]