Изучение программирования микроконтроллеров в САПР 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 с.
Статья научная