Первые цифровые сигнальные контроллеры с плавающей точкой
Разработчики программного обеспечения обычно начинают разработку алгоритма, используя арифметику с плавающей точкой. Затем преобразуют полученный код для запуска его на процессоре с фиксированной точкой. Используя новые микроконтроллеры TMS320F283x от компании Texas Instruments, можно избежать этого этапа разработки.

Рис. 1. Ядро контроллера
Ядро новых цифровых сигнальных контроллеров представлено на рисунке 1. Все контроллеры семейства F2833x являются высокоинтегрированными устройствами и содержат 12-битный 16-канальный АЦП, работающий со скоростью 12,5 MSPS (на сегодняшний день самый быстрый АЦП, встроенный в цифровой сигнальный контроллер), до 18 каналов ШИМ, шесть из которых - с разрешающей способностью 150 пс. Последовательные интерфейсы включают: CAN, I2C, UART, SPI и McBSP. Вся встроенная Flash и 32 кбайт RAM защищены 256-битным паролем. 16/32-битный интерфейс внешней памяти поддерживает асинхронную SRAM, flash, ROM. Контроллер имеет 88 цифровых портов ввода/вывода.
В таблице 1 представлены основные отличия контроллеров нового семейства.
Таблица 1. Основные отличия контроллеров TMS320F2833x
TMS320 | МГц | Flash, кбайт | RAM, кбайт | DMA | PWM/ HRPWM | CAP/ QEP | Последовательные интерфейсы |
---|---|---|---|---|---|---|---|
F28335 | 150 | 512 | 68 | Есть | 12/6 | 6/2 | SPI, 3x SCI, I2C, 2x McBSP, 2x CAN |
F28334 | 150 | 256 | 68 | Есть | 12/6 | 4/2 | SPI, 3x SCI, I2C, 2x McBSP, 2x CAN |
F28332 | 100 | 128 | 52 | Есть | 12/4 | 4/2 | SPI, 2x SCI, I2C, McBSP, 2x CAN |
Все цифровые сигнальные контроллеры семейства TMS320F2833x полностью совместимы по выводам и программному коду.
При реализации алгоритмов управления масштабирование и округление производится намного чаще, чем при реализации алгоритмов цифровой обработки сигналов. Вот почему плавающая точка значительно увеличивает производительность в таких приложениях.
В таблице 2 представлены основные математические операции и количество тактов процессора, которые тратятся при их реализации с помощью процессоров С28х с использованием фиксированной и плавающей точки.
Таблица 2. Основные математические операции и число тактов процессораОперации | C28x 32-bit (Оптимизированный Ассемблер) | float32 (Оптимизированный Ассемблер) |
---|---|---|
Div | 70 | 24 (2,92) |
Sqrt | 69 | 27 (2,56) |
Sin & Cos | 92 | 44 (2,09) |
Atan2 | 118 | 53 (2,23) |
Среднее значение увеличения производительности (эквивалентная частота F2812) | 2,45 (367 MГц) |
Из таблицы видно, что благодаря плавающей точке, математические действия можно выполнять в 2,5 раза быстрее. Эквивалентная частота означает, что разработчик, использующий F2812, должен разогнать процессор до 367 МГц, чтобы получить производительность F28335. Рассмотрим, как изменится число тактов при переходе на плавающую точку в алгоритмах управления. Результаты представлены в таблице 3.
Таблица 3. Изменение числа тактов при переходе на плавающую точкуАлгоритмы управления | C28x 32/64-битная математика (C/C++) | float32(C/C++) |
---|---|---|
State Estimator | 1563 | ~1137 (1,37) |
Park Transform | 107 | ~60 (1,78) |
High Precision PID | 110 | ~70 (1,57) |
Среднее значение увеличения производительности (эквивалентная F2812 частота) | 1,57 (236 MГц) |
Таблица 4. Сравнение скорости выполнения DSP-алгоритмов
DSP | C28x 16/32-bit (Оптимизированный Ассемблер) | float32 (Оптимизированный Ассемблер) |
---|---|---|
Vector Product (N=40) | 57 | 59 (0,97) |
Vector Max (N=40) | 139 | 103 (1,35) |
Vector Sum (N=40) | 134 | 139 (0,96) |
Ecludian Distance (N=40) | 141 | 106 (1,33) |
FFT Complex (256) | ~27000 | ~11000 (2,45) |
IIR Cascaded | 14 cycles/filter | 8 cycles/filter (1,75) |
FIR Single Sample (N=1, T=16) | 39 | 42 (0,93) |
FIR LMS (N=1, T=16) | 102 | 76 (1,34) |
Среднее значение увеличения производительности (эквивалентная F2812 частота) | 1,38 (207 MГц) |
В таблице 4 представлены результаты сравнения скорости выполнения DSP-алгоритмов.

Рис. 2. Увеличение производительности при переходе на плавающую точку
На рисунке 2 показано графически увеличение производительности при переходе на плавающую точку для математических функций, алгоритмов управления и алгоритмов цифровой обработки сигналов.
F283xx подойдет:
- Пользователям, которым нужна производительность больше, чем у F2812;
- Тем, кому нужно сочетание ШИМ с высоким разрешением и 150 мегагерцового процессора;
- Пользователям, которым нужен EMIF на процессорах F2809/F2808;
- Пользователям, желающим использовать контроллер, сочетающий в себе лучшие характеристики устройств F281x и F280x;
- Пользователям, реализующим алгоритмы с плавающей точкой.
Эти устройства увеличат производительность на 50% и упростят программное обеспечение таких приложений как трехфазные инверторы для солнечных батарей, высококлассные источники мощности, автомобильные радиолокаторы, системы управления приводами и др.
Образцы новых цифровых сигнальных контроллеров появятся в сентябре 2007 года. Серийные кристаллы будут доступны в июне 2008 г. Разработка приложения может быть начата уже сейчас с использованием доступных контроллеров F28xx, стартер китов eZdsp и библиотеки IQ Math. Программное обеспечение, разработанное с использованием IQ Math, будет автоматически запускаться на микроконтроллерах F2833x.

Ваш комментарий к статье | ||||