Ford Kuga. Исследование TPMS

aaya

Ford Kuga. Исследование TPMS

Сообщение aaya » 23 ноя 2020, 12:21

Будете смеяться, но я тоже возил на Фьжене. Кто-то писал, что типа не помещались 17-е, но при отброшенных задних сиденьях - запросто. И народ удивлялся не широковаты ли 235 шины для Фьжена. Это они еще количество гаек на дисках не посчитали. Кстати, поставил оцинкованные закрытые гайки: ZW Конус (M12x1.5x35 NEX19) на штамповку. Красота!

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 23 ноя 2020, 12:27

aaya писал(а):Источник цитаты Это они еще количество гаек на дисках не посчитали.

:D :D :rofl:
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 29 ноя 2021, 17:50

Небольшое пояснение прежде, чем продолжить тему.

Во-первых, тема не заглохла, а имеет своё развитие. Я продолжал изыскания, но их не опубликовывал в виду их неполной складываемости в единый пазл. То есть это попробую, проверю, эдак покручу. В итоге поле огромное, а я тут немного копну, здесь грядку сделаю и какой-либо системности не наблюдалось. А потом и вовсе забросил эксперименты в виду отстутствия вдохновения.
Во-вторых, одной из целей изысканий было понимание того, что не так с китайскими датчиками. Почему они нормально привязываются, а потом на приборке вылезает подкова - ошибка TPMS? Перепривяжешь датчики и подковы нет какое-то время. Эксперименты, которые я провёл, дали мне это понимание и как-то сразу резко вдруг кончились гранаты. Тем более, что я примерно в это же время заменил в своём зимнем комплекте Куги китайские датчики на оригинальные фордовские. Проблема ушла, а с ней и желание биться ап стену :wall:
В-третьих, лень - это благое дело! Когда останавливаешься и ничего не делаешь, всё переосмысливаешь. Что-то в сознании крутишь, а что-то уходит в подсознание и оттуда потом выплывает в новом ракурсе. Собственно, так и появилось желание и силы продолжить тему и выложить свои наработки, собрав их воедино и систематизировав в понятное изложение.
В-четвёртых, я недавно заменил ОС в своём NetBook'е ASUS Eee PC 1000HE c XP на семёрку. Меня, собственно, давненько уже доставало то, что на XP не всё работает, что мне нужно, но находил обходные манёвры. А последней каплей стало то, что разработчики UCDS на своих серверах применили новые сертификаты, которые не поддерживаются XP. И каких-либо обновлений для поддержки не предусматривается. Поэтому их фирменное программное обеспечение, работающее на XP перестало получать подтверждение легальности лицензии. Причём это перестало работать быстрее, чем разработчики успели внедрить в свой инсталлятор предупреждение о неработоспособности под XP. Ну и в связи с переходом на семёрку, мне пришлось заново устанавливать и настраивать Universal Radio Hacker. И вот на этом этапе я обнаружил, что пропустил довольно важный момент, а именно установка драйверов для RTL-SDR. Поэтому я создал соответствующее сообщение и по времени поместил его перед сообщением "Создание проекта Universal Radio Hacker". Ну и в содержание темы добавил ссылку на это сообщение в нужном месте.
В-пятых, актуальной версией Universal Radio Hacker на данный момент является версия 2.9.2. Поэтому все последующие скрины будут для неё. Скачать её можно с гитхаба.


To be continued...
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 01 дек 2021, 06:39

Приём и запись сигналов датчиков

Для активации датчиков в данном сообщении я буду использовать диагностический прибор Autel MaxiTPMS TS508 по той простой причине, что логика его работы в данном контексте - активация датчиков, очень подоходит. Но не возбраняется использовать и активатор VxScan с учётом следующей специфики. VxScan нажатием кнопки включается на некоторое время, около 6-7 секунд и посылает свои пакеты, не обращая внимания, ответил датчик или нет. То есть за время работы активатора VxScan датчик успевает ответить два, а иногда даже три раза. Прибор TS508 работает по другому. Он шлёт пакет активации датчика и ждёт его ответа. Если датчик не ответил за несколько секунд, то шлёт повторный пакет. Итак он делает в течение порядка 20-30 секунд, а может и дольше. То есть если датчик отвечает сразу, то TS508 отображает полученные данные на экране и перестаёт тревожить датчик по пустякам. Для записи сигнала датчика такая логика нам подходит больше. То есть нам достаточно одного ответа датчика, одного его пакета данных. Поэтому Autel MaxiTPMS TS508 в этом плане удобнее активатора VxScan.

Итак, запускаем Universal Radio Hacker, идём в меню - File - Open и выбираем файл проекта, созданного в этом сообщении.

12_1.png
12_2.png


Затем, на всякий случай проверяем параметры проекта. Просто у меня было уже несколько случаев, не понятно по какой причине, что параметры проекта устанавливались в умолчательные, то есть "Default sample rate" принимал значение 1,0М. "Default bandwidth" тоже становился равным 1,0М, а "Default gain" = 49. Я сначала пытался уловить закономерность возникновения этого полтергейста, и с подключенным приёмником запускал программу, и без приёмника, и выходил без сохранения и с сохранением. Щас могу только сказать, что это дело случая. Поэтому забил на поиски и стал делать резервную копию файла проекта. Заходим в меню - File - Project settings.

12_3.png
12_4.png


С проектом всё хорошо на этот раз. Запускаем записывалку сигналов: меню - File - Record Signal.

12_5.png


Параметр "Device Identifier" не запоминается в проекте, поэтому каждый раз приходится тыкать в кнопку с зелёной круговой стрелочкой, чтобы "подтянуть" устройство к работе.

12_6.png


Зато остальные параметры: рабочая частота (Frequency), частота дискретизации (Sample rate), ширина полосы пропускания (Bandwidth) и усиление (Gain) подтянулись из проекта. Если бы мы не создали проект и не настроили заранее его параметры, то при каждом запуске "Record Signal" все параметры кроме Frequency принимали бы умолчательные значения. Gain был бы равен 49, а Sample rate и Bandwidth = 1,0M.
Для начала записи сигнала нажимаем кнопку Start.

12_7.png


При этом надо учитывать, что запись пойдёт не сразу, а с некоторой задержкой, которая немного зависит от мощности компьютера. Но в основном задержка происходит из-за того, что программа Universal Radio Hacker передаёт настроечные параметры USB RTL-SDR приёмнику. Он их принимает, настраивает свой чип и после этого запускает его в работу. Задержка на моём NetBook'е составляет примерно 2-3 секунды. На большом мощном компьютере она была насколько я помню около 1,5-2 секунд. О том, что приёмник начал принимать сигналы и передавать их в Universal Radio Hacker свидетельствует появление горизонтальной полоски.

12_8.png


Теперь можно нажимать кнопку либо активатора VxScan, либо кнопку сканирования датчиков на приборе Autel MaxiTPMS TS508. На месте горизонтальной полосы видим появление пачек и теперь можно останавливать запись кнопкой "Stop".

12_9.png


Чтобы рассмотреть пачки поближе, можно покрутить колёсико мыши.

12_10.png
12_11.png
12_12.png


Сохраняем записанный сигнал в файл кнопкой "Save". Я сначала записывал файлы с именами, предлагаемыми программой Universal Radio Hacker. И эти имена имели следующий формат:

<Устройство>_<Дата>_<Время>-<Частота>-<Дискретизация>-<Ширина>

Ну и в конце я добавлял id датчика. Такой формат меня поначалу устраивал, пока я не приступил к декодированию сигналов. Чтобы понять в какой байт, что пишется, я экспериментировал с температурой и давлением. И вот этих данных в именах файлов мне и не хватало. Поэтому я придумал свой формат:

<Устройство>-<id Датчика>_<Давление>-<Температура>_<Состояние питания>-<Частота>-<Дискретизация>-<Ширина>

Устройство оставил потому что у меня их два. Есть ещё HackRF One. Кому интересно, что это такое, погуглите. И я записывал сигналы как RTL-SDR приёмником, так и HackRF One. Дату и время убрал, потому что никогда на них не ориентировался.

12_13.png



To be continued...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 03 дек 2021, 04:44

Настройка параметров распознавания пакетов

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

13_1.jpg
13_2.jpg


Это, "чистокровный китаец", приобретённый мной на AliExpress летом 2019 года. А так как китайцы - большие затейники, то ASIC (id датчика), написанный на корпусе, не соответствует прописанному внутри датчика. Поэтому я на этот датчик прилепил кусочек белой изоленты с реальным ASIC.

13_3.jpg


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

13_4.png



Ну а теперь продолжим по теме сообщения. Под распознаванием пакетов следует понимать НЕ декодирование оных, а определение вида модуляции и настройка параметров интепретации (вкладка Interpretation) таким образом, чтобы анализатор (вкладка Analysis) потом смог вычленить из пакетов полезные для нас данные, которые потом и будем декодировать и превращать в id датчика, в давление и температуру.
После того, как мы сохранили сигнал датчика в файл в предыдущем сообщении, окно "Record Signal" можно закрывать. И вернувшись в главное окно программы Universal Radio Hacker, мы попадаем во вкладку Interpretation.

13_5.png


И первое, что нам нужно сделать - это уменьшить размер сохранённого файла. Можно этого и не делать. Распознаванию пакетов и их декодированию лишний размер никак не мешает, но я топлю за экономное расходование любых ресурсов. И место на жёстком диске в том числе. Файл - цифровой и его размер напрямую зависит от временной длительности записанных в него данных. В окне Interpretation мы пока не делали никаких зуммирований и поэтому весь сигнал перед нами. Собственно сами полезные пакеты занимают не более пятой части всего файла. Поэтому, удалив пустоту до пакетов и после них, мы существенно, примерно в пять раз, уменьшим размер файла. Для вырезания применяются интуитивно понятные действия. Мышкой выделяем сначала часть перед пакетами и нажимаем клавишу Delete на клавиатуре.

13_6.png
13_7.png


Аналогичным образом поступаем с кусочком пустоты после пакетов (справа). Сохраняем файл, нажав по дискеточке. И для сравнения, изначально файл весил 7,8 Мб, а теперь стал весить 1,29 Мб.

13_8.png
13_9.png
13_10.png


Ну и наконец-то можно приступить к настройке параметров распознавания пакетов, с которыми я очень много и долго экспериментировал. Записал несколько десятков сигналов с нескольких датчиков. Датчики как замораживал в морозилке, так и нагревал феном. А также помещал их в пластиковую бутылку и накачивал давлением. Но большинство сигналов всё-таки записал при комнатной температуре и нулевом (относительно атмосферного) давлении. Почти все их перекрутил с разными наборами параметров, которых аж 6 (шесть) штук:

- Noise - Шум. Имеет смысл его дёргать только при амплитудной (ASK) модуляции. Так как он всего лишь включает фильтр, симметрично опускает/поднимает уровни, импульсы ниже/выше которых перестают учитываться. Например, если установить некое значение для Noise, то в области пакетов будет нарисована красная зона. И при распознавании пакетов будут учитываться только те импульсы, которые выпрыгнут за пределы красной зоны, как вверх, так и вниз. Размер красной зоны - это как раз и есть уровень фильтрации шумов. Ниже приведены примеры для Noise=0,2500 и 0,5000.

13_11.png
13_12.png


- Center - Центр. Этот параметр предполагает работу с частотной (FSK) модуляцией в режиме отображения пакетов Demodulated.

13_13.png


Этот режим отображения характерен тем, что разные частоты сигналов отображаются на разных уровнях оси Y. И в таком формате импульсный частотно-модулированный сигнал выглядит, как пачки прямоугольных импульсов, в которых нижняя полка - это одна частота, верхняя полка - вторая частота. И это хорошо видно, если одну из пачек зуммировать - растянуть во времени, то есть по оси X. Для этого достаточно покрутить колёсико мыши над областью отображения сигналов. Также для лучшего отображения можно немного приподнять ползунок Y-Scale.

13_14.png


Так вот, значение параметра Center - это положение горизонтальной границы сереневой и тёмно-зелёной областей на оси Y. Вот примеры разных положений этой границы и соответствующих значений параметра Center.

13_15.png
13_16.png


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

- Samples/Symbol - Количество образцов (сэмплов) на один символ. Один сэмпл - это один период дискретизации Sample rate. Чем выше частота дискретизации, тем большее значение должен принимать параметр Samples/Symbol. А символы - это нолики или единички двоичного кода.
- Error Tolerance - Допуск ошибок. Для наших исследований - это малозначимый параметр. То есть, если другие параметры явно влияют на тот код, который получается в результате распознавания пакетов, то этот параметр никак не влияет. Но если навести на него указатель мыши, то во всплывающей подсказке будет рекомендовано значение 5.
- Modulation - Модуляция. Доступно три вида: ASK - Amplitude Shift Keying (амплитудная), FSK - Frequency Shift Keying (частотная), PSK - Phase Shift Keying (фазовая).
- Bits/Simbol - Количество бит, на один символ. Для наших сигналов этот параметр всегда будет равен единице.

Таким образом, из шести параметров значимыми остаются четыре. Естественно, я это выяснил в течение долгих зимних вечеров, проведённых за экспериментами. Но мой путь мы сейчас повторять не будем, а пойдём коротким и простым путём - используем волшебную кнопку "Autodetect parameters" (автоопределение параметров). Я сначала чисто на интуиции ей пользовался, но потом, заметив, что она иногда сбоит, то есть устанавливает такие параметры, при которых получаемый код был полной хренью, начал углубляться в ручной тюнинг значений параметров. А потом снова вернулся к этой кнопке, когда понял, что качество её работы напрямую зависит от качества записанных сигналов, которое мы уже обеспечили, установив "правильные" параметры проекта в этом сообщении.

Нажимаем на треугольник справа от кнопки "Autodetect parameters" и в раскрывшемся списке устанавливаем все две галочки:
- Additionally detect noise - Автоматически определить уровень шума. (ЗЫ. Я знаю, что перевод неправильный, зато по смыслу точный :) ).
- Additionally detect modulation - Автоматически определить вид модуляции: ASK, FSK или PSK.

13_17.png
13_18.png


После этого устанавливаем систему исчисления Hex для отображения распознанных битов. И нажимаем на кнопку Autodetect parameters.

13_19.png
13_20.png


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

13_21.png


Строчки я пронумеровал не только для того, чтобы связать их с соответствующими пачками в пакете сигнала, но и чтобы в последующих пояснениях оперировать этими номерами, обращая Ваше внимание на конкретные строки кода. Прошу присмотреться к строчкам 1, 3, 4, 5 и 6. По-моему, это одно и то же. Только строчка 2 выбивается из этого ряда. Раньше меня это смущало. Сначала я такие казусы валил на качество распознавания и вручную игрался с параметрами. Соответственно, я сомневался в том, что строки 1, 3, 4, 5 и 6 распознались правильно и в них уже содержатся полезные данные, которые осталось только расшифровать (декодировать). Я почему-то наивно полагал, что смогу найти такой набор параметров, при котором в строчках кода сразу же увижу вожделенный id датчика. Ведь он-то мне известен заранее. И также известно то, что данные датчиков передаются открытым кодом без применения даже простецких методов шифрования. Множество записанных файлов и распознанных сигналов мне показало, что таких строчек, как вторая в нашем случае, может быть не одна, а иногда две. А идеальный сигнал, то есть совсем без таких строк, как вторая, удаётся записать довольно редко. Назовём эту строчку/пачку битой, то есть ошибочной. Так вот и положение битой пачки в пакете тоже меняется. Она может быть на любом месте. Также меняется и количество пачек в пакете примерно от 7 до 13. Ну вот в нашем случае мы записали пакет, состоящий из 10 пачек, одна из которых битая. Ну думаю, со строками 1 - 6 всё понятно теперь, а что же со строками 7 - 10? Попробуем переключить вид модуляции на FSK, не меняя другие параметры. Но предварительно скопируем и сохраним, например, первую строчку кода.

13_22.png
13_23.png


Не веря глазам своими в строках 7 - 10 видим тот же самый код, что и ранее в строках 1, 3, 4, 5 и 6. Знаете, вот на данный момент мне в принципе другие подтверждения, что полученный сигнал распознан правильно, уже не нужны. Но для Вас я предоставлю ещё и нормативное обоснование. Идём на сайт fccid.io и там в поле поиска забиваем FCCID нашего датчика MRXAG2SZ4, ну или по этой ссылке можно перейти сразу на результат поиска. Листаем вниз и в разделе Exhibits находим файл "Test Report DSC".

13_24.png


Скачиваем его и на странице 10 находим табличку.

13_25.png


Из этой таблички явствует, что в режиме обучение (Learn Mode), когда датчик принудительно будят внешним электромагнитным воздействием (активатором), датчик может в ответ посылать от 4 (вторая строка в таблице) до 13 (первая строка в таблице) фреймов (пачек). Причём во всех посылках обязательными являются четыре пачки FSK-модулированными, а остальные ASK. И мы в принципе именно это и имеем. 4 пачки FSK и шесть пачек ASK. Одна из которых битая, но как я уже говорил, наличие битой пачки - это нормально.


To be continued...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР
Станки: Руки из жопы кустом

Ford Kuga. Исследование TPMS

Сообщение Денис# » 19 дек 2021, 01:06

Ща как нафлужу...
Игорь привет!
А ты часом ЭУР не ковырял? Ходят слухи что этот геморрой на наших машинах одинаковый :)
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 19 дек 2021, 05:50

Денис# писал(а):Источник цитаты А ты часом ЭУР не ковырял?

Нет! А зачем его надо ковырять? И что именно в нём ковырять: механику, электронику или конфигурацию?
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР
Станки: Руки из жопы кустом

Ford Kuga. Исследование TPMS

Сообщение Денис# » 19 дек 2021, 23:38

KimIV писал(а):Источник цитаты Нет! А зачем его надо ковырять? И что именно в нём ковырять: механику, электронику или конфигурацию?


Ясно :)
Счастливый человек, не надо пока тебе этого знать :)))
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
Автор темы
KimIV
Реальное имя: Игорь
Откуда: Кунгур
Станки: Калибр ПЛ-600, НГФ-110Ш4, ТВ-4

Ford Kuga. Исследование TPMS

Сообщение KimIV » 20 дек 2021, 03:02

Денис#, я зря что-ли надеялся, что ты за CAN спросишь и про директ конфиг? Уже планировал перенести сообщения в ту тему и показать конфиги куговского PSCM... А ты тут интриги какие-то плетёшь... Типа, я обладаю секретной инфой, но тебе не скажу :crazy:
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.

Аватара пользователя
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР
Станки: Руки из жопы кустом

Ford Kuga. Исследование TPMS

Сообщение Денис# » 20 дек 2021, 12:04

Да ну, куда мне тупенькому в ваши высокие материи :)))
Я ж про грубую механику, стуки, скрипы, ШВП в механизме... Ещё чуть-чуть про датчики и сервопривод всей этой ерунды, стоимостью как чугунный мост :)
Заниматься стОит только тем, что считается невозможным.


Вернуться в «Автомобили»