МИКРОКОНТРОЛЛЕРНАЯ ПЛАТФОРМА STM32
Срывкин В.А.
32- БИТНЫЕ МИКРОКОНТРОЛЛЕРЫ STM
Современный уровень развития технологии обеспечил возможность
создания микроконтроллеров с 32- битной архитектурой, цена которых сопоставима с 8-битными микроконтроллерами.
32-х битное ядро для реализации требует несколько десятков тысяч транзисторов, в то время как 256Кб Flash-памяти — это 2 млн транзисторов . Соответственно, основное место площади современного контроллера занимает память, порты ввода/вывода и периферийные модули.
32- БИТНЫЕ МИКРОКОНТРОЛЛЕРЫ STM
Компания ST разрабатывала 32 - битные микроконтроллеры на основе ядер ARM7 и ARM 9.
Новое поколение 32- битных микроконтроллеров компании ST использует ядро CORTEX M3
Микроконтроллеры STM32 изначально выпускались в 14 различных вариантах, разделенные на две группы: Performance Line, в которую вошли микроконтроллеры с тактовой частотой ЦПУ до 72 МГц, и Access Line (тактовая частота до 36 МГц).
Архитектура микроконтроллеров STM 32
Микроконтроллеры семейства STM32 выполнены на основе ядра
Cortex- M 3, которое подключено к Flash памяти по шине инструкций I-bus .
Шина данных D-bus и системная шина System Cortex подключены к матрице высокоскоростных шин AHB.
Внутреннее статическое ОЗУ подключено напрямую к матрице шин AHB,
с которой также связан блок прямого доступа к памяти (ПДП).
Энергопотребление
Микроконтроллеры работают от 2В-ого источника питания на тактовой частоте 72МГц и потребляют с учетом нахождения в активном состоянии всех встроенных ресурсов, всего лишь 36 мА.
Если же использовать поддерживаемые ядром Cortex экономичные режимы работы, то потребляемый ток можно снизить до 2 мкА в режиме STANDBY.
Для быстроты возобновления активной работы микроконтроллера используется внутренний RC-генератор на частоту 8 МГц. Его активность сохраняется на время запуска внешнего генератора. Благодаря быстроте перехода в экономичный режим работы и выхода из них результирующая средняя потребляемая мощность еще больше снижается.
СТРУКТУРА ПЛАТФОРМЫ STM32
В настоящее время платформа состоит, по крайней мере,
из 10 линеек микроконтроллеров :
АРХИТЕКТУРА
Контроллер вложенных прерываний ( NVIC)
- Контроллер поддерживает до 240 прерываний и до 256 уровней приоритета,
- Вход в обработчик прерывания занимает 12 тактов (сохранение стекового фрейма и регистров) и
- Прерывания могут быть вложенными: если во время обработки прерывания возникает прерывание с меньшим приоритетом, то второе будет обработано через 6 тактов после обработки первого.
- Кроме того, существуют немаскируемые прерывания — NMI ( N on- M asked I nterrupts), которые невозможно сбросить, не обработав, и которые прерывают выполнение программы независимо от каких-либо условий. Такие прерывания генерируются при сбое внешнего источника тактирования (кварца, керамического резонатора) и при обнаружении некорректной инструкции.
Шинная матрица ( Bus matrix)
Шинная матрица — это развитие идеи простого контроллера шины: здесь шины соединены так, что устройства могут взаимодействовать напрямую, не через ядро.
Также она управляет доступом к не-выровненным данным (адреса которых не кратны 4, как принято в 32-битных архитектурах) и атомарным доступом к отдельным битам в специально выделенном диапазоне (технология bit-banding)
AHB — это относительно новая спецификация для более производительных шин, так что шины этого типа используют, в основном, для связи высокоскоростных внутренних компонентов, а APB, как более медленную — для периферии типа GPIO, UART
Ядро CORTEX- M 3
- Гарвардская архитектура и трёхступенчатому конвейер.
- Ядро Cortex-M3 поддерживает набор инструкций Thumb-2, который содержит как 32-битные, так и 16-битные инструкции для сокращения объёма кода за счёт менее дальнобойных переходов;
- Имеет 13 регистров общего назначения, снижая потребность в частом доступе к памяти.
ARM Cortex – M3 Cortex – полнофункциональный процессор, включающий в себя ядро и системную периферию
Ядро Cortex – M3
Гарвардская архитектура
3х уровневый конвейер с модулем прогнозирования ветвлений
Поддержка Thumb и Thumb – 2
АЛУ с аппаратным делением(2 – 7 тактов) и умножением за 1 такт
Cortex – M3 процессор
Ядро Cortex – M3.
Конфигурируемый контроллер вложенных прерываний Матрица шин
Дополнительные компоненты отладки
Архитектурой Cortex-M3 предусмотрены 4 шины, подключенных к матрице:
- ICode, для выборки инструкций и векторов прерываний -для пользовательского кода. 32-битная шина AHB-Lite типа.
- DCode, для выборки/записи данных и отладочного доступа — для пользовательского кода. 32-битная шина AHB-Lite типа.
- System, для выборки инструкций и векторов прерываний, а также выборки/записи данных и отладочного доступа в системном пространстве — для внутренних компонентов МК. 32-битная шина AHB-типа.
- PPB ( P rivate P eripheral B us), для выборки/записи данных и отладочного доступа — для периферии. 32-битная шина APB-типа.
СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
БИБЛИОТЕКА ПОДДЕРЖКИ ЯДРА
- Ядро ARM Cortex-M3 выходит за рамки обычного понятия ядра микроконтроллера и представляет собой мини-микроконтроллер с периферией - встроенные системный таймер, контроллер прерываний и т.д.
Стандартная библиотека поддержки ядра - CMSIS разработана
компанией ARM .
CMSIS предоставляет собой файлы определения констант и определения символьных имен, библиотеку функций доступа к регистрам и периферийным модулям ядра и интерфейса пользовательского ПО для операционных систем реального времени (RTOS).
.
СТРУКТУРА CMSIS
CMSIS состоит из трех файлов:
- core_m3.h - вспомогательные функции доступа к регистрам ядра;
- startup_stm32f10x_xx.s- набор файлов для каждой линейки семейства STM32 , обеспечивающие инициализацию стека и таблицу векторов прерываний;
- system_stm32f10x.h- файл начальной инициализации тактовой частоты микроконтроллера
СТАНДАРТНАЯ БИБЛИОТЕКА STM32
Стандартная библиотека для работы с периферийными модулями написана в соответствии со стандартом ANSI C и может использоваться
с любым стандартизованным компилятором.
Библиотека состоит из двух взаимодополняющих составляющих :
- заголовочных файлов и файлов реализации всей периферии микроконтроллеровSTM32 - STM32F10x_StdPeriph_Driver ;
- заголовочных файлов и файлов реализации ядра ARM Cortex-M3.
ОСВОЕНИЕ ПЛАТФОРМЫ
Отладочная плата STM32VLDiscovery
Отладочная плата STM32VLDiscovery предназначена для освоения платформы
Плата реализована на микроконтроллере линейки «Value Line» STM32F100RBT6.
Имеет программатор-отладчик ST-Link с выведенным разъемом SWD.
Свободные ножки микроконтроллера выведены на внешние разъемы.
STM32W – области применения
Устройства управления зданиями
Интеллектуальные энергосистемы
Беспроводные датчики для ZigBee Pro
Охранные системы и системы сигнализации
Изделия в стандарте RF4CE
Реализация протокола 6LoWPAN
Системы домашней автоматики и управления
Потребительская электроника
Заключение
Передовой 32 – разрядный МК ARM Cortex – M3
Прекрасные характеристики энергопотребления
Первоклассная периферия
Максимальная интеграция
Широкая линейка совместимых продуктов
Простая архитектура
Широчайший диапазон применения