Процессоры цифровой обработки сигналов компании Texas Instruments
Со времен появления первого сигнального процессора TMS320C10 Texas Instruments прошло уже более 20 лет. За это время мир микроэлектроники пережил немалое число этапов эволюции. Развитие технологии позволяло создавать новые, со значительно более высокой степенью интеграции и рабочей частотой, микросхемы. ЦСП (DSP) нашли огромное количество применений в приложениях, существование которых ранее было невозможно.
Различные приложения, в которых применяется цифровая обработка сигналов, предъявляют различные, порой противоречивые, требования к вычислительному модулю. Соответственно, производители элементной базы вынуждены выпускать широкий номенклатурный ряд ЦСП, чтобы максимально удовлетворить требования разработчиков и производителей радиоэлектронной аппаратуры. Таким образом, на начальной стадии разработки инженер сталкивается с проблемой выбора. Неверно ринятое решение не позволит оптимально реализовать приложение как по функциональным, так и по экономическим показателям. Цель данной статьи — помочь разработчику сориентироваться в номенклатуре ЦСП TI и сделать праввильный выбор.
Компания Texas Instruments производит сигнальные процессоры трех основных платформ— C2000, C5000 и C6000. Каждая из них имеет свою область применения, слабо пересекающуюся с другими платформами.
Платформа C2000
Сигнальные процессоры платформы C2000 изначально проектировались как процессоры для управления электродвигателями и электроприводами. С развитием линейки они стали применяться во многих других приложениях, таких, как роботы, промышленные автоматы, источники питания, жесткие диски, оптические сети и т. д. Процессоры обладают гибкостью RISC-архитектуры, вычислительными мощностями сигнальных процессоров, простотой программирования микроконтроллеров.
В платформу C2000 входят два семейства процессоров — C24x и C28x. Семейство процессоров C24x широко используется в настоящее время, но дальнейшее их развитие уже прекращено, в новые разработки следует закладывать C28x.
Процессоры C28x имеют 32-разрядную гарвардскую архитектуру, а также разделенные шины программ и данных (рис. 1). Шина данных, в свою очередь, разделена на шины чтения и записи в целях увеличения пропускной способности, ввиду необходимости обработки данных в реальном времени. Процессоры позволяют выполнять за один машинный цикл MAC операции 32732 (матричный умножитель), а также оперировать 64-разрядными числами. Высокая разрядность позволяет иметь достаточный динамический диапазон, что, в свою очередь, исключает необходимость использования плавающей запятой. Преимущества фиксированной запятой над плавающей — точность, а также простота аппаратной реализации, что влечет за собой снижение цены кристалла. Процессоры содержат атомарное АЛУ, выполняющее операции чтения, модификации и записи в память за один машинный такт, то есть работающее над данными из основной памяти, позволяющее, таким образом, исключить промежуточное копирование данных в регистровый файл, как это делается в сигнальных процессорах. В процессорах применен 8-ступенчатый конвейер, значительно увеличивающий производительность. Оперативная память поделена на несколько областей, каждая из которых может быть сконфигурирована как память программ либо как память данных. В процессор встроен модуль защиты кода, позволяющий секторально защищать 128-битным ключом ОЗУ и ПЗУ процессора. Процессоры содержат эффективный обработчик прерываний с малым временем отклика, что важно в управляющих приложениях. Процессоры, помимо оперативной памяти, содержат Flash-ПЗУ объемом до 128 Кслов (х16), а также однократно программируемую (OTP) память, удобную, к примеру, для записи уникальных параметров устройства (серийные номера, журнальные, сервисные данные и т. д.) Максимальная производительность процессоров составляет 150 MIPS при тактовой частоте 150 МГц при выполнении программ из оперативной памяти и около 120 MIPS — при выполнении программ из Flash-памяти.
Семейство C28x обладает уникальным набором периферии, включающим ШИМы, АЦП (16 каналов, 12 разрядов, минимальное время преобразования 80 нс), большой набор таймеров, большое количество раздельных портов ввода-вывода, квадратурные декодеры для реализации интерфейса с датчиками скорости и т. д. Процессоры содержат развитый набор коммуникационных портов: SPI, UART, CAN. Краткие характеристики процессоров семейства приведены в таблице 1.
Благодаря низкой цене младшие представители семейства могут быть использованы в приложениях, где ранее могли применяться только микроконтроллеры. Принимая во внимание мощное ядро, возможность программирования на языках высокого уровня С/С++, разработчик получает возможность создания высокоуровневых приложений в короткие сроки.
Платформа C5000
C5000 — 16-разрядные сигнальные процессоры с фиксированной запятой. Предназначены в первую очередь для мобильных приложений с ограниченными энергетическими ресурсами: мобильных средств телекоммуникации, измерительных устройств, медицинской техники и т. д. При разработке данных процессоров TI ориентировалась на удовлетворение двух основных критериев: уменьшение потребляемой мощности, повышение производительности.
Семейство начинает свою историю с подсемейства TMS320C54x (первых его представителей). Далее появилось подсемейство TMS320C54xx, отличающееся от предыдущего снижением потребляемой мощности, ростом рабочих частот и, соответственно, производительности, более развитой и совершенной периферией. Кроме того, был введен ряд изменений ядра процессора, позволивший этому подсемейству занять огромную часть рынка мобильной телефонии (более чем в 50% мобильных телефонов использовались данные процессоры — Nokia, Ericsson и др.). Наиболее интересные представители данного подсемейства: TMS320VС5401, C5402 — минимальное потребление, минимальная стоимость; TMS320VC5471 — два ядра на одном кристалле (сигнальное и ARM7), а также встроенный Ethernet-контроллер; TMS320VC5404, C5407, C5409, C5410, C5416 — отличаются набором периферии и памяти, соответственно, ценой. Особняком стоят TMS320VC5421, C5441, имеющие соответственно 2 и 4 идентичных ядра, удобны для применения в системах, в которых необходимо увеличить, к примеру, число обрабатываемых одним устройством каналов, не изменяя программное обеспечение, ядра имеют общую разделяемую память. В других случаях экономически целесообразно было бы использовать более производительные процессоры семейства С6000. Процессоры семейства C54xx используются в огромном количестве приложений, и, вероятно, являются самыми массово выпускаемыми сигнальными процессорами.
В новые разработки следует закладывать семейство С55хх, продвигаемое TI в данный момент. В сравнении с предыдущим C54хх, С55хх претерпели ряд архитектурных изменений (рис. 2). В ядро процессора добавлено еще одно АЛУ, еще один модуль умножения с накоплением, вследствие чего процессоры способны выполнять до двух вычислительных операций одновременно. Соответственно, увеличено количество внутренних шин (процессоры построены по модифицированной гарвардской архитектуре: разделены шины программ и данных, последних 5 (3 — чтение, 2— запись). Весь этот набор позволяет значительно ускорить доступ к данным). Разрядность шин увеличена, что позволяет процессору обращаться напрямую к большему объему памяти. Введена плавающая длина инструкций, что зачастую позволяет достичь 30-процентной оптимизации по объему кода. Процессоры этого подсемейства, так же как и предыдущего, обладают конвейером, позволяющим производить обмен данных и вычисления параллельно и достичь максимальной производительности в 600 MIPS. Процессоры имеют интерфейсы к внешней памяти, в том числе динамической, что позволяет значительно увеличить область их применения и снизить стоимость конечного решения за счет замены более дорогого процессора с большим объемом внутренней памяти процессором с малой внутренней и дешевой внешней памятью.
Процессоры подсемейства C55xx условно можно разделить на ряд групп:
- Сигнальные процессоры общего назначения: TMS320VC5501, C5502, C5510.
- Процессоры TMS320VC5503/07/09 содержат периферию, позволяющую легко интегрировать в разработку свойства мультимедийных устройств, таких, как интерфейсы Flash-карт, USB.
- OMAP5910/12 — процессоры, частично относящиеся к данному семейству. Содержат два ядра на одном кристалле: сигнальное (С55) и ARM9. К данным процессорам адаптирован ряд операционных систем, в частности Linux, что позволяет строить на их основе более сложные системы, где сигнальное ядро выполняет сигнальную обработку (звуковая, графическая, видео, телеметрическая и др. информация), ARM-ядро выполняет функции хост-процессора. Существует множество карманных компьютеров, построенных на базе данных процессоров. Развитая периферия позволяет реализовать большинство функций — от клавиатуры и дисплея до всевозможных коммуникационных свойств.
Первым процессором семейства C55xx является TMS320VC5510. В настоящий момент имеет наибольший объем памяти на кристалле, что позволяет ему производить вычисления в приложениях с большим количеством данных, критичных ко времени доступа. Процессоры TMS320VC5501, C5502 имеют малый объем памяти на кристалле, но при этом содержат внешние полноразрядные шины адреса, что позволяет подключать к ним массивы данных большого объема.
Характеристики процессоров семейства C55x приведены в таблице 2.
Платформа С6000
Основным критерием при разработке процессоров данного семейства является производительность. С развитием технологий производства полупроводниковых компонентов немаловажными свойствами данных процессоров стали также их относительно малое энергопотребление и низкая цена. Ввиду растущей популярности данных процессоров их номенклатура увеличивается с большой скоростью.
К данной платформе процессоров относятся семейства TMS320C62xx, TMS320C64xx, оперирующие с числами с фиксированной запятой, и TMS320C67xx — с плавающей.
Линейка процессоров с плавающей запятой платформы С6000 состоит из семейства TMS320C67xx — TMS320C6701, C6711, C6712, C6713, C6722, C6726, C6727. Привлекательными особенностями семейства C67x является простота реализации алгоритмов обработки сигналов в числах с плавающей запятой, а также наличие в нем процессоров в QFP-корпусах (TMS320C6713, C6722, C6726). Процессоры TMS320C6722, C6726, C6727 идеальны для реализации приложений Hi-End аудио (синтезаторы, студийное оборудование и т. д.) Краткие характеристики процессоров C67x представлены в таблице 3.
Интересными представителями семейства TMS320C62xx на сегодняшний день являются процессоры TMS320C6204 и TMS320C6205. Процессоры семейства TMS320C62xx построены на базе архитектуры VelociTI первого поколения, разработанной Texas Instruments и использующей технологию VLIW (very long instruction word — очень длинное слово команды). По сути, ядро процессора состоит из 8 параллельных вычислительных модулей, а командное слово является 8 параллельными командными словами (по одному на модуль). Процессоры обладают производительностью 1600 MIPS, работают на частоте 200 МГц; имеют по 64 кбайт ОЗУ программ и данных, 32-битный интерфейс внешней памяти, поддерживающий SDRAM, SBSRAM; набор универсальных многоканальных буферизированных последовательных портов; мощный многоканальный контроллер прямого доступа к памяти; дополнительную 32-разрядную шину расширения, позволяющую подключать как синхронные, так и асинхронные устройства (хост-процессоры и т. д.) Отличие между этими двумя процессорами — PCI-контроллер в TMS320C6205. Стоимость процессоров составляет порядка $10–11, что делает их незаменимыми при построении систем обработки сигналов с высокими требованиями к производительности и критичными к цене элементной базы.
Больший интерес на сегодняшний день среди сигнальных процессоров с фиксированной запятой семейства С6000 Texas Instruments представляет семейство TMS320C64xx. Семейство построено на базе архитектуры VelociTI второго поколения. Изменения во втором поколении коснулись ядра процессора, в частности межмодульных соединений, что позволило увеличить пропускную способность между ними, что, в свою очередь, привело к увеличению производительности при выполнении вычислительных алгоритмов над потоками данных. Также была увеличена функциональность вычислительных модулей. Данные свойства являются весьма существенными в задачах реального времени — основных приложениях сигнальных процессоров.
К семейству С64х относится достаточно обширное количество процессоров, отличающихся по производительности, объему внутренней памяти и набору периферии с идентичным ядром центрального процессора.
Таким образом, у разработчика существует возможность оптимально подобрать ЦП, удовлетворяющий требованиям приложения по вычислительной мощности и набору периферии при минимальной цене. Линейку процессоров можно разделить на три части:
- бюджетные процессоры, одним из наиболее важных критериев при разработке которых являлась цена (TMS320C6410, 11, 12, 13);
- процессоры с максимумом производительности (TMS320C6414T, C6415T, C6416T, C6418, C6455);
- специализированные процессоры, к ним относятся TMS320DM640–643, имеющие специальную периферию для видеообработки данных.
Краткие характеристики процессоров C64x представлены в таблице 4.
Исторически первыми появились процессоры TMS320C6414, 15, 16. Отличия в них — периферия. С6415 в дополнение к набору С6414 содержит PCI-контроллер иUTOPIA. С6416 содержит два сопроцессора Viterbi и Turbo, позволяющие значительно повысить производительность коммуникационных приложений. Все три представителя выпускаются в идентичных корпусах и являются совместимыми по выводам. Процессор TMS320C6418 является удешевленным вариантом С6416. TMS320C6410, C6413 — процессоры общего назначения, имеющие минимальную цену в семействе. TMS320C6412 содержит контроллеры PCI и Ethernet (MAC-уровень). TMS320C6411 отличается большим объемом внутренней памяти при минимальной цене. Последним из линейки с фиксированной запятой является TMS320C6455 (рис. 3). В процессоре применена архитектура VelociTI третьего поколения, включающая в себя ряд дополнений к 2-й версии VelociTI. Процессор предназначен для построения сверхмощных многопроцессорных систем цифровой обработки сигналов реального времени (радиолокация, управление физическими процессами, устройства распределения видео, телекоммуникационное оборудование базовых станций). Здесь присутствует высокоскоростной интерфейс RapidIO, позволяющий в целях создания многопроцессорных систем реализовывать сетевые структуры из данных процессоров. Скорость обмена через интерфейс достигает 10 Гбит/с.
Отдельная ветвь семейства С64x — процессоры TMS320DM64x (рис. 4), предназначенные для обработки видеоданных. Они содержат многофункциональные видеопорты, позволяющие реализовать аппаратный ввод и вывод потоков цифрового видео в различных форматах и предоставляют возможности по преобразованию форматов.
Процессоры DM640 и DM641 содержат соответственно один и два 8-битных видеопорта. Процессоры DM642 содержат три гибко настраиваемых 20-битных видеопорта, реализующих до шести входных и выходных видеопотоков. Каждый порт может быть сконфигурирован как два 8- или 10-битных порта или один 16- или 20-битный порт. Новый представитель семейства DM64x — DM643поддерживает два 20-битных видеопорта.
Видеопорты реализуют интерфейсы к распространенным видео-кодерам и декодерам и поддерживают различные разрешения и стандарты. В режиме входа порты поддерживают:
- Частота вывода данных до 80 МГц.
- Два канала 8- или 10-битного цифрового видеопотока YCbCr 4:2:2 в формате ITU-R BT.656, что позволяет подключить цифровую видеокамеру напрямую или аналоговую камеру с использованием видеодекодера.
- Один канал 16- или 20-битного цифрового видеопотока в формате YCbCr 4:2:2 с раздельными компонентами Y и C. Поддерживаются форматы SMPTE 260M, SMPTE 274M, SMPTE 296M, ITU-BT.1120 и другие, включая интерфейсы CCIR601.
- Горизонтальное масштабирование YCbCr 4:2:2 в YCbCr 4:2:0 и масштабирование с коэффициентом 1/2 в 8-битных режимах 4:2:2.
- Интерфейс для двух каналов разрядностью до 10 бит или одного разрядностью до 20 бит неформатированного потока видеоданных от АЦП.
В режиме вывода видео поддерживаются:
- Частота вывода данных до 110 МГц.
- Один канал непрерывного вывода видео YCbCr 4:2:2 в формате ITU-R BT.656 с разрешением 8 или 10 бит.
- Один канал 16- или 20-битного цифрового видеопотока в формате YCbCr 4:2:2 с раздельными компонентами Y и C. Поддерживаются форматы SMPTE 260M, SMPTE 274M,SMPTE 296M, ITU-BT.1120 и другие.
- Горизонтальное масштабирование YCbCr 4:2:0 в YCbCr 4:2:2 и масштабирование с коэффициентом 2 в 8-битных режимах 4:2:2.
- Программируемое ограничение амплитуды выходных значений в форматах BT.656 и с раздельными компонентами Y и C.
- Один канал неформатированного потока разрядностью до 20 бит для прямого вывода на RAMDAC. Возможность синхронизации вывода по двум каналам.
- Возможность формирования требуемых временных характеристик развертки на основе внешнего тактового импульса.
В состав видеопорта входит буфер FIFO объемом 5120 байт. Буфер FIFO поддерживает конфигурации с разделением компонент YCbCr входного потока в отдельные параллельно работающие FIFO и обратно при вводе и выводе видеоданных. Таким образом, осуществляется преобразование потока в формат, удобный для внутренней обработки. При работе видеопорта в двухканальном режиме FIFO разделяется между каналами.
Таким образом, в 6000-м семействе получаем следующую картину. При необходимости использовать максимально дешевый процессор выбором могут служить процессоры семейства C62x: TMS320C6204, C6205. В приложениях, где необходимо оптимально сочетать производительность и стоимость, целесообразно использовать семейство C64x: TMS320C6410, 11, 12, 13. В приложениях, где главным критерием выбора является производительность, — TMS320C6414T, C6415T, C6455. Для мощных телекоммуникационных приложений, ввиду наличия специализированных вычислительных модулей, идеально могут подойти процессоры TMS320C16T, C6418. В приложениях с плавающей запятой можно применить семейство C67x. В приложениях видеообработки, ввиду наличия мощных видеопортов, применимо семейство DM64x.
Средства разработки
Значительную роль в реализации приложений цифровой обработки сигналов играют средства разработки. Здесь у Texas Instruments есть все необходимое. Все вышеописанные процессоры имеют встроенный JTAG-интерфейс, позволяющий вести отладку системы в реальном времени. JTAG-эмулятор подключается через разъем непосредственно к выводам ЦСП, благодаря чему отладку можно производить непосредственно в приложении. Существует два совместимых JTAG-стандарта Texas Instruments: XDS510 и XDS560. Второй из них является более высокоскоростным. С использованием эмулятора возможно задание всевозможных точек останова, в том числе условных. Отладка может также производиться без останова процессора, что весьма существенно при отладке приложений реального времени.
Программная часть состоит из Code Composer Studio — интегрированной среды разработчика, содержащей С/С++, ассемблер, компилятор, линкер, отладчик, редактор. Также в состав CCS входит DSP/BIOS — многофункциональная операционная система реального времени, позволяющая реализовывать многозадачные приложения с синхронизацией потоков и квантованием по времени. DSP/BIOS доступен для всех платформ ЦСП TI. Также в CCS встроены мощные графические средства визуализации данных.
В Code Composer Studio также может быть интегрировано большое количество средств разработки третьих компаний, в частности, существует интерфейс с MatLab.
Бесплатная версия CCS может быть загружена с веб-сайта компании.
Заключение
В данной статье были рассмотрены три основные платформы сигнальных процессоров компании Texas Instruments. За рамками статьи осталось семейство TMS320C30, которое на данный момент более не развивается, хотя сами процессоры выпускаются в огромных количествах ввиду использования их в большом числе ранее сделанных разработок. Цифровую обработку низкочастотных сигналов можно также реализовывать на микроконтроллерах MSP430, имеющих внутренний умножитель с аккумулятором.
Всю необходимую информацию о данных ЦСП можно найти на веб-сайте компании Texas Instruments, где также можно прочитать анонсы о вновь появляющихся процессорах. Дополнительные сведения по подбору сигнальных процессоров можно почерпнуть в специальном руководстве [1].
Литература
- DSP Selection Guide. SSDV004. Texas Instruments. 2005.
- TMS320F2810, TMS320F2811, TMS320F2812, TMS320C2810, TMS320C2811, TMS320C2812 Digital Signal Processors. Data Manual. SPRS174L. Texas Instruments. 2004.
- TMS320VC5509A Fixed-Point Digital Signal Processor. Data Manual. SPRS205E. Texas Instruments. 2005.
- TMS320C6455 Fixed-Point Digital Signal Processor. SPRS276A. Texas Instruments.
- Федоров С. Применение семейства процессоров DM64x фирмы Texas Instruments в системах цифрового видео // Компоненты и Технологии. 2005. № 3.