Встраиваемое программное обеспечение высокоскоростной сетевой камеры для оптической диагностики быстропротекающих процессов

УДК 004.09 С.А. Фёдоров

Встраиваемое программное обеспечение высокоскоростной сетевой камеры для оптической диагностики быстропротекающих процессов

Оптическая диагностика быстропротекающих процессов имеет широкое научное и практическое значение. В данной работе приводится реализованный подход к разработке сетевой высокоскоростной камеры, имеющей в своём составе встраиваемую систему, работающую под управлением операционной системы GNU/Linux. Подход основан на использовании технологии «Система на кристалле», сетевых технологий и высокой интеграции необходимых элементов, позволяет обойтись без дорогостоящих плат захвата изображения и свободен от основных недостатков решений, основанных на специальном сетевом интерфейсе Channel Link.

В работе также определены перспективы и ещё нерешённые задачи.

Ключевые слова: встраиваемое программное обеспечение, сетевая камера, обработка и передача данных, встраиваемая система на кристалле, Linux, скоростная видеосъемка.

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

• короткое время существования плазменного разряда (~ 100 мс);

• большие перепады яркости (до 108) во времени и в различных участках детектируемого изображения;

• обязательное интегрирование в существующие диагностические комплексы;

• жесткая синхронизация работы с моментом вспышки;

• работа в условиях сильных электромагнитных помех;

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

Анализ тенденций развития рынка высокоскоростных видеокамер показал, что последние достижения ведущих компаний-производителей в настоящее время связаны не столько с совершенствованием детекторов, сколько с разработкой принципиально новых подходов к их «электронному обрамлению» и созданием так называемых «сетевых камер», в том числе устройств с возможностью реконфигурирования через Internet непосредственно в системе.

Скоростные цифровые камеры ведущего производителя отечественного рынка - фирмы FastVideo обычно поставляются с платой видеозахвата на PCI-Express x1 с интерфейсом Camera Link для подключения камеры к настольному компьютеру или серверу, что накладывает ряд ограничений, связанных, в первую очередь, с использованием протокола Camera Link (рис. 1).

Рис. 1. Интерфейс Channel Link

1. Малая длина кабеля. Длина кабеля Camera Link обычно 3, 5 или 10 м, но последнее справедливо только для конфигурации Base Camera Link. Существуют также повторители (repeaters), которые могут увеличивать максимальную длину кабеля. Однако для работы на максимально высоких частотах такие длины кабелей совершенно не подходят и повторители не используются. Для конфигурации Full Camera Link рекомендуется пара кабелей длиной от 1,5 до 3 метров, причём эти кабели обязательно должны быть одинаковыми.

2. Низкая скорость передачи данных для управления камерой до 57600 бод;

3. Стоимость: соединение камеры с компьютером требует дорогостоящих специализированных плат видеозахвата.

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

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

Актуальность проблемы

Анализ рынка выпускаемых к настоящему времени высокоскоростных видеокамер показал, что, обеспечивая в принципе необходимую скорость регистрации данных, они не удовлетворяют совокупности перечисленных выше требований. В связи с этим в ФТИ им. А.Ф. Иоффе РАН была разработана высокоскоростная камера на базе высокоскоростного КМОП-сенсора фирмы DALSA, программируемых логических матриц и системы на кристалле (СнК, System On Chip, SOC), позволяющая реализовать все необходимые функции для обеспечения различных диагностических методов в научных экспериментах по исследованию физики плазмы.

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

Подход к организации структуры высокоскоростной камеры

Альтернативным решением проблем протокола Camera Link, указанных выше, является встраивание платы видеозахвата, модуля с оперативной памятью и модуля для связи с компьютером в высокоскоростную видеокамеру.

Таким образом, предлагаемая концепция построения реконфигурируемой сетевой высокоскоростной видеокамеры, конструктивно выполненной на одной печатной плате на базе программируемой вентильной матрицы Xilinx FPGA и встроенной системы на кристалле ADM5120 фирмы Infineon, полностью отвечает современным тенденциям построения высокоскоростных контрольноизмерительных систем различного применения.

Такой подход к аппаратной реализации видеокамеры позволяет реализовать в едином блоке функциональные модули управления сенсором (КМОП или ПЗС), аналого-цифрового преобразования, кадровой памяти, интерфейс локального пользователя (TFT LCD и клавиатура) и контроллер передачи данных в РС, функционирующие под управлением центрального процессора (CPU).

Разработанный загрузчик системы на кристалле

Для старта системы необходим загрузчик. С помощью разработанного программатора его можно запрограммировать во flash-память блока камеры.

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

• размер flash-памяти - 4 Мб;

• порядок байтов от младшего к старшему;

• flash-память архитектуры NOR;

• адрес загрузки 0x1FC00000.

Загрузчик написан на языке С с некоторым ассемблерным кодом для инициализации процессора. Он основан на стандартном загрузчике - имеет в своём составе:

х драйвер RS232 для интерфейса пользователя через консоль (COM-порт);

А программу обновления загрузчика через протокол X-Modem.

Загрузчик расширен и имеет ряд дополнительных функций (подпрограмм):

• драйвер IEEE 802.3 Ethernet;

• TFTP-клиент, обеспечивающий загрузку загрузчика и ядра Linux вместе с приложениями по сети;

• программа автоматического запуска ядра Linux, если к камере не обращаются через консоль или не проводят в ней (консоли) никаких действий;

• программа обновления ядра Linux через протокол X-Modem;

• программа обновления ядра Linux по сети (Fast Ethernet).

Загрузчик предназначен для инициализации процессора, обновления встроенного ПО и запуска ядра операционной системы GNU/Linux.

Способы высокоскоростной передачи данных

Изучение архитектуры системы и её анализ дали три возможных способа реализации высокоскоростной передачи данных.

Программирование процессора

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

Преимущества подхода:

— сравнительная простота реализации;

— быстродействие, т.к. выполняется всего один процесс.

Но у этого подхода есть и серьезные недостатки:

• необходимость подключаться к консоли в случае задания параметров;

• отсутствие гибкости задания сетевых настроек и параметров скачивания;

• необходимость устанавливать на компьютере дополнительное ПО;

• плохая переносимость.

Встраивание Linux и использование интерфейса sockets

Можно встроить Linux в СнК, а загрузчику поручить её запуск. Тогда все необходимые сетевые средства будут в Linux. Передачу же файлов реализовать с помощью интерфейса sockets. Преимущества подхода:

• подключение только по сети (без консоли);

• гибкость задания сетевых настроек.

Недостатки:

— сложность реализации;

— быстродействие, т.к. выполняется несколько процессов;

— отсутствие гибкости задания параметров скачивания;

— необходимость устанавливать на компьютере дополнительное ПО;

— плохая переносимость из-за использования интерфейса sockets.

Встраивание Linux и использование веб-интерфейса

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

Преимущества подхода:

• подключение только по сети (без консоли);

• гибкость задания сетевых настроек;

• гибкость задания параметров скачивания;

• не нужно устанавливать на компьютере дополнительное ПО - необходимо наличие любого веб-браузера;

• переносимость из-за использования протокола http.

Недостатки:

— сложность реализации;

— быстродействие, т.к. выполняется несколько процессов.

Реализация сетевых функций камеры

Автором был использован третий подход, обладающий неоспоримыми преимуществами. Чтобы его реализовать, необходимо поднять всю сетевую инфраструктуру Linux и написать веб-страницы, реализовав тем самым сервер на камере.

Для конфигурирования Linux была выбрана серия ядер Linux 2.6 [2, 3] и дистрибутив OpenWrt Kakimaze 8.09. В конфигурационном файле были выставлены все необходимые сетевые сервисы, указана архитектура процессора MIPS32 [4, 5], СнК ADM5120, объём установленной оперативной

памяти - 16 Мб. Для сборки Linux использовались инструменты кросс-плат-

форменной компиляции (toolchain 0423-1) и библиотека uclibc.

Архитектура встроенного ПО

Архитектура встроенного ПО основана на самом ядре Linux и нескольких процессах (приложениях), выполняющих различные задачи. Каждый процесс запрашивает для своей работы различные ресурсы - кванты процессорного времени, память, сетевое подключение. Ядро Linux обрабатывает их запросы. Таким образом, компоненты встроенного ПО можно поделить на пространство пользователя и проРис. 2. Структура встроенного ПО Linux странств° ядра в с°°тветствии с бл°к-

схемой на рис. 2.

Основные результаты

Были изучены элементы и устройства скоростной камеры, куда встраивалась система. Изучены устройства и характеристики встраиваемой системы на кристалле (СнК) ADM5120 [6], а также архитектура её процессора MIPS32 4Kc. Реализован программатор на основе интерфейса JTAG, позволяющий связывать СнК с компьютером и тем самым программировать её. Разработан загрузчик для встраиваемой СнК. Проведено тестирование СнК-загрузчика. Сняты метрики загрузчика.

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

Заключение

Подход к разработке сетевой камеры, изученный и реализованный автором, убедительно подтвердил преимущества по сравнению с другими решениями, в частности, использующими протокол Camera Link.

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

Сетевая камера использует технологию Fast Ethernet, которая широко распространена и реализована почти во всех южных мостах у современных наборов микросхем.

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

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

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

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

Пространство ядра

PPPoE/PPP

Ядро Linux

Драйверы устройств

Пространство пользователя

DHCP UPnP DNS Web-приложение

HTTPS RAW pppoecd Grabber

гих кристаллах, но и с лёгкостью перейти на ещё более скоростные технологии, например IEEE 802.3z Gigabit Ethernet со скоростью 1000 Мбит/с.

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

В данной работе реализован не имеющий аналогов на отечественном рынке подход сетевой камеры, когда для связи с компьютером не используются интерфейс Channel Link и дорогостоящие платы захвата изображения. В ФТИ им А.Ф. Иоффе РАН планируется расширять функциональность встроенного ПО. Важно выделить несколько важных и интересных решений и путей развития, имеющих несомненные перспективы:

1) разработка Web-приложения, позволяющего скачивать файл данных с необходимой информацией по сети, и специального модуля ядра Linux [7, 8], обеспечивающего чтение файлов с видеоинформацией без использования дорогостоящих плат видеозахвата;

2) возможность копирования отснятого изображения на flash-носитель;

3) просмотр отснятого материала через веб-интерфейс в замедленном с нужной частотой кадров скоростью, а также в режиме реального времени;

4) встраивание сенсорной панели;

5) использование для настроек и управления собственного LCD-монитора камеры;

6) переход на скорости Gigabyte Ethernet;

7) настройка фокуса и экспозиции камеры ввиду особенностей наблюдаемых процессов при научных исследованиях;

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

Литература

1. Федоров С. А.: Высокоскоростная передача данных для встраиваемой АСНИ на кристалле: дис. ... магистра. - СПбГПУ, 2008 г. - 101 с.

2. Лав Р. Разработка ядра Linux. - СПб.: Вильямс, 2006. - 448 с.

3. Бовет Д. Ядро Linux / Д. Бовет, М. Чезати. - СПб.: БХВ-Петербург, 2007. - 1104 с.

4. MIPS32 4Kc Processor Core Data Sheet. - MD00039-2B-4KC-DTS-01.07. - 28 с.

5. MIPS32 4K Processor Core Family Integrator's Guide. - MD00036-2B-4K-ING-01.10. - 56 с.

6. ADM5120 Network Processor - V1.16 Data Sheet. ADM5120_V1.16_DS_Rev1.1. - 196 с.

7. Salzman P.J. The Linux Kernel Module Programming Guide / P.J. Salzman, M. Burian, O. Pomerantz - 2007-05-18 ver 2.6.4. - 82 с.

8. Corbet J. Linux Device Drivers / J. Corbet, A. Rubini, G. Kroah-Hartman - O'Reilly, 2005. - 636 с.

Фёдоров Станислав Алексеевич

Ст. преподаватель каф. информационных и управляющих систем СПбГПУ

Тел.: 8 (911) 163-89-66

Эл. почта: Stanislav.Fyodorov@yandex.ru

Fyodorov S.A.

Embedded software of high speed IP camera for optical diagnostic of the fleeting processes

Optical diagnostics of fleeting processes is of great scientific and practical significance. This paper presents an implemented approach to development of a high speed IP camera that includes an embedded system working under the control of GNU/Linux operating system. The approach is based on the use of the System on Chip technology, network technologies and high integration of necessary elements, enables to avoid using of costly frame grabbers and is free from major faults of solutions based on a task-constrained Channel Link network interface. The paper also outlines perspectives and tasks being still unsolved.

Keywords: embedded software, IP camera, data processing and transfer, embedded system on chip, Linux, slow motion.