Лада 2113 Чёрная Буря › Бортжурнал › Цикл статей для настройщиков моторов, статья №1. Что такое квантование и рабочая точка?
Данный цикл статей расчитан на людей, которые уже прочитали инструкцию для новичков: www.drive2.ru/l/4539645/. В этих статьях раскрою различные секреты и свой личный опыт настройки моторов на блоках управления Январь и им подобных.
Наверное, эту статью нужно было и раньше опубликовать, хотя бы год назад, но у меня практика и опыт опережают теорию, поэтому различные хитрости и секреты настройки появляются не сразу. В этой статье я расскажу основной, корневой момент настройки, который я надеюсь избавит многих от различных недопониманий в настройке мотора.
Итак, само слово квантование по началу меня пугало, какие-то кванты, как и каким образом оно появилось в прошивке и зачем вообще нужно? Для начала стоит задать вопрос: что такое прошивка?
Определились с ключевыми вопросами статьи, начинаем разбираться. Думаю лучше начать с самой прошивки. По вопросам, которые приходят ко мне в личные сообщения, я вижу, что многие даже не понимают что это такое. Прошивка — это программа, которая записана во флеш память электронного блока управления. Программа — это лишь набор данных — байтов. Размер прошивки прошивки может быть разный, 64кб, 512кб и т.д. Для каждого ЭБУ будет свой размер прошивки. В программе записаны алгоритмы работы с датчиками, исполнительными механизмами (например форсунки, катушка зажигания). Операциями вычисления и реализацией алгоритмов работы программы занимается сам процессор ЭБУ. Программа и управляет мотором. Скорость работы системы напрямую зависит от самой прошивки и частоты процессора. Чем лучше оптимизированна прошивка и чем мощнее процессор ЭБУ, тем оперативнее и быстрее получается управлять мотором.
Итак, прошивка состоит из алгоритмов и переменных, различных констант. Настройщики моторов, когда настраивают мотор, в основном работают лишь с переменными в прошивке, которые называются калибровками. В исходный код прошивки, чтобы поправить сами алгоритмы прошивки не только лишь все смогут залесть. Вернее редко кто это сможет сделать!
В профессиональном слэнге настройщиков России калибровки называют «калибрами». Например, всеми любимая и очень важная калибровка — статика форсунки. В этой калибровке задаётся производительность форсунки в мг/мсек. В прошивке выделено под неё, наверно 1 байт данных. Выделен определённый адрес в прошивке, где должен находится этот байт данных. Например, для калибровки БЦН — это 256 точек, в прошивке выделено 256×2 = 512 байт. И находятся эти данные тоже по определённому адресу. Для одной точки калибровки БЦН выделяется ровно два байта данных.
Кто уловил мою мысль, наверно поняли — чтобы редактировать прошивку в программе CTP, нужно строго настрого открывать прошивку для редактирования только родной картой этой прошивки. Распространённая ошибка, как делают многие. Открывают прошивку, программа CTP не спросила какой картой открывать прошивку, выбрала сама, пользователь редактирует прошивку, сохраняет её. Потом из под капота летят болты и гайки. Байты не туда прописались, изменилась какая-нибудь калибровка в недопустимый предел и привет капиталка. Для того, чтобы такого не было, в настройках программы СTP отключаем автоопределение карты прошивки. Саму карту от прошивки нужно положить в корень программы CTP. Тогда при открытии прошивки, программа спросит какой картой её открыть, выбираем ту, которую положили в корень программы.
Разбираемся дальше. Выяснили, что прошивка делится на байты, байты группируются в калибровки, сами калибровки уже делятся на рабочие точки. Что такое же такое рабочая точка (РТ)? Рабочая точка — это одно звено калибровки. Например, БЦН — это 3х мерная калибровка, выглядит таблицей. У этой калибровки две зависимости — одна от положения дросселя или давления, другая от оборотов. На пересечении выбранного положения дросселя (давления) и оборотов — получаем значение ЦН (циклового наполнения мотора). Если сказать простыми словами — это одна ячейка из этой таблицы. Когда мотор работает, РТ таблицы БЦН находится в какой-то из ячеек этой калибровки.
Задача настройщика — как можно больше данных узнать о моторе в разных РТ, откатать каждую РТ максимально эффективно. Также заставить мотор не зацикливаться на каждой новой РТ. Чем быстрее мотор переходит от одной РТ к следующей, тем быстрее он раскручивается. Чем ближе РТ находятся друг к другу, тем больше вероятность, что мотор «перескочит» на следующую и пойдёт дальше в разгон. Бывают распространённые случаи моих подписчиков — они пишут, вот еду по трассе, упёрся в 140 км/ч на 100% педали газа, дальше не идёт. Чуть дроссель приотпустил, машина поехала и уже разогналась до 150 км/ч. В этом случае, мотор попал не в лучшую РТ и попросту там остался. Стоило приотпустить дроссель, РТ сместилась в другую точку, в которой настройка например УОЗ была лучше, мотор раскрутился сильнее и перескочил эту неправильную точку.
Теперь переходим к самому интересному. Квантования — это и есть разбиение калибровки на РТ. Это скелет прошивки, её фундамент. Квантования определяются сразу в первой прошивке, в зависимости от характера мотора и далее не меняются. Другими словами квантование можно назвать разбивкой. Например, если открыть заводскую прошивку на стандартный ВАЗовский мотор 21124, то видно, что обороты там квантуются (разбиваются) на: 600, 720, 840, 990, 1170, 1380, 1650, 1950, 2310, 2730, 3210, 3840, 4530, 5370, 6360, 7650. Дроссель: 0, 2, 4, 6, 8, 10, 14, 18, 23, 29, 37, 46, 56, 66, 80,100. Если быстрым взглядом посмотреть, стандартная прошивка ориентирована на «низы», РТ очень близко друг к другу в зоне малых оборотов. Тоже самое прослеживается и с дросселем. Настраивая мотор, желательно первым делом определиться с квантованиями, будут ли они подходить мотору. Например, если мотор будет верховой и максимальной отсечкой 8000 об/мин, то и надо сделать последнюю РТ по оборотам нужно в 8000 об/мин, сами обороты более мелко поделить в зоне «верхов». Квантования оборотов, на которых ездила моя легендарная Чёрная Буря: 600, 800, 1120, 1520, 2000, 2520, 3000, 3520, 4000, 4520, 5000, 5520, 6040, 7000, 7520, 8000. Первую точку 600 по идее можно было убрать, но что-то так руки не дошли. Точку 1120 об/мин выбрал специально для стабильной работы ХХ (т.к. ХХ был выставлен в 1120 об/мин), чтобы на холостых РТ находилась именно в этой точке, а не скакала между 800 и 1200 например. Т.к. мотор у меня крутится с низу и до самых 8000 об/мин не затухая, то решил поделить его равномерно с шагом 500 об/мин. Это был один секретов Чёрной Бури, который позволял ей разгоняться очень быстро.
От теории переходим к практике. Чтобы выставить нужные точки квантования оборотов в прошивке, нужно открыть калибровку «квантования оборотов» и начать там двигать каждую 16ю точку. Снизу обороты, слева точки квантования. В рабочие точки попадут те значения оборотов, которые кратны 16, например 16, 32, 48, …, 224, 240. Обороты, превышающие значение точки 240, будут считаться по последней точке. В обычной ВАЗовской прошивке на Январь 5.1, 7.2 дано всего 16 РТ по оборотам.
Аналогичная процедура и с квантованием дросселя.
Стоит сказать пару слов и про квантование давления, ЦН. Тут тоже всё просто, для давления задаётся диапазон, начальное значение. Начальное значение + диапазон = максимальное допустимое давление в прошивке. Для ЦН = задаётся шаг минимальное и максимальное значение. Обычно в настройке ЦН ничего не меняю, в стандартных прошивка оно задано где-то 650 мг/цикл. Для настройки турбо моторов настройки квантования давления и ЦН обязательны, если не хотите чтобы ваш дорогой мотор отрыгнул.
Завершаю статью, тему постарался раскрыть коротко и ёмко. Надеюсь было интересно. Ну и как обычно, я дал вам идею, а вы уже развивайте её, пробуйте на своих моторах!
Как расшифровать прошивку автомобиля в неизвестном формате
Toyota распространяет свои прошивки в недокументированном формате. Мой заказчик, у которого автомобиль этой марки, показал мне файл прошивки, который начинается так:
CALIBRATIONêXi º
attach.att
ÓÏ[Format]
Version=4
[Vehicle]
Number=0
DateOfIssue=2019-08-26
VehicleType=GUN1**
EngineType=1GD-FTV,2GD-FTV
VehicleName=IMV
ModelYear=15-
ContactType=CAN
KindOfECU=0
NumberOfCalibration=1
[CPU01]
CPUImageName=3F0S7300.xxz
FlashCodeName=
NewCID=3F0S7300
LocationID=0002000100070720
CPUType=87
NumberOfTargets=3
01_TargetCalibration=3F0S7200
01_TargetData=3531464734383B3A
02_TargetCalibration=3F0S7100
02_TargetData=3747354537494A39
03_TargetCalibration=3F0S7000
03_TargetData=3732463737463B4A
3F0S7300forIMV.txt ¸Ni¶m5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
.
Дальше идут строки по 32 шестнадцатеричные цифры.
Хозяину и прочим умельцам хотелось бы перед установкой прошивки иметь возможность проверить, что там внутри: засунуть ее в дизассемблер и посмотреть, что она делает.
Конкретно для этой прошивки у него имелся дамп содержимого:
Как видно, нет ничего даже близко похожего на строчки шестнадцатеричных цифр в файле прошивки. Встает вопрос: в каком формате распространяется прошивка, и как ее расшифровать? Эту задачу хозяин автомобиля поручил мне.
Повторяющиеся фрагменты
Посмотрим внимательно на те шестнадцатеричные строчки:
5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
.
Соответствия между блоками
Получим список всех пар (блок файла, блок дампа), и поищем в нем закономерности:
Вот как выглядят первые пары в отсортированном списке:
Действительно, видны закономерности:
Для проверки — «отрежем» старшие 4 бита в каждом полублоке, и посмотрим, какие пары получатся:
После перестановки подблоков по 4 бита в ключе сортировки, соответствия между парами подблоков становятся еще более явными:
Соответствия между подблоками
В вышеприведенном списке видны такие соответствия:
Когда таблицы соответствия готовы, код расшифровки получается совсем простой:
Заголовок прошивки
Хозяин автомобиля, передавший мне файлы для анализа, подтвердил, что в прошивках встречаются и сжатые LZF данные. К счастью, реализация LZF открыта и довольно проста, так что вместе с моим анализом ему удалось удовлетворить свое любопытство по поводу содержимого прошивок. Теперь он может вносить изменения в код — например, автозапуск двигателя при падении температуры ниже заданного уровня, чтобы использовать автомобиль в условиях суровой русской зимы.
















