СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2015

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 36 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2015 Современные 32-разрядные ARM-микроконтроллеры серии STM32: прямой доступ к памяти В статье приведено описание блока прямого доступа к памяти 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics. Рассмотрена архитектура и состав его регистров, а также приведены практические примеры программ. Олег Вальпа (г. Миасс, Челябинская обл.) FLITF Кан. 1 Кан. 2 Кан. 7 Арбитр Cortex-M3 Ядро АRM-микроконтроллера SRAM Шина AHB DMA1 ICode DCode System DMA-запрос APB 2 Flash Мост 2 Мост 1 Кан. 1 Кан. 2 Кан. 5 Арбитр Шина AHB DMA2 FSMC APB1 DMA-запрос DMA-запрос Матрица шин DMA DMA RCC-регистр сброса управления частотой AHB System SPI2 TIM2 SPI3 TIM7 TIM6 TIM5 TIM4 TIM3 DAC I2C2 I2C1 UART5 UART4 USART3 USART2 USART1 SPI1 TIM1 ADC1 TIM17 TIM16 TIM15 DMA-запрос Структурная схема DMA В ВЕДЕНИЕ Многие микроконтроллеры име- ют встроенный блок прямого доступа к памяти (ПДП), именуемый в англоя- зычной литературе как Direct Memory Access (DMA). Блок DMA позволяет обе- спечить высокоскоростную передачу данных между внешними устройствами и памятьюмикроконтроллера, а также передачу данных типа память-память без участия процессора. Это позволя- ет освободить процессор от рутинной операции по пересылке данных, уско- рить данную процедуру за счёт прямой пересылки данных и выполнять раз- личные операции в микроконтролле- ре одновременно и независимо самим процессором и блоком DMA. Во многих программах процессор часто бывает загружен операциями, требующими непрерывной передачи данных. Это и опрос состояния датчи- ков, и регулярные расчёты. Примером таких процедур могут служить: вывод информации на графический индика- тор, опрос клавиатуры, чтение данных с карты памяти и тому подобное. Если в это время ещё потребуется обслужи- вать запрос от компьютера по после- довательному порту, то процессор может начать притормаживать выпол- нение некоторых операций. В подоб- ных случаях DMA может помочь про- цессору. Для этого достаточно будет сформировать задание блоку DMA в виде начала буфера в памяти с ука- занием количества байтов этого буфе- ра для передачи в регистр последова- тельного порта по мере его готовности. После передачи всех данных из буфера, DMA с помощьюфлага сообщит об этом процессору. Таким образом, процеду- ра обслуживания запроса от компью- тера по последовательному порту будет выполнена блоком DMA, что защитит процессор от перегрузки. Ф УНКЦИОНАЛЬНОЕ ОПИСАНИЕ DMA Микроконтроллеры серии STM32 [1] также имеют DMA. Причём более насы- щенные модели имеют два независи- мых блока DMA: DMA1 и DMA2, каждый из которых имеет несколько независи- мых каналов. Блок DMA1 содержит 7 каналов, а DMA2 – 5. Структурная схе- ма DMA приведена на рисунке. Блок DMA STM32 может быть исполь- зован такими основными периферий- ными устройствами микроконтролле- ра STM32, как SPI, ЦАП, I 2 C, USART, тай- меры и АЦП. К каждому каналу можно подклю- чить одно из периферийных устройств, закреплённых за этим каналом. Напри- мер, регистр передачи данных модуля USART1 можно подключить к каналу 4, а регистр приёма данных – к каналу 5. К этим же каналам можно подключить другую периферию. Например, за кана- лом 4 закреплена следующая перифе- рия: TIM1_CH4, TIM1_TRIG, TIM1_COM, TIM4_CH2, SPI, I2C2_RX, I2C2_TX. Блок DMA микроконтроллера STM32 имеет определённые особенности. В первую очередь это наличие 12 неза- висимо конфигурируемых каналов: 7 для DMA1 и 5 для DMA2. Каждый из этих каналов связан с выделенными аппаратными DMA-запросами. На каж- дом канале поддерживается программ- ный пусковой механизм. Конфигура- ция канала задаётся программно. Приоритеты между запросами от каналов одного DMA контроллера задаются программно. Имеется четы- ре уровня приоритета: низкий, сред- ний, высокий и очень высокий уровень. В случае равенства программных при- © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy