|
Н. Абкаиров
SDK для телефонии: Среда для быстрого создания устройств VoIP, обработки речи и передачи данных
В статье рассматривается Пакет алгоритмов телефонии, разработанный фирмой SPIRIT Corp., содержащий библиотеку алгоритмов сигнализации (DTMF, CPTD, АОН), обработки речи (вокодеры, эхоподавители, VAD, CNG, АРУ), передачи данных и факсимильных изображений и объединяющую их среду (Framework). Также описывается специализированный телефонный процессор ЦОС TMS320C54CST, содержащий большую часть этого Пакета во внутреннем масочном ПЗУ. Описывается применение этого пакета в различных устройствах связи, телеметрии, VoIP и системах компьютерной телефонии.
Введение
С целью сокращения времени разработки и стоимости разрабатываемого устройства, инженеры всё чаще стараются применить как можно более интегрированные решения. Описываемые в данной статье Пакет алгоритмов телефонии CST (Client Side Telephony - абонентская телефония) и специализированный телефонный DSP-процессор TMS320C54CST были разработаны как раз в свете этой тенденции, для облегчения создания различных устройств связи, VoIP и систем компьютерной телефонии.
Пакет CST был разработан в Центре Цифровой Обработки Сигналов фирмы SPIRIT Corp. и состоит из библиотеки алгоритмов сигнализации (DTMF, CPTD, АОН), обработки речи (кодек ADPCM, вокодеры, линейный и акустический эхоподавитель, VAD, CNG, АРУ), передачи данных (модемы по Рекомендациям МСЭ-Т V.32bis/V.22bis), передачи факсимильных изображений и объединяющей их среды (Framework). Пакет существует полностью на языке С, а также перенесён на сигнальные процессоры серии TMS320C54x и TMS320C55x. Наибольший интерес представляет его использование на специализированном сигнальном процессоре фирмы Texas Instruments TMS320C54CST, во внутреннем масочном ПЗУ которого содержится большая часть этого пакета.
Привлекательность данного сигнального процессора состоит в следующем:
- для создания полной рабочей системы необходимо минимальное количество внешних элементов (не нужны внешнее ПЗУ и ОЗУ, на кристалле уже встроены УАПП и цифровая часть кодека);
- процессор можно использовать и как "закрытое" устройство (chipset, без загрузки в него программы пользователя), управляя им только по последовательному интерфейсу, и как обычный сигнальный процессор с загружаемой программой пользователя, которая в этом случае управляет алгоритмами телефонии программным образом (это даёт большую гибкость).
Особенный интерес данная статья может представлять для инженеров, проектирующих мини-АТС со встроенной VoIP-функциональностью, а также удалённые или независимые устройства (различного рода датчики, счётные аппараты, контрольно-кассовые терминалы, специализированные телефонные аппараты), в которые необходимо реализовать функции передачи данных по телефонному каналу, обработки речи (запись, воспроизведение, сжатие) и обработки различных сигналов телефонной сигнализации.
Описание Пакета CST
Пакет алгоритмов телефонии CST состоит из набора XDAIS-совместимых объектов (XDAIS - TMS320 DSP Algorithm Standard) и специальной среды (CST Framework), которая объединяет эти объекты и обеспечивает унифицированный доступ ко всем ним.
В Пакет включены следующие компоненты:
- модем для передачи данных со скоростью до 14400 бит/с с протоколами канального уровня для сжатия данных и коррекции ошибок (удовлетворяет Рекомендациям МСЭ-Т V.32bis/V.32, V.22bis/V.22, V.14, V.42, V.42bis);
- факс-модем группы 3 для передачи или записи факсимильных сообщений со скоростью до 14400 бит/с
(удовлетворяет Рекомендациям МСЭ-Т V.17, V.29, V.27ter, V.21, T.30);
- ADPCM кодер и декодер по Рекомендации МСЭ-Т G.726 (со скоростями 16, 24, 32 и 40 Кбит/с), включает в себя G.711 PCM;
- вокодеры, соответствующие Рекомендациям МСЭ-Т:
- G.729AB на скорость 8 Кбит/с;
- G.723.1 на скорости 5,3 и 6,3 Кбит/с;
- вокодеры собственной разработки на скорости 1,2 и 2,4 Кбит/с;
- линейный эхо-компенсатор, удовлетворяющий Рекомендации МСЭ-Т G.168 (2000 год);
- акустический эхо-компенсатор, удовлетворяющий рекомендации G.167;
- детектор голосовой активности (VAD);
- генератор комфортного шума (CNG);
- АРУ для речевых сигналов;
- детектор сигналов DTMF и вызова (CPTD) (на основе Универсального Много-Тонального Детектора - UMTD);
- генератор сигналов DTMF вызова (CPTD) (на основе Универсального Много-Тонального Генератора - UMTG);
- приёмник сигналов АОН (для США, Европы и России).
Все эти компоненты объединены вместе с помощью специальной телефонной среды CST (CST Framework), которая состоит из следующих частей:
- несколько управляющих уровней;
- менеджер динамической памяти;
- драйверы УАПП, кодека DAA (модуль для сопряжение с телефонной линией) и аудиокодека (например, для телефонной трубки).
Телефонная среда состоит из нескольких управляющих уровней, как показано на рис. 1. Такая многоуровневая архитектура позволяет пользователю управлять CST на том уровне абстракции, которые наиболее удобен для него и в плане гибкости управления, и в плане скорости написания приложения:
- Уровень CST Action и уровень синтаксического разбора АТ-команд - самый верхний и наиболее абстрактный уровень, позволяет программе пользователя возможность управлять CST решением в целом.
- Уровень CST Commander - уровень атомарных команд, каждая из которых делает элементарное действие, например, поднятие трубки или запуск детектора DTMF. Команды из уровня Action вызывают исполнение "цепочек" таких атомарных команд.
- Уровень CST Service - обеспечивает обмен данными между различными XDAIS-компонентами и драйверами устройств, а также предоставляет пользователю унифицированный доступ к XDAIS-компонентам CST через набор специальных событий.
- Уровень XDAIS-объектов - уровень функций самих алгоритмов, позволяет работать напрямую с алгоритмами, в обход CST-среды.
Рисунок 1. Управляющие уровни в телефонной среде
Среда также включает три компонента из специализированной среды RF3 фирмы Texas Instruments - ALGRF, LIO и CSL - и таким образом поддерживает самые последние стандарты на DSP-ориентированные среды. Вкратце, ALGRF - это среда для работы с XDAIS-объектами (их создание и удаление); LIO (Low-level I/O) - низкоуровневый интерфейс драйверов; и CSL (Chip Support Library) - библиотека макросов и определений для платформенно-независимого (внутри серии DSP С5000) управления периферией DSP. Более подробная информация об этих компонентах RF3 находится на сайте TI.
Среда предоставляет пользователю возможность анализировать потоки событий и данных, проходящие между управляющими уровнями и драйверами. Пример такого CST-анализатора сделан в виде плагина для Code Composer Studio и показан на рис. 2. Плагин получает данные от CST-среды, работающей в DSP, в режиме реального времени по каналу RTDX (через JTAG).
Рисунок 2. Визуализация потоков событий и данных в CST-среде
Такая открытая телефонная среда позволяет существенно сократить время разработки телефонных приложений, построенных на её основе, а также повышает их переносимость, потому что приложение пользователя управляет алгоритмами телефонии на достаточно высоком уровне абстракции, близким для разных DSP-платформ. Кроме этого, для процессора C54CST, у которого весь код среды находится уже во внутреннем ПЗУ, использование среды позволяет существенно сократить размер кода пользователя в ОЗУ.
Реализация CST на процессоре TMS320C54CST
Специализированный процессор DSP фирмы Texas Instruments TMS320C54CST представляет собой процессор серии C54x, на кристалле которого интегрированы асинхронный последовательный порт УАПП типа 16С550 и цифровая часть DAA, совместимая с микросхемой безтрансформаторной развязки фирмы Silicon Labs (рис. 3).
Рисунок 3. Обзор процессора ЦОС с Пакетом CST
Кроме 40 Кслов внутреннего ОЗУ, в нём также есть 128 Кслов внутреннего ПЗУ, в котором запрограммирована упрощённая версия Пакета алгоритмов телефонии, разработанного фирмой Spirit Corp. (рис. 4).
Рисунок 4. Обзор пакета CST
Дополнительно, путём загрузки очень небольшого по размеру добавочного кода в C54CST, на этом чипе можно эффективно использовать следующие алгоритмы:
- POS-модем (V.29 и V.22 fast connect);
- факс-модемы G3;
- вокодеры для стандартов:
- G.723.1;
- G.729AB;
- низкоскоростной вокодер SPIRIT (1200 бит/с).
Для реализации интерфейса с телефонной линией цифровая часть DAA, находящаяся внутри процессора CST, должна быть подключена к аналоговой части DAA - микросхеме Si3016 фирмы Silicon Labs. Такое включение обеспечивает для CST гальваническую развязку с телефонной линией. Со стороны интерфейса с внешним хост-контроллером, процессор CST подключается к ПК или к контроллеру на основе ЦПУ через последовательный асинхронный порт RS232 (рис. 5). Контроллер управляет процессором CST через набор АТ-команд как в режиме модема, так и в голосовом режиме. При этом процессор CST не нуждается во внешнем ОЗУ или других каких-либо внешних элементах, чтобы выполнять функции Пакета CST.
Рисунок 5. Типовая схема использования процессора с Пакетом CST
В то же время, у пользователя есть возможность загрузить свой программный код во внутреннее ОЗУ этого процессора и использовать CST-решение внутри TMS320C54CST через один из вышеописанных уровней интерфейса, при этом отпадает необходимость использовать внешний контроллер или ПК, что позволяет делать очень компактные решения на основе этого процессора для самостоятельных устройств.
Процессор CST имеет два основных режима работы - Независимый (Chipset) и Программируемый (Flex).
В Независимом режиме CST-решение полностью владеет процессором ЦОС и управляется только снаружи через последовательный порт посредством AT-команд. В этом режиме процессор CST можно использовать как обычный модем для передачи данных с голосовыми функциями, включая полнодуплексный режим (вся функциональность CST-решения доступна через АТ-команды).
В Программируемом режиме программный код пользователя загружается внутрь процессора DSP и использует Пакет CST в ПЗУ через один из интерфейсных уровней, описанных выше. В этом режиме пользователь получает более гибкий доступ ко всей функциональности CST-решения и возможность создавать свои собственные приложения для телефонии, используя только процессор CST, без внешнего контроллера (код пользователя может загружаться, например, из внешнего ПЗУ).
Применение
Описываемый Пакет CST имеет следующие области применения:
- Voice/Fax over IP системы, мини-АТС;
- таксофоны;
- устройства с необходимостью доступа к Internet;
- кассовые и торговые автоматы, банкоматы;
- встраиваемый модемы для передачи данных (например, для использования внутри различных удалённых датчиков, с которых нужно периодически считывать информацию; для охранных систем, с возможностью передачи сжатой аудиоинформации по телефонному каналу в цифровом виде);
- системы голосового меню внутри удалённых независимых устройств, для управления ими через телефонную линию;
- автоответчики (с записью речевого сигнала в сжатом виде и с возможностью построить сложное голосовое меню);
- системы регистрации и записи телефонных звонков (с записью речевых и факсимильных сообщений в сжатом/декодированном виде);
- скремблированные телефонные аппараты (речь, сжатая низкоскоростным вокодером из Пакета CST, может быть закодирована криптографическим алгоритмом пользователя и передана по модему из этого же Пакета).
Тот факт, что все компоненты этого решения имеют стандартизированный интерфейс и являются XDAIS-совместимыми, а также наличие специальной среды, объединяющей все компоненты и представляющей несколько уровней доступа к ним, существенно облегчает процесс интеграции и использования этих алгоритмов пользователем.
Как уже было упомянуто выше, привлекательно использование Пакета CST на основе специализированного DSP TMS320C54CST, во внутреннем ПЗУ которого запрограммирована большая часть этого решения. При этом для создания полной рабочей системы необходимо минимальное количество внешних элементов, и если пользователю недостаточно функциональности, которая заложена во внутрикристальном ПЗУ, он может добавить недостающие части, загрузив свой программный код.
Важно отметить два фактора, существенно уменьшающих стоимость разработки устройств на основе DSP-процессора TMS320C54CST:
- телефонные алгоритмы уже находятся в ПЗУ. Пользователь не должен покупать их отдельно, их стоимость включена в стоимость чипа, при этом чип стоит столько же, сколько и подобный чип из серии С54х, но без алгоритмов;
- в большинстве устройств нет необходимости подключать внешнее ОЗУ, опять же, потому что большинство алгоритмов уже находятся в ПЗУ.
Рассмотрим подробнее реализацию одного из наиболее популярных приложений на основе Пакета CST - VoIP-телефона с громкой связью и с возможностью удалённого подключения к сети по модему. Это приложение использует многие алгоритмы в CST, и при этом полностью помещается во внутреннем ОЗУ процессора C54CST (если сетевой стек TCP/IP и протокол SIP находятся на хосте).
Структурная схема такого приложения показана на рис. 6.
Рисунок 6. Структурная схема VoIP-телефона с громкой связью
К процессору подключены следующие периферийные устройства:
- аналоговый DAA для подключения к телефонной линии (цифровая часть DAA уже в чипе CST);
- аудиокодек для подключения микрофона и динамика;
- флэш-ПЗУ для хранения кода приложения (в случае наличия хоста, код приложения может загружаться с него, и ПЗУ может быть не нужно);
- внешнее ОЗУ для протоколов SIP и TCP/IP (опять же, в случае наличия хоста, оно не нужно);
- конвертор уровней TTL / RS232 для подключения к хосту по последовательному интерфейсу (для случая, когда сетевая часть VoIP работает на хост-контроллере).
Общая стоимость электронных компонентов для этого устройства не превышает $20, что очень хорошо для таких устройств.
Подобное решение было также реализовано на других процессорах серии С54хх, в частности, на автономном контроллере ЦОС TORNADO - E5416 компании МикроЛАБ Системс (www.mlabsys.com), с использование дочернего модуля расширения T/SDAS-ATEL2 для аудио ввода/вывода. Платы TORNADO представляют собой "конструктор ЦОС", так как средства ввода/вывода сигналов и скан-эмуляции процессоров TMS320 конструктивно выполнены в виде дочерних модулей, которые устанавливаются на разъёмы интерфейсов расширения на этих платах. Такая модульная архитектура "конструктора ЦОС" позволяет оперативно менять или добавлять новые модули ввода/вывода сигналов, быстро менять системы TORNADO с различными процессорами ЦОС и легко переходить к автономной аппаратуре ЦОС.
Для подключения к хосту в данном случае использовался универсальный контроллер ввода/вывода на автономном контроллере ЦОС TORNADO-E5416, настроенный на работу в режиме RS-232.
Важно отметить, что для правильной работы акустического эхоподавителя крайне критично, чтобы аудиокодек обладал малым уровнем нелинейных искажений и высокой стабильностью частоты дискретизации, и кодек в дочернем модуле Микролаб обладает исключительно хорошими характеристиками в этом плане.
Удобно также, что по одному каналу стереокодека дочерней платы может быть подключен микрофон и динамик, а по другому - телефонный канал через специальный адаптер, что как раз подходит для описываемого приложения.
Заключение
Описанный Пакет CST и среда CST дают инженеру готовый SDK для быстрой и эффективной по стоимости разработки телефонных приложений, особенно при использовании CST-среды и специализированного DSP телефонии TMS320C54CST.
Средства разработки для этого пакета продолжают развиваться. В частности, идёт работа над созданием визуальной среды конфигурации этого пакета и перенос пакета на другие платформы.
Подробнее о пакете алгоритмов телефонии можно узнать по адресу www.spiritcorp.com/CST.
Список сокращений, использованных в статье:
- AGC - АРУ - Автоматическая Регулировка Усиления
- CID - АОН - Автоматический Определитель Номера
- CNG - Comfort Noise Generator - Генератор Комфортного Шума
- CPTD - Call Progress Tone Detector - Детектор вызывной сигнализации (тонов типа "Занято", "Ожидание")
- CST - Client Side Telephony - Телефония на Стороне Клиента
- DAA - Data Access Arrangement - Устройство сопряжения с телефонной линией
- DTE - ООД - Оконечное оборудование данных
- DTMF - Dual-Tone Modulated Frequency - Cигналы тонального набора номера
- UART - АПП - Универсальный Асинхронный Приёмо-Передатчик
- VAD - Voice Activity Detector - Детектор Голосовой Активности
- XDAIS - TMS320 Algorithm Standard - Cтандарт на алгоритмы для процессоров ЦОС фирмы Texas Instruments
|