Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование микроконтроллеров с использованием IDE

..pdf
Скачиваний:
13
Добавлен:
12.11.2023
Размер:
13.22 Mб
Скачать

Для функции, приведённой в табл. 4.1, оптимальным является набор {1,4,5,7}. На рис. 4.5 показано, каким образом можно распознать единичный константный отказ в результате применения диагностической последовательности, полученной при работе генетического алгоритма (ГА).

 

 

 

f0 , f1, f2 , f3 , f4 , f5 , f6

 

 

 

 

 

 

 

001

 

 

0

1

 

 

 

 

 

 

 

 

 

f4 , f6

 

f0 , f1, f2 , f3 , f5

 

 

 

 

 

100

 

1

0

 

1

 

 

 

 

 

 

 

 

f4 , f6

f2

 

 

f

0

, f , f

3

, f

5

 

 

 

 

 

 

 

1

 

101

0

1

 

 

0

 

 

1

 

 

 

 

 

f6

f4

 

f0 , f3

 

 

 

 

 

f1, f5

111

 

 

0

 

1

 

 

0

 

 

1

 

 

 

f3

 

 

 

 

 

 

 

 

 

 

 

f

0

 

 

f

5

f

 

 

 

 

 

 

 

 

 

1

Рис. 4.5. Процесс распознавания отказа

Предположим, что для последовательности входных сигналов {001, 100, 101} выходной был {0, 1, 1}. Это значит, что был обнаружен единичный константный отказ, в котором x1 1 , чему соот-

ветствует функция f4 модели отказа.

4.2. Тестирование работы алгоритма на микроконтроллере

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

Изначальный алгоритм был написан в среде Visual Studio 2019 на языке C++, после чего был осуществлён перенос исходного кода классов ГА в тестирующую программу в среде µVision IDE.

91

µVision IDE содержит возможность компилировать проекты из исходного кода, написанного на языке C++. Поскольку объектноориентированная парадигма упрощает разработку ГА, то ГА был написан на C++. В дальнейшем, если результаты тестирования окажутся неудовлетворительными, одним из решений может оказаться переписывание алгоритма на C.

Как описано ранее, STM32F401RE может работать с протоколом USART. Таким образом, в Proteus создаётся схема, в которой микроконтроллер подключён к приёмнику, выводящему сообщения, отправляемые микроконтроллером, в терминал. Полученная схема представлена на рис. 4.6.

Рис. 4.6. Схема для запуска генетического алгоритма

92

Контакт RXD терминала принимает сигнал. Контакт TXD может отправлять сигнал с консоли во время симуляции.

USART (Universal Synchronous-Asynchronous Receiver/Transmitter) – универсальный синхронно-асинхронный приёмопередатчик, интерфейс для передачи данных между цифровыми устройст-

вами [24].

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

смаксимальными 96 КБ памяти.

Вприложении находится содержимое файла main.c с программным кодом ГА и кодом инициализации микроконтроллера для тестирования ГА.

Из-за переноса программного кода со среды Visual Studio 2019 в среду µVision IDE были выявлены некоторые проблемы.

µVision IDE содержит в себе несколько компиляторов на выбор. Неподготовленный для переноса код возможно скомпилировать при выборе другого компилятора из доступных, однако только автоматически выбранный при генерации проекта компилятор (V5.06 update 7) оказался оптимальным вариантом. Использование других компиляторов в основном приводит к зависанию симуляции. Кроме того, компиляцию рекомендуется осуществлять с оптимизациями O0, иначе процесс выполнения может зависнуть.

Для того чтобы уменьшить программный код и устранить некоторые проблемы с компиляцией, возникшие на ранних этапах, можно избавиться от избыточных библиотек. Например, можно успешно обойтись без библиотеки string.

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

На рис. 4.7 представлены две итерации алгоритма, выпол-

ненного в эмуляторе на микроконтроллере для функции

F x1, x2 , x3 1,1,0,0,1,0,1,1 .

93

Рис. 4.7. Результаты запуска эмуляции

Как видно по результатам, запущенная программа успешно нашла оптимальный набор длины, равной четырём для

функции F x1, x2 , x3 1,1,0,0,1,0,1,1 , модель которой представлена

в табл. 4.1.

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

В процессе разработки стало очевидно, что среда µVision IDE плохо подходит для компиляции проектов, написанных на современных стандартах языка C++.

94

Несложно оценить количество памяти, необходимой для хранения структур данных программы. Количество особей в популяции, количество скрещивающихся пар и мутирующих особей задаётся в параметрах ГА. Пусть количество особей равно k, скрещиваются s пар особей, а мутирует – m. При этом задаётся функция n переменных. Минимально возможная длина диагностической последовательности представлена в формуле

log2 2n 1 .

(4.2)

Но, как правило, решение этой длины недостижимо. Будем считать, что в среднем длина точного решения (т.е. количество входных наборов в точном решении) не будет превышать минимальное значение более чем на 2. Обозначим эту длину l, которую можно найти по формуле

 

 

 

l log2 2n 1 2.

(4.3)

Тогда получаем следующую формулу для расчёта памяти, не-

обходимой для хранения популяции:

 

 

 

 

k 2m s 2l p1 p2 ,

(4.4)

где p 8 и

p

2

2n 1 8 – памятьподвспомогательныепеременные.

1

 

 

 

Кроме этого, память тратится на хранение модели отказов. Бла-

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

 

n 3

 

4

 

 

 

2n 1 6 4

 

2n2

3n 25.

(4.5)

 

 

 

 

 

 

 

 

Таким образом, общая сумма равна выражению

 

 

k 2m s 2l p1 p2 2n2

3n

25.

(4.6)

95

Можно оценить необходимый объём памяти для конкретных

значений.

Например, при n 3, k 50, m 20, s 20

получим

p2 24, l

5 (произвели округление вверх, так как длина последо-

вательности – целое число), тогда объём памяти

 

 

50 2 20 20 2 5 8 24

 

 

2 32 3 3 25 2056 б.

(4.7)

Разработанный генетический алгоритм затрачивает меньшее количество памяти, чем те, что были показаны в работах [19, 20]. Это происходит в основном благодаря тому, что оптимальные параметры ГА существенно ниже, чем в указанных работах. Например, оптимальное количество особей в популяции [20] равно 50, а в разработанном алгоритме достаточно 10 особей в популяции.

96

ЗАКЛЮЧЕНИЕ

Рассмотрены примеры программирования как классического восьмибитного микроконтроллера 8051, так и современного, тридцатидвухразрядного STM32F401RE в САПР Proteus. Разработана универсальная программа реализации автоматов на языке Ассемблер 51 для контроллера 8051. Разработана программа простейшего ввода-вывода с ключа на светодиод Switch для микроконтроллера

STM32F401RE.

Кроме того, приведен пример программирования платы NUCLEO-F401RE с использованием «облачного» ресурса Mbed.

С целью применения микроконтроллера STM32F401RE для встроенного диагностирования логики ПЛИС разработан генетический алгоритм и программа с промежуточным кодированием построения диагностической последовательности для выявления единичных константных отказов.

97

СПИСОК ЛИТЕРАТУРЫ

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

2.Тюрин С.Ф. Вычислительная техника и информационные технологии: руководство к лабораторным работам в системе Proteus

7.2.– Пермь: Изд-во Перм. гос. техн. ун-та, 2010. – 135 с.

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

4.Тюрин C.Ф. Схемотехника: учеб. пособие. – Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2017. – 170 с.

5.АО «Дизайн Центр «Союз» [Электронный ресурс]. – URL: https://dcsoyuz.ru/products/mikrokontrollery (датаобращения: 27.04.2021).

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

7.Отладочные платы на базе микроконтроллеров STM32 //

КОМПЭЛ [Электронный ресурс]. – URL: https://www.compel.ru/ lib/94885 (дата обращения: 22.04.2021).

8.Гончаровский О. В. Проектирование встроенных управляющих систем реального времени [Электронный ресурс]. – Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2013. – URL: https://elib.pstu.ru/ docview/?fDocumentId=351 (датаобращения: 11.07.2020).

9.Гончаровский О.В. Проектирование устройств и систем с высокоскоростными соединениями [Электронный ресурс]. – Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2015. – URL: https://elib.pstu.ru/ docview/?fDocumentId=2632 (датаобращения: 11.07.2020).

10.ГончаровскийО.В., Матушкин Н.Н., ЮжаковА.А. Встроенные микропроцессорные системы [Электронный ресурс]. – Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2012. – URL: https://elib.pstu.ru/ docview/?fDocumentId=541 (датаобращения: 11.07.2020).

98

11.Гончаровский О.В. Прототипирование сетевой системы управления. Разработка Windows-приложения удаленного контроллера прототипа робота-официанта на базе PROMOBOT V.4 [Электронный ресурс]. – Пермь: Изд-во ПНИПУ, 2019. – URL: https://elib.pstu.ru/ docview/?fDocumentId=4527 (датаобращения: 11.07.2020).

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

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

14.STM32 – STM32CubeMX и Atollic TrueStudio. – URL: https://istarik.ru/blog/stm32/106.html, accessed 28 April 2021.

15.jre-8u-271-windows-x64. – URL: https://www.java.com/ru/ download/, accessed 28 April 2021.

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

17.STM32 – STM32CubeMX. – URL: https://www.st.com/en/ development-tools/stm32cubemx.html (дата обращения: 28.04.2021).

18.USART stm32 HAL. – URL: https://istarik.ru/blog/stm32/ 120.html (дата обращения: 23.04.2021).

19.Авраменко Д.Г., Данилова Е.Ю. Генерирование тестов для диагностирования замыканий входов ПЛИС // Математика и междисциплинарные исследования: материалы Всерос. науч.-практ. конф. молодых ученых с междунар. уч. / гл. ред. А.П. Шкарапута. –

Пермь, 2019. – С. 10–13.

20.Поселенцева Д.Ю., Данилова Е.Ю. Генетический алгоритм построения вероятностного диагностического дерева // Автоматизированные системы управления и информационные технологии: материалы Всерос. науч.-техн. конф.: в 2 т. – Пермь, 2020. – С. 126–132.

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

99

Учебное издание

Тюрин Сергей Феофентович Ковыляев Дмитрий Андреевич Данилова Екатерина Юрьевна Городилов Алексей Юрьевич

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ С ИСПОЛЬЗОВАНИЕМ IDE

Учебное пособие

Редактор и корректор И.А. Мангасарова

––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Подписано в печать 10.08.2021. Формат 60 90/16. Усл. печ. л. 6,25. Тираж 50 экз. Заказ № 164/2021.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Издательство Пермского национального исследовательского

политехнического университета.

Адрес: 614990, г. Пермь, Комсомольский пр., 29, к. 113.

Тел. (342) 219-80-33.

100

Соседние файлы в папке книги