Научная статья на тему 'ИЗУЧЕНИЕ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ В САПР PROTEUS'

ИЗУЧЕНИЕ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ В САПР PROTEUS Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
240
64
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МИКРОКОНТРОЛЛЕР / ПРОГРАММА / IDE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тюрин С. Ф., Ковыляев Д. А., Данилова Е. Ю., Городилов А. Ю.

Рассматривается создание проектов в программе Proteus на основе микроконтроллеров. Исследуется классический микроконтроллер 8051 фирмы Intel, а также микроконтроллер STM32F401RE фирмы изготовителя STMicroelectronics (архитектура ядра - компании ARM). Выполняется разработка простейший программ для использования на лабораторных занятиях по программированию встроенных систем (например, "интернета вещей") для 8051 - на языке Ассемблер, для STM32F401RE - на языке СИ с использованием специальной среды разработки. Исследование может быть использовано на лабораторных занятиях по программированию встроенных систем.

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

LEARNING PROGRAMMING OF MICRO-CONTROLLERS IN CAD PROTEUS

The creation of projects in the Proteus program based on microcontrollers is considered. A classic 8051 microcontroller from Intel is investigated, as well as an STM32F401RE microcontroller from ARM. The development of the simplest programs for use in laboratory classes on programming embedded systems (for example, the "Internet of things") for 8051 - in assembler language, for STM32F401RE - in C language using a special development environment is carried out. The research can be used in laboratory classes on embedded systems programming.

Текст научной работы на тему «ИЗУЧЕНИЕ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ В САПР PROTEUS»

2021

ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА

Математика. Механика. Информатика

Вып. 2(53)

УДК 681.32

Изучение программирования микроконтроллеров в САПР Proteus

С. Ф. Тюрин

Пермский государственный национальный исследовательский университет Россия, 614990, г. Пермь, ул. Букирева, 15 tyurinsergfeo@yandex.ru; +7-952-32-02-510

Пермский национальный исследовательский политехнический университет Россия, 614990, г. Пермь, ул. Комсомольский пр., 29

Д. А. Ковыляев

Пермский государственный национальный исследовательский университет Россия, 614990, г. Пермь, ул. Букирева, 15 354981@mail.ru; +7-919-458-80-79

Е. Ю. Данилова

Пермский государственный национальный исследовательский университет Россия, 614990, г. Пермь, ул. Букирева, 15 ket-eref@yandex.ru; +7-919-458-80-79

А. Ю. Городилов

Пермский государственный национальный исследовательский университет Россия, 614990, г. Пермь, ул. Букирева, 15 gora830@yandex.ru; +7-902-83-07-328

Рассматривается создание проектов в программе Proteus на основе микроконтроллеров. Исследуется классический микроконтроллер 8051 фирмы Intel, а также микроконтроллер STM32F401RE фирмы изготовителя STMicroelectronics (архитектура ядра - компании ARM). Выполняется разработка простейший программ для использования на лабораторных занятиях по программированию встроенных систем (например, "интернета вещей") для 8051 - на языке Ассемблер, для STM32F401RE - на языке СИ с использованием специальной среды разработки. Исследование может быть использовано на лабораторных занятиях по программированию встроенных систем.

Ключевые слова: микроконтроллер; программа; IDE.

DOI: 10.17072/1993-0550-2021-2-69-74

Введение

Микроконтроллеры [1-3], ранее именуемые "Микро-ЭВМ", широко применяются в так называемых встроенных системах [4-6], например, в "интернете вещей", в сервисных и промышленных роботах. Микроконтроллеры содержат в одной микросхеме, помимо собственно микропроцессора (процессора), постоянную и оперативную память, ЦАП, АЦП, устройства ввода-вывода, приемо-передат-чики, различные преобразователи и др.

© Тюрин С. Ф., Ковыляев Д. А., Данилова Е. Ю., Городилов А. Ю., 2021

Современные 32-разрядные микроконтроллеры обладают большими функциональными возможностями.

В продаже имеется широкий выбор относительно не дорогих готовых плат с микроконтроллерами, содержащими дополнительные микросхемы-загрузчики для подключения к внешнему компьютеру, продаются также различные датчики, твердотельные реле и другое оборудование для изготовления полностью собственной встроенной системы. При программировании современных микроконтроллеров используются IDE (Integrated Development Environment), например, Keil uVision.

Компетенции в области программирования микроконтроллеров весьма востребованы на 1Т рынке. В нашем университете подобной тематикой занимаются, например, на кафедре радиоэлектроники и защиты информации физического факультета, в ПНИПУ -на кафедре автоматики и телемеханики электротехнического факультета.

вого резонатора XTAL1, XTAL2 для обеспечения работы внутреннего тактового генератора, управляющие входы-выходы, например, сброс RST. Кроме того, автоматически средствами Proteus формируется заготовка программы на языке Ассемблер (при выборе микроконтроллера задаем формирование "прошивки") (рис. 3):

1. Исследование микроконтроллера 8051

Микроконтроллер 8051 является "классикой", он разработан в 1980-е годы ХХ в., но еще до сих пор его архитектура востребована, например, в контроллерах бортовых систем [7]. Для моделирования загружается соответствующая свободно распространяемая система схемотехнического моделирования на сайте фирмы Labcenter Electronics (Великобритания) [8]: (рис. 1).

□ <

Proteus S

Рис. 3. Заготовка программы на языке Ассемблер

Рис. 1. Символ Proteus Design Suite версия 8

После выполнения необходимых действий по выбору микроконтроллера он появляется на наборном поле (рис. 2).

U1

•XTAL1 XTAL2 PO.O/ADO Р0. №Q1 P0.2/AD2 P0 3/AD3 P0.«AD4 P0.5/AD5 P0.6iAD6

PSEN ALE ЁА P2 QiAS P2.1/A9 P2 2/AM P2.3fA11 P2 Л/А12 P2 S/A13 P26/A14 P2 7/A15

Р1 1

PS.2/INT0 P3.3/INT1 P3 4fT0 P3 5ГТ1

Р1.3 PI .4 Р1 5

PI .7 P3.7JRD

-22.

_2£

27

28

10 11

Рис. 2. Микроконтроллер 80С51(8051)

Мы видим обозначения портов ввода-вывода Р0,Р1,Р2, вводы подключения кварце-

Подключаем необходимый минимум дополнительных элементов, используем ключ для имитации некоторого датчика и светодиод для индикации его состояния (рис. 4):

Рис. 4. Подключение кварцевого резонатора, ключа и светодиода

Подготовим программу на языке Ассемблер для ввода информации с порта Р2 и вывода на порт Р1 (без детализации номера ввода, предполагается, что вводится байт и выводится байт). Это всего одна команда пересылки: MOV P1, P2. Вставляем, компилируем (рис. 5):

оюо start:

Loop:

org

0100 0100

MOV PI, P2; Write your code here jmp Loop

Для проверки программы усложняем схему (рис. 7):

► ]► II ■ | 5 Messageis) PAUSED: 0.(ШЮ1СКЮб

Рис. 5. Успешная компиляция

Запускаем моделирование, состояние светодиода повторяет вводимый ключом логический уровень:

Рис. 6. Проверка работы программы

В качестве дополнительного задания можно увеличить число ключей и светодио-дов, довести их до восьми. Очевидно, что программа не изменится. Можно также менять источник и получатель сигнала и изменять программу. Можно ввести обработку входного сигнала.

Разработаем более сложную, универсальную программу - реализации конечного автомата методом Гутмана [9] (рис. 6).

Рис. 6. Программа реализации конечного автомата

Рис. 7. Проверка работы программа реализации конечного автомата с двумя входами аЬ и двумя выходами 2122

Таким образом рассмотренные примеры позволяют ознакомиться с классическим микроконтроллером и соответствующим языком Ассемблер.

Программа может загружаться также в виде шестнадцатеричного файла, такой пример рассмотрен далее.

2. Исследование ввода-вывода в микроконтроллере STM32F401RE

Исследуем более сложный микроконтроллер STM32F401RE [10] (рис. 8).

Создание проекта, схемы и программирование здесь гораздо более сложное, чем для 8051. Используется специальное средство STM32CubeMX [11].

Для него, в свою очередь, необходима Java Runtime Environment (версия jre-8u-271-windows-x64) [12].

Необходима также интегрированная среда разработки IDE (Integrated development environment) Keil uVision, входящая в состав MDK (Microcontroller Development Kit) -ARM (Advanced RISC Machine - усовершенствованная RISC-машина) исследуемого микроконтроллера [13].

а)

Peripherals STM32F401RE

SRAM in Kbytes 96

Flash memory in Kbytes 512

Timers General-purpose 7

Advanced-control 1

USART 3

USB OTQ FS 1

GPIOs SO

12-bit ADC Number of channels 16

Maximum CPU frcqucncy 84 MHz

Operating voltage 1,7 to 3.6 V

б)

Рис. 8. Микроконтроллер STM32F401RE: а) входы-выходы ("распиновка ") микросхемы: б) характеристики STM32F401RE

После загрузки необходимого ПО запускаем STM32CubeMX, создаем проект и настраиваем микросхему на ввод с РА0,РА1 и вывод на РС0,РС1. По нажатию GENERATE CODE завершается настройка в CubeMX. Нажимаем кнопку Open Project в CubeMX, открывается uVision IDE. Записываем программу ввода-вывода (рис. 9):

Создаем схему в Proteus, загружаем программу в виде HEX файла в микроконтроллер (рис. 10):

Рис. 10. Автоматически сформированный HEX файл в проекте LABI

Проверяем работу в Proteus (рис. 11):

Рис. 11. Схема STM32F401RE для ввода-вывода двух сигналов

Все работает правильно! Пример разработки более сложной программы - реализации конечного автомата в плате КИСЬЕО-F401RE с микроконтроллером

8ТМ32Б401КЕТ6 с использование ресурса Mbed [14] рассмотрен в [15].

87

88 89 3D

91

92

93 91 95 9«

97

98

99 100 101 юг юз

104

105 10« ют 108

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

109

110 111

HX_GPIO_Init(); /■ USEü""CODE BEGIB 2 •/

/• OSER CODE END 2 V

/* Infinit« loop */ /• OSER CODE BEGIB WHILE while (1) I {

/• USER CODE END WHILE V :HM._GPIOjrritePin [HÏOOTOGPIOPoirt, HÏ_Ot)TO_Pin,

HAL_GPIO_ReadPin <MÏ_INO_GPIO_Port, MYINOPin) ) ; HAL GPIOJtriMPin (MÏ_OUTl_GPIO_Port, MÏ_OUTl_Pin, HAL_GPIO_R«dPin [WY_INl_GPIO_Port, MY_INl_Pin) ) ; HAL~Delay(J5);

/* USER CODE BEGIN 3 ■/

Л OSER CODE END 3 ■/

I

B/*

Abrief System Clock Configuration @xetval None

Рис. 9. Программа ввода-вывода в STM32F401RE

3. Реализация эволюционных вычислений в микроконтроллере STM32F401RE

Программа создана для обеспечения встроенного тестирования логики ПЛИС. Она написана в среде Visual Studio 2019 на языке C++. Поэтому осуществлен перенос исходного кода в новую программу в среде ^Vision IDE. ^Vision IDE содержит возможность компилировать проекты из исходного кода, написанного на языке C++.

В проекте STM32CubeMX необходимо указать минимальный размер стека 8192 байта и минимальный размер динамической памяти 86016 байт, что граничит с максимальными 96 КБ памяти.

Для выдачи результатов вычислений использован протокол USART. В Proteus создается схема с приемником (рис. 12):

Рис. 12. Схема STM32F401RE с приемником для вывода результатов эволюционных вычислений

Пример выдачи результатов поиска оптимального теста показан на рис. 13.

Virtual Terminal

П: try 1 eed = 54676824 nd. Cnt = 3 nd. Cnt = 4 olution found!

R: try 2 eed = 78759295 nd. Cnt = 3 nd. Cnt = 4 olution found!

Рис. 13. Результат расчетов

Выводы

Таким образом, в случае загрузки необходимых программ до начала двухчасового занятия, в его рамках возможно выполнить рассмотренные исследования по одному из контроллеров. Более сложные программы рекомендуются к выполнению в рамках самостоятельной работы студентов (магистров). С целью обеспечения таких занятий методической литературой, авторами подготовлено к изданию учебное пособие. В дальнейшем целесообразно исследовать более сложные вопросы использования рассмотренного микроконтроллера STM32F401RE или платы NUCLE0-F401RE для моделирования встроенного диагностирования логики ПЛИС с помощью эволюционных алгоритмов на базе заданной модели отказов (неисправностей) с учетом количества элементов, необходимости приемов конфигурационной информации и т.д.

Список литературы

1. Угрюмов Е.П. Цифровая схемотехника: учеб. пособие для вузов. СПб.: БХВ-Петербург, 2010. 797 с.

2. Тюрин С.Ф. Вычислительная техника и информационные технологии. Руководство к лабораторным работам в системе Proteus 7.2. Пермь: Изд-во Перм. гос. техн. ун-та, 2010. 135 с.

3. Вычислительная техника и информационные технологии. Аппаратные средства вычислительной техники: конспект лекций / С.Ф. Тюрин, О.В. Гончаровский, О.А. Громов. Пермь: Изд-во Перм. гос. техн. унта, 2011.324с.

4. Гончаровский О.В. Прототипирование сетевой системы управления. Разработка Windows-приложения удаленного контроллера прототипа робота-официанта на базе PROMOBOT Vol. 4. Пермь: Изд-во ПНИПУ, 2019. URL:

https://elib.pstu.ru/docview/?fDocumentId=45 27 (дата обращения: 11.05.2021).

5. Гончаровский О.В., Каменских А.Н. Встроенные микропроцессорные системы. Макетирование систем управления технических систем: учеб.-метод. пособие. Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2020. 146 с.

6. Гончаровский О.В. Проектирование встроенных управляющих систем реального времени. Пермь: Изд-во ПНИПУ, 2013. URL:

https: //elib.pstu.ru/docview/?fDocumentId=35 1 (дата обращения: 10.05.2021).

7. АО "Дизайн Центр "Союз". URL: https://dcsoyuz.ru/products/mikrokontrollery (дата обращения: 27.04.2021).

8. Proteus Downloads URL:

https: //www.labcenter. com/downloads/ (дата обращения: 23.04.2021).

9. Тюрин С.Ф., Гончаровский О.В. Программная реализация конечного автомата на языке СИ // Вестник Пермского университета. Математика. Механика. Информатика. 2019. № 3 (46). С. 86-90.

10. Stm32f401ret6 reference manual. URL: https: //www .st .com/resource/en/ datasheet/stm 32f401re.pdf (дата обращения: 28.04.2021).

11. STM32 - STM32CubeMX. URL: https: //www .st.com/en/development-

tools/stm32cubemx.html# (дата обращения: 28.04.2021).

12.jre-8u-271-windows-x64. URL:https: //www .j ava.com/ru/download/ (дата обращения: 28.04.2021).

13. MDK-ARM. URL: https://www.keil.com/demo/eval/arm.htm (дата обращения: 28.04.2021).

14.Mbed. URL: https://www.mbed.com/en/ (дата обращения: 28.04.2021).

14. Гончаровский О.В., Тюрин С.Ф. Реализация конечного автомата в микроконтроллере с помощью ресурса mbed.com. // Информационно-измерительные и управляющие системы. 2019. Т. 17, № 4. С. 20-27.

15. Mbed. URL: https://www.mbed.com/en/ (дата обращения: 28.04.2021).

Learning programming of micro-controllers in CAD Proteus

S. F. Tyurin

Perm State University; 15, Bukireva st., Perm, 614990, Russia

Perm National Research Polytechnic University; 29, Komsomolsky Av., Perm, 614990, Russia tyurinsergfeo@yandex.ru; +7 952-320-02-510

D. А. Kovylyaev

Perm State University; 15, Bukireva st., Perm, 614990, Russia 354981@mail.ru; +7-919-458-80-79

E. Y. Danilova

Perm State University; 15, Bukireva st., Perm, 614990, Russia ket-eref@yandex.ru; +7-919-458-80-79

А. Yu. Gorodilov

Perm State University; 15, Bukireva st., Perm, 614990, Russia gora830@yandex.ru; +7-902-83-07-328

The creation of projects in the Proteus program based on microcontrollers is considered. A classic 8051 microcontroller from Intel is investigated, as well as an STM32F401RE microcontroller from ARM. The development of the simplest programs for use in laboratory classes on programming embedded systems (for example, the "Internet of things") for 8051 - in assembler language, for STM32F401RE - in C language using a special development environment is carried out. The research can be used in laboratory classes on embedded systems programming.

Keywords: microcontroller; program; IDE.

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