Научная статья на тему 'Исследование использования программной среды MatLab Simulink как среды разработки для микроконтроллеров семейства STM32'

Исследование использования программной среды MatLab Simulink как среды разработки для микроконтроллеров семейства STM32 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
модельно-ориентированное программирование / MatLab / Simulink / STM32 / микроконтроллер / генерация кода / система автоматического управления / двигатель постоянного тока

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — И.А. Шишков, Д.С. Швецов, А.Г. Панкратов

Эта статья представляет собой исследование применения программной среды Matlab Simulink в качестве инструмента разработки для микроконтроллеров семейства STM32. В работе рассматриваются возможности Simulink для моделирования и тестирования алгоритмов управления, а также для генерации кода, который может быть напрямую интегрирован с микроконтроллерами. Статья предназначена для инженеров и разработчиков, работающих в области электроники и автоматизации, и может служить полезным ресурсом для тех, кто стремится оптимизировать свои процессы разработки микроконтроллерных систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — И.А. Шишков, Д.С. Швецов, А.Г. Панкратов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Исследование использования программной среды MatLab Simulink как среды разработки для микроконтроллеров семейства STM32»

Исследование использования программной среды MatLab Simulink как среды разработки для микроконтроллеров семейства STM32

И.А. Шишков, Д.С. Швецов, А.Г. Панкратов

Санкт-Петербургский государственный университет аэрокосмического

приборостроения

Аннотация: Эта статья представляет собой исследование применения программной среды Matlab Simulink в качестве инструмента разработки для микроконтроллеров семейства STM32. В работе рассматриваются возможности Simulink для моделирования и тестирования алгоритмов управления, а также для генерации кода, который может быть напрямую интегрирован с микроконтроллерами. Статья предназначена для инженеров и разработчиков, работающих в области электроники и автоматизации, и может служить полезным ресурсом для тех, кто стремится оптимизировать свои процессы разработки микроконтроллерных систем.

Ключевые слова: модельно-ориентированное программирование, MatLab, Simulink, STM32, микроконтроллер, генерация кода, система автоматического управления, двигатель постоянного тока.

Важным элементом САУ является контроллер, который выполняет функцию управления. Он принимает сигналы от входных устройств (кнопок, датчиков) и обрабатывает их и выдаёт сигнал управления [1].

В качестве одной из популярных платформ рассмотрим семейство микроконтроллеров STM32.

Микроконтроллеры STM32 - это семейство высокопроизводительных и энергоэффективных микроконтроллеров, разработанных компанией STMicroelectronics. Они базируются на архитектуре ARM Cortex-M и обладают широким спектром функций и возможностей, что делает их привлекательными для различных областей применения [2].

Микроконтроллеры STM32F401 (Рис.1) входят в линейку устройств STM32 Dynamic Efficiency. Эти устройства предлагают наилучший баланс динамического энергопотребления (в рабочем режиме) и производительности обработки данных, а также объединяют большое количество дополнительных функций в сравнительно небольшом размере. За работу микроконтроллера отвечают ядра Cortex-M4 работающие на частоте

84 МГц со встроенным модулем для вычислений чисел с плавающей запятой

Такие контроллеры широко применяются во множестве областей, таких как промышленная автоматизация, робототехника, медицина, автомобильная промышленность и многое другое. Их преимущества включают высокую производительность, энергосбережение, поддержку множества интерфейсов и различных периферийных устройств. Они также имеют разнообразные возможности программирования, включая поддержку языка С и ассемблера.

Однако писать код на языке C довольно непростая задача, особенно человеку, который никогда этим не занимался. Порог входа является довольно высоким и для решения задачи средней сложности требуется много времени для изучения документации и литературы. Существует решение данной проблемы, такое, как модельно-ориентированное программирование.

Модельно-ориентированное программирование предназначено для разработки программного обеспечения в графической форме с описанием встроенных модулей микроконтроллера в виде конфигурируемых модельных блоков. Такой способ предоставляет гибкие инструменты для создания и проектирования архитектуры системы в виде модели, описания компонентов, их свойств и является полноценным средством разработки САУ [4].

(РЩ [3].

Рис. 1. - 8ТЫ32Р401СШ6

В качестве программной среды для автоматического создания кода для микроконтроллера предлагается рассмотреть использование MatLab Simulink. Также потребуется использование STM32CubeMX и пакета необходимых драйверов, которые, как правило, устанавливаются автоматически [5].

Simulink - это расширение для программного обеспечения Matlab, предоставляющее графический интерфейс для имитационного моделирования. Это позволяет пользователям легко создавать динамические модели с помощью блок-диаграмм. Simulink поддерживает моделирование разнообразных систем, включая дискретные, непрерывные, нелинейные и прочие. В Simulink доступны широкие библиотеки готовых блоков, которые позволяют моделировать механические, электрические, гидравлические и другие системы [6].

Среда Simulink способствует разработке систем управления, цифровой связи и устройств реального времени с использованием модельно-ориентированного подхода. Кроме того, дополнительные пакеты Simulink предоставляют возможности для решения широкого круга задач: от формирования концептуальных моделей до генерации кода для микроконтроллеров.

Для программирования микроконтроллера STM32 существует несколько пакетов, которые можно использовать в среде Simulink. Будем использовать официальный пакет от MathWorks под названием STMicroelectronics STM32 Hardware Support from Simulink [7].

Стоит учитывать, что для работы пакета необходимо наличие следующих библиотек:

• Matlab Coder;

• Simulink Coder;

• Embedded Coder.

М Инженерный вестник Дона, №7 (2024) ivdon. ru/ru/magazine/archive/n7y2024/93 55

Преимущества и возможности пакета включают:

• Ускоренное создание моделей благодаря автоматизированной сборке;

• Возможность в реальном времени настраивать параметры модели и отслеживать изменения;

• Производительный код, оптимизированный для процессоров;

• Блоки, предназначенные для работы с встроенными и периферийными устройствами, такими как цифровые входы/выходы, АЦП, ЦАП, генерация сигнала ШИМ, а также интерфейсы SPI, I2C, CAN.

Однако существуют некоторые ограничения, например, необходимость создания файла конфигурации в STM32CubeMX. Важно отметить, что при неправильной конфигурации Simulink предоставляет не только сообщение об ошибке, но и подробные инструкции по её устранению.

Рассмотрим набор блоков для семейства микроконтроллеров STM32F4xx (Рис.2).

STM32

А/\

ADC1

Analog to Digital Converter >

5TMî2F4*xBased

Д

Event EXTIO тдндтшег

Hardware Interrupt STM32

TCP SEND

CAN , „^ Read Len9th CAN1 Id > > > can =™г САН Id «N1

CAN Read CAN Write

STM32 Data I2C1 Controller Read Peripheral: Ö*!?^5 > > iTM32 Data status controller Willi" pertphetal: 0»A

I2C Controller Read I2C Controller Write

STM32 /VI - T:mi > ЭТМЭ2 HI- ПМ1_СИ1

Tcp Send

Timer Capture

STM32 STW32

Д"« 41

Pert: GFIOA Port: GFI0A

Digital Port Read Digital Port Write

SÏW32 STM32

m # '

1252 Audio Out 1252 Mic In

I2S Audio Out l2SMk In

STM32 STW32

UART/USAftT 0m Write

USAFtTl USART1

UAKT/USAKT Read UART/USART Write

STM32

ЛЛ

DAC1

STM32 ! Count

m

STM32 -г Data

PWM Output STM32

LIPP RCV

Tcp Receive

STM32

UDP SEND

Udp Receive

Udp Send

Рис. 2. - Набор блоков/инструментов для 8ТМ32Б4хх На созданный в СиЬеМХ файл указывается ссылка в разделе настроек (Рис. 3).

и

Рис. 3. - Раздел настроек в Simulink Для того, чтобы подробнее изучить использование Simulink вместе с библиотекой для контролера предлагается рассмотреть создание программы для системы управления двигателем постоянного тока.

Рассмотрим блоки из библиотеки, которые потребуется. Блок аналого-цифрового преобразователя используется, чтобы преобразовать аналоговое значение на входе в микроконтроллер в цифровое значение. Аналоговые порты измеряют напряжение аналогового вывода относительно опорного напряжения. АЦП на STM32F401 имеет разрядность 12 бит, поэтому получаемо число будет в диапазоне от 0 до 4095.

Чтобы привести выходной сигнал с данного блока к напряжению, необходимо поступающее значение умножать на коэффициент.

где Мацп — значение, которое выдаёт блок (от 0 до 4095); иге^ - опорное напряжение.

M Инженерный вестник Дона, №7 (2024) ivdon. ru/ru/magazine/archive/n7y2024/93 55

Далее нам потребуется блок генерации ШИМ и блок вывода данных через UART. Контроллер будет отправлять данные, а на компьютере будем их принимать и обрабатывать.

Создадим систему управления с обратной связью по скорости и ПИ-регулятором. Подобные системы широко используются в различных областях [8].

В качестве метода настройки применим настройку на модульный оптимум.

С помощью интегральной составляющей компенсируется большая постоянная времени.

Пропорциональная составляющая находится по формуле [9]:

ктт

Т-1

п 2 * к0 * т

Полученная схема-программа, которая загружается в микроконтроллер приведена на рисунке 7.

Рис. 7. - Программа для микроконтроллера в виде блок схемы Для считывания необходимых данных создаём второй файл, который будет выполняться на компьютере в реальном времени за счёт использования библиотеки Simulink Desktop Real-Time [10].

Модель считывания данных из COM-порта, к которому подключен микроконтроллер, приведена на рисунке 8. Для работы с COM-портом необходимы блоки Serial Configuration и Serial Receive - конфигуратор и приёмник соответственно.

а

• л

Рис.8. - Модель для считывания данных с COM-порта Теперь рассмотрим результаты в виде переходных процессов по скорости и току (Рис. 9).

350

Выход синтезированной системы

Переходный процесс по току

Рис. 9. - Переходные процессы системы с регулятором Как можно заметить, такой способ программирования позволяет разработать программного обеспечения в графической форме без глубокого изучения языка программирования микроконтроллера.

За счёт вывода данных напрямую в Matlab их удобно анализировать с применением различных возможностей данного программного пакета.

Применение программной среды Ма1ЬаЬ Simulink может активно использоваться для создания систем управления в обучающих и исследовательских целях.

Литература

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Терехов В.М., Осипов О.И. Системы управления электроприводов. Москва: Издательский центр «Академия», 2006. 304 с.

2. Carmine Noviello Mastering STM32. Lean Publishing, 2018. 852 p.

3. STMicroelectronics URL: st.com/en/microcontrollers-microprocessors/stm32f401.html (дата обращения 20.03.2024).

4. Giordano A.A, Levesque A.H. Modeling of Digital Communication Systems Using SIMULINK. 2018. 416 p.

5. Торгаев С.Н., Тригуб М.В., Мусоров И.С., Чертихина Д.С. Практическое руководство по программированию STM-микроконтроллеров. Томск: Издательство Томского политехнического университета, 2015. 111 с.

6. SIMULINK // ЦИТМ Экспонента URL: exponenta.ru/simulink (дата обращения: 18.02.2024).

7. Embedded Coder Support Package for STMicroelectronics STM32 Processors // MathWorks. URL: de.mathworks.com/matlabcentral/fileexchange/43093-embedded-coder-support-package-for-stmicroelectronics-stm32-processors (дата обращения: 18.04.2024).

8 Wang L. PID Control System Design and Automatic Tuning using MATLAB/Simulink. John Wiley & Sons, 2020. 359 p.

9. Власенко В.А., Мансурова О.К. Динамическая настройка стандартных регуляторов. СПб: СПбГИТМО (ТУ), 2002. 52 с.

10. Simulink Desktop Real-Time URL: de.mathworks.com/help/sldrt/ (дата обращения 25.04.2024).

References

1. Terekhov V.M., Osipov O.I. Sistemy upravleniya elektroprivodov [Electric drive control systems]. Moskva: Izdatel'skiy tsentr «Akademiya», 2006. 304 p.

2. Carmine Noviello Mastering STM32. Lean Publishing, 2018. 852 p.

3. STMicroelectronics URL: st.com/en/microcontrollers-microprocessors/stm32f401.html (accessed 20/03/2024).

4. Giordano A.A, Levesque A.H. Modeling of Digital Communication Systems Using SIMULINK. 2018. 416 p.

5. Torgayev S.N., Trigub M.V., Musorov I.S., Chertikhina D.S. Prakticheskoye rukovodstvo po programmirovaniyu STM-mikrokontrollerov [A practical guide to programming STM microcontrollers]. Tomsk: Izdatel'stvo Tomskogo politekhnicheskogo universiteta, 2015. 111 p.

6. SIMULINK. TSITM Eksponenta URL: exponenta.ru/simulink (accessed 18/02/2024).

7. Embedded Coder Support Package for STMicroelectronics STM32 Processors. MathWorks URL: de.mathworks.com/matlabcentral/fileexchange/43093-embedded-coder-support-package-for-stmicroelectronics-stm32-processors (accessed 18/04/2024).

8. Wang L. PID Control System Design and Automatic Tuning using MATLAB/Simulink. John Wiley & Sons, 2020. 359 p.

9. Vlasenko V.A., Mansurova O.K. Dinamicheskaya nastroyka standartnykh regulyatorov [Dynamic adjustment of standard regulators]. SPb: SPbGITMO (TU), 2002. 52 p.

10. Simulink Desktop Real-Time URL: de.mathworks.com/help/sldrt/ (accessed 25/04/2024).

Дата поступления: 17.05.2024

Дата публикации: 26.06.2024

i Надоели баннеры? Вы всегда можете отключить рекламу.