Возрастающая производительность и простота применения цифровых сигнальных процессоров (DSP) вывели их на уровень серьёзной альтернативы микроконтроллерам. Чтобы эти процессоры можно было применять в устройствах управления они должны выполнять функции общего назначения. Для этого ядро должно выполнять функции микроконтроллера, а в состав микросхемы должен входить соответствующий набор периферийных устройств: таймеров, интерфейсов, аналого-цифровых преобразователей, модулей памяти.
В ответ на возросшие запросы потребителей фирма Motorola разработала новую архитектуру микросхемы, ориентированную как на выполнение сложных алгоритмов цифровой обработки сигналов, так и на решение задач управления. Семейство микросхем DSP568xx построено на базе ядра 16-разрядного процессора DSP56800 с фиксированной точкой. Это ядро предназначено для эффективного решения задач управления и цифровой обработки сигналов. Реализованный в нем набор команд обеспечивает цифровую обработку сигналов с эффективностью лучших DSP общего назначения и отвечает требованиям простоты создания компактных программ управления.
Ядро DSP56800
Ядро DSP56800 является программируемым 16-разрядным КМОП процессором, предназначенным для выполнения цифровой обработки сигналов в реальном масштабе времени и решения вычислительных задач. Ядро DSP56800 (рис. 1) состоит из четырех функциональных устройств: управления программой, генерации адресов, арифметико-логической обработки данных, обработки битов. Для увеличения производительности операции в устройствах выполняются параллельно. Каждое из устройств имеет свой набор регистров и логику управления и организовано таким образом, что может функционировать независимо и одновременно с тремя другими. Внутренние шины адресов и данных связывают между собой память, функциональные и периферийные устройства (регистры периферийных устройств расположены в области памяти). Таким образом, ядро реализует одновременное выполнение нескольких действий: устройство управления выбирает первую команду, устройство генерации адресов формирует до двух адресов второй команды, а АЛУ выполняет умножение третьей команды. Есть альтернативная возможность: в третьей команде операцию может выполнять не АЛУ, а устройство обработки битов. Конвейерная архитектура позволяет реализовать параллельную работу устройств, входящих в состав микросхемы, и существенно сократить время выполнения программы.
Конвейерная архитектура ядра DSP56800 оптимизирована для обеспечения эффективности цифровой обработки сигналов, компактности программ управления и обработки сигналов, и удобства программирования. Ниже приведены некоторые характеристики сигнального процессора:
- производительность 40 MIPS при тактовой частоте 80 МГц и напряжении питания 2.7…3.6 В
- наличие набора команд совмещенной обработки, имеющих режимы адресации, характерные для программ цифровой обработки сигналов
- однотактный параллельный 16х16 умножитель-сумматор
- два 36-разрядных аккумулятора, включая биты расширения
- однотактное 16-разрядное устройство циклического сдвига
- аппаратная реализация команд DO и REP
- три внутренние 16-разрядные шины данных и три 16-разрядные шины адреса
- одна 16-разрядная шина внешнего интерфейса
- набор команд управления и цифровой обработки
- режимы адресации такие же, как в сигнальных процессорах, и команды, снижающие объем программы
- эффективный компилятор языка С и поддержка локальных переменных
- стек подпрограмм и прерываний, не имеющий ограничения по глубине.
Для любого высокопроизводительного вычислителя, например цифрового сигнального процессора, критичным является процесс ввода/вывода данных с большой скоростью, т. к. при этом замедляется обработка данных. Снижения производительности можно избежать путем использования гибкого набора команд совмещенной с выполнением вычислительных операций передачи данных. Реализованы два типа операций совмещенной передачи - одинарная совмещенная передача и сдвоенное совмещенное чтение. Оба типа операций существенно повышают скорость цифровой обработки сигналов и численных расчетов. Все команды DSP56800 с совмещенной передачей выполняются за один командный цикл и занимают одно слово в памяти программ.
Однократная совмещенная передача позволяет выполнить арифметическое действие и одну передачу данных (чтение или запись) за один командный цикл. Например, можно одной командой выполнить сложение двух чисел и одновременно данные из регистра АЛУ записать в память. Одновременно с этим в устройстве вычисления адресов производятся соответствующие вычисления.
Команда типа двойного совмещенного чтения допускает выполнение арифметической операции и чтения двух величин из Х-памяти данных в одной команде за один командный цикл. Например, можно в одной команде выполнить умножение двух чисел, просуммировать с третьим, округлить результат и одновременно выполнить пересылку двух чисел из Х-памяти данных в два регистра АЛУ.
Встроенная память
Обычные микроконтроллеры, как правило, имеют объем встроенной в микросхему памяти, достаточный для выполнения сложных алгоритмов управления без использования дополнительной внешней памяти. Многие микросхемы DSP содержат встроенную память небольшого объема и, как правило, им требуется внешняя память для хранения программы. Микросхемы же семейства DSP56F8хх имеют встроенную память большого объема. Гарвардская архитектура DSP обеспечивает наличие двух независимых областей памяти - данных и программ. Для хранения в микросхеме данных и программ используется встроенная оперативная память и флэш-память.
Объём памяти каждого типа для микросхем семейства DSP56F8хх приведен в табл. 1. Как память программ, так и память данных могут быть расширены путем подключения внешней памяти. Микросхемы DSP56F803, DSP56F805, DSP56F807 допускают расширение объема внешней памяти до 64 К слов.
Таблица 1. Объем встроенной памяти микросхем семейства DSP568xx
Встроенная память | DSP56F801 | DSP56F803 | DSP56F805 | DSP56F807 |
Флэш-память программы | 8k x 16 | 32k x 16 | 32k x 16 | 60k x 16 |
Флэш-память данных | 2k x 16 | 4k x 16 | 4k x 16 | 8k x 16 |
ОЗУ программ | 1k x 16 | 512 x 16 | 512 x 16 | 2k x 16 |
ОЗУ данных | 1k x 16 | 2k x 16 | 2k x 16 | 4k x 16 |
Флэш-память программы загрузки | 2k x 16 | 2k x 16 | 2k x 16 | 2k x 16 |
Широкий набор периферийных устройств обычно являлся основной характеристикой микроконтроллеров, встраиваемых в устройства общего назначения. С другой стороны, обычные DSP были ориентированы на численную обработку сигналов и не содержали полного набора встроенных периферийных устройств, необходимых для решения задач управления. Использование внешних периферийных устройств приводит к увеличению числа микросхем, усложнению платы и существенному возрастанию стоимости изделия.
Микросхемы семейств DSP56F8хх (рис. 2, табл. 2) имеют широкий набор встроенных периферийных устройств, пригодных для использования в системах управления всех типов. Этот набор встроенных устройств существенно снижает цену системы по сравнению с реализацией устройств управления на основе традиционных DSP. Более того, так как встроенные устройства имеют заранее определенный интерфейс с ядром DSP (в отличие от внешних периферийных устройств), то упрощаются разработка системы, программирование и управление периферийными устройствами. Таким образом, время разработки программ сокращается.
Рис. 2. Структурная схема микросхемы DSP56F805
Таблица 2. Периферийные устройства микросхем семейства DSP568xx
DSP56824 | DSP56F801 | DSP56F803 | DSP56F805 | DSP56F80 | |
Тактовая частота, МГц | 70 | 80 | 80 | 80 | 80 |
Производительность, MIPS | 35 | 40 | 40 | 40 | 40 |
Интерфейсы | 2SPI, SCI, SSI | SCI, SPI | 2SCI, SPI, CAN |
2SCI, SPI, CAN |
2SCI, SPI, CAN |
АЦП | - | 2 четырехкан. 12-разрядн. |
2 четырехкан. 12-разрядн. |
2 четырехкан. 12-разрядн. |
4 четырехкан. 12-разрядн. |
ШИМ-генераторы | - | 6-канальн. 15-разр. |
6-канальн. 15-разр. |
2 6-канальн. 15-разр. |
2 6-канальн. 15-разр. |
Прочие функциональные особенности | ФАПЧ, 3-кан. таймер | НВИ*, ФАПЧ, 2-кан.таймер | НВИ*, ФАПЧ, 5-кан.таймер | НВИ*, ФАПЧ, 6-кан.таймер | НВИ*, ФАПЧ, 6-кан.таймер |
Наличие в продаже | Выпускается | С 1 кв. 2001 г. | Образцы | Образцы | С 1 кв. 2001 г. |
- два шестиканальных ШИМ-генератора (PWMA & PWMB) с привязкой импульсов к центру или краю временного интервала, программированием длительности "мертвого времени" и защитой в случае возникновения аварийных режимов работы; каждый генератор снабжен тремя сенсорами тока и четырьмя входами аварийного отключения
- два 12-разрядных АЦП с одновременной выборкой, снабженные входными четырехканальными мультиплексорами
- два квадратурных (синусно-косинусных) декодера (Quad Dec0 & Quad Dec1), каждый с четырьмя входами (или два дополнительных четырехканальных таймера A&B)
- два четырехканальных таймера общего применения с шестью входами: таймер C с двумя входами и таймер D с четырьмя входами
- контроллер CAN интерфейса A/B с двухвыводными портами приемопередатчиков
- два двухпроводных последовательных коммуникационных интерфейса (SCI0 & SCI1) или 4 дополнительных линии GPIO
- последовательный интерфейс периферии (SPI) с настраиваемым четырехпроводным портом или четыре дополнительные линии GPIO
- сторожевой таймер контроля функционирования процессора
- два программируемых входа внешних прерываний
- четырнадцать программируемых и восемнадцать мультиплексированных универсальных портов ввода/вывода (GPIO)
- вход принудительного сброса процессора
- порт JTAG/OnCE™ (встроенного эмулятора) для отладки, не зависящей от тактовой частоты процессора
- программируемый генератор с ФАПЧ для формирования тактовой частоты ядра DSP.
В системах управления, как правило, интенсивно используются прерывания от внешних устройств и внутренних периферийных модулей. Обычно микроконтроллеры поддерживают несколько типов внутренних и внешних прерываний и обеспечивают много вариантов маскирования и установки приоритетов.
Обычные DSP обрабатывают только небольшой набор прерываний, которые напрямую взаимодействуют с его ядром. В отличие от них, кристалл DSP56F80х поддерживает большое число прерываний. Хотя число адресуемых прерываний ядра DSP56F8хх мало в сравнении с общим число источников прерываний, многоуровневая встроенная схема мультиплексирования обеспечивает полную и гибкую поддержку 64 источников прерываний, каждый из которых может маскироваться и имеет программно устанавливаемый приоритет.
Средства разработки
Разработка систем на базе микросхем семейства DSP56800 отличается простотой. Внешняя шина обеспечивает выполнение и отладку прикладных программ, размещенных во внешней памяти. Допускается хранение программ и данных во внешней памяти. Чтобы обеспечить функционирование внешней памяти с различным быстродействием программируемые временные задержки для памяти программ и памяти данных могут устанавливаться раздельно.
Набор команд общего назначения, который используется в микропроцессорах с развитыми режимами адресации и командами обработки битов, дает разработчику возможность просто освоить программирование. Сложности, характерные для DSP с предшествующими архитектурами, не доставят ему беспокойства. Программный стек обеспечивает неограниченное число прерываний и вложений подпрограмм, а также поддержку передачи параметров и локальных переменных. Опытный программист найдет широкий набор команд арифметических операций и различные одинарные и двойные обращения к памяти, выполняющиеся совместно с арифметическими операциями. Эффективная работа трансляторов для микросхем с архитектурой DSP56800 обеспечивается использованием в микросхемах команд общего назначения.
Порт отладки JTAG позволяет отлаживать микросхему в составе законченной системы пользователя. Через порт можно задать точки останова программы, проверить и изменить содержимое регистров и ячеек памяти, выполнить другие действия по отладке системы.
Motorola предлагает полный набор программных и аппаратных средств быстрой разработки и отладки систем, реализованных на кристаллах семейства DSP568хх. Средства разработки включают:
- оценочные платы для каждой модификации микросхемы
- интегрированную среду отладки "Metrowerks Code Warrior" со встроенным крос-компилятором языка С.
Motorola разработала новый комплект для разработки встроенного программного обеспечения (Embedded Software Development Kit, SDK), дополняющий существующую среду разработки для DSP568xx. Он формирует программную инфраструктуру, обеспечивающую разработку высокоэффективных программ, полностью переносимых и допускающих повторное использование не только в процессорах семейства DSP568хх, но в будущем и в процессорах с другой архитектурой, поддерживаемой SDK. Этот программный продукт, выпускаемый для цифровых сигнальных процессоров фирмы Motorola, предназначен для ускорения разработки и более быстрого выхода изделий на рынок.
Заключение
Стандартные микроконтроллеры успешно применяются в устройствах управления общего назначения. Однако невысокая производительность не позволяет использовать их в устройствах с повышенными параметрами. Эта ниша заполняется микросхемами семейства DSP568хх, имеющими производительность DSP и снабженными набором периферийных устройств, которые традиционно используют разработчики систем управления.
Архитектура ядра DSP568хх обеспечивает эффективную цифровую обработку данных и решение задач управления. Такие характеристики этой архитектуры, как высокая производительность и набор команд общего назначения, обеспечивают ей лидирующие позиции в тех областях цифровой обработки сигналов, в которых требуется низкая стоимость и малое энергопотребление. Компактность программ и высокая эффективность компилятора позволяет также снизить стоимость системы за счет уменьшения требуемого объема встроенной памяти.
Микросхемы семейства DSP568хх предназначены для применения в недорогих устройствах. Эти микросхемы ориентированы на применение в бытовой технике, для которой необходима низкая стоимость и не требуются высокие параметры. К таким изделиям относятся:
- специализированные и многоцелевые контроллеры
- проводные и беспроводные модемы
- системы беспроводной передачи цифровых сообщений
- цифровые телефонные автоответчики
- устройства управления серводвигателями и электродвигателями переменного тока
- цифровые камеры.
Подробно с особенностями микросхем семейства DSP568xx можно ознакомиться по специализированным публикациям фирмы Motorola:
- DSP56800FM/D: DSP56800 Family Manual.
- DSP56F801-7UM/D: DSP56F80x User's Manual.
- DSP56824UM/D: DSP56824 User's Manual.
- DSP56800WP1/D J.P. Gergen, P.Hoang, E.A. Cchemaly: Novel Digital Processing Architecture with Microcontroller Features, White Paper, Motorola.
- DSP5680x Architecture Captures Best of DSP and MCU Worlds, Internal Paper, Motorola.
Статья подготовлена специалистом отделения микроконтроллеров компании Motorola, авторизованный перевод Н. Есина