Научная статья на тему 'Новые цифровые сигнальные контроллеры с плавающей точкой tms320f28335'

Новые цифровые сигнальные контроллеры с плавающей точкой tms320f28335 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
783
152
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гук Игорь

В статье описываются TMS320x2833x — новые сигнальные цифровые контроллеры с плавающей точкой компании Texas Instruments (TI). В этих контроллерах впервые стал применяться центральный процессор с блоком поддержки операций с плавающей точкой (C28x+FPU), соответствующим спецификации IEEE 754. Основное внимание уделяется особенностям данного поколения контроллеров.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Новые цифровые сигнальные контроллеры с плавающей точкой tms320f28335»

Новые цифровые сигнальные контроллеры

с плавающей точкой TMS320F28335

Игорь ГУК

gii@scanti.ru

В статье описываются TMS320x2833x — новые сигнальные цифровые контроллеры с плавающей точкой компании Texas Instruments (TI). В этих контроллерах впервые стал применяться центральный процессор с блоком поддержки операций с плавающей точкой (C28x+FPU), соответствующим спецификации IEEE 754. Основное внимание уделяется особенностям данного поколения контроллеров.

Основное предназначение цифровых сигнальных контроллеров TMS320C2000 — это реализация всевозможных цифровых автоматов, современных источников питания, а также систем управления электроприводом. Данное семейство контроллеров объединяет технологии DSP (ядро сигнального процессора) и MCU (периферию контроллера). Поэтому компания TI называет их цифровыми сигнальными контроллерами. На рис. 1 показана диаграмма развития контроллеров TMS320C2000.

Контроллеры семейства TMS320C2000 пополнились процессорами с плавающей точкой TMS320x2833x (C28x+FPU). Процессоры C28x+FPU имеют ту же 32-разрядную архитектуру, что и контроллеры с фиксированной точкой TMS320x281x (C28x). Однако при-

менение аппаратного модуля поддержки плавающей точки позволяет разрабатывать эффективные цифровые системы на языке высокого уровня С/С++ и значительно расширяет область возможного применения данных устройств. Можно смело утверждать, что появилось еще одно универсальное решение для широкого круга задач. Функциональная схема контроллера показана на рис. 2.

Основные характеристики поколения 2833х:

1. Ядро процессора с производительностью

300 МБШР8 при частоте 150 МГц включает:

- 32-разрядный умножитель;

- атомарное АЛУ, выполняющее одновременно считывание, умножение и запись результата;

- 32-разрядный умножитель с плавающей точкой;

- три 32-разрядных таймера;

- встроенный модуль отладки (JTAG реального времени).

2. Подсистема памяти:

- три типа памяти — до 512 кбайт Flash, 68 кбайт RAM и загрузочная ROM;

- интерфейс EMIF с возможностью конфигурации в 16- или 32-разрядном режиме;

- 6 каналов модулей прямого доступа к памяти (DMA), поддерживающих EMIF, ADC, McBSP.

3. Периферийные модули:

- 18 модулей ШИМ (PWM), из них 6 модулей имеют режим высокого разрешения (HRPWM);

- высокоскоростное встроенное АЦП;

- 6 модулей захвата (CAP);

Чипы

С у Существующие

С у Образцы

Разрабатываемые С у Перспектива

С281х

• 150 MIPS

• 128—256 кбайт Flash •АЦП 12,5 MSPS •Цена $13,85

10 чипов LF/C240xA

С24х™

• 40 MIPS

• 16—64 кбайт Flash •АЦП 10-бит

• Цена $2

F2833x

• До 150 MIPS/300 MFLOPS

• 128—512 кбайт Flash

• 6 каналов DMA •Цена $13,30

С280х

•60-100 MIPS

• 32-256 кбайт Flash

• 150ps PWM

• Цена $3,25

Рис. 1. Диаграмма развития контроллеров TMS320C2000

Защита кода

TMS320F28335

18PWM (6 HRPWM)

6 САР

2QEP

12-bit ADC

88 GPIO

16/32-bit EMIF

SPI

3SCI

2 McBSP

l2C

2 CAN

Рис. 2. Функциональная схема контроллера TMS320F28335

Таблица 1. Контроллеры TMS320F2833x

TMS320 МГц Flash, кбайт RAM, кбайт DMA PWM/ HRPWM CAP/ QEP Коммуникационные порты Примерная стоимость 1000 шт.

F28335 150 512 68 Да 18/6 6/2 SPI, 3xSCI, I2C, 2xMcBSP, 2xCAN $19,95

F28334 150 256 68 Да 18/6 4/2 SPI, 3xSCI, I2C, 2xMcBSP, 2xCAN $17,95

F28333 100 128 52 Да 16/4 4/2 SPI, 2xSCI, I2C, McBSP, 2xCAN $13,95

- 88 выводов общего назначения (GPIO);

- два канала McBSP с возможностью конфигурации в режим SPI;

- порт CAN 2.0b с 32 почтовыми ящиками (mailboxes);

- интерфейс I2C, поддерживающий скорость 400 кбит/с;

- два импульсных квадратурных декодера (QEP).

4. Питание:

- напряжение питания ядра 1,9 В при 150 МГц,

- напряжение питания периферии 3,3 В. К моменту написания статьи компания TI

предлагала три чипа для данного поколения контроллеров. Их особенности представлены в таблице 1.

К стандартному набору команд процессоров C28x были добавлены команды поддержки операций с плавающей точкой. Однако изменения не коснулись базового набора команд С28х, конвейера, отладчика и архитектуры шины памяти. Это позволило добиться практически полной совместимости программ, написанных для С28х, с новыми процессорами C28x+FPU.

Более подробную информацию по архитектуре и системе команд процессоров поколения C28x+FPU можно посмотреть в следующих руководствах:

• TMS320C28x DSP CPU and Instruction Set Reference Guide (SPRU430). Этот документ относится к контроллерам с фиксированной точкой, но также верен и для C28x+FPU в части, касающейся стандартного набора команд для C28x.

• TMS320C28x Floating Point Unit and Instruction Set Reference Guide (SPRUEO2). Это дополнение к SPRU430 для контроллеров C28x+FPU.

В качестве среды разработки для процессоров C28x+FPU необходимо использовать интегрированную среду разработки Code Composer Studio (CCS) версии выше 3.3, причем компилятор, ассемблер и компоновщик должны быть версии 5.0B или выше. Обратите внимание, что в настоящий момент регистры модуля FPU можно просматривать только в окне наблюдения (watch window) CCS. Входящие в стандартный комплект поставки CCS GEL-файлы для процессоров F2833x автоматически переносит в окно наблюдения регистры FPU. Планируется в последующих версиях CCS добавить регистры FPU в окно регистров (register window).

Все современные эмуляторы для семейства C2000 будут работать и с контроллерами C28x+FPU. Однако контроллеры 281x и 2833x несовместимы по выводам, поэтому перенос любого приложения с 281x на 2833x потребует новой конфигурации разрабатываемой платы.

К моменту написания данной статьи был доступен отладочный модуль eZdsp Starter Kits для процессоров F28335 (рис. 3). Его стоимость составляет $495 (в США). Это отла-

-------------------- '—»»я

•■глііг"гаи5

Рис. 3. Отладочный комплект eZdsp F28335

дочный модуль начального уровня. Он обладает минимальной ценой, но в то же время позволяют провести начальное освоение нового класса устройств и разработку простых проектов. Комплектуется полнофункциональной версией CCS, которая, однако, может работать только с данным отладочным модулем. На плате имеется встроенный эмулятор. Таким образом, набор предоставляет все, что необходимо для быстрого начала разработки на новом процессоре, — отладочную плату, среду разработки и эмулятор для подключения к компьютеру. В дальнейшем разработчику понадобится полная версия CCS стоимостью порядка $600, а также отдельный эмулятор, например SAU510-USB Plus, который поставляется в Россию компанией «Сканти Рус» по цене 16 950 рублей. Таким образом, полный комплект средств разработки для данного контроллера стоит примерно $1800.

Объем памяти SARAM для процессоров с плавающей точкой увеличен. В отличие

Таблица 2. Адреса памяти SARAM

Адрес памяти Блок памяти2833х

0x00 8000-0x00 8FFF LO

0x00 9000-0x00 9FFF L1

0x00 A000-0x00 AFFF L2

0x00 B000-0x00 BFFF L3

0x00 C000-0x00 CFFF L4

0x00 D000-0x00 DFFF L5

0x00 E000-0x00 EFFF L6

0x00 F000-0x00 FFFF L7

0x3 F 8000-0x3F 8FFF Отображение LO

0x3 F 9000-0x3F 9FFF Отображение L1

0x3FA000-0x3FAFFF Отображение L2

0x3F B000-0x3F BFFF Отображение L3

от контроллеров 281х, имеющих 18 кбайт сгруппированных в блоки по 16 слов памяти SARAM, для 2833х доступно до 34 кбайт сгруппированных в блоки по 16 слов. В таблице 2 показаны карты памяти SARAM контроллеров 2833х.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В процессорах 2833х блоки Ь0, Ь1, Ь2 и Ь3 имеют нулевые такты ожидания, как для кода, так и для данных, а блоки Ь4, Ь5, Ь6 и Ь7 имеют нулевой такт ожидания для данных и один такт для кода. Блоки Ь4-Ь7 следует предоставить для доступа к данным, прежде чем они будут использованы в программе. Обратите внимание, что команды, использующие регистр XAR7 в качестве указателя на данные (например, MAC или PREAD), могут значительно снизить производительность, если XAR7 указывает на блоки Ь4-Ь7. В контроллерах 2833х память SARAM доступна через модуль прямого доступа к памяти (DMA) Блоки памяти Ь4-Ь7 могут использоваться как источники и приемники для каждого из 6 каналов DMA.

Размер БЫ^памяти и конфигурация секторов в зависимости от конкретного чипа для поколения контроллеров с плавающей точкой приведен в таблице 3.

Таблица 3. Конфигурация Flash-памяти

Чип F28335 F28334 F28332

Конфигурация памяти 8 секторов 32Kx 16 8 секторов 16Kx16 4 сектора 16Kx16

Всего 256Kx 16 128Kx 16 64Kx16

Компания Tl для программирования Flash предоставляет интерфейс API-функций, с помощью которых возможна разработка практически любых программных решений.

Новые контроллеры предусматривают 15 вариантов начальной загрузки. Конфигурация выводов для выбора одного из возможных вариантов приведена в таблице 4. Важное замечание: режимы 0, 1 и 2 предназначены только для отладки. Невыполнение в приложении функции калибровки АЦП приведет к тому, что АЦП будет работать некорректно.

Адрес точки входа в подпрограмму «загрузка в SARAM» находится в начальном адресе MO. Точки входа в блок Flash-памяти находятся в двух словах непосредственно перед адресом пароля. Точка входа в OTP находится в первом слове блока OTP. Таблица 5 показывает все адреса точек входа в память.

При начальной загрузке адреса с 0x0002 по 0x004E блока M0 резервируются под стек

Таблица 4. Режимы загрузки процессоров TMS320F28335

Номер режима загрузки GPIO87 XA15 GPIO86 XA14 GPIO85 XA13 GPIO84 XA12 Описание

Загрузка из Flash-памяти

E Загрузка по интерфейсу SCI-A

D Загрузка по интерфейсу SPI-A

C Загрузка по интерфейсу I2C-A

B 0 Загрузка по интерфейсу eCAN-A

A 0 Загрузка по интерфейсу McBSP-A

0 Переход на XINTF х 16

0 Переход на XINTF х32

0 Переход на OTP

0 Параллельный I/O

0 Параллельный интерфейс XINTF

0 Переход на SARAM

0 0 Проверка режима загрузки

0 0 Загрузка из Flash (без калибровки A^)

0 0 0 Загрузка из SARAM (без калибровки АЦП)

0 0 0 0 0 Загрузка по интерфейсу SCI-A (без калибровки АЦП)

Таблица 5. Точки входа в подпрограммы начальной загрузки процессоров ТМБ320Р28335

Действие Точки входа Комментарии

Переход на Flash 0x33 FFF6 Два слова перед адресом пароля

Переход на SARAM 0x00 0000 Перемещен из HO в MO

Переход на OPT 0x38 0400 Первое слово OTP

Переход на XINTF (х16 или х32) 0x10 0000 Загрузка в XINTF производится через загрузочную ROM

и секцию кода «.ebss». При загрузке кода в эту область не производится контроль ошибок, поэтому возможно искажение стека загрузочной ROM. В ячейках с 0x0000 по 0x0001 находится адрес точки входа в M0. В режиме «переход на SARAM» загрузка должна начинаться командой перехода на запуск головного приложения. Более подробную информацию по режимам загрузки можно посмотреть в документах:

• TMS320x281x DSP Boot ROM Reference

Guide (SPRU095);

• TMS320x2833x Boot ROM Reference Guide

(SPRU963).

В новых процессорах значительно расширены возможности по управлению питанием. Например, можно выбрать любой входной сигнал, соответствующий выводам GPI00-GPI031, для вывода процессора из режима экономии питания (режимы STANDBY или HALT). Выводы общего назначения (GPI0) можно настроить либо как вывод непосредственно GPIO, либо как периферийный вывод. Выбор сигнала выхода производится в регистре GPIOLPMSEL.

В целях еще большей экономии энергопотребления был добавлен режим включения-выключения задающих генераторов таймеров центрального процессора (ЦП), интерфейса XINTF и логических выводов GPIO. Этот режим задается через регистр PCLKCR3. По умолчанию задающие генераторы включены для таймеров ЦП и для логических выводов GPIO. Задающий генератор по умолчанию для интерфейса XINTF выключен, и его необходимо включать перед использованием XINTF. Для логических выводов

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

В контроллерах F2833x сигналы GPIO присваиваются 32-разрядным портам. Порт A включает GPIO0-GPIO31, порт B — GPIO32-GPIO63 и порт C — GPIO64-GPIO87. Кроме этого, для контроллеров 2833x через управляющий регистр GPIO MUX можно мультиплексировать до трех независимых периферийных устройств на один вывод GPIO, и это в дополнение к возможности переключать отдельные выходы на вход/выход. Для каждого порта GPIO имеется два регистра MUX.

В контроллерах 2833x имеется три режима проверки входных сигналов на GPIO0-GPIO63:

• Синхронизация по системному тактовому генератору (SYSCLKOUT). Это является режимом по умолчанию для всех выходов.

• Метод «окна». Проверяется количество правильных отсчетов и их общее количество. Количество правильных отсчетов определяет, сколько значений сигнала должно иметь один и тот же уровень, чтобы пройти проверку. Можно задать количество, равное 6 или 3 отсчетам для каждого из сигналов GPIO. Общее количество отсчетов определяет размер выборки (размер «окна») и задается для каждой группы из 8 сигналов.

• Синхронизация не используется.

Важное замечание. Для уменьшения задержки сигналов по интерфейсу XINTF порт GPIO64-GPIO87 не имеет функции проверки.

Для каждого вывода GPIO можно включать/выключать внутренний «подтягивающий» резистор, то есть имеется возможность программной настройки подключения «подтягивающих» резисторов.

В семействе контроллеров F2833х появились новые периферийные устройства, а также модифицированы некоторые из старых. Так, например, появились периферийные модули ePWM, eCAP и eQEP.

Модуль

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

Шесть из 18 модулей ePWM могут работать в режиме высокого разрешения (HRPWM). Модуль ШИМ в этом режиме позволяет увеличить разрешение стандартного цифрового широтно-импульсного модулятора. Основными характеристиками HRPWM являются:

• Повышенная разрешающая способность.

• Возможность реализовать как ШИМ, так и импульсно-фазовую модуляцию.

• Гибкое управление периодом и точное позиционирование фронтов сигнала.

• Модуль реализован только в канале «A» модуля ePWM, то есть на выходе EPWMxA. Подробная информация о модулях ePWM

и HRPWM содержится в руководствах “TMS320x28xx, 28xxx Enhanced Pulse Width Modulator (ePWM) Module Reference Guide” (SPRU791) и “TMS320x28xx, 28xxx HighResolution Pulse Width Modulator (HRPWM) Reference Guide” (SPRU924).

Улучшенный модуль захвата Модуль eCAP важен для систем с точной временной привязкой к внешним событиям. Если такой необходимости нет, то модуль eCAP может использоваться как одноканальный ШИМ-генератор. Более подробно о модуле eCAP можно почитать в руководстве “TMS320x28xx, 28xxx Enhanced Capture (eCAP) Module Reference Guide” (SPRU807).

Улучшенный импульсный квадратурный декодер Улучшенный импульсный квадратурный декодер (Enhanced Quadrature Encoded Pulse — eQEP) используется в качестве датчика положения в высокопроизводительных системах контроля движения для определения положения, направления и скорости вращающегося объекта. Подробная информация по модулю eQEP дается в руководстве “TMS320x28xx, 28xxx Enhanced Quadrature Encoder Pulse (eQEP) Module Reference Guide” (SPRU790).

Модуль прямого доступа в память

Модуль прямого доступа в память (DMA) обеспечивает возможность аппаратного переноса данных между периферийными устройствами и памятью без участия ЦП. Модуль DMA может при переносе данных производить их структурную перестройку, что бывает очень полезно при операциях блочной обработки данных.

Управление функционированием DMA осуществляется через прерывания. Причем,

прерывания для каждого канала DMA можно настраивать независимо. Кроме того, каждому каналу соответствует свое собственное прерывание PIE, которое сообщает ЦП, что передача данных по каналу DMA началась либо закончилась. Основные характеристики DMA:

• Индивидуальное прерывание для каждого канала.

• Источники прерываний для запуска каналов DMA:

- АЦП,

- McBSP,

- внешние прерывания 1-7 и 13,

- таймеры ЦП,

- программы прерывания.

• Источники и приемники данных: L4-L7 SARAM, XINTF, регистры АЦП, регистры McBSP.

Детальное описание модуля DMA можно посмотреть в руководстве “TMS320x2833x Direct Memory Access (DMA) Reference Guide” (SPRUFB8).

В семейство 2833x добавлена шина I2C. Подробная информация о ней содержится в руководстве “TMS320x28xx, 28xxx InterIntegrated Circuit (I2C) Reference Guide” (SPRU721).

Модуль

аналого-цифрового преобразования

Значительно переработан модуль аналогоцифрового преобразования (АЦП). К основным изменения относятся:

• Уменьшение ошибки квантования.

• Добавление регистра коррекции сдвига (OFFTRIM).

• Дуальное отображение результата в область данных.

• Определение двух новых прерываний SEQ1 и SEQ2 с целью раздельной обработки условий прерываний.

• Возможность использования каналов DMA для регистра результатов.

Более полную информацию по АЦП можно посмотреть в “TMS320x2833x Analog-to-Digital Converter (ADC) Module Reference Guide” (SPRU812).

Модуль защиты кода

Модуль защиты кода (CSM) предназначен для предотвращения несанкционированного чтения памяти Flash, OTP и L0/L1/L2/L3 SARAM. Кроме этого, логика работы модуля CSM дополнена схемой защиты кода при подключении эмулятора (ECSL). Теперь при любом обращении к памяти Flash, OTP, L0, L1, L2 и L3 при помощи эмулятора схема ECSL будет срабатывать и разрывать соединения. Схему ECSL можно отключать. Подробная информация о модуле защиты кода содержится в следующих руководствах:

• TMS320x281x DSP System Control and Interrupts Reference Guide (SPRU078).

• TMS320x2833x System Control and Interrupts Reference Guide (SPRUFBO).

Особенности интерфейса внешней памяти

Основные особенности интерфейса внешней памяти (XINTF) контроллеров 2833x следующие:

• Поддержка 16- и 32-разрядной шины данных.

• Шина адреса увеличена до 20 линий, что позволяет увеличить адресное пространство в зонах 6 и 7 до 1 Мбайт сгруппированных в блоки по 16 слов в каждой.

• Возможность использования прямого доступа в память для всех трех зон интерфейса XINTF.

• Возможность включения/выключения задающего генератора для XINTF (XTIMCLK).

• Мультиплексирование части выводов интерфейса XINTF с GPIO.

• Наличие трех зон в интерфейсе XINTF: зона 0, зона 6 и зона 7, каждая из которых имеет собственный сигнал “chip select”.

• Все зоны интерфейса XINTF имеют свою область памяти.

• Наличие защиты EALLOW для всех регистров интерфейса XINTF.

Подробно интерфейс XINTF рассматривается в руководствах:

• TMS320F2810, TMS320F2811, TMS320F2812, TMS320C2810, TMS320C2811JMS320C2812 Digital Signal Controllers Data Manual (SPRS174).

• TMS320F28335, TMS320F28334, TMS320F28332 Digital Signal Processors Data Manual (SPRS439).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Многоканальный буферируемый последовательный порт (McBSP) также подвергся модернизации. Основное изменение — замена каналов FIFO на каналы DMA.

Изменения в модулях и интерфейсах Последовательный периферийный интерфейс (SPI), последовательный коммуникационный интерфейс (SCI), а также модуль контроллера сети (eCAN) практически не изменились по сравнению с аналогичными модулями в контроллерах семейства F281x, за исключением исправленных отдельных ошибок.

Следует отметить значительные изменения, которым подвергся модуль обработки

прерываний. Это связано, в первую очередь, с расширением возможностей модуля периферийных прерываний (PIE), а также с изменением логики обработки внешних прерываний.

Векторная таблица модуля PIE обновлена, чтобы обеспечить поддержку:

• прерываний от новых периферийных блоков DMA, ePWM, eCAP, eQEP, I2C;

• прерываний от дополнительных блоков SCI-C и eCAN-B;

• двух новых прерываний АЦП;

• пяти новых внешних прерываний: XINT3-XINT7;

• флагов переполнения регистра и потери значимости регистра при операциях с плавающей точкой, связанных с модулем PIE. Появилась возможность выбора полярности. Для прерываний XINT1, XINT2 и XNMI возможны три варианта:

• генерация прерывания положительным фронтом,

• генерация прерывания отрицательным фронтом,

• генерация прерывания как положительным, так и отрицательным фронтом. Конфигурация выполняется в регистрах

XINT1CR, XINT2CR и XNMICR.

Появилась возможность выбора сигнала для внешнего прерывания. Так, сигнал с порта A (GPI00-GPI031) можно выбрать в качестве сигналов прерываний XINT1, XINT2 и XNMI. Сигналы с порта B (GPI032-GPI063) — для прерываний XINT3-XINT7. Выбор осуществляется при помощи служебных регистров GPI0XIN1SEL, GPI0XINT2SEL, GPI0XINT3SEL, GPI0XINT4SEL, GPI0XINT5SEL, GPI0XINT6SEL, GPI0XINT7SEL и GPI0XNMISEL.

В конце этого краткого обзора новых сигнальных контроллеров TMS320F2833x компании Texas Instruments хотелось бы обратить внимание на появление процессоров TMS320F2823x — целочисленных аналогов процессора с плавающей точкой. Являясь совместимым на уровне выводов, он позволяет удешевить решения, разработанные на основе процессоров TMS320F2833x, если имеется избыток производительности контроллера в решаемой задаче. ■

i Надоели баннеры? Вы всегда можете отключить рекламу.