Информация TPMS на приборной панели. Часть 2. Как это работает.

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

Как оказалось, это не очень удобно, так как через некоторе время после включения зажигания, система принудительно переключала экран на свои данные. Очень часто в это время я уже вбивал нужный адрес в навигации и неожиданная смена изображения сильно раздражала. Из-за этого я переключил систему TPMS на экран в зеркале заднего вида.

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

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

После беглого осмотра сразу выявилось идеальное место для подключения — разъем шлейфа экрана. Контроллер экрана управляется процессором по восьмибитной шине. Модель контроллера выявить не удалось, поэтому я просто подключил логический анализатор и стал изучать поток данных. Довольно быстро стало понятно, что каждое обновление экрана сопровождается его инициализацией и происходит это 10 раз в секунду. Полистав наугад даташиты разных жк-контроллеров нашел похожий набор команд. Им оказался ILI9341.

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

Наиболее рациональным оказалось использование ПЛИС. До этого я с ними никогда не работал, поэтому заказал демо-плату на Альтере MAXII EPM240 и засел читать статьи и изучать Verilog. Через месяц демо-плата была уже у меня. Я собрал переходной шлейф и подключил через него экран. ПЛИС полностью справлялась с задачей и теперь можно было мониторить трафик и подменять данные. Немного поигрался с форматом вывода изображения.

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

Вычислив соответствующие данные этой картинки, я заставил ПЛИС рисовать в среднюю часть дисплея свое изображение. А в случае смены информационного экрана (появления предупреждения или переключения кнопкой) весь поток данных передается без изменений.

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

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

Как видно, STM32F407 подключен к ПЛИС по FSMC (16 бит), а также есть несколько линий подключения «про запас». Также разведены два контроллера кан-шины и на всякий случай SPI, USB и внешние вход и выход. Ну, и, конечно же, светодиоды для удобства мониторинга состояния.

Написав прошивку для микроконтроллера я уже мог подавать команды и данные на Альтеру, которая выводила их на экран. Также заменил надпись «Welcome» на логотип Митсу.

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

Закладка Постоянная ссылка.

1 комментарий: Информация TPMS на приборной панели. Часть 2. Как это работает.

  1. Blablatov пишет:

    Привет интересное решение! А с цветными дисплеями будет работать? И можно ли эту штуку прикрутить к Аутландеру?
    Зы.. Плату «развел» видно явно промышленным способом…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *