Изучение программирования микроконтроллеров в САПР Proteus
Автор: Тюрин С.Ф., Ковыляев Д.А., Данилова Е.Ю., Городилов А.Ю.
Журнал: Вестник Пермского университета. Математика. Механика. Информатика @vestnik-psu-mmi
Рубрика: Информатика. Информационные системы
Статья в выпуске: 2 (53), 2021 года.
Бесплатный доступ
Рассматривается создание проектов в программе Proteus на основе микроконтроллеров. Исследуется классический микроконтроллер 8051 фирмы Intel, а также микроконтроллер STM32F401RE фирмы изготовителя STMicroelectronics (архитектура ядра - компании ARM). Выполняется разработка простейший программ для использования на лабораторных занятиях по программированию встроенных систем (например, "интернета вещей") для 8051 - на языке Ассемблер, для STM32F401RE - на языке СИ с использованием специальной среды разработки. Исследование может быть использовано на лабораторных занятиях по программированию встроенных систем.
Микроконтроллер, программа
Короткий адрес: https://sciup.org/147246590
IDR: 147246590 | DOI: 10.17072/1993-0550-2021-2-69-74
Текст научной статьи Изучение программирования микроконтроллеров в САПР 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 с.