Your comments

Вот к этому я начинаю склонятся. 

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

И хотелось бы дождаться комментарий производителя. 


Простите меня, если я был резок, но очень хочется разобраться, почему именно так. 


АВТОВАЗ тут не причём. Стандартная блокировка это учитывает.  Однако сейчас, подключено в обход этой блокировки. 


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

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


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

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


Как реализована у меня программная нейтраль. Приезжая на место я переключаю селектор в нейтральное положение, нажимаю тормоз, чтобы трансмиссия переключила передачу, отпускаю тормоз, поднимаю ручной тормоз. Срабатывает поддержка зажигания. Если в этот момент перевести селектор в любое другое положение и не нажать на педаль тормоза, то трансмиссия не переведется и поддержка зажигания не выключится.  Выхожу из машины, закрываю ее. Она готова к автозапуску. 


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


Итак, что имеем, селектор не находится в нейтральной передаче, трансмиссия не обесточена, сигнализация считает что программная нейтраль выполнена.  Этот момент мне очень не нравится. 


В отличие от отказа TCU, он не связан с никакой неисправностью. 

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

Какая разница проверять статус стояночный тормоз поднят при подготовке к автозапуска или при самом автозапуске? А этот флаг включает 2 условия: поднят стояночный тормоз и КПП( именно кпп, а не ручка) находится в нейтральном положении.  

Открываем https://can.starline.ru/?b=43&c=7183&d=20&f=-7&v=0&q=

Прокручиваем до ручной тормоз, видим

 

И собственно говоря, это я потестил. Если трансмиссия переводится в нейтральное положение и затянут тормоз - то вызывается событие ручной тормоз затянут, если что-то из вышестоящего не исполняется, то вызывается событие ручной тормоз отпущен. 


Сейчас эта проверка выполняется при подготовке к автозапуску, программной нейтрали.  И опять же мне ничего не помешает, включить поддержку зажигания на нейтральной передаче и, не нажимая тормоза, перевести селектор в другое положение, коробка останется в N, однако селектор будет переведён в другое положение, т.к. педаль тормоза не нажата, КПП не переведется и событие ручной тормоз опушён не сработает.  

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

Как я понимаю это работает, поправьте если не прав. Есть 2 вида настроек, автомобиль с мкпп, и автомобиль с акпп. Если выбран автомобиль с мкпп, то используем алгоритм программной нейтрали, т.к. нет датчика нейтральной передачи. Если датчик нейтральной передачи есть, то можно программироваться как автомобиль с акпп, т.к. возможно прямое слежение за включённой передачей. В нашем случае сигнал нейтральной передачи совмещен с сигналим стояночного тормоза, который, в свою очередь, игнорироруется при автозапуске автомобиля настроенного как акпп. Ну и соответсвенно это не безопасно. 


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



 Так я понял почему это не работает. 


Вопрос теперь как это починить. 

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



Но при начале автозапуска, он уже не считывается. Написал на гибкой логике простую программу, чтобы при снятии с ручного тормоза помигал поворотниками при автозапуске. 


Т.е. по сути дела флаг нейтральной передачи есть и он совмещен с флагом ручного тормоза через логическое и.


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


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


Про глюки, я вроде бы, не писал, но глюки - это недетерминированное поведение, т.е. если рассматривать программу как чёрный ящик( ничего не знаем о внутреннем устройстве, не знаем как работает, какие есть внутренние состояния), то результат выхода из этого чёрного ящика будет различным при одинаковых входных данных.