Международная конференция разработчиков
и пользователей свободного программного обеспечения

Разработка приставок цифрового телевидения на базе платформы STLinux

Антон Тонкович, Юрий Казакевич, Минск, Беларусь, “Инновационная компания Promwad”, anton.tonkovich@promwad.com, yury.kazakevich@promwad.com

В докладе рассматриваются аппаратно-программная платформа и инструменты для разработки ПО приставок цифрового телевидения DVB от компании ST Microelectronics. Приведен обзор набора библиотек STAPI для реализации ПО приставки.

Аппаратная платформа для цифрового телевидения

Приставка цифрового телевидения предназначена для приема цифрового ТВ-сигнала стандарта DVB-T. DVB — это набор международных стандартов для цифрового телевидения. В них описываются протоколы и механизмы передачи цифрового сигнала, контент цифрового ТВ сигнала и метаданные, протоколы кодирования и декодирования и т.д.

Рассматриваемая аппаратная платформа для приема цифрового телевидения построена на базе процессора STi5205 от компании ST Microelectronics и включает в себя:

  • ядро SH40 с разрядностью 32 бита и тактовой частотой 450 МГц;
  • видео-сопроцессор: ядро ST231 с тактовой частотой 266 МГц;
  • аудио-сопроцессор: ядро ST231 с тактовой частотой 266 МГц;
  • мультипотоковый микшер и фильтр транспортных стримов;
  • микшер графических и видео-слоев, HDMI, USB, STB, периферийную часть и интерфейсы взаимодействия.

В качестве встроенной ОС используется дистрибутив STLinux 2.3. Для поддержки всех возможностей процессора STi5205 компания разработчик предоставляет набор драйверов и вспомогательных библиотек под общим названием STAPI, который содержит около 50 драйверов для всех устройств, включенных в процессор – таких как видеодекодер, аудиодекодер, подсистема STB TS, 2D-блиттер и т.д.


Рис. 1 – Аппаратная платформа на базе STi5205

Платформа STLinux

Дистрибутив STLinux и среда разработки STWorkbench подтверждает общую тенденцию в переходе на открытые технологии, наблюдающуюся последние годы в отрасли встраиваемых систем.

STLinux предоставляет все необходимое для построения встраиваемых систем, основанных на GNU/Linux и процессорах STMicroelectronics с архитектурой ST40 и ST200. Среда разработки STWorkbench является частью STLinux. STLinux предоставляется в виде набора rpm-пакетов и влючает:

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

Наличие интегрированной среды разработки (IDE) STWorkbench является важным компонентом поддержи разработки ПО. Текущая версия STWorkbench представляет собой улучшенную версию Eclipse 3.4 (“Ganymede”) IDE и включает в себя плагины для C/C++ (CDT 5.0). Дополнительно она обеспечивает специфическую для STLinux функциональность:

  • управление компиляцией и отладкой приложений и библиотек;
  • встроенные функции конфигурирования и компиляции ядра STLinux;
  • отладку ядра с использованием отладчиков KGDB или ST40 JTAG Kernel Debugger;
  • возможность запускать отладочные сессии из командной строки;
  • навигацию по целевой (target) файловой системе;
  • host/target-передачу файлов;
  • отладку файла ядра (core file);
  • профайлинг пользовательских приложений;
  • системный профайлинг с использованием OProfile;
  • системный трейсинг в графическом режиме при помощи KPTrace.

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

Архитектура STAPI

Архитектура ПО цифровой приставки разделена на несколько уровней, каждый из которых предназначен для реализации своего круга задач. Этих уровней 3:

  1. уровень аппаратной платформы;
  2. middleware-уровень;
  3. графический пользовательский интерфейс и пользовательские приложения.

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

Middleware-уровень реализует логику предметной области и состоит из модулей, которые отображают определенный набор действий пользователя с приставкой. Он состоит из двух подуровней: нижнего и верхнего. Нижний, называемый Receiver API, предоставляет интерфейс к следующим объектам:

  • тюнер;
  • проигрыватель;
  • транспортный стрим;
  • платформа.

Верхний подуровень реализует логику, которая связана с пользовательским интерфейсом и действиями пользователя. Сюда входит управление и настройка ТВ-каналов, хранение информации о каналах, база данных EPG и т.д. Для взаимодействия с пользовательским интерфейсом используется система межпроцессого взаимодейсвия D-Bus.

Пользовательский интерфейс реализован на основе библиотеки QT. Для пользователя предоставляются вспомогательные функции в виде проигрывания аудиофайлов формата mp3, wav, а так же просмотр фотографий форматов jpeg, png.

Ссылки:

  1. The Digital Video Broadcasting Project
  2. STLinux distribution
  3. ISO/IEC 13818-1:2000
  4. ST Micrelectronix STi5205

Материалы к докладу