Применение DSP семейства TMS320C64ХХ в высокопроизводительных VOIP-приложениях
Выбор процессора - не такая очевидная задача, как может показаться на первый взгляд, поскольку в связи с быстрым развитием новых технологий, большей степени интеграции своременных периферийных интерфейсов в процессоры происходит расширение и перекрытие областей применимости процессоров разных семейств. Существенное влияние на применимость процессоров оказывает наличие средств разработки и готового программного обеспечения, разработанных сторонними фирмами. Одни, совершенно разные по архитектуре, процессоры могут выполнять одни задачи одинаково хорошо, а другие не умеют выполнять совсем. Поэтому очень легко потеряться и запутаться в выборе. Только интегральный, взвешенный и обдуманный со всех сторон анализ позволяет сделать правильный выбор процессора под конкретную задачу проектировщика.
В последние годы проектировщики оборудования для телефонной связи все большее внимание обращают на технологию VoIP, рассматривая ее как гибкое программное решение для замены аппаратных решений на базе микросхем невысокой степени интеграции. Это позволяет улучшить качество оборудования, увеличить надежность, снизить энергопотребление, добавлять в телефонные станции важные современные функции, обеспечивать быстрое развертывание станций, интегрировать станции с сетями передачи данных общего доступа и проч. Опыт применения процессоров семейств C64 и DaVinci показал их преимущества для приложений такого класса. Ниже будут рассмотрены возможные архитектуры для оконечных устройств VoIP.
Варианты построения систем
Сравнение с другими процессорами
Перед тем, как рассмотреть построение систем на основе C64, надо понять, в чем их сила и слабость по сравнению с аналогами того же класса и той же ценовой категории. Ориентироваться при этом на маркетинговые документы каждого производителя весьма затруднительно, так как зачастую там производится сравнение на совершенно нереалистичных примерах - например часто делается сравнение на основе производительности по сверткам или FFT. В реальности, ПО для VoIP приложений много сложнее и требуется сравнение на каком-либо комплексном тесте, аналогично тому, как делается сравнение производительности персональных компьютеров на многокомпонентом тесте, например на офисном пакете программ. Однако ситуация усложнена тем, что информация о потреблении ресурсов конкретными алгоритмами часто не является публичной и производителям весьма трудно получить ее без специального запроса. Более того, данные разных производителей алгоритмов сильно разнятся. Приведенные ниже данные являются выборкой лучших данных из опубликованных от хорошо зарекомендовавших себя поставщиков ПО.
Для сравнения выберем три процессора (табл. 1): C6424 с частотой 500 МГц ($26), C5509A с частотой 200 МГц ($18), BF537 с частотой 500 МГц ($19) (в скобках указана среднерыночная цена).
Таблица 1. Основные свойства трех DSPСемей- ство | Цена, $ | Тактовая частота, МГц | BGA | Линей- ный раз- мер, мм | Макс. потреб., мВт | Ethernet | I2C | UART | Внутр. память, кбайт | Тип внеш- ней памяти | Кэш- контроллер |
---|---|---|---|---|---|---|---|---|---|---|---|
C6424 | 26 | 500 | 376 361 | 23 16 | 550 | + | + | 2 | 240 | DDR | + |
C5509 | 18 | 200 | 176 | 12 | 120 | + | 256 | SRAM, SDRAM | Только для программы | ||
BF537 | 19 | 500 | 208 182 | 17 12 | 200 | + | + | 2 | 132 | SDRAM | + |
В таблице 2 собраны данные по трем типовым вокодерам: потребление процессора (обычно измеряется в MIPS - миллионах инструкций в секунду, необходимых для вокодера) и количество каналов кодирования-декодирования этим вокодером на данном процессоре.
Таблица 2. Применение DSP в типовых вокодерахВокодер | G729AB | G728 | G723.1 | |||
---|---|---|---|---|---|---|
DSP | MIPS | Кол-во каналов | MIPS | Кол-во каналов | MIPS | Кол-во каналов |
C6424 | 6,3 | 79 | 18 | 27 | 7,7 | 64 |
C5509 | 10,3 | 19 | 24 | 8 | 12,5 | 16 |
BF537 | 19 | 26 | 40 | 12,5 | 28 | 17 |
Диаграмма (рис. 1) показывает производительность процессора относительно DSP C5509, который является представителем семейства менее производительных процессоров от Texas Instruments.
Рис. 1. Относительная производительность процессоров для задач кодирования речи
Из этих данных следует, что несмотря на одинаковую тактовую частоту, процессоры BlackFin существенно проигрывают процессорам семейства C64xx по количеству каналов. Фактически, они лишь ненамного (до 1,5 раз) превосходят C5509 по производительности и существенно отличаются от них лишь набором периферии, привлекательной для построения интегрированных однокристалльных решений. Замечу также, что независимых поставщиков программного обеспечения VoIP для процессоров C64 намного больше, чем для BlackFin.
Несмотря на то что компания Texas Instruments в свое время позиционировала процессоры серии C55xx для применения в VoIP приложениях, в современных условиях они уже не выдерживают конкуренции с линейкой BlackFin, так как не имеют хорошего набора встроенной периферии для VoIP приложений. Дополнительным ограничением является сильно урезанные возможности кэш-контроллера, который содержит только кэш инструкций, но не данных, поэтому эффективность работы в многоканальных VoIP системах у таких процессоров сильно падает при увеличении числа каналов и объема кода.
Процессоры BlackFin выглядят оптимально для систем с небольшим количеством VoIP каналов (порядка четырех). Для проектировщиков также важно то, что на эти процессоры портирована операционная система Linux и на нее уже портированы готовые open source-протоколы SIP, H.323 и прочие.
Однако процессоры C64xx превосходят по производительности процессоры BlackFin в 3-4 раза, имеют мощный набор периферии, эффективный кэш-контроллер для работы с 32-битной памятью DDR, один из самых лучших компиляторов. Все это делает такие процессоры оптимальными для высокопроизводительных VoIP систем с большим количеством каналов.
Некоторым недостатком является больший размер корпуса и несколько большее потребление (хотя в пересчете на канал VoIP оно даже меньше, чем у BlackFin). Однако в целом это не являются критичным для использования процессоров C64xx в ячейках АТС и прочих VoIP изделиях.
Кратко о семействе C64xx
Семейству C64xx (табл. 3) посвящено множество статей, здесь же мы сконцентрируемся на том, что наиболее важно для проектировщиков VoIP-систем.
Таблица 3. Состав семейства C64xxПроцес- сор | Диапа- зон цен, $ | Такто- вая частота, МГц | Внут- рен- няя па-мять, кбайт | Тип внеш- ней памяти | Ядро | Выво- дов кор- пуса | Ethernet | I2C | UART | Mc BSP | Mc ASP | PCI, МГц |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Классические DSP | ||||||||||||
6410/6413 | 20...34 | 400...600 | 156...288 | SDRAM | C64 | 288 | - | 2 | - | 2 | 2 | - |
6411 | 46 | 300 | 288 | SDRAM | C64 | 532 | - | - | 2 | - | 33 | |
6412 | 41...72 | 500...720 | 288 | SDRAM | C64 | 548 | 10/100 | 1 | - | 2 | - | 66 |
6418 | 53 | 500...600 | 544 | SDRAM | C64 | 288 | 2 | 2 | 2 | - | ||
6414T 6415T 6416T | 140...247 | 500...1000 | 1056 | SDRAM | C64 | 532 | - | - | - | 3 | - | 33 |
6454/55 | 123...299 | 720...1200 | 1472...2160 | DDR2 | C64+ | 697 | 10/ 100/ 1000 | 1 | - | 2 | - | 66 |
6452 | 156...188 | 720...1200 | 1472 | DDR2 | C64+ | 529 | 10/ 100/ 1000 | 1 | 1 | 2 | 1 | 66 |
Одноядерные процессоры DaVinci и специализированные C642x | ||||||||||||
C6421 | 11...28 | 400...700 | 96 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 1 | 1 | 1 | - |
C6424 | 21...39 | 400...700 | 240 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 2 | 2 | 1 | - |
DM640/641 | 26...44 | 400...600 | 160 | SDRAM | C64 | 548 | 10/100 | 1 | - | 2 | 1 | - |
DM642 | 40...60 | 500... 720 | 288 | SDRAM | C64 | 548 | 10/100 | 1 | - | 2 | 1 | 66 |
DM643 | 34...46 | 500...600 | 288 | SDRAM | C64 | 548 | 10/100 | 1 | - | 1 | 1 | - |
DM647/648 | 52...104 | 720...900 | 320...576 | DDR2 | C64+ | 529 | 10/100/1000 | 1 | 1 | - | 1 | 66 |
DM6431 | 13...14 | 300 | 128 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 1 | 1 | 1 | - |
DM6433 | 18...26 | 400...700 | 240 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 1 | 1 | 1 | 33 |
DM6435 | 19...27 | 400...700 | 240 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 2 | 1 | 1 | - |
DM6437 | 24...38 | 400...700 | 240 | DDR2 | C64+ | 361/376 | 10/100 | 1 | 2 | 2 | 1 | 33 |
Двухядерные процессоры DaVinci | ||||||||||||
DM6441 DM6443 DM6446 | 36...46 | 405...594 | 208 | DDR2 | C64+, ARM9 | 361 | 10/100 | 1 | 3 | - | 1 | - |
DM6467 | 87...105 | 594...729 | 248 | DDR2 | C64+, ARM9 | 529 | 10/100/1000 | 1 | 3 | - | 2 | 33 |
Семейство делится на следующие части:
- классические DSP общего назначения C641x;
- специализированные процессоры C642x и одноядерные процессоры DaVinci DM64x, DM643x;
- двухъядерные процессоры DaVinci DM644x, DM646x.
Вторая категория обладает хорошим набором периферии при небольшом корпусе и новым ядром C64+, о котором будет вкратце сказано ниже. Одноядерные процессоры DaVinci включают как старые DM64x, так и новые DM643x процессоры, оптимизированные во многом для видеоприложений. К тому же, это одни из самых дешевых процессоров.
Двухъядерные процессоры - наиболее мощные продукты семейства - включают в себя еще и ядро ARM для управления периферией, запуска операционной системы и прочих сервисных функций.
Процессоры второго семейства (одноядерные процессоры DaVinci и специализированные C642x) наибольшим образом подходят для применения в VoIP-системах, так как обладают хорошим балансом между ценой, производительностью и набором встроенной периферии. Однако, для наиболее мощных VoIP-систем, где цена процессора не является лимитирующим фактором, примененимы и наиболее мощные классические процессоры класса C6455.
Ядро C64+ обладает целым рядом преимуществ над старым ядром C64 - это и новые инструкции, и кардинально улучшенный кэш-контроллер, и более мощный контроллер прерываний и проч. В целом это дает общесистемный выигрыш в 5...15%.
Классическая двухпроцессорная система
Классической архитектурой является спарка сигнального процессора с контроллером общего назначения, например Atmel AT91RM9200 с ядром ARM9 (рис. 2).
Рис. 2. Типичная двухпроцессорная конфигурация
При этом сигнальный процессор выполняет все функции обработки голоса (эхоподавление, детектирование сигнализации и проч.), а контроллер несет функции сетевого интерфейса и обслуживает протокол установления соединения (Q.931, SIP, H.323 и проч.). Помимо этого на контроллер обычно возлагаются ряд дополнительных функций - начальная загрузка DSP, самотестирование и прочее.
Каков может быть межпроцессорный интерфейс? При использовании процессоров серии C64xx целесообразным является обеспечение интерфейса между ним и контроллером через высокоскоростную последовательную синхронную шину McBSP (Multichannel Buffered Serial Port), соединенную на контроллере с последовательной шиной SSP в режиме SPI. При этом необходимо иметь достаточный запас пропускной способности, который можно грубо оценить в 100 кбит/сек на один канал VoIP в каждую сторону. Так как последовательный интерфейс является байт-ориентированным, то немаловажным является необходимость применения протокола (HDLC/SDLC-подобного) для автоматической пакетной синхронизации. К сожалению, большинство выпускаемых сейчас контроллеров не имеют таких встроенных средств. Это важно учитывать при проектировании, так как программное выделение пакетной синхронизации при общей скорости потока порядка 3 Мбит/сек для RISC-процессоров с ядром ARM является ресурсоемкой задачей. Для процессоров семейства C64 это не является таковой: накладные расходы на эту задачу составляют существенно менее 1% ресурса процессора.
Другим вариантом может быть использование параллельной 16/32-битной шины прямого доступа к памяти HPI (Host Peripheral Interface). При этом доступ может быть реализован с шины EBI (External Bus Interface) контроллера и регистры HPI DSP будут отображены в память контроллера. При этом скорость доступа уже не лимитируется столь жестко, но этот вариант имеет два важных недостатка: во-первых, прямое подключение без дополнительной логики интерфейсов невозможно, во-вторых, программная организация межпроцессорного обмена становится более сложной (необходимо в контроллере поддерживать очереди пакетов, которые хранятся в памяти DSP).
Чем хороша такая архитектура? Первое и очевидное преимущество заключается в четком разделении задач по разработке. Специфика данных приложений заключается в том, что ПО для сигнальной обработки с достаточно быстрой адаптацией под конкретную платформу и аппаратные интерфейсы может быть приобретено у сторонних производителей. Работа же по ПО для контроллера может вестись практически параллельно, так как в значительно большей степени связана с сервисными и интерфейсными функциями конкретного изделия. Второе преимущество состоит в том, что такую систему проще наращивать, модифицировать и поддерживать, так как единая DSP-платформа может быть сопряжена с разными управляющими процессорами. Третье преимущество, которое не лежит на поверхности, но очень важно для разработчиков - это возможность применения операционной системы Linux, портированной практически на все процессоры семейства ARM, что открывает возможность использования большого количества разработанного сервисного ПО и даже таких известных VoIP-проектов, как OpenH323 или Asterisk.
Теперь необходимо остановиться на том, какой производительностью должны обладать компоненты для работы с тем или иным количеством голосовых каналов. Данные указаны в таблице 4.
Таблица 4. DSP для работы с разным числом голосовых каналовКол-во голосовых каналов | DSP | Встроенная память, кбайт | Корпус | Тактовая частота, МГц | Контроллер | Тактовая частота, МГц | Кэш, кбайт |
---|---|---|---|---|---|---|---|
6...10 | С6410 | 156 | 288 BGA | 400 | ARM9 | 120 | 8 |
С6421 | 96 | 361 BGA | 400 | ||||
8...16 | С6413 | 288 | 288 BGA | 500 | ARM9e | 180 | 16 |
16...24 | С6424 | 240 | 361 BGA | 600 | ARM9e | 240 | 16 |
С6418 | 528 | 288 BGA | 600 | ||||
24...32 | С6414 | 1056 | 532 BGA | 720 | ARM9e | 300 | 32 |
Заметим сразу, что это приблизительные показатели, зависящие от множества факторов (поддерживаемые вокодеры, реализация микширования для конференс-связи и т.д.).
К выбору контроллеров необходимо подойти не менее тщательно. В целом, для большинства приложений можно рекомендовать использовать контроллеры с ядром не хуже ARM9e с тактовой частотой порядка 200 МГц. Особенное внимание необходимо обратить на наличие в контроллере модуля управления памятью MMU, без которого остается использовать более простые операционные системы типа uClinux, которые требуют адаптацию разработанного под Linux программного обеспечения и существенно сужают возможности выбора из готовых компонентов.
Однопроцессорная конфигурация
Другой альтернативой для проектировщиков оборудования могут стать решения на одном кристалле (рис. 3).
Рис. 3. Однокристальное решение
Опыт разработки подобных устройств показывает целесообразность применения одноядерных процессоров C6424/C6421 для количества каналов до 16 (табл. 5) и двухъядерных процессоров DaVinci в более высокопроизводительных системах.
Таблица 5. Одноядерные процессоры для разного числа каналовКол-во голосовых каналов | DSP | Встроенная память, кБайт | Корпус | Тактовая частота, МГц |
---|---|---|---|---|
6...10 | С6421 | 96 | 361 BGA | 400 |
8...16 | С6424 | 240 | 361 BGA | 500 |
16...24 | С6424 | 240 | 361 BGA | 600 |
Исключительно успешные на рынке процессоры C6424 обладают встроенным Ethernet-контроллером, снабженным весьма мощным контроллером доступа в память, содержащем в себе кэш данных, кэш инструкций, DMA-контроллер и другие блоки. Это дает возможность запускать TCP/IP-стек непосредственно на сигнальном процессоре под управлением ядра DSP-BIOS. При этом развитые средства управления очередями пакетов в контроллере не дают существенной нагрузки на процессор даже при скоростях в десятки Мбит/сек (Texas Instruments выпустила отчет, показывающий, что при скоростях 1 Гбит/сек нагрузка на DSP при приеме трафика в UDP составляет порядка 15%). Следует также отметить, что в процессорах C6424/6421 используется улучшенное ядро C64+, в целом повышающее производительность на 5...15% по сравнению с более старым ядром, использовавшимся в процессорах С641x, и избавляющее от необходимости запрещать прерывания во время выполнения аппаратных циклов, что обычно свойственно DSP-процессорам.
Все это открывает возможности плотной интеграции TCP-IP-части непосредственно с обработкой сигнала в реальном времени. Это, в свою очередь, уменьшает общую задержку, снижает накладные расходы в программном обеспечении, а также существенно упрощает аппаратное обеспечение, так как исчезает необходимость в дополнительном контроллере. Запас ресурсов сигнального процессора в 10-20% общего ресурса, как правило, более чем достаточен для обслуживания протоколов SIP, H.323 и проч., хотя, безусловно, реализация этих частей ПО требует адаптации под ядро DSP-BIOS вместо Linux.
Для обслуживания большего количества каналов целесообразно применять процессоры семейства DaVinci, но мы не сможем уделить им большого внимания в данной статье. Отметим лишь, что наиболее мощными процессорами сейчас являются DM6455 и DM6467, снабженные всеми необходимыми интерфейсами, включая 1 Гбайт/сек Ethernet, и работающие на тактовой частоте до 1,2 ГГц. Применение таких процессоров позволит увеличить плотность до 60 и более каналов на процессор и запускать VoIP-приложения с наиболее сложной программной начинкой. Относительно недавно фирма Texas Instruments начала продвижение двухъядерных (ARM Cortex A8 плюс C64+) процессоров OMAP35xx, которые позиционируются как облегченный аналог процессоров DaVinci без высокоскоростных внешних интерфейсов типа PCI и VLYNQ и с существенно упрощенными видеоинтерфейсами. Эти процессоры обладают расширенными возможностями по энергосбережению и являются хорошей альтернативой для построения VoIP-систем.
Конфигурация с хост-интерфейсом
В ряде приложений необходима плотная интеграция DSP с хост-компьютером с фактическим использованием его в качестве мощного специализированного акселератора. Самые типичные применения - транскодеры и микшеры телеконференций. В подобных применениях требуется обеспечить много каналов кодирования/декодирования речи (рис. 4).
Рис. 4. Многопроцессорное решение для конференц-связи
Необходимо при этом понимать преимущества и недостатки подобной системы по сравнении с просто реализацией всех функций на PC. Очевидно, что главным преимуществом реализацией всех функций на PC является большая простота реализации, и более быстрое внедрение. Но вопрос в том, где находится предел возможностей. В типовом случае 2...3 ГГц PC может обрабатывать 20...30 каналов кодирования речи (G.729), в то время как C64 - 80...150 каналов. При этом потребление отличается кардинально: для PC это порядка 50...80 Вт, для DSP - порядка 2...3 Вт.
Таким образом, если общее количество каналов сравнительно невелико, то проще нарастить систему за счет увеличения числа компьютеров, если же общее число каналов измеряется тысячами, то применение DSP становится весьма привлекательным, так как становятся существенными экономия места, потребления и увеличение надежности.
Для решения подобной задачи и может быть полезна архитектура с хост-процессором. При этом несколько DSP могут быть соединены с хост-процессором через PCI. Пропускная способность шины - около 1 Гбит/сек при тактовой частоте 66 МГц, поэтому ее с избытком хватит для нескольких тысяч каналов кодирования речи. Наиболее целесообразно в подобных конфигурациях использовать процессоры DM647, 648 и 6452.
На что следует обратить внимание проектировщикам подобных систем? Во-первых, далеко не все C64x-процессоры имеют шину PCI, а в тех, которые ее имеют, выводы PCI часто мультиплексированы с другими интерфейсами и требуется внимательный анализ, не исключает ли использование PCI применение другой периферии. Например, в процессорах DM6433 выводы PCI мультиплексированы с HPI (хост-интерфейс), EMIFA (интерфейс с асинхронной памятью), VLYNQ (быстрый межпроцессорный интерфейс) и даже c видеопортом.
Во вторых, при использовании PCI, единственный вариант загрузки DSP - это только через PCI. Это несколько усложняет систему, так как DSP не может быть загружен без драйвера на хост-процессоре. Есть особенности использования PCI-интерфейса на двухъядерных DaVinci - в них регистры PCI-контроллера отображены не в памяти DSP, а в памяти ARM-ядра. Это существенно усложняет процедуру программной инициализации PCI-обмена.
В третьих, нельзя недооценивать сложностей создания драйверов должного качества под операционную систему на PC, так как в подобных мультипроцессорных системах необходимо обеспечивать высокую пропускную способность при работе в режиме реального времени.
В целом можно заключить, что подобные сложные системы требуют значительного времени на разработку, связанную в первую очередь со сложностью ПО для мультипроцессорых конфигураций.
Интерфейсы
Какие важные особенности процессоров C64xx следует учитывать и на что следует обращать внимание при проектировании?
Интерфейс I2C поддерживается практически во всех процессорах. Его целесообразно задействовать для подключения последовательной флэш-памяти или EEPROM, где процессор будет хранить как сетевые настройки (MAC-адрес, режим DHCP и проч.), так и начальные установки VoIP-портов (режимы работы эхокомпенсаторов и прочие тонкие параметры VoIP-стека). Как правило, EEPROM объема от 1...2 кбайт достаточно, но в тех случаях, когда требуется хранение телефонной книги, этот объем может быть существенно больше.
Интерфейс UART поддерживается процессорами C6421/C6424 и всеми процессорами DaVinci, что является выгодным для подключения сервисного интерфейса для тестирования, диагностики, обновления ПО. При двухпроцессорной реализации этот интерфейс следует поддержать на ARM-контроллере (как правило, большинство выпускаемых контроллеров им оснащены).
Интерфейс с шиной E1/T1 осуществляется с помощью преобразователей G.703 в ST-BUS, который, в свою очередь, может быть подключен к порту McBSP напрямую. Контроллер McBSP обладает большим числом возможностей, включая автоматическое преобразование данных, закодированных в A-law в линейный код с одновременной блочно-ориентированной пересылкой по шине прямого доступа в память. Таким образом, обслуживание этого аппаратного интерфейса не требует заметной загрузки процессора.
Следует также отметить наличие полезного последовательного интерфейса McASP, который оптимально подходит для подключения аналоговых кодеков. К одному интерфейсу можно подключить до десяти кодеков в режиме TDMA, что позволяет эффективно использовать место на печатной плате и упростить разводку. В сравнении с McBSP, McASP, с одной стороны, менее гибок, так как не позволяет сконфигурировать приемную и передающую часть на разные режимы и частоты синхросигналов. С другой стороны, он позволяет подключать множество кодеков в параллель, в то время как к McBSP можно подключить только один. При совместном использовании McASP с контроллером EDMA 3.0, входящим в ядро С64+, открывается возможность организации многоканального обмена с множеством кодеков без накладных расходов на пересылку и раскладывание данных в требуемом порядке.
Процессоры серий C64xx имеют множество вариантов загрузки. Однако проектировщикам необходимо учитывать тот факт, что размер программного кода может составлять величину порядка 0,5...4 Мбайт в зависимости от конфигурации ПО. Соответственно, загрузка по I2C или через McBSP с микросхем флэш-памяти с последовательным доступом со скоростями 100...250 кбит/сек будет занимать несколько секунд, что может быть и неприемлемым. Наиболее простым решением является все-таки применение стандартной NOR флэш-памяти, которая подключается через специальную 16-битную шину к DSP. При этом загрузка будет занимать не более десятков миллисекунд.
Загрузка из NAND-флэш-памяти возможна только для процессоров С6424 и DaVinci. В реальности процесс должен быть организован достаточно сложно - вначале грузится первичный загрузчик Linux, который монтирует файловую систему на флэш-памяти, и только после этого контроллер загружает DSP через McBSP или HPI. Безусловно, время загрузки Linux лимитирует общее время выхода на режим всей системы, что в ряде случаев может быть важным фактором.
Энергопотребление
Вопрос энергопотребления не является существенным в VoIP-приложениях, так как сами по себе интерфейсы телефонных окончаний потребляют порядка одного ватта на канал. Тем не менее, приведем типовые цифры по потреблению. Само ядро процессора при полной загрузке потребляет порядка 0,5...1 Вт в зависимости от тактовой частоты, типа процессора и проч. Основной источник дополнительного потребления - память SDRAM (для C641x) или DDR (для 642x и DaVinci). Так как в значительной мере обмен с памятью кэшируется, то в целом память может потреблять также величины порядка 1 Вт. Прочие источники потребления (интерфейс с T1/E1 и проч.) вносят меньший вклад. В целом, можно оценивать максимальное потребление всей DSP-подсистемы в 2...3 Вт, а в пересчете на канал VoIP порядка 50...100 мВт на канал. При таком низком удельном потреблении обычно не возникает проблем с конструктивным исполнением, так как изделия могут работать в без принудительной вентиляции в широком температурном диапазоне и в условиях ограниченного теплоотвода.
Общая площадь, занимаемая процессорной частью, весьма невелика и может составлять порядка 0,2...0,4 дм2 в зависимости от выбранного корпуса (23 или 16 мм), выбранного типа внешней памяти и плотности разводки.
Инструментальные средства и ПО
Для проектирования ПО используется среда разработки Code Composer Studio 3.3. Компилятор C64xx является одним из лучших оптимизирующих компиляторов для языка C, что практически избавляет разработчика от использования ассемблера. В состав инструментальных средств входит и ядро ОС реального времени DSP-BIOS с графическим интерфейсом для настройки. Накладные расходы, вносимые ядром на переключение задач и синхронизацию приложений, малы, однако его возможностей достаточно как для построения приложений жесткого реального времени, так и параллельной работы их с TCP-IP стеком и асинхронно выполняемыми задачами.
Texas Instruments предлагает и свои готовые программные решения для VoIP, однако развивает и рынок так называемых третьих сторон (TI's Third Parties) - независимых компаний, которые поставляют ПО, удовляетворяющее стандарту XDAIS, разработанному TI.
Решающим фактором при разработке аппаратных средств является состав ПО и выбранная конфигурация VoIP. Минимально необходимым является следующий перечень стандартных компонентов VoIP:
- сигнализационная часть: DTMF-детектор, генератор сигнализации (в России сигналы тональной частоты 425 Гц), детектор тональных сигналов 1200/2100, детектор пульсового набора;
- блоки речевой обработки: линейный эхоподавитель, генератор комфортного шума;
- вокодеры: G.711 со блоком коррекции потерянных пакетов (PLC);
- RTP-часть: джиттер-буфер, RTP-упаковщик;
- IP-часть: TCP-IP-стек с минимальным набором сервисов (DHCP, ICMP, UDP, TCP, ARP).
Более продвинутые конфигурации могут включать:
- дополнительные модули обработки: детектор голосовой активности (VAD), речевая АРУ, шумоподавитель, акустический эхоподавитель (вместо линейного), генератор сигналов АОН;
- блоки для конференс-режима: микшер, транскодер;
- разнообразные вокодеры: G.723.1 (5,3/6,3 кбит/сек), G.726 (16/24/32/40 кбит/сек), G.729AB(8/9,6 кбит/сек), G.728 (9,6/12,8/16 кбит/сек), iLBC( 13,3/15,4 кбит/сек) и проч.;
- пользовательские сервисы: автоинформатор, автоответчик, голосовая почта, рингтоны;
- протоколы установления соединения SIP, H.323, Q.931;
- драйверы разнообразной периферии, сервисы обновления ПО, удаленного конфигурирования, интерфейсы с СУБД для формирования логов и проч..
Состав компонентов влияет как на объем программного кода, так и на общее количество каналов. К примеру, типовой вокодер занимает 60...100 кбайт программной памяти и требует порядка 10 MIPS (~1,6% ресурса 600 МГц процессора), а, например, автоответчик требует порядка 100 кБайт памяти на канал для записи минуты разговора. Поэтому при проектировании конкретной системы необходимо запрашивать у производителей ПО точные цифры потребления ресурсов для выбранной конфигурации системы.
Так как перечень требуемых компонентов ПО весьма велик, то проектировщикам следует обратить внимание на готовые решения в этой области, которые могут быть адаптированы под конкретное изделие. На российском рынке представлены несколько компаний, предлагающие такие продукты. Некоторые из них также предлагают услуги комплексной разработки VoIP-решения под ключ для аппаратной платформы заказчика. Использование такого подхода сокращает сроки выпуска изделий, обеспечивает лучшее качество и большую гибкость конфигурирования и тестирования.
Выводы
Процессоры семейства C64xx и DaVinci хорошо подходят для реализации VoIP-ячеек и масштабируются от 6 до 60 каналов. Следует выделить процессоры С6424/6421 как оптимальные для построения ячеек, обслуживающих один канал T1/E1 с непосредственным выходом в IP-сеть без использования дополнительных контроллеров. Низкая себестоимость на канал (порядка $1...2,5), малое удельное энергопотребление и занимаемая площадь печатной платы, хорошие инструментальные средства, широкий спектр готового ПО сторонних производителей делают эти процессоры привлекательными для построения телефонных станций и других устройств для многоканальной передачи голоса.
Получение технической информации, заказ образцов, поставка -
e-mail: dsp.vesti@compel.ru
Ваш комментарий к статье | ||||