Уважаемые коллеги, данная тема будет посвящена разработке кастомного блока управления для АКПП серии 097. Тема, надеюсь, будет полезна не только тем, кого не устраивают некоторые моменты в работе штатного блока, но и тем, кто на этих коробках просто ездит. В частности, речь пойдет о коробках с кодовым обозначением ANZ, работающих совместно с моторами объемом 2.3 литра (AAR). Вообще-то говоря, вся серия коробок в общем смысле этого слова одинакова, и различается по большей части передаточными числами в зависимости от установленного двигателя. Так, для моторов объемом 2.3 литра, помимо коробки ANZ, также подойдут коробки AEK, CEA и CFT. В принципе, при желании можно вкорячить и другую коробку, но стоит помнить о том, что крепёжные отверстия расположены в разных местах, что потребует, как минимум, сверление новых отверстий. Какая коробка с каким двигателем применялась можно посмотреть в инструкции по ремонту Automaticgearbox 097 Self-diagnosis. Стоит также отметить, что под каждый комплект двигатель+АКПП идёт свой блок управления. Несмотря на одинаковый идентификационный номер и одинаковые разъемы для подключения, блоки отличаются программным обеспечением, зашитом в ПЗУ блока. Если обратить внимание на сам блок управления, сверху на алюминиевой части есть дополнительная наклейка с кодом прошивки (1 или 2 большие буквы). Так, для АКПП AEK, ANZ и CEA используется блок с прошивкой "N", для CFT с прошивкой "DA". Кроме всего вышесказанного, есть различия в коробках выпуска до ноября 1992 года и после. Отличаются они муфтами К1 и К3. В гидроблоках также имеются небольшие отличия. В принципе, ничто не мешает переставить эти узлы в сборе с одной коробки на другую с заменой блока управления. Именно так я и поступил год назад. На разборке была куплена убитая по гидравлической части ANZ, в остальном коробка была в хорошем состоянии. Сделал я так, чтобы в дальнейшем просто заменить одну коробку на другую. После разбора коробки, я ужаснулся состоянию отдельных элементов. Эта коробка в буквальном смысле ехала до последнего. Полностью сгорели пакеты фрикционов К1 и К2. Пакет К3 был на грани. Но самое печальное было в том, что в процессе "горения" развалился подшипник между К1 и К3, в результате чего валы задрало так, что к дальнейшему применению они стали не пригодны совсем. И вот тут многие бы приняли решение в пользу замены автомата на механику, но не я. Отъездив более 15 лет на механике и только-только прикоснувшись к прелестям автомата, перевес был именно на стороне автомата. Конечно, можно было снять коробку, которая стояла на авто и использовать запчасти с нее, но она ещё как-то ездила, да и машина на тот момент была нужна на каждый день. В итоге, по цене металлолома была куплена ещё одна коробка, но с двухлитровой аудюхи. С ней ситуация была куда лучше. Нюансом было то, что эта коробка была уже CFX 93 года выпуска. По крепёжным отверстиям, разумеется, на 2.3 она не подходила. Тем не менее, переставить гидравлическую часть на ANZ это не помешало. Также пришлось раздобыть другой блок управления АКПП. В итоге, получился этакий Франкенштейн. Спустя некоторое время я все же нашел силы и поменял коробку на автомобиле. Радости первое время не было предела. Переключения мягенькие, без каких либо рывков и прочих подёргиваний, которые были на старой коробке. И все бы ничего, но периодически коробка начала "проваливаться" в аварию. Диагностика выдавала единственную ошибку: "контроль включения передачи". Причем, эффекта проскальзывания фрикционов даже под нагрузкой не наблюдалось. После перезапуска двигателя ещё какое-то время можно было спокойно передвигаться, потом коробка снова уходила в аварию. В процессе езды было замечено, что переход в аварийный режим случался в момент переключения с 4 на 3 передачу под нагрузкой. При плавном торможении коробка в аварию не уходила. Не знаю, почему я сразу не обратил внимание, но оказалось, что у ANZ и CFT разные передаточные числа на 2 и 4 передачах. Кроме того, отличались и передаточные числа главной передачи. В этот момент я уже подумывал о том, чтобы вернуть на авто старую коробку, но вспоминая о том, сколько сил мне стоило в одиночку поменять коробку, делать этого ой как не хотелось. Немного подумав, решил попробовать вернуть на место старый ЭБУ АКПП. И, как ни странно, это дало результат. Коробка перестала уходить в аварию. Но вместе с этим ушла и плавность в работе коробки. Нет, по сравнению со старой коробкой, ситуация была куда лучше, но наглядно увидев как плавно могут работать эти коробки, желания оставлять как есть не было. Вскрыл блок управления. В углу платы под жестяным кожухом располагается процессорный модуль с микросхемой ПЗУ в которой и находится прошивка. Считал дамп программатором. Вскрыл новый блок, проделал с ним те же манипуляции. Прошивки, естественно разные, но в некоторых местах полностью идентичны. Процессор там стоит моторолловский MC68HC11E1. Стоит отметить, что на тот момент это был вполне достойный процессор. Неделю ковырялся в дизассемблере, пытаясь понять логику работы блоков, но в результате понял, что это нереальная задача, учитывая то, что с этими процами опыта работы не было совсем. Тем не менее, поизучав устройство блоков, стало ясным как именно организована связь между процессором и остальной частью схемы. На тот момент стало ясным с помощью чего процессор процессор управляет внешней обвязкой, но как именно он это делает понимания не было. И тут меня осенило. А что, если нафиг выкинуть эту плату с процессором и установить вместо нее новую с микроконтроллером, для которого написать прошивку я смогу? Так и сделал. В качестве МК взял имеющийся у меня PIC18F2520. Именно такие используются, например, в электронном впрыске ЛИСКАР. Вдобавок ко всему, у меня имелся необходимый софт для реализации протокола обмена по К-линии и в наличии была пара лишних МК и запасной ЭБУ АКПП. Оставлять оригинальный протокол обмена не стал ввиду его тормознутости и специфичности реализации. Мне проще было написать собственный софт для диагностики. Таким образом, была реализована ещё и возможность загрузки новых прошивок используя все тот же KKL адаптер, что и для диагностики. Как ни странно, и заводской блок поддается перепрошивке, но сделать это рядовому пользователю вряд ли удастся. Для этого необходимо снять микросхему ПЗУ, благо установлена она на цанговый панельке, стереть старую прошивку с помощью УФ лампы и с помощью специального программатора записать туда новую прошивку. В качестве эксперимента, заменил ПЗУ одного блока на ПЗУ из другого блока. Теория о том, что логика работы определяется именно прошивкой, расположенной в этом ПЗУ подтвердилась. По аппаратной части блоки абсолютно одинаковы, за тем лишь исключением, что в более новых блоках часть элементов заменена на их аналоги в корпусах для поверхностного монтажа. Грузить вас, дорогие форумчане, реализацией электронной части не стану, но на всякий случай приведу фрагмент схемы, срисованной с "живого" блока. Сразу хочу отметить, что схема далеко не полная, да и не факт, что там нет ошибок, тем не менее, понять логику работы она поможет. И прежде чем перейти к описанию алгоритмов работы блока, стоит остановиться на конструкции "железа". В коробке имеется 5 комплектов фрикционов: три сцепления К1, К2, К3 и два тормоза В1, В2. В зависимости от включенной передачи, задействуются те или иные комбинации пакетов. Для управления коробкой в гидроблоке установлены 7 соленоидов. 4 из них применяются для переключения передач (N88-N91), 2 соленоида участвующие только в момент переключения (N92, N94) и служат для сброса давления и 1 соленоид для регулировки линейного давления (N93). Все соленоиды одним концом подключены к «+» источника питания. Для включения, ЭБУ подаёт «-» на второй вывод соленоида. Комбинации включения пакетов и соленоидов для каждой передачи приведены на картинке ниже. С позициями R, N, P, 1L есть особенности, поскольку здесь в распределении потоков масла участвует мануальный клапан в гидроблоке вне зависимости от состояния соленоидов. Вырисовывается следующая картина. Когда N88 включен, задействуется пакет В1, когда отключен – К1. N89 управляет пакетом B2. Когда он включен – B2 тоже включен и наоборот. N90 включает К3. Если N90 включен, то включен и К3. N91 служит для управления пакетом K2. Если он включен - К2 выключен и наоборот. В таблице я намеренно не указал состояние соленоидов N92 и N94, поскольку они задействуются только на короткое время при переключения передач. В остальное время оба этих соленоида отключены. Все соленоиды, кроме N93, абсолютно одинаковые. Имеют 2 состояния: включен или выключен. N93 управляется ШИМ сигналом в зависимости от нагрузки, получаемой от ДПДЗ. Контролируемой величиной при этом служит ток, протекающей через этот соленоид. Логика работы N93 простая: чем выше нагрузка, тем меньше значение ШИМ сигнала, меньше ток и выше давление. И наоборот, чем больше ток, тем меньше давление. Если посмотреть в VAG COM'e, так и есть. С увеличением степени открытия ДЗ (увеличении нагрузки), ток уменьшается. Для каждой передачи зависимость тока от положения ДЗ разная. Выглядит это примерно так, как показано на графике ниже. И вот здесь возникает первый "костыль". Несмотря на то, что процессор контролирует величину заданного тока, сам ток выбирается лишь по таблице ДПДЗ/напряжение питания ЭБУ. Поясню на примере. Допустим, для текущего положения ДЗ ток должен составлять 500мА. Процессор выдает такой сигнал ШИМ, при котором ток должен быть равен 500мА с учётом поправки на питающее напряжение. Но это в теории. В реальности, в процессе эксплуатации сопротивление самого соленоида и проводов его соединяющих изменяется. Также не стоит забывать о том, что сопротивление также изменяется и при изменении температуры этого соленоида. Не сильно, но тем не менее. В результате чего реальный ток составляет уже не 500мА, а, к примеру, 480мА. Этот момент процессором никак не корректируется и лишь при серьезных отклонениях блок уходит в аварийный режим. В качестве эксперимента, я соединил последовательно 2 таких соленоида, в результате чего ток упал до 370мА. Блок управления при этом продолжал "думать", что все хорошо, хотя в реальности это приведет к существенному изменению давления. При реализации я учел этот нюанс и теперь не зависимо от условий (в разумных пределах, разумеется) процессор "подгоняет" фактическую величину тока под заданную. Второй момент, который мне не нравился - точка переключения между 4 и 3 передачами. При малых открытиях дросселя переключение осуществляется при 45км/ч. В результате чего двигатель работает в натяг, динамика никакая. При езде в городе иногда приходится переводить селектор в положение "3". Третий момент - это переключение с 3 на 4 при езде в горку. Стоит немного отпустить педаль и коробка переключается на 4. Опять едем в натяг. Включение режима Sport помогает, но в этом случае переключение вверх происходит при больших оборотах, а хотелось бы нечто среднее между этими двумя режимами. В своей прошивке я предусмотрел возможность корректировки порогов переключения. Помимо ДПДЗ блок управления получает информацию о температуре масла в коробке, для этого на шлейфе, идущим на соленоиды, имеется терморезистор G93, изменяющий свое сопротивление в зависимости от температуры. Чем выше температура, тем ниже сопротивление и наоборот. Не знаю из каких соображений был применен резистор с резко нелинейной зависимостью сопротивления от температуры (и резистор ли это вообще?) при температуре 20*С сопротивление порядка 247кОм, при 60 уже 49кОм, а при 120*С всего лишь 7.4кОм. В ЭБУ сигнал с этого датчика подтянут к «-» через резистор в 1кОм. Итого, при напряжении в бортсети 14В и температуре 20*С имеем напряжение на входе АЦП всего лишь 56мВ из максимально возможных 5В! При низких температурах точность измерения никакая, отрицательные температуры вообще становится невозможно измерить. Кроме того, было выяснено, что температура никак не влияет ни на линейное давление, ни на характер переключения передач. Единственное - при низких температурах переключение с 3 на 4 происходит при немного бОльших оборотах, чем на прогретой коробке. При перегреве коробки (температура выше 148*С) блок перестает включать 4 передачу, а переключение между остальными передачами начинает осуществляться при бОльших оборотах двигателя якобы для снижения нагрузки на коробку, хотя на практике ХЗ как это поможет снизить нагрев. На выходном валу коробки расположен индукционный датчик G68, по которому блок вычисляет скорость движения автомобиля. Этот датчик используется только ЭБУ АКПП (на приборную панель идёт отдельный датчик, расположенный возле левого выходного фланца). Частота импульсов G68 в 32 раза выше частоты вращения выходного вала. Внутри ЭБУ этот сигнал делится на 4 и в таком виде поступает на один из входов процессора. Сигнал о частоте вращения двигателя поступает на 27 вывод ЭБУ и, по сути, дублирует сигнал с датчика Холла в трамблёре. Экспериментальным путем было установлено, что вплоть до 4 передачи блоку вообще пофиг на обороты двигателя, переключение передач идёт по таблице ДПДЗ/скорость. И лишь на 4 передаче при отсутствии сигнала о частоте вращения двигателя, коробка уходит в аварийный режим. Коробка также уходит в аварию при большой разнице оборотов двигателя и выходного вала. Дело в том, что на 4 передаче крутящий момент передается в обход гидротрансформатора т.к. сцепление К3 включено, а сам К3 имеет жёсткую связь с коленчатым валом двигателя. Соответственно, частота вращения двигателя должна четко совпадать с частотой вращения выходного вала с учётом передаточного числа. Большая разница между этими частотами свидетельствует о проскальзывании фрикционов. Именно из-за «неправильного» передаточного соотношения блок у меня уходил в аварийный режим.
Для дальнейшей работы было необходимо понять механизм переключения между передачами. В стационарном режиме все просто: какие-то соленоиды включены, какие-то отключены, N93 поддерживает заданное давление, а вот для понимания того, что происходит в момент переключения, понадобилось на скорую руку собрать отладочный стенд. Честно говоря, при его сборке вообще не старался, все отверстия сверлил на глаз, да и смысл стенда в его функционале, а не во внешнем виде. В контрольные точки на плате ЭБУ был подключен логический анализатор, благодаря которому были получены диаграммы работы соленоидов при переключении передач. Использованные контрольные точки отмечены на рисунке. Сигналы частоты вращения двигателя и датчика скорости имитировал генератором сигналов прямоугольной формы. Если кому будет нужно, вышлю архив с логами. Для примера, приведу диаграмму переключения при ДПДЗ=50% для ранних и поздних версий коробок Впоследствии, данные результаты были использованы при написании своей прошивки. Отладочный стенд позволил смоделировать совсем уж маловероятные, но теоретически возможные ситуации. Например, что будет, если на скорости 100км/ч включить «R» или «1» и т.п. Вообще-то говоря, конструкторы поленились, не поставив на входной вал коробки датчик оборотов, в результате чего становится невозможным точно отследить момент «схватывания» фрикционов при переключениях. Соответственно, не представляется возможным реализовать автоматическую подстройку моментов переключения соленоидов под текущее состояние коробки. Весь алгоритм строится исключительно на таймингах и идеально подходит лишь для новой коробки. В процессе износа, разумеется, заложенный алгоритм даёт уже несколько другой характер переключения передач, что приводит к появлению толчков или даже ударов. Что касается коробок выпуска до 11.92 и после. У ранних коробок переключение с 3 на 4 осуществляется в 2 этапа: вначале включается 3-я механическая передача (по сути та же 3, но в обход гидротрансформатора), затем уже 4-я. В более поздних коробках переход с 3-й гидравлической производится сразу на 4-ю. В своей прошивке я предусмотрел оба эти варианта. Графики переключения соленоидов для каждого варианта выбора передач зависят от положения ДЗ. Для обоих типов коробок они весьма схожи, но в некоторых моментах отличаются существенно. Интересным способом выполнена схема контроля исправности соленоидов. Шифтовые соленоиды объединены в группы по 3 штуки в каждой, через сумматоры на резисторах. Соленоид линейного давления N93 имеет отдельную схему контроля. Итого, получаем 2 группы: N88, N89, N90 и N91, N92, N94. Каждая группа заведена на канал АЦП процессора. Плюсом такого решения является возможность контроля состояния сразу трёх соленоидов, используя всего лишь один вывод процессора, с другой стороны, процессор не сможет определить неисправность соленоида, если в данный момент времени он включен. В процессе работы процессор постоянно мониторит напряжение на этих двух группах и в случае отклонения по одному из напряжений начинает попарно в группах включать 2 из 3 соленоидов и измерять напряжения на группах для определения неисправного, после чего уходит в аварийный режим, снимая сигналы управления со всех соленоидов. На картинке ниже представлен случай, когда один из соленоидов ушел в обрыв. Сама процедура происходит довольно быстро ~40мс. С алгоритмом контроля состояния соленоидов в своей прошивке пришлось повозиться, но в итоге все получилось. Уже вторую неделю отъездил на переделанном блоке – полет нормальный. По мере езды вылавливаются и устраняются обнаруженные недочёты. Есть ещё над чем поработать, в частности, на ЭБУ АКПП заведены сигналы с АБС, сигнал на отключение компрессора кондиционера, сигнала нажатия педали тормоза, выключатель кик-дауна. На данный момент, логику применения этих сигналов я не разбирал. Так же не реализовано включение режима SPORT. Есть ещё один момент. Вывод блока АКПП 28, который идёт на 1 вывод блока VEZ и в тех.документации обозначен как IGNITION TIMING MODULATION, и согласно этой же документации активируется в момент переключения передач, воздействуя на УОЗ. Однако, как именно и в какие моменты он активируется, я пока что не разобрался. По идее, данный сигнал служит для более плавного перехода между передачами. Если кто знает, прошу поделиться информацией. Проект будет полностью открытый, исходники прошивки, софт для диагностики и прочее выложу тут, если кого заинтересует.