Принципы построения информационной шины данных Интегрированных Мостиковых Систем

Авторы: К. В. Смелков П. Г. Фёдоров
ЗАО "Морские Навигационные Системы"
( Статья была опубликована в мартовском номере журнала Морской Вестник №1(21) в 2007 году. )

В настоящее время на ходовых мостиках судов и ходовых командных постах (ХКП) кораблей все большее применение находят интегрированные мостиковые системы.

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

Использование в составе ИМС унифицированных аппаратных средств повышает надежность системы, а также снижает затраты на ее изготовление и обслуживание.

Внешний вид ИМС показан на рис.1.

misc/IBS.jpg

Рис.1. Интегрированная мостиковая система

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

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

В данной статье рассматриваются принципы построения информационной шины данных корабельных интегрированных мостиковых систем.

Интегрированная Мостиковая Система представляет собой открытую, распределённую, адаптивную вычислительную систему, построенную на базе современных вычислительных средств, объединённых в единую информационную локальную сеть.

На рис. 2 показана структурная схема ИМС.

pics/_ibs.png

Рис.2. Типичная структурная схема ИМС

Сопряжение с установленным на корабле навигационным вооружением и другими системами осуществляется по (преимущественно) цифровым и аналоговым каналам связи. Кроме того ИМС обеспечивает приём и отображение первичной радиолокационной информации от навигационных РЛС корабля.

В типовой конфигурации в ИМС предусматриваются два автоматизированных рабочих места (АРМ): командира корабля и вахтенного офицера.

Обмен информацией внутри системы осуществляется по локальной вычислительной сети Ethernet.

1   Основные функции ИМС

ИМС обеспечивает решение следующих задач:

  1. Сбор и обработку информации от технических средств корабля, в т.ч. не имеющих унифицированных цифровых информационных выходов.
  2. Создание на основе собранной информации единого информационного поля данных.
  3. Распределение информации и её вывод на средства отображения для обеспечения выполнения должностными лицами своих функциональных обязанностей.
  4. Осуществление судовождения и обеспечение навигационной безопасности плавания.
  5. Управление, в т.ч. с помощью графического пользовательского интерфейса отдельными системами и устройствами судна.

Отображаемая на АРМ информация:

2   Сопрягаемые системы

ИМС обеспечивает сопряжение со следующими корабельными системами:

Типы сопрягаемых интерфейсов:

3   Информационная шина данных ИМС

Многообразие типов интерфейсов сопряжения, сопрягаемого оборудования, протоколов связи (транспортного уровня), приводят к необходимости создания (локальной) подсистемы, задачей которой будет унификация распределённого пакетного ввода/вывода между ИМС и сопрягаемыми системами.

Многообразие протоколов сопряжения в части структур данных приводит к необходимости создания подсистемы, задачей которой будет унификация обработки и обмена прикладными данными между ИМС и сопрягаемыми системами.

Рассмотрим эти задачи по порядку.

3.1   Подсистема пакетного ввода/вывода

Задача данного уровня состоит в том, чтобы обеспечить унифицированный пакетный ввод/вывод в многомашинном комплексе.

Реализована следующая схема:

  1. Вводится именование точек ввода/вывода по следующему правилу:

    //<УЗЕЛ>/<ТИП_ИНТЕРФЕЙСА>/<УСТРОЙСТВО>:(tx|rx)
    

    где

    УЗЕЛ

    идентификатор вычислителя в комплексе

    ТИП_ИНТЕРФЕЙСА

    тип интерфейса сопряжения

    УСТРОЙСТВО

    конкретное устройство ввода/вывода, возможно с указанием дополнительной информации для устройств осуществляющих мультиплексирование

    tx или rx

    направление ввода/вывода относительно ИМС

    например:

    //node1/serial/ttyM0:rx

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

    //node3/1553b/tmk0-25.17:tx

    узел 3, интерфейс MIL-STD-1553B, 17-й подадрес устройства tmk0 в направлении на передачу.

  2. ПО уровня шины данных предоставляет сервис пакетного обмена типа публикация/подписка (publish/subscribe),

    а именно:

    • ПО на одном узле может подписаться по имени на поток ввода/вывода
    • ПО на другом может опубликовать факт наличия нового пакета на потоке ввода/вывода

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

    Также работают подписки по т.н. регулярным выражениям [1].

    pics/_kio.png

    Рис.3. Иллюстрация работы publish/subcribe

    В качестве транспортного уровня внутренней магистрали используется сеть Ethernet и вышестоящие протоколы семейства IP. Максимальный размер пакета - 8 килобайт.

  3. Весь ввод/вывод осуществляемый ИМС осуществляется именно с помощью обмена пакетов по внутренней информационной магистрали и с помощью специальных программ - агентов ввода/вывода.

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

    Рассмотрим пример последовательных устройств:

    Пусть узел-1 располагает 8 последовательными устройствами: ttyM0 - ttyM7, тогда

    • все присвоения именам из диапазона //node1/serial/ttyM[0-7]:tx <-- pkt на любом узле, приведут к передаче пакета на соответствующее устройство узла-1
    • все принятые агентом ввода/вывода пакеты с физического интерфейса, будут ретранслированы на внутреннюю магистраль ИМС под соответствующим именем, например //node1/serial/ttyM2:rx.

Таким образом предложенная схема:

  • позволяет унифицировать ввод/вывод для различных интерфейсов.
  • позволяет осуществлять ввод/вывод в многомашинном комплексе, вне зависимости от расположения точки ввода/вывода - локальной или удалённой.
  • в штатном режиме позволяет осуществлять удалённый мониторинг и отладку всего ввода/вывода или некоторой его части (мониторинг всего -- подписка на '.*').
  • в штатном режиме позволяет осуществлять протоколирование всего ввода/вывода или некоторой его части на внешний носитель.
  • с помощью штатного ПО поставляемого с системой позволяет воспроизвести записанный ранее ввод/вывод в произвольном темпе.
  • масштабируется по отношению к новые типам интерфейсов и увеличению количества узлов ИМС.
  • также, может быть использована для организации внутренних каналов связи ИМС.
  • гибкость системы обеспечивается за счёт отказа от соединений типа точка-точка и переходу к шинной архитектуре.

3.2   Уровень именованных данных

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

Реализована следующая схема:

  1. Вводится соглашение о именовании величин.

    А именно, для всех прикладных величин составляется единое правило их именования в рамках ИМС. Например:

    Величина Имя
    Курс hdt
    Путевой угол cog
    Широта lat
    Долгота lon
    Пеленг brng
    Угол места elev
    Крен roll
    Дифферент pitch

    и так далее

  1. Вводится пространство имён прикладных данных:

    /<ДОМЕН>/<ВЕЛИЧИНА>
    

    где

    ДОМЕН

    наименование прибора или сопрягаемой системы

    ВЕЛИЧИНА

    наименование одного из параметров вырабатываемого сопрягаемой системой

    например:

    /КОМПАС/hdt

    курс корабля выработанный компасом

    /НАВ.КОМПЛЕКС/hdt

    курс корабля выработанный корабельным навигационным комплексом

  2. ПО уровня именованных данных предоставляет следующие сервисы:

    • чтение данных по имени
    • публикация/подписка (publish/subscribe) на именованные данные.
    • публикация с выходом на уровень ввода/вывода

    Принцип работы сервиса публикации/подписки аналогичен изложенному в части Информационная шина данных ИМС

    Сервис публикация с выходом на уровень ввода/вывода описан ниже в разделе ПЕРЕДАЧА.

  3. Уровень ПО отвечающий за реализацию протоколов связи осуществляет связывание пакетного уровня с пространством имён прикладных данных.

    pics/_kdat.png

    Рис.4. Связывание пакетного уровня с уровнем прикладных данных

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

    Рассмотрим этот процесс подробнее:

    ПРИЕМ

    1. от внешней системы по потоку ПОТОК поступает пакет информации pkt.

    2. по настройкам ИМС эта информация преобразуется в

      • ДОМЕН -- имя сопрягаемой системы
      • pkt_2dict -- алгоритм протокола приёма
    3. принятый пакет информации обрабатывается алгоритмом протокола приёма. В результате получается набор именованных данных v вида:

      v = {'имя1': значение1, 'имя2': значение2, ...}
      
    4. ДОМЕН пополняется полученными именованными данными, происходит уведомление всех подписчиков домена.

    пример (приём данных от GPS):

    /* поступает новый информационный пакет */
    ПОТОК = '//node2/serial/ttyM2:rx'
    pkt   = '$GPRMC,211500.00,A,5800.00,N,2200.000,E,11.2,275.1,,,\n\r'
    
    /* ИМС определяет, что информация поступает от приёмника GPS */
    ДОМЕН = '/GPS1'
    pkt_2dict = /* реализация протокола приёма IEC61162_1 в части предложения RMC */
    
    /* v = pkt_2dict(pkt) */
    v   = {'daytime_utc': 21:15,
           'lat': 58.0*degree,
           'lon': 22.0*degree,
           'sog': 11.2*knot,
           'cog': 275.1*degree
          }
    
    /* пополнение пространства именованных данных, уведомление подписчиков */
    kdat_populate(ДОМЕН, v)
    

    ПЕРЕДАЧА

    1. прикладное ПО инициирует выдачу набора именованных данных v в ДОМЕН
    2. по настройкам ИМС эта информация преобразуется в
      • ПОТОК -- поток для выдачи в сопрягаемую систему
      • dict_2pkt -- алгоритм протокола передачи
    3. набор именованных данных v обрабатывается алгоритмом протокола передачи. В результате формируется пакет pkt для выдачи в сопрягаемую систему.
    4. Происходит публикация пакета, что в свою очередь приводит к выдачи на соответствующем узле пакета агентом ввода/вывода в сопрягаемую систему.

    пример (выдача целеуказания визиру):

    /* прикладное ПО готовит исходные данные */
    ДОМЕН = '/ВИЗИР'
    v     = {'brng': +30*degree, 'elev': -0.5*degree}
    
    /* работает связка именованные данные -> пакетная передача */
    ПОТОК     = '//node1/serial/ttyM10:tx'
    dict_2pkt = /* реализация протокола связи ИМС -> ВИЗИР */
    
    /* pkt = dict_2pkt(v) */
    pkt   = '$BRVPO, ... ,+030.0,-00.5, ... *9A\n\r'
    
    /* вывод пакета к сопрягаемой системе */
    publish(ПОТОК, pkt)
    

На уровне прикладного ПО предложенная схема позволяет:

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

4   Заключение

В статье представлен краткий обзор Интегрированной Мостиковой Системы разработки ЗАО "Морские Навигационные Системы".

Рассмотрены вопросы организации и унификации ввода/вывода в многомашинном комплексе, а также вопросы организации и унификации работы с данными на прикладном уровне.

Предложенные подходы позволяют

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


ЗАО "Морские Навигационные Системы" в ходе разработки ИМС приобретён большой опыт в части комплексирования аппаратных средств, сопряжения с корабельными системами, разработки архитектуры и ПО информационной шины данных, разработки ПО АРМ.

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

Приобретённый при создании ИМС опыт, позволяет разрабатывать и другие распределённые корабельные системы.

Рассмотренная в статье схема построения ИМС внедрена на действующих кораблях.

5   Литература

[1]Фридл Дж. Регулярные выражения. Библиотека программиста. --- СПб.: Питер, 2001. 352 с. ISBN 5-318-00056-8.
[2]Денисов В.И. Малый артиллерийский корабль нового поколения // Морская радиоэлектроника 2005. - Вып. 4(14)
[3]Королев Е.В. Повышение эффективности использования магистралей ГОСТ 26765.52-87 (MIL-STD-1553B), RS485, CAN в корабельных системах управления. // Морской Вестник 2006. - Вып. 4(20)