Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Приветствую всех!
Те, кто долго жил в Москве, наверняка вспомнят метропоезда типа «Яуза». Хоть они и вызывали самые противоречивые мнения что у пассажиров, что у работников метрополитена, можно с уверенностью сказать, что для своего времени в нашей стране они были уникальными.
Итак, в сегодняшней статье попробуем запустить часть приборной панели от теперь уже навсегда навсегда исчезнувшей модели поезда метро. Узнаем, как всё это устроено и работает. Традиционно будет много интересного.
Многие из жителей Москвы (где и эксплуатировались такие поезда) успели застать их в работе. Появившиеся в девяностые годы, эти поезда проработали на линии двадцать с лишним лет. Было выпущено немало модификаций, среди которых были как опытные, так и современные. Позднее их наработки использовались при создании более поздних вагонов — «Русич» и «Юбилейный», также кузов аналогичной конструкции имеет рельсовый автобус РА1.
Летом 2019 года их поголовно списали, тем самым завершив их пассажирскую эксплуатацию. Остался только один экземпляр, который хотели оставить для музея московского транспорта.
Тем уникальнее экземпляр, доставшийся мне. Редкая деталь от уже безвозвратно ушедшего в историю поезда — что может быть круче?
А достался мне цифровой скоростемер из кабины машиниста. Он же блок индикации АЛС-АРС.
На просторах удалось найти фото пульта машиниста (на КДПВ, он хоть и в лучшем качестве, но другой модификации). Чёрная панель со шкалами и есть тот самый блок индикации.
А вот и мой экземпляр. Девайс в отличном состоянии, если не считать слоя пыли и потёртостей. Характерный запах метро тоже в наличии.
Итак, на передней части находятся три светодиодные шкалы трёх цветов: красная показывает предельную скорость, зелёная — текущую, жёлтая — предупредительную. Правее светодиодный индикатор, отображающий текущую скорость, шкала ускорения и индикатор направления движения.
На обратной стороне и с боков ничего интересного, только отверстия для вентиляции.
На правом торце находятся разъёмы 2РМ, обозначенные как X1 и X2. Можно предположить, что один из них служит для питания, а другой для управления. Ну что же, скоро разберёмся.
Заводская табличка. Мой блок имеет номер 13.
Первоначально я понятия не имел, с какой стороны подступиться к этой штуке. В интернете удалось найти документацию на систему АЛС-АРС вагонов «Яуза» и «Русич», однако принципы работы отдельных её блоков там не отражались. Поэтому оставалось только экспериментировать.
Что мы делаем, когда к нас в руки попадает интересная железка? Правильно: мы её разбираем.
Для разборки необходимо открутить два винта слева (один из которых под пломбой, которая у меня давно выкрошилась) и шесть со стороны разъёмов (по периметру корпуса). После этого весь металлический кожух легко снимается.
Внутри нас ждут три платы. Условно их можно разделить на плату управления, плату драйверов и плату индикации.
От разъёмов идут жгуты проводов.
Чтобы разделить эти платы, необходимо выкрутить шесть винтов под плоскую отвёртку, стягивающих их вместе. На фото самая нижняя плата. Увы, с другого ракурса заснять не вышло, иначе мешают провода. Но позднее я это постараюсь компенсировать более детальными фото.
Промежуточная плата.
А вот и плата индикации.
Децимальные номера на платах.
В первую очередь нас интересует, конечно, самая нижняя плата. Именно к ней приходят жгуты проводов от разъёмов. А это значит, что исследовать надо в первую очередь её.
На плате микроконтроллер КР1830ВЕ31, рядом чип памяти от Atmel. Вообще, эти две микросхемы — единственные два пластиковых корпуса во всём устройстве. Всё остальное — металлокерамика. По линиям питания микроконтроллера находим питание и землю. Они действительно выведены на маленький разъём, как я и думал.
Ну что же, пробуем включать?
Для начала нам понадобится ответная часть от разъёма. В данном случае — 2РМД18КУН4Г5В1. Маркировка на блочной части стёрта, так что выбирал чисто по размеру и числу контактов. Второй разъём имеет модель 2РМДТ30Б24Ш5В1В. Ответная часть к нему — 2РМД30КПН24Г5В1. Вообще, необязательно использовать именно такие, они имеют несколько модификаций, отличия которых (устойчивость к температурам, экранирование, прямой или угловой патрубок) для нас несущественны.
Итак, припаиваем провода и подаём пять вольт. И ничего. Некоторое изучение схемы выявило ещё один толстый провод, идущий от одного из штырьков этого разъёма. Подача на него пяти вольт дала результат. Как можно понять, одна линия служит для питания электроники, другая — для индикации.
Блок сразу после подачи питания. Видно некое подобие самотестирования — все шкалы зажжены.
Через секунду текущая скорость и ускорение гаснут. Всё, больше ничего не происходит. Ну что же, уже какой-то результат.
Распиновка маленького разъёма, таким образом, получилась следующая:
Для запуска необходимо запараллелить линии питания и земли и подать на них пять вольт.
Разумеется, мне захотелось как-то поуправлять этим всем. А это значит, что надо разобраться, по какому интерфейсу работает эта штука и чего она вообще хочет.
Осмотр нижней платы выявил наличие двух очень похожих цепей на оптопарах 3ОД129А. Выводы светодиода были подключены напрямую к внешнему разъёму.
Попытка замкнуть выводы фотодиода была успешной — на шкалах что-то изменилось. По-видимому, входной сигнал подаётся именно сюда. Осталось только понять, что это.
Подключим через резистор в 220 Ом источник сигнала. Но на простой прямоугольный сигнал устройству было всё равно — шкалы только мерцали. По-видимому, это какой-то интерфейс.
«Скорее всего, это UART...» — подумалось мне. С этими мыслями я подключил блок к последовательному порту и стал пробовать отправлять что-то на разных скоростях, попутно наблюдая цветомузыку на шкалах.
Чего-то осмысленного удалось добиться на скорости в 9600 бод — отправка пары сотен байт 0x01 вызвала зажигание одного сегмента на шкале ускорения. 0x02 смог зажечь два. Всё, больше ничего не было.
К слову, следует помнить, что оптопара подключена к разъёму напрямую, поэтому обязательно использование внешнего резистора, иначе девайс может сдохнуть.
Для проверки я решил отправить последовательно байты от 0x00 до 0xFF. И это оказалось неплохим решением — на основных шкалах стали заметны какие-то изменения. Далее я слал байты уже «прицельно» — не в таких больших количествах и определённые значения. Осложняло то, что, получив байт, панель сразу реагирует на него, а не ждёт, пока все данные придут.
Итак, в итоге я пришёл к выводу, что отправлять надо нечто вроде:
Это давало какой-то эффект, но не отправляло девайс в разнос.
Практически тут же удалось оживить зелёную шкалу. За неё отвечает первый байт пакета. Каждые четыре единицы символизируют одно деление шкалы.
Далее поддалась жёлтая. Оказалось, что жёлтая и красная работают не на возрастание, а на убывание, то есть максимальное значение означает погашенную шкалу, а минимальное — полностью горящую.
Потыкав ещё немного, запустил красную.
В итоге формат пакета данных оказался такой:
Теперь очередь ускорения. Я долго пытался понять, где находятся его байты и даже тщетно приписывал такую же четвёрку в конец пакета, на что блок просто гас. В итоге оказалось, что нужное значение спрятано в шестом байте пакета — в среднем между красным и жёлтым. Таким образом, истинный вид пакета данных оказался таким:
Значение этого байта может лежать в одном из двух диапазонов — 99-F5 — разгон, 00-0F — торможение. Всю линию сразу засветить нельзя. Одной единице байта соответствует одно деление шкалы.
Пробуем посылать пакет, и вот результат:
Как можно было заметить, в течение всех опытов два светодиодных индикатора не горели. А это значит, что самое время попробовать их оживить.
И для начала посмотрим поподробнее на плату индикации. Для этого откручиваем винты по периметру передней части и снимаем сначала металлическую рамку, а затем и пластину из оргстекла с надписями. Тут нас встречает куча светодиодных линеек, а также два индикатора. Всё импортное, никаких отечественных АЛСов с их никакущей яркостью.
Отдельного внимания заслуживает указатель направления движения. Это не просто световое поле, это матричный светодиодный индикатор. Изначально они выпускались для использования в качестве знакосинтезирующих, но тут почему-то он выполняет роль единичного. Что мешало поставить два обычных светодиода или два световых поля, мне неведомо.
Резисторные сборки, установленные на плате индикации.
Поскольку достучаться до индикаторов по последовательному порту не вышло, логично предположить, что управляются они извне.
На нижней плате обнаружились две микросхемы 514ИД2, являющиеся драйверами семисегментных индикаторов. Прозвонка выявила, что четвёрка линий данных от каждого чипа ведёт напрямую к тому же 2РМу. Но тут тоже не всё так очевидно: как оказалось, питание на них подаётся отдельно. И выведено оно не на маленький разъём, а на большой. Это тоже необходимо учесть при подключении. По сути схема с семисегментными индикаторами — отдельная независимая цепь.
Пробуем подать какую-то комбинацию, и… индикатор оживает! Индикаторы управляются независимо, то есть всего для их подключения надо восемь проводов.
Настала очередь последнего элемента — указателя направления движения.
И, как оказалось, с ним всё ещё проще — достаточно притянуть к земле одну из ножек разъёма, чтобы оно заработало.
Теперь, когда назначение всех контактов известно, можно определить и распиновку управляющего разъёма. Она тут оказалась вот такая:
Увы, в ходе поиска формата пакета я столкнулся с одной проблемой, решить которую у меня так и не получилось. Дело в том, что пакет этот принимается лишь сразу после запуска контроллера. Если попробовать обновить данные, то панель гаснет. Я пробовал много вариантов форматов пакетов, но понять, в чём же дело, у меня не получилось.
Как можно видеть, этот экземпляр оказался весьма интересным и поистине уникальным устройством. Конечно, сейчас этот блок вряд ли для чего-либо можно приспособить, но, конечно, сам факт того, что его удалось завести без какой-либо документации, уже не может не радовать.
Такие дела.
Возможно, захочется почитать и это:
Те, кто долго жил в Москве, наверняка вспомнят метропоезда типа «Яуза». Хоть они и вызывали самые противоречивые мнения что у пассажиров, что у работников метрополитена, можно с уверенностью сказать, что для своего времени в нашей стране они были уникальными.
Итак, в сегодняшней статье попробуем запустить часть приборной панели от теперь уже навсегда навсегда исчезнувшей модели поезда метро. Узнаем, как всё это устроено и работает. Традиционно будет много интересного.
❯ Суть такова
Многие из жителей Москвы (где и эксплуатировались такие поезда) успели застать их в работе. Появившиеся в девяностые годы, эти поезда проработали на линии двадцать с лишним лет. Было выпущено немало модификаций, среди которых были как опытные, так и современные. Позднее их наработки использовались при создании более поздних вагонов — «Русич» и «Юбилейный», также кузов аналогичной конструкции имеет рельсовый автобус РА1.
Летом 2019 года их поголовно списали, тем самым завершив их пассажирскую эксплуатацию. Остался только один экземпляр, который хотели оставить для музея московского транспорта.
❯ Обзор оборудования
Тем уникальнее экземпляр, доставшийся мне. Редкая деталь от уже безвозвратно ушедшего в историю поезда — что может быть круче?
А достался мне цифровой скоростемер из кабины машиниста. Он же блок индикации АЛС-АРС.
На просторах удалось найти фото пульта машиниста (на КДПВ, он хоть и в лучшем качестве, но другой модификации). Чёрная панель со шкалами и есть тот самый блок индикации.
А вот и мой экземпляр. Девайс в отличном состоянии, если не считать слоя пыли и потёртостей. Характерный запах метро тоже в наличии.
Итак, на передней части находятся три светодиодные шкалы трёх цветов: красная показывает предельную скорость, зелёная — текущую, жёлтая — предупредительную. Правее светодиодный индикатор, отображающий текущую скорость, шкала ускорения и индикатор направления движения.
На обратной стороне и с боков ничего интересного, только отверстия для вентиляции.
На правом торце находятся разъёмы 2РМ, обозначенные как X1 и X2. Можно предположить, что один из них служит для питания, а другой для управления. Ну что же, скоро разберёмся.
Заводская табличка. Мой блок имеет номер 13.
❯ Внутренности
Первоначально я понятия не имел, с какой стороны подступиться к этой штуке. В интернете удалось найти документацию на систему АЛС-АРС вагонов «Яуза» и «Русич», однако принципы работы отдельных её блоков там не отражались. Поэтому оставалось только экспериментировать.
Что мы делаем, когда к нас в руки попадает интересная железка? Правильно: мы её разбираем.
Для разборки необходимо открутить два винта слева (один из которых под пломбой, которая у меня давно выкрошилась) и шесть со стороны разъёмов (по периметру корпуса). После этого весь металлический кожух легко снимается.
Внутри нас ждут три платы. Условно их можно разделить на плату управления, плату драйверов и плату индикации.
От разъёмов идут жгуты проводов.
Чтобы разделить эти платы, необходимо выкрутить шесть винтов под плоскую отвёртку, стягивающих их вместе. На фото самая нижняя плата. Увы, с другого ракурса заснять не вышло, иначе мешают провода. Но позднее я это постараюсь компенсировать более детальными фото.
Промежуточная плата.
А вот и плата индикации.
Децимальные номера на платах.
В первую очередь нас интересует, конечно, самая нижняя плата. Именно к ней приходят жгуты проводов от разъёмов. А это значит, что исследовать надо в первую очередь её.
На плате микроконтроллер КР1830ВЕ31, рядом чип памяти от Atmel. Вообще, эти две микросхемы — единственные два пластиковых корпуса во всём устройстве. Всё остальное — металлокерамика. По линиям питания микроконтроллера находим питание и землю. Они действительно выведены на маленький разъём, как я и думал.
Ну что же, пробуем включать?
❯ Первый запуск
Для начала нам понадобится ответная часть от разъёма. В данном случае — 2РМД18КУН4Г5В1. Маркировка на блочной части стёрта, так что выбирал чисто по размеру и числу контактов. Второй разъём имеет модель 2РМДТ30Б24Ш5В1В. Ответная часть к нему — 2РМД30КПН24Г5В1. Вообще, необязательно использовать именно такие, они имеют несколько модификаций, отличия которых (устойчивость к температурам, экранирование, прямой или угловой патрубок) для нас несущественны.
Итак, припаиваем провода и подаём пять вольт. И ничего. Некоторое изучение схемы выявило ещё один толстый провод, идущий от одного из штырьков этого разъёма. Подача на него пяти вольт дала результат. Как можно понять, одна линия служит для питания электроники, другая — для индикации.
Блок сразу после подачи питания. Видно некое подобие самотестирования — все шкалы зажжены.
Через секунду текущая скорость и ускорение гаснут. Всё, больше ничего не происходит. Ну что же, уже какой-то результат.
Распиновка маленького разъёма, таким образом, получилась следующая:
- Питание индикации
- Земля
- Питание логики
- Земля
Для запуска необходимо запараллелить линии питания и земли и подать на них пять вольт.
❯ Интерфейс
Разумеется, мне захотелось как-то поуправлять этим всем. А это значит, что надо разобраться, по какому интерфейсу работает эта штука и чего она вообще хочет.
Осмотр нижней платы выявил наличие двух очень похожих цепей на оптопарах 3ОД129А. Выводы светодиода были подключены напрямую к внешнему разъёму.
Попытка замкнуть выводы фотодиода была успешной — на шкалах что-то изменилось. По-видимому, входной сигнал подаётся именно сюда. Осталось только понять, что это.
Подключим через резистор в 220 Ом источник сигнала. Но на простой прямоугольный сигнал устройству было всё равно — шкалы только мерцали. По-видимому, это какой-то интерфейс.
«Скорее всего, это UART...» — подумалось мне. С этими мыслями я подключил блок к последовательному порту и стал пробовать отправлять что-то на разных скоростях, попутно наблюдая цветомузыку на шкалах.
Чего-то осмысленного удалось добиться на скорости в 9600 бод — отправка пары сотен байт 0x01 вызвала зажигание одного сегмента на шкале ускорения. 0x02 смог зажечь два. Всё, больше ничего не было.
К слову, следует помнить, что оптопара подключена к разъёму напрямую, поэтому обязательно использование внешнего резистора, иначе девайс может сдохнуть.
❯ Оживляем шкалы
Для проверки я решил отправить последовательно байты от 0x00 до 0xFF. И это оказалось неплохим решением — на основных шкалах стали заметны какие-то изменения. Далее я слал байты уже «прицельно» — не в таких больших количествах и определённые значения. Осложняло то, что, получив байт, панель сразу реагирует на него, а не ждёт, пока все данные придут.
Итак, в итоге я пришёл к выводу, что отправлять надо нечто вроде:
<data><00h><00h><00h>
Это давало какой-то эффект, но не отправляло девайс в разнос.
Практически тут же удалось оживить зелёную шкалу. За неё отвечает первый байт пакета. Каждые четыре единицы символизируют одно деление шкалы.
Далее поддалась жёлтая. Оказалось, что жёлтая и красная работают не на возрастание, а на убывание, то есть максимальное значение означает погашенную шкалу, а минимальное — полностью горящую.
Потыкав ещё немного, запустил красную.
В итоге формат пакета данных оказался такой:
<green><00h><00h><00h><red><00h><00h><00h><yellow><00h><00h><00h>
❯ Ускорение
Теперь очередь ускорения. Я долго пытался понять, где находятся его байты и даже тщетно приписывал такую же четвёрку в конец пакета, на что блок просто гас. В итоге оказалось, что нужное значение спрятано в шестом байте пакета — в среднем между красным и жёлтым. Таким образом, истинный вид пакета данных оказался таким:
<green><00h><00h><00h><red><00h><acceleration><00h><yellow><00h><00h><00h>
Значение этого байта может лежать в одном из двух диапазонов — 99-F5 — разгон, 00-0F — торможение. Всю линию сразу засветить нельзя. Одной единице байта соответствует одно деление шкалы.
Пробуем посылать пакет, и вот результат:
❯ Индикаторы
Как можно было заметить, в течение всех опытов два светодиодных индикатора не горели. А это значит, что самое время попробовать их оживить.
И для начала посмотрим поподробнее на плату индикации. Для этого откручиваем винты по периметру передней части и снимаем сначала металлическую рамку, а затем и пластину из оргстекла с надписями. Тут нас встречает куча светодиодных линеек, а также два индикатора. Всё импортное, никаких отечественных АЛСов с их никакущей яркостью.
Отдельного внимания заслуживает указатель направления движения. Это не просто световое поле, это матричный светодиодный индикатор. Изначально они выпускались для использования в качестве знакосинтезирующих, но тут почему-то он выполняет роль единичного. Что мешало поставить два обычных светодиода или два световых поля, мне неведомо.
Резисторные сборки, установленные на плате индикации.
❯ Индикаторы
Поскольку достучаться до индикаторов по последовательному порту не вышло, логично предположить, что управляются они извне.
На нижней плате обнаружились две микросхемы 514ИД2, являющиеся драйверами семисегментных индикаторов. Прозвонка выявила, что четвёрка линий данных от каждого чипа ведёт напрямую к тому же 2РМу. Но тут тоже не всё так очевидно: как оказалось, питание на них подаётся отдельно. И выведено оно не на маленький разъём, а на большой. Это тоже необходимо учесть при подключении. По сути схема с семисегментными индикаторами — отдельная независимая цепь.
Пробуем подать какую-то комбинацию, и… индикатор оживает! Индикаторы управляются независимо, то есть всего для их подключения надо восемь проводов.
❯ Световое поле
Настала очередь последнего элемента — указателя направления движения.
И, как оказалось, с ним всё ещё проще — достаточно притянуть к земле одну из ножек разъёма, чтобы оно заработало.
❯ Распиновка
Теперь, когда назначение всех контактов известно, можно определить и распиновку управляющего разъёма. Она тут оказалась вот такая:
- D0 первого индикатора
- D1 первого индикатора
- D2 первого индикатора
- D3 первого индикатора
- D0 второго индикатора
- D1 второго индикатора
- D2 второго индикатора
- D3 второго индикатора
- Вперёд
- Назад
- -
- -
- Корпус
- -
- RX-
- RX+
- -
- -
- -
- 5 В (инд.)
- Земля (инд.)
- -
- -
- -
❯ Что же с этим всем не так?
Увы, в ходе поиска формата пакета я столкнулся с одной проблемой, решить которую у меня так и не получилось. Дело в том, что пакет этот принимается лишь сразу после запуска контроллера. Если попробовать обновить данные, то панель гаснет. Я пробовал много вариантов форматов пакетов, но понять, в чём же дело, у меня не получилось.
❯ Вот как-то так
Как можно видеть, этот экземпляр оказался весьма интересным и поистине уникальным устройством. Конечно, сейчас этот блок вряд ли для чего-либо можно приспособить, но, конечно, сам факт того, что его удалось завести без какой-либо документации, уже не может не радовать.
Такие дела.