Оживляем дисплей из кабины лифта

в 8:05, , рубрики: lpc, NXP, дисплей, интелкрафт, ирпс, оптопара, токовая петля, щлз

Приветствую всех!
Уверен, каждый, кто катался на новом лифте, видел подобные штуки. Всё чаще такие экраны ставят взамен привычных светодиодных или сегментных ЖК-индикаторов.

Оживляем дисплей из кабины лифта - 1

И вот однажды мне стало интересно: а как вообще они работают и можно ли запустить их самому? Как оказалось, то, что я представлял себе небольшим опытом буквально на пару часов, на деле оказалось целым приключением...

❯ Суть такова

Оживляем дисплей из кабины лифта - 2

Если ещё недавно во многие лифты ставились светодиодные табло, то сейчас большинство отечественных производителей перешли на ЖК-индикаторы.

Оживляем дисплей из кабины лифта - 3

Такие экраны ставятся практически во все современные лифты (а кое-где их даже устанавливают взамен старых табло). Их выпускает несколько фирм («Интелкрафт» (он же «МашЮнит»), «Промтех», а также некоторые производители другого лифтового оборудования), однако в плане подключения практически все они идентичны. Как же они управляются? Сейчас и узнаем.

❯ Обзор оборудования

Так получилось, что ко мне в руки попало сразу несколько блоков разной степени убитости.

Оживляем дисплей из кабины лифта - 4

Дисплей Интелкрафт 4,3. Один из самых популярных экземпляров.

Оживляем дисплей из кабины лифта - 5

Обратная сторона. Две кнопки предназначены для настройки. По периметру куча разъёмов: питание, данные (некий последовательный канал), динамик (из которого играет музыка и который объявляет этажи, если в лифте нет другого информатора), CAN-шина, резервный аккумулятор (по задумке, если вдруг пропадёт электричество, то экран не погаснет). Справа слот для карты памяти microSD.

Оживляем дисплей из кабины лифта - 6

Ещё один экран. На вид он абсолютно такой же, если не считать того, что он заляпан какой-то гадостью типа засохшего силикатного клея.

Оживляем дисплей из кабины лифта - 7

И ещё один. Модель снова та же, но отличается конструкция корпуса.

❯ Внутренности

Разумеется, дисплейные модули я разобрал.

Оживляем дисплей из кабины лифта - 8

А вот и начинка. На плате микроконтроллер, батарейка часов, оптопара (явно для развязки последовательного канала), чип DRAM.

Оживляем дисплей из кабины лифта - 9

Второй экран внутри оказался ровно таким же.

Оживляем дисплей из кабины лифта - 10

Третий же чуть отличается: интерфейсная цепь здесь чуть другая.

Оживляем дисплей из кабины лифта - 11

Микроконтроллер.

❯ Первый запуск

Время разбираться, что с этими девайсами.

Оживляем дисплей из кабины лифта - 12

Подаём питание, и дисплей загорается. Отлично.

Оживляем дисплей из кабины лифта - 13

Можно даже зайти в меню.

Оживляем дисплей из кабины лифта - 14

А вот тут прописываются те самые отображаемые значения.

Оживляем дисплей из кабины лифта - 15

Через несколько секунд экран показывает треугольник с восклицательным знаком и надпись «Аварийное освещение». Это происходит из-за отсутствия связи со станцией.

Оживляем дисплей из кабины лифта - 16

Прошивка другого оказалась поинтереснее.

Оживляем дисплей из кабины лифта - 17

Как и его дизайн.

Оживляем дисплей из кабины лифта - 18

Меню его тоже отличается.

Оживляем дисплей из кабины лифта - 19

Что же до третьего, то он не запустился вообще. Вскрытие выявило оторванный шлейф подсветки экрана. Впрочем, проблема была не только в нём: подкинул заведомо целый дисплей, но он всё равно не заработал. Ладно, разберёмся с ним как-нибудь в другой раз.

❯ Про настройку этих дисплеев

Ну и перед началом опытов посмотрим, как вообще конфигурируются такие модули. Помимо меню практически каждый такой экран имеет карту памяти, где хранятся настройки и ресурсы.

Оживляем дисплей из кабины лифта - 20

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

Оживляем дисплей из кабины лифта - 21

В папке лежит «стиль» (ресурсный файл) и сами ресурсы — звуки, картинки, музыка и прочие данные.

Оживляем дисплей из кабины лифта - 22

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

Оживляем дисплей из кабины лифта - 23

Производитель даже заморочился и реализовал своеобразный скриптовый язык для более специфической настройки.

Оживляем дисплей из кабины лифта - 24

Картинка от одного из производителей лифтов (Высота-43).

Оживляем дисплей из кабины лифта - 25

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

❯ Протокол

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

Оживляем дисплей из кабины лифта - 26

Из этой таблицы видно, что дисплей поддерживает работу по двум интерфейсам: по некоей последовательной шине и по CAN. К моему удивлению, никакого описания протокола найти не удалось, как бы я ни пытался это сделать. Неожиданно. Неужели протокол работы табло — какая-то страшная тайна, доступная только под NDA? Ну ладно...

Единственное, что удалось найти, так это то, что загадочный последовательный канал — по сути токовая петля. Стало ясно, что единственным подходящим вариантом будет раздобыть начинку от настоящей станции управления и посмотреть, что за данные она отправляет.

Оживляем дисплей из кабины лифта - 27

И вот у меня в руках плата МПУ от станции УКЛ.

Оживляем дисплей из кабины лифта - 28

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

Оживляем дисплей из кабины лифта - 29

И фокус действительно удался — табло перестало зависать и показало два прочерка. Это абсолютно нормальное явление для лифта с электронной станцией управления сразу после перезапуска. Конечно, можно было сымитировать сигнал датчика и заставить плату думать, что кабина стоит на верхнем или нижнем этаже, но как назло одна из оптопар, отвечающих за эти входы, была вырвана. Ни на донорских платах, ни в щедрых закромах Родины я такой не обнаружил, в Челябинске их не было в наличии, поэтому заказал в другом городе, а в ожидании их прибытия решил разобраться так.

Оживляем дисплей из кабины лифта - 30

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

Оживляем дисплей из кабины лифта - 31

И действительно, каждые 357 мс станция шлёт нечто, напоминающее UART, только инвертированный.

Оживляем дисплей из кабины лифта - 32

Поигравшись с настройками анализатора, убедился в этом: это обычный UART, только с очень низкой скоростью — всего 300 бод.

❯ Подключение

Разобравшись с тем, что отправлять, собираем схему для связи с табло.

Оживляем дисплей из кабины лифта - 33

А вот и она.

Оживляем дисплей из кабины лифта - 34

А это схема переходника для записи данных от станции. Всё же протоколов много, а дисплей один.

Оживляем дисплей из кабины лифта - 35

Готовый переходник.

❯ Пробуем управлять табло

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

Оживляем дисплей из кабины лифта - 36

И действительно, на отправку таких байт табло реагировало. Это определённо похоже на успех. Но вот незадача: почему-то отобразить удавалось всего несколько этажей. Я перебрал все значения от 0x00 до 0xFF, однако дисплей хранил свою тайну.

Оживляем дисплей из кабины лифта - 37

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

❯ Параметры порта

Интересно, конечно. Но ведь как-то же оно работает? Да и номеров этажей у нас в домах у нас явно заметно больше, чем тех чисел.

Оживляем дисплей из кабины лифта - 38

Первой очевидной мыслью было то, что я не угадал с параметрами передачи. Возможно, там не 8N1, а, например, 7E1 или 7O1.

Оживляем дисплей из кабины лифта - 39

Действительно, с 7E1 значения тоже удалось декодировать. Правда, экран на их отправку на этот раз вообще не отреагировал. Дальнейшие опыты показали, что один из битов включает значок перегрузки кабины, а все остальные, по-видимому, игнорируются. На бит чётности табло оказалось вообще всё равно: я пробовал отправлять байты с такими нестандартными параметрами обмена как 8E1 и 8O1, однако реакция была идентичной. На посылки нескольких байт сразу реакция была унылой — обрабатывался только самый первый, а остальные отбрасывались.

❯ Так как же работает этот девайс?

Так и не поняв протокол, собрался идти к лифтовикам, дабы записать обмен на стенде.

Оживляем дисплей из кабины лифта - 40

Конечно, этот вариант окончательно бы расставил все точки над Ё, однако перед ним было решено дать этой железке последний шанс. Что, если существовало несколько редакций такого протокола, работающих на разных скоростях?

Оживляем дисплей из кабины лифта - 41

Попробовал на удачу парочку более высоких скоростей. На 1200 бод табло не реагировало ни на что, а вот на 4800 девайс отправил нас на ранее неизведанный четвёртый этаж. Им же, впрочем, всё и закончилось. Наверное, лифт застрял.

Оживляем дисплей из кабины лифта - 42

Но направление для опытов уже было задано, и, перепробовав все стандартные скорости, я таки обнаружил нужную: 600 бод. С ней мне удалось отобразить все этажи от -5 до 55. Отлично!

❯ Протокол

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

Оживляем дисплей из кабины лифта - 43

Более старшие биты отведены под спецсимволы вроде перегрузки кабины. В зависимости от прошивки дисплея и наличия этих файлов на карте памяти, они могут как отображаться, так и нет. Станции управления типа УЭЛ, ШУЛМ, СОЮЗ, НКУ-МППЛ используют некий более сложный протокол, который просто подобрать, как в случае с этим, у меня не вышло.

❯ Что же в итоге?

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

На этом, конечно, простор для опытов с ним не исчерпан: помимо ИРПС подключить его можно и через CAN. Но это уже совсем другая история.

Такие дела.

Автор: MaFrance351

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js