Роман ИВАНОВ Роман ПоПов
st@compel.ru
V V
Самый производительный микроконтроллер
на ядре Cortex-M4
Ядро ARM Cortex-M4
В конце 2011 года компания STMicroelectronics начала серийный выпуск микроконтроллеров STM32F4xx на ядре ARM Cortex-M4. Эта линейка продолжает развитие семейства STM32, дополняя его новым ядром ARM Cortex-M4. На данный момент общая номенклатура семейства составляет более 250 позиций на ядрах Cortex-M0/M3/M4 с широчайшим набором периферии и производительности, предоставляя разработчику богатый выбор решений для своих задач.
Процессорное ядро ARM Cortex-M4 (рис. 1) является последней разработкой в семействе Cortex-M и ориентировано на цифровую обработку сигналов, занимая нишевую часть DSP-приложений, прежде принадлежавшую сигнальным процессорам.
Ядро Cortex-M4 поддерживает такие операции, как умножение с накоплением за один такт, арифметика с насыщением, блок вычислений с плавающей запятой FPU (floating point unit), команды управления потоком данных SIMD (single instruction multiple data). Блок FPU совместим со стандартом IEEE 754 и позволяет процессору выполнять широкий спектр математических операций над вещественными числами.
Благодаря тому, что DSP-инструкции в ядре Cortex-M4 выполняются за один такт и есть поддержка FPU, для контроллеров STM32 стали доступны новые сегменты рынка. Больше нет необходимости использовать дополнительный DSP-контроллер для обработки сигналов, можно воспользоваться одним STM32F4xx, объединяющим обычный контроллер со всем многообразием периферии и функциями DSP на одном чипе.
п п п п п
WIC NVIC
Cortex-M4 CPU
DSP
Модуль с плавающей точкой
Модуль защиты памяти
Отладка и трассировка
3 О.
о
X (U
-е о О
Точки Интерфейс Интерфейс
DAP просмотра ЕТМ наблюдения дпя доступа
данных за данными к FLASH
Матрица шин
Интерфейс для доступа к FLASH
SRAM & peripheral l/F
□ □ □ □ □ □
uuuuuuuuuuu
STM32F4xx можно применять в любых областях, где необходима цифровая обработка сигнала: интеллектуальное управление двигателями, обработка звука и изображений, радиолокация, навигация, релейная защита и т. д. Микроконтроллер без труда справится с цифровой фильтрацией, сверткой или преобразованием Фурье.
Линейка STM32F4
Новая линейка микроконтроллеров STM32F4хх производится по 90-нм технологии с использованием уже доказавшего свою эффективность ускорителя памяти (ART Accelerator), позволяющего работать с памятью без задержек на максимальной скорости. Производительность на тактовой частоте 168 МГц составляет 210 DMIPS, что означает: на данный момент STM32F4xx — лидер на рынке среди ядер Cortex-M4. Однако мало иметь высокопроизводительное ядро, нужно также обеспечивать хорошую пропускную способность между ядром и периферией. И тут у STM32F4xx все в порядке: применяется 7-уровневая матрица шин.
Обобщенная структура микроконтроллеров STM32F4xx представлена на рис. 2.
Основные характеристики семейства:
• Ядро ARM 32-битное Cortex-M4.
• Частота тактирования: 168 МГц, 210 DMIPS/1,25 DMIPS/МГц (Dhrystone 2.1).
• Поддержка DSP-инструкций.
• Новая высокопроизводительная AHB-матрица шин.
Системная периферия
Power supply 1,2 В regulator POR/PDR/PVD
Xtal oscillators 32 кГц + 4 - 26 МГц
Internal RC oscillators 32 кГц+16 МГц
PLL
Clock control
RTC/AWU SysTIck timer
2xwatchdogs (independent and window)
51/82/114/140 l/os
Cyclic redundancy check (CRC)
ART Accelerator
ARM Cortex-M4 168 МГц
Floating point unit (FPU)
Nested vector interrupt controller (NVIC)
JTAG/SW debug/ETM
Multl-AHB bus matrix
до 1 Мбайт Flash memory
до 192 Кбайт SRAM
FSMC/ SRAM/NOR/NAND/CF/ LCD parallel Interface
80-байт + 4-кбайт backup SRAM
512 OTP байт
Периферия обмена данными
Таймеры
2*16-битных motor control PWM Synchronized AC timer
10*16-битных timers 2*32-битных timers
16 каналов DMA
Crypto/hash processor2
3DES, AES 256
SHA-1, MD5, H MAC
True random number generator (RNG)
3*SPI, 2*I2S, 3*I2C
Ethernet MAC 10/100 with IEEE 1588
2*CAN 2.0B
IxllSB 2.0 OTG FS/HS1
1XUSB2.0 0TGFS
SDIO
6*USART LIN, smartcard, IrDA, modem control
Аналоговая периферия
2 канала 2x12 битных DAC
Зх12-битныхАОС 24 канапа / 2,44 MSPS
Temperature sensor
Рис. 1. Ядро ARM Cortex-M4
Рис. 2. Функциональная схема STM32F4хх
Ядро
Cortex-M4 CPU
Ускоритель памяти
injjgg ц^д-ш
1ИЛ.-ЦЯ [аил 1ьад tMiífli 1ьад tMSffli ibjifcffl ьил-gg
Itjiïiffl tMbffll КЯ 1ЙКЯ
Управление арбитражем и ветвлением
Флэш-память
128-битная шина флэш-памяти
Рис. 3. Ускоритель памяти
Ускоритель памяти (АРТ-акселератор)
Для обеспечения высокой скорости работы нового ядра с флэш-памятью компания ST применила уже хорошо зарекомендовавший себя в серии STM32F2хх ART-акселератор памяти. Использование акселератора флэш-памяти вместо увеличения быстродействия самой памяти позволило снизить динамическое потребление и уменьшить общую стоимость готового продукта.
Чтобы обеспечить высокую производительность процессора Со1!ех-М4, ART-акселе-ратор использует кэш очереди предварительных выборок команд и переходов, позволяя выполнять записанные в 128-битной флэш-памяти программы с нулевым временем ожидания на частотах до 168 МГц (рис. 3).
До 1 Mбайт флэш-памяти. До 192 + 4 кбайт SRAM-памяти. Напряжение питания: 1,8-3,6 В (POR, PDR, PVD и BOR).
Внутренние RC-генераторы на 16 МГц и 32 кГц (для RTC).
Внешний источник тактирования 4-26 МГц и для RTC — 32,768 кГц. Модули отладки SWD/JTAG, модуль ETM. Три 12-битных АЦП на 24 входных канала (скорость до 7,2 Мсемплов, температурный датчик).
Два 12-битных ЦАП.
DMA-контроллер на 16 потоков с поддержкой пакетной передачи. 17 таймеров (16 и 32 разряда). Два сторожевых таймера (WDG и IWDG). Коммуникационные интерфейсы: I2C, USART (ISO 7816, LIN, IrDA), SPI, I2S.
• CAN (2,0 B Active).
• USB 2.0 FS/HS OTG.
• 10/100 Ethernet MAC (IEEE 1588v2, MII/RMII).
• Контроллер SDIO (карты SD, SDIO, MMC, CE-ATA).
• Интерфейс цифровой камеры (8/10/12/14-битные режимы).
• FSMC-контроллер (Compact Flash, SRAM, PSRAM, NOR, NAND и LCD 8080/6800).
• Аппаратный генератор случайных чисел.
• Аппаратное вычисление CRC, 96-битный уникальный ID.
• Модуль шифрования AES 128, 192, 256, Triple DES, HASH (MD5, SHA-1), HMAC.
• Расширенный температурный диапазон: -40...105 °C.
Остановимся подробнее на особенностях нового микроконтроллера.
Матрица шин
Новая 32-битная многоуровневая AHB матрица шин (рис. 4) обеспечивает взаимодействие ведущих и ведомых устройств в микроконтроллере, занимается арбитражем при одновременной работе нескольких ведущих.
Через матрицу шин ядро Cortex-M4 получает доступ к данным и инструкциям, находящимся во встроенной SRAM- и флэш-памяти, может обратиться через FSMC к внешней памяти или работать с данными от периферии. DMA осуществляет перемещение данных между периферией и памятью или между различными видами памяти. В STM32F4 появился отдельный блок оперативной памяти 64 кбайт, который подключен непосредственно к шине данных ядра. Это сделано специально для работы без задержек с данными ЦОС — при хранении
Cortex-M4
CPU
168 МГц
64 кбайт SRAM
100 Мбит/с 12,5 Мбайт/с
Bus masters
480 Мбит/с 60 Мбайт/с
Bus slave
FSMC АНВ2 peripheral AHB1 peripheral SRAM 16 кбайт
i— AHB1/APB1 — AHB1/APB2
SRAM 112 кбайт
672 Мбайт/с D S р
fei Flash
672 Мбайт/с I < § I 1 Мбайт
Рис. 4. Многоуровневая матрица шин
Рис. 5. Анализ потребления STM32F4xx в сравнении с конкурентами
различных данных для математических алгоритмов, матриц и прочих математических операций.
DMA-контроллер
Контроллер прямого доступа к памяти DMA (Direct Memory Access) служит для высокоскоростного перемещения данных между периферией и памятью или памятью и памятью без участия CPU. Это разгружает CPU для других операций.
Два DMA-контроллера сочетают в себе возможности мощного коммутатора шин с независимым FIFO-буфером для оптимизации пропускной способности системы, которые также могут работать параллельно. Первый контроллер предназначен для доступа к памяти, а второй — для доступа к периферии.
В сумме контроллеры DMA имеют 16 потоков (по восемь на каждый контроллер), каждый используется для управления запросами доступа к памяти от одного или более видов периферии. Каждый поток может иметь суммарно до восьми каналов (запросов) и имеет арбитраж приоритетности. Приоритеты между DMA-потоками задаются программно (четыре уровня приоритета: очень высокий, высокий, средний и низкий) или аппаратно в случае равенства. Потоки поддерживают работу с кольцевым буфером.
DMA работает со всей наиболее важной периферией: SPI, I2S, I2C, USART, TIMx, DAC, ADC, SDIO, DCMI, Ethernet, USB и модулем шифрования.
Питание микроконтроллера
Для питания микроконтроллера потребуется источник питания с напряжением от 1,8 до 3,6 В. Минимальное напряжение батарейного питания — 1,65 В. Для питания ядра микроконтроллера используется встроенный преобразователь напряжения. Подача питания на аналоговую периферию происходит через специально выделенные для этой цели выводы микросхемы.
Микроконтроллер поддерживает три режима пониженного энергопотребления для достижения наилучшего компромисса между низким потреблением, временем старта и возможными источниками пробуждения.
Режим Sleep
Только ядро останавливает свою работу. Вся периферия продолжает работать и пробуждает процессор по наступлению определенного прерывания или события.
Режим Stop
Все тактирование в зоне 1,2 В останавливается. Все схемы высокочастотного тактирования отключаются. В данном режиме контроллер продолжает работать от низкоскоростных источников тактирования. Состояние SRAM и регистров при этом сохраняется. Микроконтроллер переходит в рабочий режим по заранее сконфигурированному событию.
Режим Standby
Обеспечивает самое низкое потребление. Питание 1,2 В полностью отключается. Данные SRAM и регистров не сохраняются, за исключением резервного домена и резервной SRAM. Для выхода из режима необходимо прерывание от часов реального времени, общий сброс или возрастающий фронт на ножке WKUP.
Новая линейка STM32F4x имеет рекордно низкое потребление — 230 мкА/МГц, что составляет порядка 38,6 мА на частоте 168 МГц. Такие результаты были получены при проведении теста Coremark из флэш-памяти при отключенной периферии. Это возможно благодаря 90-нм технологии, позволяющей ядру CPU работать при напряжении питания 1,2 В, а также использованию фирменного ART-акселератора памяти, который уменьшает количество обращений к флэш-памяти, и масштабированию напряжения для оптимизации производительности/мощности потребления.
Результаты сравнительных тестов малопотребляющих микроконтроллеров и STM32F4xx показали, что эти контроллеры имеют небольшое преимущество, только если они 90%
своего рабочего времени находятся в режиме ожидания и фактически ничего не делают. Чем больше загружен микроконтроллер, чем больше преимущество STM32F4xx по сравнению с конкурентами (рис. 5).
Интерфейсы обмена данными
PC-интерфейс
Микроконтроллер содержит три модуля I2C. Каждый модуль может работать в режиме «ведущий» (Master) или «ведомый» (Slave). Поддерживается режим multimaster. Доступны стандартные (Standard) скорости передачи данных до 100 кГц и быстрая передача данных на частотах до 400 кГц. Возможна 7- и 10-битная адресация. Присутствует аппаратный блок проверки пакетных ошибок PEC (Packet Error Checking). 12С-модули поддерживают два расширенных протокола: SMBus 2.0 (System management bus) и PMBus (Power management bus).
SPI-интерфейс
Микроконтроллер содержит три модуля SPI. Каждый модуль может работать в режиме Master (c поддержкой режима мultimaster) или Slave и поддерживать полнодуплексную, полудуплексную и симплексную передачу данных. Модуль SPI1 поддерживает скорость до 37,5 Мбит/с. Остальные модули — до 21 Мбит/с. Данные передаются 8/16-битными словами старшим или младшим битом вперед. Полярность и фазу тактового сигнала можно программно изменить.
Встроена аппаратная поддержка вычисления циклически избыточного кода CRC для обеспечения надежной связи: значения CRC могут быть переданы в качестве последнего байта в режиме Tx, автоматически проводится проверка ошибок CRC для последнего полученного байта.
PS-интерфейс
STM32F4хх имеет на борту два модуля I2S. Оба модуля мультиплексированы с SPI-интерфейсом. Этот интерфейс предназначен для работы с цифровыми звуковыми данными. В схеме тактирования теперь имеется выделенный модуль PLL (PLLI2S), который позволяет генерировать частоты сэмплирования аудиосигнала с частотами от 8 до 192 кГц, с точностью порядка 0,01%. Модули работают в режиме Master или Slave и поддерживают полнодуплексную и симплексную передачу данных. Данные предаются по 16, 24 или 32 бита. Осуществляется поддержка протоколов: стандарт I2S Phillips, стандарт PCM, MSB и LSB-выравнивание данных.
USART-интерфейс
STM32F4xxx содержит четыре модуля USART (синхронные) и два модуля UART (асинхронные). Модули USART1 и USART6 могут работать на скорости до 10,5 Мбит/с. Остальные — до 5,25 Мбит/с.
Данные предаются 8/9-битными словами с одно- или двухстоповыми битами и контролем четности. Поддерживается NRZ (Non Return to Zero) стандарт передачи данных.
Модули USART могут быть использованы для подключения к шине LIN, часто используемой в автомобильных приложениях, работать как кодер/декодер инфракрасного сигнала IrDA. Для работы с модемами имеются дополнительные линии управления RTS и CTS. Возможно подключение смарт-карт в соответствии со стандартом ISO 7618-3.
В дополнение ко всем описанным функция USART может работать в режиме SPI. В этом режиме модуль USART работает как ведущее SPI-устройство.
CAN-интерфейс
STM32F4 содержит два контроллера CAN. Контроллеры CAN поддерживают стандарты 2 А и 2 В, активную и пассивную передачу данных на скорости до 1 Мбит/с. Работают со стандартными (11-битными) и расширенными (29-битными) кадрами. Каждый CAN-контроллер имеет три буфера сообщений на передачу, FIFO с тремя каскадами и 28 распределенных масштабируемых банков фильтров.
SDIO-интерфейс
SDIO позволяет микроконтроллеру обмениваться информацией с SD/SDIO/MMC-картами памяти и CE-ATA совместимыми устройствами. STM32F4хх поддерживает следующие спецификации: MultiMediaCard System версии 4.2 и более ранних версий (поддержка трех режимов: 1/4/8 бит), SD Memory Card версии 2.0, SD I/O Card версии 2.0 (поддержка двух режимов: 1/4 бит), CE-ATA цифровой протокол версии 1.1.
Скорость передачи данных — до 48 МГц в 8-битном режиме.
USB-интерфейс
Микроконтроллер содержит два USB-модуля. Первый — USB OTG full-speed. Поддерживает режимы Device, Host и OTG. Физический уровень выполнен на кристалле. USB OTG FS совместим со спецификациями USB 2.0 и OTG 1.0. Поддерживает протоколы SRP (Session request protocol) и HNP (Host negotiation protocol).
Второй — USB OTG high-speed. Поддерживает режимы Device, Host и OTG на скорости до 480 Мбит/с. Физический уровень для скорости 12 Мбит/с (низкая скорость) выполнен на кристалле. Для реализации скорости в 480 Мбит/с (высокая скорость) необходим внешний высокоскоростной трансивер, подключаемый через интерфейс ULPI.
Ethernet-интерфейс
Модуль Ethernet представлен не во всех микроконтроллерах линейки STM32F4, а только в сериях STM32F407xx и STM32F417xx. Ethernet-модуль соответствует стандар-
ту IEEE802.3 и обеспечивает передачу данных на скоростях 10 и 100 Мбит/с. Для синхронизации часов на аппаратном уровне выполнена поддержка протокола IEEE1588 v2.
Для подключения к физической линии (медь, оптика) необходимо использовать внешний трансивер физического уровня (PHY). PHY подключается через порт MII (17 сигналов) или RMII (9 сигналов).
Цифровой интерфейс камеры (DCMI)
Представлен только в сериях STM32F407xx и STM32F417xx. DCMI позволяет соединить микроконтроллер с камерами и CMOS-сенсорами через параллельный 8/10/12/14-битный интерфейс. Доступны внутренняя и внешняя синхронизация кадров и строк, работа в непрерывном или покадровом режиме и функция обрезки изображения. Поддерживаются форматы: 8/10/12/14-битное прогрессивное видео, YCbCr 4:2:2 и RGB 565, сжатые данные JPEG.
Контроллер статической памяти (FSMC)
Модуль FSMC представлен только в микроконтроллерах с корпусами, содержащими 100, 144 или 176 выводов. FSMC дает возможность подключения к микроконтроллеру графических LCD-дисплеев и внешней статической памяти.
FSMC способен поддерживать связь с внешней синхронной/асинхронной памятью и 16-битными PC-Card устройствами. Основное назначение FSMC — это перевод данных внутри микроконтроллера в доступный для соответствующих внешних устройств вид и обеспечение временных параметров связи этого протокола.
Все внешние устройства получают свои адреса в адресном пространстве, сигналы данных и управления. Доступ к каждому внешнему устройству осуществляется посредством индивидуального сигнала выбора микросхемы. Одновременное обращение к двум различным микросхемам внешней памяти невозможно.
Поддерживаются следующие типы памяти: PC Card/Compact Flash, SRAM, PSRAM, NOR Flash и NAND Flash.
Параллельный LCD-интерфейс поддерживает два режима работы с LCD-контрол-лерами — Intel 8080 и Motorola 6800, но является довольно гибким для адаптации к другим LCD-интерфейсам.
Аналоговая периферия (АЦП И ЦАП)
Микроконтроллер содержит три анало-гово-цифровых преобразователя (АЦП) и два одноканальных цифро-аналоговых преобразователя (ЦАП).
АЦП обладает разрешающей способностью 12 бит и очень высокой скоростью преобразования в 2,4 МГц в одиночном
режиме и 7,2 МГц — в тройном режиме. Максимальное количество входных аналоговых каналов — 24. Есть встроенный источник опорного напряжения.
Гибкая система настроек встроенного аналогового мультиплексора позволяет задавать любые последовательности преобразования аналоговых каналов (за исключением одновременного преобразования одного канала на нескольких АЦП). Настройки АЦП позволяют производить однократные и циклические измерения.
Скорость работы АЦП зависит от напряжения питания микроконтроллера. Для проведения преобразований на максимальной скорости до 7,2 МГц необходимо соблюдать условие: напряжение питания микроконтроллера должно составлять 2,4-3,6 В. При снижении напряжения до 1,8 В скорость преобразования уменьшается до 1,2 МГц.
Для контроля внутренней температуры микроконтроллера встроен температурный датчик. На его выходе формируется напряжение в зависимости от окружающей его температуры. Выход датчика через мультиплексор подключается к АЦП. Используя температурный датчик, можно измерять температуру от -40 до +125 °C с точностью ±1,5 °C.
ЦАП обладает разрешающей способностью 12 бит, преобразование возможно в 8/12-битовом формате с выравниванием этого результата по левому или правому краям. Так как ЦАП содержит два канала, есть возможность формирования стереосигнала. Доступна функция автоматической генерации шумового сигнала с меняющейся амплитудой или треугольного сигнала.
Таймеры
Микроконтроллеры новой линейки могут содержать до 17 таймеров: два 16-битных таймера с расширенными функциями, два 32-битных таймера общего назначения, восемь 16-битных таймеров общего назначения, два 16-битных базовых таймера, два сторожевых таймера (независимый и оконного типа) и 24-битный системный таймер. Часть таймеров можно конфигурировать на работу в муль-тирежимном формате, что позволяет строить системы из таймеров. Например, повысить разрядность счетчика до 48, сконфигурировав последовательно три таймера, или синхронно запускать сразу несколько таймеров.
Таймеры с расширенными функциями имеют очень большую функциональность. Это комплементарные выводы для поддержки трехфазных двигателей, поддержка режимов счета в прямом и обратных направлениях, генерация ШИМ, каналы захвата/сравнения сигнала, режим одиночного импульса, поддержка DMA, дополнительные функции безопасности в случае сбоев, поддержка интерфейса энкодера и датчика Холла.
Таймеры общего назначения аналогичны таймерам с расширенными функция-
ми, за исключением функций, связанных с управлением двигателями. Отличия между таймерами общего назначения заключаются в различном количестве каналов захвата/сравнения, в поддержке направления счета и поддержке DMA или ее отсутствии.
Базовые таймеры имеют наименьший функционал: отсутствуют каналы захвата/сравнения, поддержка функций управления двигателями. Они, как правило, предназначены для использования в качестве обычных счетчиков.
Область резервного питания, часы реального времени
В микроконтроллерах STM32F4x реализована область резервного питания, позволяющая работать микроконтроллеру при пропадании основного питания и поддержки частичной функциональности микроконтроллера. Область резервного питания состоит из трех составляющих:
• часы реального времени (RTC);
• 4 кбайт памяти резервной SRAM;
• 20 байт резервных регистров (80 байт).
Часы реального времени выполнены в виде
32-разрядного счетчика с полной аппаратной поддержкой 0,5 секунды, секунд, минут, часов (в 12- или 24-часовом формате), а также день (день недели), дата (день месяца), месяц и год, представленные в двоично-десятичном формате (BCD). Работа с 28-, 29-дневными (високосный год) и 30-, 31-дневными месяцами происходит в автоматическом режиме. Поддерживается переход на летнее/зимнее время. Функция цифровой калибровки позволяет компенсировать неточность кварцевого резонатора. Часы реального времени реализуют дополнительные функции — два конфигурируемых будильника, защиту от несанкционированного доступа с сохранением времени взлома и очисткой резервных регистров. Часы могут оставаться активными во всех режимах работы микроконтроллера и выводить его из различных режимов сна.
4 кбайт резервной памяти доступны только для CPU. Эта память сохраняет свой контекст в низкопотребляющих режимах и при пропадании основного питания микроконтроллера. Но только при условии, что подключено батарейное питание на специально предусмотренный вывод микросхемы Vbat, который при доступности основного питания не потребляет дополнительной энергии.
В линейке STM32F4x потребление часов реального времени и 4-кбайт резервной памяти значительно снижено: и RTC, и SRAM потребляют менее 1 мкА, а вместе — менее 2 мкА.
Модуль шифрования и хеширования
Модуль шифрования (CTyptographic accelerator) представлен только в сериях STM32F415 и STM32F417. Он позволяет аппаратно реа-
лизовывать различные алгоритмы шифрования с очень высокой скоростью «на лету», что необходимо для обеспечения конфиденциальности информации в широком круге задач.
Реализованы следующие алгоритмы шифрования:
• DES (Data Encryption Standard) — симметричный шифр;
• Triple DES (TDES, 64/128/192-битные ключи) — симметричный блочный шифр;
• AES (Advanced Encryption Standard, 128/192/256-битные ключи) — симметричный блочный шифр.
Поддержка хеширования:
• SHA-1 (Secure Hash Algorithm-1) — алгоритм криптографического хеширования;
• MD5 (Message Digest 5) — 128-битный алгоритм хеширования;
• HMAC (Hash-based message authentication code) — хеш-код идентификации сообщений.
В таблице представлен сравнительный анализ оценки пропускной способности STM32F4xx в Мбайт/c для работы с данными на основе вышеприведенных алгоритмов. По таблице видно, что с помощью STM32F4x можно проектировать приложения с криптографической обработкой данных «на лету», практически не используя ресурсы ядра микроконтроллера.
Таблица. Пропускная способность STM32F4w в Мбайт/c
STM32F4x AES-128 AES-192 AES-256 DES TDES
Максимально достижимая 192 168 149,33 84 28
Без DMA 72,64 72,64 62,51 43,35 16
С DMA 179,2 168 149,33 84 28
Программная 1,38 1,14 0,96 0,74 0,25
Порты ввода/вывода общего назначения
Микроконтроллеры оснащены большим количеством портов ввода/вывода общего назначения GPIO (General-Purpose Input Output). На данный момент доступны корпуса LQFP и BGA, максимальное количество выводов микроконтроллера составляет 176. Приведем краткие характеристики портов ввода/вывода:
• Регистры управления 16 бит.
• Толерантность к 5 В.
• Состояния — подтяжка к питанию/«земле», третье состояние, альтернативные функции, аналоговое состояние.
• Конфигурация скорости — 2, 25, 50 и 100 МГц.
• Механизм защиты конфигурации от изменения.
• Генерация прерывания почти любым выводом.
Основное же отличие от STM32F1x заключается в более гибком подходе при конфигурировании альтернативных функций
(USART, АЦП и т. д.) на одну ножку. Работа портов ввода/вывода стала намного быстрее.
Отладка
Для подключения микроконтроллера к отладочным средствам используется стандартной JTAG-интерфейс или двухпроводный SWD (Serial Wire Debug). Выходы SWD-интерфейса мультиплексированы с выходами JTAG. Разработчику предоставляется возможность в выборе интерфейса отладки/программирования.
Интегрированная макроячейка трассировки (Embedded Trace Macrocell) значительно расширяет функции отладки, позволяя наблюдать за потоком инструкций и данных внутри ядра CPU в реальном времени. Данные выводятся через небольшое количество ETM-выводов на внешний TDA-анализатор.
По сообщениям специалистов компании MathWorks, хорошо известной по инструментарию Matlab, в 2012 году должен появиться специальный пакет в Matlab для генерирования и создания кода алгоритмов цифровой обработки сигналов для ядра Cortex-M4. Это заметно облегчит применение ЦОС в микроконтроллерах на ядре Cortex-M4.
При выпуске на рынок новой линейки микроконтроллеров на ядре Cortex-M4 STMicroelectronics следует своим традициям и предлагает разработчикам недорогую отладочную плату STM32F4DISCOVERY из серии плат Discovery. За невысокую цену, менее 900 рублей, разработчик получает полноценную отладочную плату с программатором-отладчиком и может начинать осваивать STM32 без дополнительных затрат. На этот раз в этой отладочной плате, помимо встроенного программатора-отладчика, присутствуют МЭМС-датчики (акселерометр и микрофон), а также USB и аудиокодек с разъемом для подключения наушников или колонок. Новые компоненты на отладочной плате вкупе с ядром Cortex-M4 и периферией STM32F4x открывают разработчику новые возможности.
Заключение
Новая линейка микроконтроллеров STM32F4 на базе ядра Cortex-M4 вобрала в себя все лучшее от своих предшественников на ядре Cortex-M3 — серий STM32F1 и STM32F2. Основное преимущество новой серии — значительно возросшая производительность: скорость работы ядра выросла до 168 МГц. Усовершенствованный ускоритель памяти позволяет работать с флэш-памятью на этой частоте без задержек. Осуществляется и поддержка DSP-инструкций и операций с плавающей точкой. Рост производительности ядра также сказался на увеличении скорости работы периферии.
Все новые микроконтроллеры на базе ядра СоЛех-М4 программно совместимы с существующими сериями STM32F1xx и STM32F2xx. Совместимость по ножкам между STM32F2x и STM32F4x полная, то есть разработчику доступна полная гибкость при переходе между ядрами СоЛех-М3 и СоЛех-М4. К сожалению, полной совместимости по выводам между STM32F1x и STM32F2x/STM32F4x нет, может не совпадать от двух до трех ножек (это ножки питания и «земли»), но вся периферия сохранила свое положение. Рекомендации по созданию
универсальной платы для использования STM32F1x и STM32F2x/STM32F4x приведены в документации.
Невысокая цена, низкое потребление и новые возможности STM32F4xx по цифровой обработке сигналов, несомненно, сделают эти новые микроконтроллеры лидером в своем сегменте рынка.
Недавно компания STMicroelectronics сообщила о выходе на рынок новой линейки 32-разрядных микроконтроллеров STM32F0xx на ядре СоЛех-М0. Эта линейка позиционируется для рынка недорогих
8/16-битных решений. Фактически семейство STM32 теперь перекрывает весь рынок 8/16/32-битных микроконтроллеров, позволяя разработчику просто выбрать платформу СоЛех-М для всего круга задач. При этом по максимуму соблюдается программная совместимость и совместимость по ножкам, что позволяет с наименьшими затратами переходить от одного микроконтроллера к другому в случае нехватки или переизбытка ресурсов. В массовое же производство новая линейка STM32F0xx выйдет в III квартале 2012 года. ■