Автомашинист. Навигатор для локомотива

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



Итак, сегодня поговорим про такую штуку как система информирования машиниста. Заодно запустим её, посмотрим на девайс в работе, а также узнаем, что ещё умеет этот блок. Как водится, будет много интересного.

Суть такова


Уже не раз упоминавшаяся мною система автоведения поездов не ограничилась в своём развитии на автоматическом управлении как таковом. Одним из дальнейших направлений стал электронный подсказчик для машиниста — этакий автомашинист без самого автомашиниста. Именно этим и является сегодняшний девайс — АСИМ-ЭММ, то есть автоматизированная система информирования машиниста с функцией электронного маршрута машиниста.



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

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


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



А вот и наш блок — БСГД-7. Спереди всё традиционно — экран, закрытый стеклом, и уже знакомый логотип.



Разъёмов, на удивление, немного. 2РМ18Б7Ш1В1 для связи с блоками и с шлюзом CAN системы КЛУБ-У, РС4ТВ для клавиатуры, FQ14-4ZK-8S для USB и FQ14-5ZK-8S для RS-232 и RS-485. Также видна парочка SMA для GSM и GPS.



С одного из боков щель считывателя смарт-карт и индикаторы питания, связи с сервером и приёма сигнала от спутников.

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


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



Открутив кучу винтов, снимаем крышку. Внутри видим кучу пустого места и несколько плат.



Сердце БСГД-7 — процессорный модуль SK-iMX6S-SODIMM на базе ARM Cortex-A9 на один гигагерц.



Помимо самого процессора на борту у него 512 МБ DDR3 и 4 ГБ eMMC. Всякие интерфейсы типа UART, SPI, I2C и контроллера матрицы LVDS также в наличии.



Ещё из интересного — для этого процессорного модуля существует готовое решение доверенной загрузки от Aladdin. И, к слову, это не последнее упоминание криптографии в сегодняшней статье...



Но вернёмся к блоку. В углу расположилась плата считывателя смарт-карт. Сюда вставляется многофункциональная электронная карта РЖД (МЭК), предназначенная для идентификации машиниста и авторизации блока на сервере.



Модуль GPS и ГЛОНАСС.



А это 3G-модем EHS5-E от Cinterion. Также в углу платы виден производитель этого блока — некий «ТрансИнфоПроект».



Симка. Предназначена она исключительно для работы в корпоративных сетях РЖД, позвонить или выйти в «большой» интернет с ней нельзя.



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



Ещё один ионистор притаился на основной плате.



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



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



Разъёмы на крышке подключены к этакой кросс-плате.

Как работает АСИМ-ЭММ


В отличие от «традиционных» систем автоведения, где базы загружаются в депо, это устройство более продвинутое: оно позволяет получать эти сведения онлайн.



Система передаёт данные по шифрованному каналу (на БСГД установлен ViPNet) через обычный GSM-модуль с корпоративной симкой. Помимо данных о машинисте, карта которого вставлена в блок, система также передаёт сведения об потреблении каждой секции, скорости и ряде дискретных сигналов из системы управления, позволяя минимизировать пережог электроэнергии и построить оптимальный маршрут.



В отличие от УСАВП, АСИМ устроена куда проще, поскольку никакими цепями поезда не управляет. Помимо БСГД-7 в ней также содержится БПЛК (блок питания локомотивный), БДВ (блок дискретного ввода), СЭППТ (счётчик электроэнергии). Все блоки связаны между собой шиной CAN.



А вот это БС-СН и кассета регистрации. Точно такие же блоки используются в системах БЛОК и КИО-САУТ.



Кадр с этого экрана. Серые прямоугольники — ограничения скорости. Белая кривая — график изменения фактической скорости, также видны обозначения пикетов и светофоры. В нижней часть профиль пути с графиком перепадов высот и отметками путевых объектов (переезды, газопроводы, мосты, тоннели, места пробы тормозов...), ещё ниже — текущая скорость, количество впереди свободных блок-участков (зелёные квадратики), координата, ускорение и прочие параметры.

МЭК


Упомянутая карта машиниста тоже не так уж и проста.



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



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



Такими картами снабжаются все работники РЖД. В частности, именно её мы могли видеть в некогда нашумевшем посте про РЖДфон.

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


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

  1. CANH
  2. CANL
  3. 48 В (+)
  4. 48 В (-)
  5. Ничего
  6. Ничего
  7. Ничего

Для CAN1 и CAN2 распиновка одинаковая, отличаются только каналы CAN.



Подаём питание. Загорается подсветка экрана, из динамика слышится тихое шипение. Где-то через полминуты на дисплее появляется пингвинчик.



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



В углу значки состояния: уровень сотового сигнала, связь с сервером, наличие симки.



На этом возможности, похоже, кончились: больше ни в какое меню кроме этого попасть не удалось. В чём же дело? Давайте разбираться…

Карта машиниста


Первым предположением было то, что без карты машиниста девайс не пускает в меню.



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



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



Из интересного — на просвет в ней видна какая-то антенна (а также над надписью «многофункциональная» явно находится ещё один какой-то чип), однако ни одна карточка ни в одном диапазоне RFID не прочиталась. То ли она сдохла, то ли была деактивирована при выводе из работы, то ли бесконтактная идентификация в ней и не была задействована.



Увы, на блок эти карты не произвели ни малейшего впечатления. Хотя считыватель в БСГД работает (проверял вставкой первой попавшейся смарт-карты), на карту машиниста реакции нет. Сам чип в ней также исправен, что было проверено обычным USB-считывателем.

Загрузчик


Но пока что отложим тему попадания в меню и посмотрим на RS-232.



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



Как оказалось, ответные части этих разъёмов весьма редкие — либо большими партиями, либо только для юридических лиц, либо на вторичке по весьма конской цене.



Не стал покупать этот разъём ради разового опыта, а просто взял залуженный МГТФ и воткнул его в контакты. Распиновка разъёма оказалась такая:

  1. TX
  2. RX
  3. RS-485
  4. Земля
  5. RS-485

Полярность RS-485 определять не стал — сейчас этот интерфейс нас так сильно не интересует.
Подключил переходник на RS-232 (Moxa UPort, как и было сказано в инструкции по прошивке), открыл PuTTY на скорости 115200 бод и запустил блок. Через несколько секунд в терминале появилось примерно следующее:

U-Boot 2014.04 (May 18 2018 - 12:44:13)

CPU:   Freescale i.MX6SOLO rev1.1 at 792 MHz
CPU:   Temperature 31 C, calibration data: 0x5ca54169
Reset cause: POR
Board: SK-iMX6-SODIMM
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Net:   FEC
Normal Boot

4519872 bytes read in 344 ms (12.5 MiB/s)
45868 bytes read in 134 ms (334 KiB/s)
7696974 bytes read in 495 ms (14.8 MiB/s)
Kernel image @ 0x12000000 [ 0x000000 - 0x44f7c0 ]
## Loading init Ramdisk from Legacy Image at 12900000 ...
   Image Name:   Root file system
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    7696910 Bytes = 7.3 MiB
   Load Address: 12900000
   Entry Point:  12900000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 12800000
   Booting using the fdt blob at 0x12800000
   Using Device Tree in place at 12800000, end 1280e32b

Starting kernel ...

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

Клавиатура


Как оказалось, причина того, что мне не удавалось зайти ни в одно меню, была достаточно банальной. Девайс просто требовал другую клавиатуру, обычная от УСАВП или САВПЭ не подходила.

Оригинального пульта у меня нет, поэтому будем выкручиваться. После прозвонки выясняем распиновку разъёма USB:

  1. Ничего
  2. D-
  3. D+
  4. Земля

Линию питания по неведомым мне причинам зажилили. Поэтому для тестов взял сгоревшую плату от энергобанка, где уже были разъёмы USB-A и microUSB. Линии данных пускаем на БСГД, питание берём от внешнего microUSB. К моему удивлению, фокус сработал и клавиатура определилась.

Меню




Жмякаем Esc и попадаем на главный экран.



Первый пункт — выбор участка, по которому будет следовать поезд.



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



Следующий пункт меню — электросчётчики. Так как этот блок не подключён, отображается только значение потреблённой электроэнергии.



Системные настройки.



А вот самое интересное — АСИМ.



Расписание движения, запрашиваемое с сервера.



Список вагонов поезда. В отличие от УСАВП, где указывается только их число, тут можно увидеть массу каждого из них, тип и код.



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



Так же с сервера загружается и информация о поезде.



Диагностика.



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

БЛК-2


Кое-что интересное подсказал пункт меню «Информация».



Как оказалось, разработчик этого софта — не АВП-Технологии, а некое НПО СВЛ (Системы взаимодействия с локомотивом).



В числе их продукции есть некий БЛК-2, вероятно, идентичный по начинке нашему БСГД-7. Серверная часть этой системы имеет название СВЛ ТР.

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


Вот таким интересным прибором оказался этот блок АСИМ. Наконец удалось пощупать более-менее новый экземпляр, где уже отказались от прожорливого и дорогого промПК и перешли на процессорный модуль с Linux на борту. Конечно, было бы интересно заставить его отображать, например, какие-то данные из симулятора, но ввиду использования шифрованного канала сделать это будет очень непросто.
Такие дела.

Другие мои посты про блоки системы «автомашинист»






Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале



Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.