Ядро
Как уже отмечалось, новые микроконтроллеры
STM32F2xx созданы на основе зарекомендовавшего себя ядра ARM Cortex-M3.
Максимальная тактовая частота по сравнению с предшественниками (серия
STM32F1xx) увеличилась с 72 до 120 МГц.
Обычно быстродействие процессоров превышает
быстродействие Flash-памяти, которая вынуждает ожидать процессор,
работающий на высокой частоте. Новый ART-акселератор памяти (Adaptive
Real Time Memory) позволяет в полной мере использовать высокое
быстродействие ядра ARM Cortex-M3 - процессор может работать с
Flash-памятью без циклов ожидания на собственной частоте, что значительно
повышает быстродействие всей системы в целом.
Чтобы обеспечить высокую производительность
процессора, ART-акселератор использует кэш очереди предварительных выборок
команд и переходов, позволяя выполнять записанные в 128-битной
Flash-памяти программы с нулевым временем ожидания на частотах до 120 МГц
(рисунок 2).
Рис. 2. Структура ART-акселератора
AHB-матрица шин
Увеличение тактовой частоты ядра не могло
обойтись без увеличения производительности AHB-матрицы шин (частота работы
выросла до 120 МГц). Новая 32-битная матрица шин связывает все ведущие
устройства (Master - CPU, DMA, Ethernet, USBHS) и ведомые устройства (Slave -
Flash, RAM, FSMC, AHB и APB-периферия). Также матрица шин обеспечивает
стабильную и эффективную работу в случае нескольких высокоскоростных
устройств, работающих параллельно (рисунок 3).
Рис. 3. Структура AHB-матрицы шин
Память
Вторым важным достоинством встроенной
Flash-памяти, помимо быстродействия, является ее объем, который достигает
1 Мбайт. В настоящий момент это - максимальное значение среди
микроконтроллеров на ядре ARM Cortex-M3. Объем SRAM-памяти достигает 128
кбайт. Также отметим, что по сравнению с предыдущим семейством область
резервной памяти SRAM, контекст которой сохраняется (если это разрешено
пользователем) при пропадании основного питания и автоматического
переключения на батарейное питание, увеличилась до 4 кбайт и теперь
защищена ключом защиты от несанкционированного чтения. Также имеется
возможность подключения внешней памяти через встроенный контроллер памяти
FSMC.
Для защиты памяти от нежелательных изменений
служит встроенный блок защиты памяти MPU (Мemory Protection Unit),
использование которого (например, в операционных системах реального
времени) позволяет значительно повысить надежность приложений за счет
защиты критичной информации, используемой операционной системой, от
изменений. MPU может работать с восемью защищаемыми областями, которые
могут быть поделены еще на восемь подобластей.
Питание, сброс и тактирование
Для питания микроконтроллера потребуется
источник питания с напряжением 1,8...3,6 В. Для питания ядра используется
встроенный преобразователь напряжения. Подача питания на аналоговую часть
осуществляется через отдельные выводы, специально выделенные для этой
цели. Когда отсутствует постоянное питание, возможно использование
батарейного, подаваемого через специальный вывод. Также в BGA-корпусах
производитель предусмотрел отдельные 1,2 В выводы для питания ядра
микроконтроллера с внешним более эффективным регулятором напряжения.
Микроконтроллер имеет встроенные схемы сброса
при включении питания POR (Power-on Reset) и сброса при падении
напряжения питания PDR (Power-down Reset), которые гарантируют
стабильную работу контроллера при включении и выключении. Кроме того,
возможен сброс по определенному уровню напряжения питания BOR (Brownout
Reset).
Для отслеживания напряжения питания без сброса
микроконтроллера служит программируемый детектор напряжения PVD (Programmable
Voltage Detector), который генерирует прерывание при прохождении
напряжением питания определенной границы.
Для разработки приложений, требующих низкого
энергопотребления, микроконтроллеры имеют три специальных режима работы.
Режим «Sleep». Процессор останавливает свою
работу, а вся периферия продолжает работать и пробуждает процессор по
наступлению определенного события. Потребление падает до единиц мА.
Режим «Stop». Потребление падает до десятков
мкА. Все тактирование в зоне питания 1,2 В останавливается, PLL
отключается. Состояние SRAM и регистров при этом сохраняются. Для выхода
из режима необходимо прерывание от модуля EXTI.
Режим «Standby». Обеспечивает самое низкое
потребление. Внутреннее питание 1,2 В отключается. Состояния SRAM и
регистров не сохраняются. Для выхода из режима необходимо прерывание от
часов реального времени, общий сброс или возрастающий фронт на ножке WKUP.
Микроконтроллер содержит улучшенный по
сравнению с предыдущей серией встроенный откалиброванный при изготовлении
RC-генератор (точность ±1%), работающий на частоте 16 МГц. Его вполне
можно использовать в приложениях, не требующих высокой точности и
стабильности частоты. В качестве внешнего источника можно использовать
кварцевый резонатор (или генератор) с частотой 4...26 МГц.
Для тактирования часов реального времени
необходимо подключить внешний кварцевый генератор на частоту 32,768 кГц
(можно также использовать внутренний низкочастотный осциллятор, но
точностные характеристики при этом будут ниже).
Аналоговая периферия (АЦП и ЦАП)
Микроконтроллер содержит три
аналогово-цифровых преобразователя (АЦП) и два одноканальных
цифро-аналоговых преобразователя (ЦАП). АЦП обладает разрешающей
способностью 12 бит и скоростью преобразования два мегасемпла в одиночном
режиме и шесть мегасемплов - в тройном режиме. Максимальное количество
входных аналоговых каналов - 24. С помощью встроенного мультиплексора
осуществляется коммутация аналоговых каналов и АЦП. Удобная система
настроек АЦП позволяет производить однократные и циклические измерения,
задавая любой порядок следования аналоговых каналов. Также за АЦП
сохранились различные варианты гибкой настройки как в одиночном, так и в
обобщенных режимах. Преобразование на полных скоростях возможно при
напряжении питания 2,4...3,6 В, а на более медленных скоростях - теперь
возможно при снижении напряжения питания до 1,65 В.
Если есть необходимость контроля внутренней
температуры микроконтроллера, можно использовать встроенный температурный
датчик. На его выходе формируется напряжение в зависимости от окружающей
температуры. Выход датчика через мультиплексор подключается к АЦП1.
Используя температурный датчик, можно измерять температуру от -40 до 125°C
с точностью ±1,5°C.
ЦАП обладает разрешающей способностью 12 бит,
преобразование возможно в 8/12-битовом формате с выравниванием этого
результата по левому или правому краям. Также ЦАП имеет возможность
автоматической генерации шумового сигнала с меняющейся амплитудой и
треугольного сигнала.
DMA
Контроллер прямого доступа к памяти DMA (Direct
Memory Access) состоит из двух модулей - DMA1 и DMA2 - и содержит 16
каналов. Каналы поделены на две группы: восемь каналов для модуля DMA1 и
восемь - для модуля DMA2. Контроллер DMA осуществляет автономную передачу
данных из памяти в память, из периферийного устройства в память, из памяти
в периферийное устройство и из периферийного устройства в периферийное
устройство. При передаче больших объемов данных модуль может
последовательно передавать данные в кольцевой буфер. DMA работает со всей
наиболее важной периферией: SPI, I2S, I2C, USART,
SDIO, DCMI, USB, Ethernet, ADC и DAC.
Таймеры
Микроконтроллеры новой линейки могут содержать
до 17 таймеров: два 16-битных расширенных таймера для применения в
широтно-импульсных модуляторах, два 32-битных таймера общего назначения,
восемь 16-битных таймеров общего назначения и два 16-битных основных
таймера, два сторожевых таймера (независимый и оконного типа), 24-битный
системный таймер.
Отладка
Для подключения микроконтроллера к отладочным
средствам используется двухпроводный SWD- (Serial Wire Debug) или
четырехпроходный JTAG-интерфейс. Выходы SWD-интерфейса мультиплексированы
с выходами JTAG. После включения питания или сброса в качестве отладочного
порта инициализируется JTAG-интерфейс. Для перехода к использованию SWD
достаточно послать определенный код на две ножки JTAG, с которыми он
мультиплексирован. При необходимости можно программно переконфигурировать
выводы отладочного порта в выводы общего назначения.
Интегрированная макроячейка трассировки (Embedded
Trace MacrocellTM) также расширяет функции отладки и позволяет
наблюдать за потоком инструкций и данных внутри ядра CPU в реальном
времени. Данные выводятся через ножки ETM на внешний TDA-анализатор.
Анализатор подключается к компьютеру через USB, Ethernet или любой другой
высокоскоростной канал.
Порты ввода-вывода общего назначения
Микроконтроллер оснащен большим количеством
портов ввода-вывода общего назначения GPIO и может иметь до 140
двунаправленных выводов с возможностью генерации прерывания. Максимальная
скорость переключения 100 МГц. Каждый порт может быть программно
сконфигурирован как выход, вход или настроен на альтернативную функцию.
Возможно использование внутренних подтягивающих резисторов к напряжению
питания или нулю.
Коммуникационные интерфейсы
I2C-интерфейс (Inter-Integrated
Circuit). Микроконтроллер содержит три
модуля I2C. Каждый модуль может работать в режиме «Master» (c
поддержкой режима «Мultimaster») или «Slave». I2C-интерфейс
поддерживает стандартные частоты передачи данных до 100 кГц и быструю
передачу данных на частотах до 400 кГц. Возможна семи- и 10-битная
адресация. В дополнение к стандартному набору I2C у
микроконтроллера есть аппаратный блок проверки пакетных ошибок PEC (Packet
Error Checking).
USART-интерфейс (Universal
Synchronous Asynchronous Receiver Transmitter).
STM32F2xx содержит четыре модуля USART и два модуля UART (Universal
Asynchronous Receiver Transmitter). Модули USART1 и USART6 могут работать
на скоростях до 7,5 Mбит/с. Остальные - до 3,75 Mбит/с. Возможна работа с
LIN-, IrDA-устройствами, а также с модемами и смарт-картами. К
нестандартным возможностям USART-модуля можно отнести возможность его
работы с SPI-устройствами. В этом режиме модуль USART работает как ведущее
SPI-устройство.
SPI-интерфейс (Serial Peripheral
Interface). Микроконтроллер содержит три
модуля SPI. Каждый модуль может работать в режиме «Мaster» или «Slave» и
поддерживать дуплексную и симплексную передачу данных. Модуль SPI1 может
работать на скоростях до 30 Mбит/с. Остальные - до 15 Мбит/с. Для каждого
SPI можно задать полярность и фазу тактового сигнала. Данные могут
передаваться 8/16-битными словами. В дополнение к стандартному набору
функций SPI-модуля у микроконтроллера есть два аппаратных блока вычисления
циклически избыточного кода CRC (один - для передачи, второй - для
приема). Эта функция очень важна для подключения карт памяти SD/MMC.
I2S-интерфейс (Inter-Integrated
Sound). STM32F2xx содержит два модуля I2S.Оба
модуля мультиплексированы с SPI-интерфейсом. Каждый I2S-модуль
может работать в режиме «Master» или «Slave» и поддерживает операции с
16/32-битным разрешением.
CAN-интерфейс (Controller Area
Network). STM32F2xx содержит два
контроллера CAN. Контроллер CAN поддерживает стандарты 2.0А и 2.0В,
активную и пассивную передачу данных на скоростях до 1 Мбит/с.
SDIO-интерфейс (Secure Digital
Input/Output). SDIO позволяет
микроконтроллеру обмениваться информацией с SD/SDIO/MMC-картами памяти и
CE-ATA-устройствами (подробные спецификации можно найти на сайтах:
www.mmca.org, www.sdcard.org, www.sdcard.org и www.ce-ata.org). STM32F2xx
поддерживает спецификации: MultiMediaCard System спецификация версии 4.2,
SDIO Card спецификация версии 2.0, SD Memory Card спецификация версии 2.0,
CE-ATA протокол версии 1.1.
USB-интерфейс (Universal Serial
Bus). STM32F2xx содержит два модуля USB.
Первый - USB OTG full-speed. Поддерживает режимы «Device», «Host» и «OTG».
Физический уровень выполнен на кристалле.
Второй - USB OTG high-speed. Поддерживает
режимы «Device», «Host» и «OTG» на скоростях 12 и 480 Мбит/с. Физический
уровень для скорости 12 Mбит/с выполнен на кристалле. Для реализации
скорости в 480 Мбит/с необходим внешний высокоскоростной трансивер,
подключаемый через ULPI.
Ethernet-интерфейс.
Модуль Ethernet представлен не во всех микроконтроллерах линейки
STM32F2xx, а только в серях STM32F207xx и
STM32F217xx. Ethernet-модуль соответствует стандарту IEEE802.3 и
обеспечивает передачу данных на скоростях 10 и 100 Мбит/с. Для реализации
протоколов реального времени есть поддержка на аппаратном уровне протокола
IEEE1588. Для подключения к физической линии необходимо использовать
трансивер физического уровня (PHY). PHY подключается через порт MII (17
сигналов) или RMII (9 сигналов).
DCMI-интерфейс (Digital Camera
Interface). DCMI является новинкой в серии
микроконтроллеров STM32. Он представлен только в серях STM32F207xx и
STM32F217xx. DCMI позволяет соединить микроконтроллер с камерами и
CMOS-сенсорами через параллельный интерфейс (8/10/12/14- битный).
FSMC-контроллер (Flexible Static
Memory Controller). FSMC предоставляет
возможность подключения к микроконтроллеру графических LCD-дисплеев и
статической памяти. Поддерживаются следующие типы памяти: PC Card/Compact
Flash, SRAM, PSRAM, NOR Flash и NAND Flash. Максимальная частота работы с
памятью 60 МГц. FSMC также позволяет выполнять код из внешней памяти. Для
более эффективной работы процессора контроллер памяти содержит FIFO-буфер
на запись и позволяет использовать DMA-контроллер. Параллельный
LCD-интерфейс поддерживает два режима с LCD графическими контроллерами:
Intel 8080 и Motorola 6800.
Модуль шифрования
Модуль шифрования (сryptographic accelerator)
представлен только в серях STM32F215xx и STM32F217xx. Он позволяет
аппаратно реализовывать различные алгоритмы шифрования, необходимые для
обеспечения защиты информации.
Реализованы следующие алгоритмы шифрования:
-
DES (Data Encryption Standard)- симметричный шифр;
-
Triple DES (TDES)- симметричный блочный шифр;
-
AES256 (Advanced Encryption Standard)- симметричный блочный шифр.
Поддержка хеширования:
|