УДК 004.9:004.55
В.В. Амосов, С.А. Фёдоров
ПОДХОД К РАЗРАБОТКЕ МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВСТРАИВАЕМЫХ АСНИ И ВЫСОКОСКОРОСТНЫХ КАМЕР
Необходимость изучения быстропротекаю-щих явлений (физика плазмы, взрывы, вспышки, разрушения, баллистика) и новые оптические датчики требуют создания современной контрольно-измерительной аппаратуры на основе встраиваемых в них автоматизированных систем научных исследований (АСНИ). Наиболее сложные задачи возникают в исследованиях физики плазмы. Подобные исследования накладывают ряд ограничений общего характера:
определение границ и особенностей реакции; обязательное интегрирование в существующие диагностические комплексы;
работа в условиях сильных электромагнитных помех;
необходимость передачи данных большому числу пользователей на удаленные центры наблюдения и обработки данных.
Анализ используемых современных подходов по сопряжению камеры с компьютером и разработке встроенного математического и программного обеспечения показал, что часть из них применяют отдельные платы захвата для установки в компьютер (FastVideo, СЕДАТЭК, Cameralab, IDS), что накладывает ряд ограничений:
малая длина кабеля до компьютера (обычно 3-5 м) приводит к необходимости использования дополнительной вычислительной машины, прежде чем передать данные большому числу пользователей на удаленные безопасные центры наблюдения;
низкая скорость передачи данных для управления камерой (до 57 600 бод) из-за того, что высокоскоростные интерфейсы связи с платой ориентированы на высокоскоростную передачу в одну сторону (например, Camera Link). Существуют также повторители (repeaters), которые могут увеличивать максимальную длину кабеля. Однако для работы на максимально высоких частотах такие длины кабелей совершенно не подходят и
повторители не используются. Для конфигурации Full CameraLink рекомендуется пара кабелей длиной от 1,5 до 3 м, причем эти кабели обязательно должны быть одинаковыми;
соединение камеры с компьютером требует установки дорогостоящих специализированных плат захвата стоимостью около 100 000 руб. и может привести к несовместимости с используемыми диагностическими компьютерными комплексами из-за отсутствия в них интерфейса для платы (ISA, PCI, PCI Express);
соединения всегда имеют вид точка-точка, что затрудняет работу при подключении нескольких камер одновременно для наблюдения с нескольких ракурсов;
из-за наличия платы и установки для нее драйверов появляется зависимость от них и от определенного семейства ОС - Windows.
Подходы производителей, использующие технологию Ethernet (FastVideo, СЕДАТЭК, Видеоскан, БИФО, visionresearch, Photron, Fastec Imaging Corporation, Basler AG, AOS Technologies, Kbinova, Lambert Instruments, IMPEREX, Olympus), обладают следующими недостатками.
• Современные высокоскоростные камеры, имеющие один из сетевых интерфейсов Ethernet, не используют технологий Интернета. Из-за этого большинство камер работает лишь с операционной системой семейства Windows и требует установки дополнительного ПО и даже драйверов для начала работы;
• Нет поддержки многоядерных и многопроцессорных архитектур, используемых в выпускаемых процессорах.
Исследования и разработки показали возможность создания камеры как полноценного сетевого устройства и то, что большинство камер имеют светочувствительные матрицы со схожими характеристиками, поэтому встраиваемое математиче-
ское и программное обеспечение играет важную роль, т. к. определяет функции и конкурентоспособность камеры как изделия.
Существующие на данный момент подходы по разработке математического и программного обеспечения используют технологии настольных приложений. Предлагаемый подход лежит в области научной отрасли информатики, вычислительной техники и управления и состоит в создании принципиально новых сетевых устройств. Новизна подхода состоит в совместном использовании технологий разработки богатых приложений Интернета и параллельном программировании - многопоточности приложений, которые непосредственно плохо совместимы из-за того, что технологии Интернета для обеспечения переносимости основаны на интерпретации кода, а не его исполнении. В настоящий момент средств неявной многопоточности для интерпретируемого кода практически не разработано, за исключением тестируемых технологий.
Говоря более подробно, такой подход достигается следующими решениями.
• Разработка встраиваемого программного обеспечения как богатого приложения Интернета (Rich Internet Application [1]), а не настольного приложения (как в существующих подходах). Богатые приложения Интернета обладают такой
же переносимостью, как и классические приложения Интернета, и такими же возможностями, как и настольные приложения (поддержка неявной многопоточности, полный доступ к системе с правами пользователя). Среди наиболее популярных технологий разработки богатых приложений Интернета можно отметить Microsoft Silverlight, Sun JavaFX, Adobe AIR, Curl, Qt, Webkitgtk+. Предлагается использовать движок визуализации (layout engine) Webkitgtk+ для отображения страниц Интернета и среду выполнения GTK+ для обеспечения межплатформенности.
• Распараллеливание приложения с помощью технологии неявной многопоточности (OpenMP, Co-array Fortran) для эффективного использования современных многоядерных процессоров.
Это позволяет избавиться от недостатков имеющихся подходов и получить ряд дополнительных качеств. Такой принцип разработки раскрывает свои преимущества по сравнению с существующими обычными сетевыми устройствами.
Применение технологий физического уровня -IEEE 802.3 (Ethernet), IEEE 802.11 (WiFi), IEEE 802.16 (WiMax) дает следующее (табл. 1):
• Повсеместную распространенность в компьютерах — если компьютер может выходить в Интернет, значит, сможет и на камеру. Появляет-
Таблица 1
Новые качества благодаря применению технологий Ethernet, WiFi, WiMax
Характеристика Подходы с платами захвата Подходы с технологией Ethernet Предлагаемый подход Новые качества
Интерфейс к ПК CameraLink IEEE 802.3 (Ethernet) ШЕЕ 802.3 (Ethernet), IEEE 802.11 (WiFi), IEEE 802.16 (WiMax), любые, поддерживающие ТСРЛР Распространенность -сопряжение с существующими комплексами
Расстояние до ПК 3-5 м Любое Любое + воздух Отсутствие проводов и удаленное обслуживание
Аппаратура в ПК Плата захвата Сетевая плата Сетевая плата или модуль Ethernet, WiFi, WiMax Отсутствие затрат сопряжение с существующими комплексами
Таблица 2
Новые качества благодаря применению протокола TCP/IP
Характеристика Подходы с платами захвата Подходы с технологией Ethernet Предлагаемый подход Новые качества
Интерфейс к ПК СатегаЫпк IEEE 802.3 (Ethernet) ШЕЕ 802.3 (Ethernet), IEEE 802.11 (WiFi), IEEE 802.16 (WiMax), любые, поддерживающие ТСРЛР Распространенность -сопряжение с современными сетевыми технологиями
Начало работы Установка драйверов и ПО Установка ПО, иногда драйверов Автонастройка, любой обозреватель Простота эксплуатации - одно из требований АСНИ
Число камер к ПК Сколько плат Сколько плат Любое Исследование с нескольких ракурсов, стереозрение
Доступность Через ПК Через ПК Любая сеть Возможность коллективного обслуживания
Надежность ЭМ-помехи Не во всех протоколах Подтверждение доставки данных Гарантированная доставка данных
ся возможность сопряжения с большинством уже используемых компьютерных диагностических комплексов.
• Применение технологий беспроводной связи IEEE 802.11 (WiFi) и IEEE 802.16 (WiMax) позволит при необходимости обходиться без проводов.
• Возможность удаленного обслуживания. Компьютер может находиться в удаленном помещении на любом расстоянии благодаря технологиям Ethernet.
• Отсутствие необходимости устанавливать в компьютер дорогостоящие платы обработки первичных данных (захвата изображения). Это также дает возможность сопряжения с существующими комплексами.
Применение протокола TCP/IP дает следующее (табл. 2):
• Простота эксплуатации - это основное требование к автоматизированным системам научных исследований (АСНИ). Для подключения достаточно вставить разъём Ethernet. Сетевая настройка проводится автоматически (DHCP, DNS).
• Возможность подключения нескольких камер к компьютеру для проведения диагностики с нескольких ракурсов и для задач стереоизображения.
• Возможность коллективного обслуживания. Масштабирование - доступность камеры для целой локальной или глобальной сети благодаря технологиям TCP/IP.
• Использование любых сетевых технологий Интернета, включая беспроводные.
• Гарантированнаядоставкакомандиданных-важно для работы камеры в составе сложных диагностических комплексов в условиях электромагнитных помех. За счет подтверждений о доставке уменьшается скорость, но обеспечивается гарантия доставки данных.
Применение современных технологий разработки богатых приложений Интернета (Rich Internet Application) дает следующее(табл. 3):
• Переносимость — сопряжение камеры с любой (!) программной и аппаратной платформой компьютера.
• Отсутствие необходимости устанавливать дополнительное программное обеспечение (ПО)
Таблица 3
Новые качества благодаря применению технологий разработки богатых приложений Интернета
Характеристика Подходы с платами захвата Подходы с технологией Ethernet Предлагаемый подход Новые качества
ОС на ПК Windows Windows Windows, GNU/Linux, Mac OS Любая ОС -сопряжение с существующими комплексами
Начало работы Установка драйверов и ПО Установка ПО, иногда драйверов Автонастройка, любой обозреватель Простота эксплуатации -одно из требований АСНИ
Масштабируемость ПО Обновление на каждом ПК Обновление на каждом ПК Все ПО находится в камере Легкость и скорость обновлений
для начала работы - нужен только обозреватель, уже имеющийся в каждом компьютере.
• Простота эксплуатации - обозреватель Интернета - программа, знакомая большинству пользователей. Работать с камерой то же самое, что выходить в Интернет.
• Легкость и скорость обновлений и масштабирования - все ПО находится в самой камере -не требуется ничего обновлять на компьютерах, которые уже подключались к камере до обновления ПО.
Применение технологии параллельного программирования дает:
• Эффективное использование многоядерных архитектур компьютера, что позволяет повысить быстродействие АСНИ, ведь такие системы предназначены для быстрого получения и анализа данных и быстрого принятия решений;
• Эффективную интеграцию с существующими диагностическими компьютерными комплексами.
Уже разработано встраиваемое программное
Пространство пользователя
DHCP UPnP DNS Web-приложение
HTTPS RAW pppoecd Grabber
Пространств о ядра
РРРоЕ/РРР
Ядро Linux
Драйверы устройств
Архитектура ПО на уровне пространства пользователя и пространства ядра
обеспечение на основе GNU/Linux [2], обеспечивающее работу камер как сетевых устройств, на котором оценены преимущества использования технологий Fast Ethernet, TCP/IP.
Архитектура встроенного ПО основана на ядре Linux и нескольких процессах (приложениях), выполняющих различные задачи. Каждый процесс запрашивает для своей работы различные ресурсы - кванты процессорного времени, память, сетевое подключение. Ядро Linux обрабатывает их запросы [3]. Таким образом, компоненты встроенного ПО можно поделить на пространство пользователя и пространство ядра в соответствии с блок-схемой на рисунке.
Именно богатое приложение Интернета реализует всю необходимую функциональность, обеспечивает межплатформенность, а также выполняется в многопоточном коде на стороне клиента. За счет него и достигается большинство тех качественных характеристик, о которых говорилось выше.
В драйвере устройства реализуется обработка первичной информации и поддержка передачи данных по сети. Именно за счет того, что драйвер пишется один раз для встроенной операционной системы [4, 5], достигается межплатформен-ность - не нужно писать драйвер для каждой операционной системы клиента, на клиенте выполняется (интерпретируется) богатое приложение Интернета с функциональностью не меньшей, чем у настольных приложений (в противовес обычным приложениям Интернета).
Стоит отметить другие важные вопросы разработки математического и программного обеспечения встраиваемых АСНИ и высокоскоростных камер:
математическое обеспечение по управлению сенсором;
межплатформенное программное обеспечение по визуализации и обработке данных (для получения независимости от ОС);
исследование и применение технологий параллельного программирования для поддержки многоядерности;
программное обеспечение по системному анализу и обработке информации: определение границ процесса, получение параметров объекта и др.;
программное обеспечение по использованию через кадр двух сенсоров одновременно - стерео-зрение для увеличения скорости съёмки в два раза. Камеры работают с опозданием на полкадра друг относительно друга, и при дальнейшем объединении видеоинформации на клиенте достигается в два раза большая скорость.
Первое применение данного подхода планируется провести для высокоскоростной сетевой камеры 1РС^1, устанавливаемой на сферический токамак Глобус-М в Физико-техническом институте имени А.Ф. Иоффе РАН. Дальнейшее применение - разработка подобных высокоскоростных сетевых камер для других учреждений, организаций и предприятий, занимающихся исследованием и изучением быстропротекающих процессов.
Независимость исходного кода от программной и аппаратной платформы позволит использовать разработки для создания новых устройств с более совершенным аппаратным обеспечением, а также для создания сетевых устройств диагностики и наблюдения любого рода (не только камер) на основе автоматизированных систем научных исследований.
В основе предложенного подхода лежат технологии разработки богатых приложений Интернета и параллельное программирование. Подход позволит создавать принципиально новые сетевые устройства - богатые устройства и приборы, в основе которых будут встраиваемые богатые АСНИ. Такие богатые устройства, приборы и системы не будут требовать установки дополнительного аппаратного и программного обеспечения (для начала работы), не будут зависеть от аппаратной или программной платформы компьютера, являясь межплатформенными, и позволят эффективно использовать многоядерные архитектуры процессоров и многопроцессорные компьютеры.
СПИСОК ЛИТЕРАТУРЫ
1. Allair, Jeremy Macromedia Flash MX—A 2. Лав, Р. Разработка ядра Linux [Текст]/Р. Лав.
next-generation rich client [Электронный ресурс].- -СПб.: Вильямс, 2006.—448 с. Macromedia White Paper, 2002.—14 с.
3. He3ara, M.,3,. .Sgpo Linux [TeKcrj/M.^. Me3a-th. -Cn6.: EXB-neiepSypr, 2007.-1104 c.
4. Salzman, P.J. The Linux Kernel Module Programming Guide [TeKCTj/P.J. Salzman, M. Burian,
O. Pomerantz//2007-05-18 ver 2.6.4. 82 c.
5. Corbet, J. Linux Device Drivers [TeKCTj/J. Corbet, A. Rubini, G. Kroah-Hartman.-O'Reilly, 2005.-636 c.