Изучение программирования микроконтроллеров в САПР Proteus
Автор: Тюрин С.Ф., Ковыляев Д.А., Данилова Е.Ю., Городилов А.Ю.
Журнал: Вестник Пермского университета. Математика. Механика. Информатика @vestnik-psu-mmi
Рубрика: Информатика. Информационные системы
Статья в выпуске: 2 (53), 2021 года.
Бесплатный доступ
Рассматривается создание проектов в программе Proteus на основе микроконтроллеров. Исследуется классический микроконтроллер 8051 фирмы Intel, а также микроконтроллер STM32F401RE фирмы изготовителя STMicroelectronics (архитектура ядра - компании ARM). Выполняется разработка простейший программ для использования на лабораторных занятиях по программированию встроенных систем (например, "интернета вещей") для 8051 - на языке Ассемблер, для STM32F401RE - на языке СИ с использованием специальной среды разработки. Исследование может быть использовано на лабораторных занятиях по программированию встроенных систем.
Микроконтроллер, программа
Короткий адрес: https://sciup.org/147246590
IDR: 147246590 | УДК: 681.32 | DOI: 10.17072/1993-0550-2021-2-69-74
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
Микроконтроллеры [1 – 3], ранее именуемые "Микро-ЭВМ", широко применяются в так называемых встроенных системах [4–6], например, в "интернете вещей", в сервисных и промышленных роботах. Микроконтроллеры содержат в одной микросхеме, помимо собственно микропроцессора (процессора), постоянную и оперативную память, ЦАП, АЦП, устройства ввода-вывода, приемо-передат-чики, различные преобразователи и др.
Современные 32-разрядные микроконтроллеры обладают большими функциональными возможностями.
В продаже имеется широкий выбор относительно не дорогих готовых плат с микроконтроллерами, содержащими дополнительные микросхемы-загрузчики для подключения к внешнему компьютеру, продаются также различные датчики, твердотельные реле и другое оборудование для изготовления полностью собственной встроенной системы. При программировании современных микроконтроллеров используются IDE (Integrated Development Environment), например, Keil uVision.
Компетенции в области программирования микроконтроллеров весьма востребованы на IT рынке. В нашем университете подобной тематикой занимаются, например, на кафедре радиоэлектроники и защиты информации физического факультета, в ПНИПУ – на кафедре автоматики и телемеханики электротехнического факультета.
-
1. Исследование микроконтроллера 8051
Микроконтроллер 8051 является "классикой", он разработан в 1980-е годы ХХ в., но еще до сих пор его архитектура востребована, например, в контроллерах бортовых систем [7]. Для моделирования загружается соответствующая свободно распространяемая система схемотехнического моделирования на сайте фирмы Labcenter Electronics (Великобритания) [8]: (рис. 1).
Рис. 1. Символ Proteus Design Suite версия 8
После выполнения необходимых действий по выбору микроконтроллера он появляется на наборном поле (рис. 2).
Рис. 2. Микроконтроллер 80С51(8051)
Мы видим обозначения портов ввода-вывода Р0,Р1,Р2, вводы подключения кварце- вого резонатора XTAL1, XTAL2 для обеспечения работы внутреннего тактового генератора, управляющие входы-выходы, например, сброс RST. Кроме того, автоматически средствами Proteus формируется заготовка программы на языке Ассемблер (при выборе микроконтроллера задаем формирование "прошивки") (рис. 3):
Рис. 3. Заготовка программы на языке Ассемблер
Подключаем необходимый минимум дополнительных элементов, используем ключ для имитации некоторого датчика и светодиод для индикации его состояния (рис. 4):
Рис. 4. Подключение кварцевого резонатора, ключа и светодиода
Подготовим программу на языке Ассемблер для ввода информации с порта Р2 и вывода на порт Р1 (без детализации номера ввода, предполагается, что вводится байт и выводится байт). Это всего одна команда пересылки: MOV P1, P2. Вставляем, компилируем (рис. 5):
-------- org oiooh 0100 Start:
0100 Loop:
0100 mov Pl, P2; write your code here
0103 jmp Loop
► !►!!■ О 5 Messrs) PAUSED: 0.000001000s
Рис. 5. Успешная компиляция
Запускаем моделирование, состояние светодиода повторяет вводимый ключом логический уровень:
Рис. 6. Проверка работы программы
В качестве дополнительного задания можно увеличить число ключей и светодиодов, довести их до восьми. Очевидно, что программа не изменится. Можно также менять источник и получатель сигнала и изменять программу. Можно ввести обработку входного сигнала.
Разработаем более сложную, универсальную программу – реализации конечного автомата методом Гутмана [9] (рис. 6).
.'—цемент регистра указателя Терехов если пале
Рис. 6. Программа реализации конечного автомата
Для проверки программы усложняем схему (рис. 7):
Рис. 7 . Проверка работы программа реализации конечного автомата с двумя входами ab и двумя выходами z 1 z 2
Таким образом рассмотренные примеры позволяют ознакомиться с классическим микроконтроллером и соответствующим языком Ассемблер.
Программа может загружаться также в виде шестнадцатеричного файла, такой пример рассмотрен далее.
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 OTG FS |
1 |
|
|
GPIOs |
50 |
|
|
12-bit ADC Number of channels |
16 |
|
|
Maximum CPU frequency |
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):
Рис. 9. Программа ввода-вывода в STM32F401RE
Создаем схему в Proteus, загружаем программу в виде HEX файла в микроконтроллер (рис. 10):
Рис. 10. Автоматически сформированный
HEX файл в проекте LAB1
Проверяем работу в Proteus (рис. 11):
Рис. 11. Схема STM32F401RE для ввода-вывода двух сигналов
Все работает правильно! Пример разработки более сложной программы – реализации конечного автомата в плате NUCLEO-F401RE с микроконтроллером
STM32F401RET6 с использование ресурса Mbed [14] рассмотрен в [15].
3. Реализация эволюционных вычислений в микроконтроллере STM32F401RE
Программа создана для обеспечения встроенного тестирования логики ПЛИС. Она написана в среде Visual Studio 2019 на языке C++. Поэтому осуществлен перенос исходного кода в новую программу в среде µVision IDE. µVision IDE содержит возможность компилировать проекты из исходного кода, написанного на языке C++.
В проекте STM32CubeMX необходимо указать минимальный размер стека 8192 байта и минимальный размер динамической памяти 86016 байт, что граничит с максимальными 96 КБ памяти.
Для выдачи результатов вычислений использован протокол USART. В Proteus создается схема с приемником (рис. 12):
Рис. 12. Схема STM32F401RE с приемником для вывода результатов эволюционных вычислений
Пример выдачи результатов поиска оптимального теста показан на рис. 13.
Virtual Terminal
Gfl: try 1
Seed = 54676824
Ind. Cnt = 3
Ind. Cnt = 4 Solution found!!!!
Gfl: try 2
Seed = 787592950
Ind. Cnt = 3
Ind. Cnt = 4 Solution found!!!!
Рис. 13. Результат расчетов
Выводы
Таким образом, в случае загрузки необходимых программ до начала двухчасового занятия, в его рамках возможно выполнить рассмотренные исследования по одному из контроллеров. Более сложные программы рекомендуются к выполнению в рамках самостоятельной работы студентов (магистров). С целью обеспечения таких занятий методической литературой, авторами подготовлено к изданию учебное пособие. В дальнейшем целесообразно исследовать более сложные вопросы использования рассмотренного микроконтроллера STM32F401RE или платы NUCLEO-F401RE для моделирования встроенного диагностирования логики ПЛИС с помощью эволюционных алгоритмов на базе заданной модели отказов (неисправностей) с учетом количества элементов, необходимости приемов конфигурационной информации и т.д.
Список литературы Изучение программирования микроконтроллеров в САПР Proteus
- Угрюмов Е.П. Цифровая схемотехника: учеб. пособие для вузов. СПб.: БХВ-Петербург, 2010. 797 с.
- Тюрин С.Ф. Вычислительная техника и информационные технологии. Руководство к лабораторным работам в системе Proteus 7.2. Пермь: Изд-во Перм. гос. техн. ун-та, 2010. 135 с.
- Вычислительная техника и информационные технологии. Аппаратные средства вычислительной техники: конспект лекций / С.Ф. Тюрин, О.В. Гончаровский, О.А. Громов. Пермь: Изд-во Перм. гос. техн. ун-та, 2011. 324с.
- Гончаровский О.В. Прототипирование сетевой системы управления. Разработка Windows-приложения удаленного контроллера прототипа робота-официанта на базе PROMOBOT Vol. 4. Пермь: Изд-во ПНИПУ, 2019. URL: https://elib.pstu.ru/docview/?fDocumentId=4527 (дата обращения: 11.05.2021).
- Гончаровский О.В., Каменских А.Н. Встроенные микропроцессорные системы. Макетирование систем управления технических систем: учеб.-метод. пособие. Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2020. 146 с.