Новые 16-разрядные DSP-микроконтроллеры

Фирмы Infineon и STMicroelectronics выпускают широкую номенклатуру 16-разрядных микроконтроллеров (МК) серий C16х и ST10x, ядром которых является RISC процессор с мощной периферией и гибкой системой команд. В состав периферии МК входит большое количество гибко конфигурируемых таймеров, АЦП, блоков обработки импульсных сигналов, параллельных портов, асинхронных последовательных интерфейсов (ASC), совместимых с RS232, высокоскоростных синхронных последовательных интерфейсов (SSC), совместимых с интерфейсом SPI, сетевых интерфейсов (CAN). МК серии C16x и ST10x имеют специальные блоки, позволяющие управлять ключевыми и мостовыми схемами на основе современных силовых полупроводниковых устройств (тиристоры, MOSFET и IGBT), что позволяет уменьшить габариты и стоимость современных цифровых систем управления.

С16x и ST10x имеют эффективную совместимую симметричную систему команд, благодаря которой исполняемый код может быть в три — шесть раз короче кода других МК и DSP-процессоров. При одинаковой тактовой частоте МК с малым объемом исполняемого кода обеспечивают более высокое быстродействие. Современные средства отладки и внутренняя структура центрального процессора позволяют в интерактивном режиме отлаживать программы на работающем МК без применения дополнительных устройств, что обеспечивает высокую скорость разработки встроенных программ.

Среди наиболее производительных микросхем серий С16x и ST10x можно назвать широко известные МК архитектуры C167. Высокая степень интеграции позволяет объединить в одном корпусе высокопроизводительное ядро с адресным пространством 16 МБайт, блоки периферии, 32 КБайт внутреннего Flash ПЗУ, 2 КБайт внутреннего ОЗУ и до 6 КБайт внутреннего расширенного ОЗУ (XRAM), необходимого для доступа к некоторым модулям внутренней периферии. Внутреннее ПЗУ подключается к ядру через 32-разрядную шину, что позволяет увеличить скорость выполнения программы. Наличие режима защиты от считывания данных из внутреннего ПЗУ дает возможность защитить код программы от нелегального копирования. За счет четырехэтапной конвейерной обработки большинство инструкций выполняется за один командный цикл. Тактовая частота МК C167 — до 25 МГц. Командный цикл на данной частоте занимает 80 нс, умножение 16 x 16 — 400 нс, деление 32/16 — 800 нс. Время преобразования АЦП — 7,76 мкс. Минимальное время детектирования внешнего прерывания — 40 нс, типовое время реакции на внешнее прерывание — 160…380 нс. Для более эффективной обработки прерываний в МК встроен контроллер PEC, многоуровневый контроллер прерываний и переключаемые банки регистров общего назначения (РОН). Контроллер PEC позволяет автоматически пересылать данные по прерываниям вместо использования программной обработки.

Развитием архитектуры C167 стал МК ST10F168 (см. табл.). Объем внутреннего ПЗУ нового МК увеличен до 256 КБайт. Тактовая частота МК — 25 МГц. ST10F168 программно и аппаратно совместим с C167.

Дальнейшей рост производительности осуществлялся не просто повышением тактовой частоты, но и дополнениями в структуре RISC ядра при сохранении совместимости с предыдущими версиями МК. В ST10F269 добавлен математический сопроцессор (MAC), благодаря которому эти МК выходят на следующую ступень производительности, объединяя в себе вычислительную мощь DSP и большое количество встроенной периферии.

Структурная схема сопроцессора представлена на рисунке. Основные блоки сопроцессора — умножитель 16 x 16 и 40-битовое знаковое АЛУ. Кроме того, в состав сопроцессора входит блок повторения, с помощью которого можно повторять операцию до 8192 раз.

Для того чтобы команды с двумя операндами выполнялись за один командный цикл, в ядро был добавлен новый способ адресации — двойная косвенная адресация с последующей модификацией операндов (зависит от команды сопроцессора). Одним из операндов является РОН, вторым — специальный регистр IDX0 или IDX1. Структура сопроцессора позволяет выполнять команды умножения с суммированием всего за один командный цикл, что дает возможность реализовать алгоритм быстрого преобразования Фурье.

Тактовая частота ST10F269 — 40 МГц, благодаря чему временные характеристики МК улучшаются по сравнению с C167 в 1,6 раза. Объем внутреннего ПЗУ — 256 КБайт, объем XRAM — 10 КБайт.

Внутренняя периферия микроконтроллера ST10F269 идентична периферии ST10F168, но дополнена вторым CAN интерфейсом и таймером реального времени, который отслеживает изменение текущего времени и даты. Кроме того, этот таймер позволяет вывести микроконтроллер по истечению заданного промежутка времени из режима энергосбережения «POWER DOWN», в котором останавливается вся внутренняя периферия и ядро. В ST10F269 существует возможность программировать характеристики выходных драйверов портов ввода/вывода. ST10F269 аппаратно и программно совместим с C167 (кроме команд сопроцессора).

Желая увеличить возможности ST10F269, компания STMicroelectronics выпустила МК ST10F276 с тактовой частотой 64 МГц, в котором добавлены дополнительные блоки ШИМ и АЦП. Внутреннее ПЗУ ST10F276 увеличено до 832 КБайт, а объем XRAM увеличен до 66 КБайт. Микроконтроллер ST10F276 совместим с C167 программно и аппаратно (с минимальными доработками).

Компания Infineon модернизировала выпускаемые микросхемы, создав принципиально новую архитектуру «166 V2», программно совместимую с C167. Архитектура «166 V2» использует 7-этапный конвейер: 2 этапа выборки с предсказанием и 5 этапов выполнения. Благодаря усовершенствованиям внутренней структуры теперь на выполнение команды требуется не два машинных цикла, как в C167, а всего лишь один. Усовершенствованный PEC контроллер позволяет одновременно увеличивать адрес источника и адрес приемника. В состав архитектуры входит математический сопроцессор, который полностью совместим с сопроцессором микроконтроллеров ST10F269 и ST10F276. Деление 32/16 в АЛУ процессора занимает, как и в C167, 21 машинный цикл, но после первых четырех циклов деление переходит в фоновый режим, и ядро приступает к выполнению следующей команды. Умножение 16 x 16 в АЛУ процессора занимает один командный цикл. Выборка данных для команды может осуществляться параллельно с выборкой самой команды, если данные находятся во внутренней памяти. Для улучшения обработки прерываний введены два дополнительных банка РОН, которые расположены в ядре, а не в памяти. Существует возможность автоматической смены банка РОН при входе в обработчик прерывания. Введен дополнительный регистр, указывающий сегмент, где расположена текущая таблица векторов прерываний, что позволяет иметь несколько переключаемых таблиц векторов.

В «166 V2» включена аппаратная поддержка отладки — система внутренней поддержки отладки (OCDS). OCDS использует дополнительную отладочную аппаратуру, включая независимый JTAG интерфейс и интерфейс останова. С помощью OCDS можно осуществить:

  • программную установку точек останова;
  • остановку выполнения программы по внешнему сигналу;
  • чтение/запись во всей внутренней памяти;
  • пошаговое выполнение программы;
  • трассировку обращений к внешней шине;
  • анализ внутренних управляющих регистров.

В дальнейшем скорость работы «166 V2» планируется увеличить до 200 МГц.

Микроконтроллер Infineon XC164 построен на базе архитектуры «166 V2». Тактовая частота МК — 40 МГц, а командный цикл составляет 25 нс (у ST10F276 при тактовой частоте 64 МГц командный цикл — 31,25 нс). Периферия XC164 аналогична С167, CAN-интерфейс — сдвоенный, есть дополнительные блоки синхронного и асинхронного интерфейса. Объем ПЗУ — 128 КБайт, время преобразования АЦП — 2,85 мкс. Асинхронный интерфейс содержит FIFO на прием и передачу. XC164 содержит специальный блок захвата/сравнения, предназначенный для работы с различными типами двигателей. Блок захвата/сравнения позволяет генерировать трехфазный ШИМ сигнал (6 каналов — отдельно для верхних и нижних силовых ключей). Существует возможность экстренной остановки генерации ШИМ сигналов без использования ядра с помощью специального сигнала (CTRAP). XC164 совместим с C167 только программно.

Архитектура и возможности новых МК позволяют реализовывать более совершенные алгоритмы, требующие большого количества вычислений. Оптимизация архитектуры для получения высокой производительности и очень малое время реакции на внешнее воздействие (например, прерывания) позволяют использовать эти МК в различных областях, таких как бортовая авиационная, судовая и автомобильная электроника, цифровые системы связи, робототехника, электромеханика и др.

Структурная схема сопроцессора

Таблица параметров микроконтроллеров

МикроконтроллерST10F168ST10F269ST10F276XC164CSXC167CS
Разрядность CPU, бит1616161616
Конвейер, этапов44477
Тактовая частота, МГц2540644040
Цикл инструкции805031,252525
Наличие сопроцессора++++
Умножение 16х16, нс40010062,52525
Адресное пространство, Мбайт1616161616
Внутреннее ПЗУ, Кбайт256256832128128
Внутреннее ОЗУ (IRAM), Кбайт22222
Внутреннее расширенное ОЗУ (XRAM), Кбайт6106646
Количество векторов прерывания5656567070
Последовательные интерфейсыASC, SSCASC, SSC2 ASC, 2 SSC, I2C2 ASC, 2 SSC2 ASC, 2 SSC
АЦП, каналов/бит/мкс16/10/7,7616/10/4,8524/10/3,014/10/2,8516/10/2,86
Сторожевой таймер ядра+++++
Сторожевой таймер тактовой частоты+++++
CAN12222
Часы реального времени++++
Корпус144 PQFP144 PQFP144 PQFP100 TQFP144 TQFP