Програмування мікропроцесорних систем - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційні управляючі системи та технології
Статус дисципліни професійно –орієнтована
Форма навчання очна(денна)
Рік підготовки, семестр 2 курс, осінній семестр
Обсяг дисципліни 135 год.
Семестровий контроль/ контрольні заходи залік
Розклад занять
Мова викладання Українська
Інформація про
ккерівника курсу / викладачів

Лектор: к.т.н., доцент, Голубєв Леонтій Петрович, golubevl@ukr.net

Лабораторні: доцент, Голубєв Леонтій Петрович, golubevl@ukr.net

Розміщення курсу Кампус

Програма навчальної дисципліни

  1. Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Дисципліна «Програмування мікропроцесорних систем» є професійно–орієнтовананою дисципліною та вивчає сучасні технології програмування мікропроцесорних систем.

Мета вивчення дисципліни набуття фахових компетентностей, теоретичних знань і практичних навичок з програмування мікропроцесорних систем.

Предметом вивчення дисципліни є методи та засоби програмування мікропроцесорних систем.

Компетентності:

Інтегральна компетентність: Здатність розв'язувати складні спеціалізовані задачі та практичні проблеми у галузі програмування мікропроцесорних систем, розробки програм для мікропроцесорних систем мовами assembler,C++, Processing, моделювання роботи мікропроцесорних систем за допомогою системи Proteus.

КЗ 1 Здатність до абстрактного мислення, аналізу та синтезу
КЗ 2 Здатність застосовувати знання у практичних ситуаціях
КЗ 3 Здатність до розуміння предметної області та професійної діяльності
КЗ 4 Здатність спілкуватися державною та іноземною мовами як усно, так і письмово
КЗ 5 Здатність вчитися і оволодівати сучасними знаннями

Спеціальні (фахові, предметні) компетентності

КС 1 Здатність аналізувати об’єкт проектування або функціонування та його предметну область
КС 2 Здатність застосовувати стандарти в області інформаційних систем та технологій при розробці функціональних профілів, побудові та інтеграції систем, продуктів, сервісів і елементів інфраструктури
КС 3 Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (IoT), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними
КС 4 Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфокомунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші)
КС 12 Здатність управляти та користуватися сучасними інформаційно-комунікаційними системами та технологіями (у тому числі такими, що базуються на використанні Інтернет)

Згідно з вимогами освітньо-професійної програми студенти після засвоєння навчальної дисципліни мають продемонструвати такі результати навчання:

ПР 3 Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій

ПР 4 Проводити системний аналіз об’єктів проектування та обґрунтовувати вибір структури, алгоритмів та способів передачі інформації в інформаційних системах та технологіях

ПР 12 Знати основи побудови та застосовувати сучасні операційні системи та пакети прикладних програм відповідно до професійних завдань

ПР 14 Знати сучасні мови програмування та технології створення програмного забезпечення інформаційних систем та технологій

  1. Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)

Перелік дисциплін, що передують: Комп’ютерні мережі, Бази даних, Архітектура комп’ютерих систем.

Перелік дисциплін, що забезпечуються: Алгоритми та структури даних; Дискретні структури; Емпіричні методи програмної інженерії; Моделювання та аналіз програмного забезпечення; Якість програмного забезпечення та тестування; Системний аналіз.

  1. Зміст навчальної дисципліни

Розділ 1. Загальні відомості про мікропроцесорні системи

Тема 1.1 Інформаційні потоки в мікропроцесорної системі

Тема 1.2 Структура мікропроцесора

Тема 1.3 Основні характеристики мікропроцесорних систем

Тема 1.4 Види пам’яті, порти введення-виведення

Тема 1.5 Процесор та цифрові шини. Шини даних, адресу та управління

Тема 1.6 Принцип дії мікропроцесорної системи

Розділ 2. Алгоритми роботи мікропроцесорної системи

Тема 2.1 Програма. Процес виконання команди.

Тема 2.2 Робочі регістри. Команди мікропроцесора.

Тема 2.3 Команди умовного та безумовного переходу. Команди організації циклів.

Тема 2.4 Механізм переривань.

Тема 2.5 Прямий доступ до пам’яті

Розділ 3. Мікроконтролери AVR

Тема 3.1 Особливості нової серії мікроконтролерів

Тема 3.2 Внутрішня пам’ять.

Тема 3.3 Способи програмування Flash та EEPROM пам’яті

Тема 3.4 Регістри загального призначення (РОН). Регістри вводу-виводу

Тема 3.5 Пам'ять програм. Оперативна пам'ять мікроконтролерів. Область пам'яті, поєднана з набором регістрів загального призначення (РОН). Область внутрішнього ОЗУ. Область зовнішнього ОЗУ

Тема 3.6 Незалежна пам'ять даних (ЕЕРВОМ). Лічильник команд і стековая пам'ять.

Тема 3.7 Підсистема введення-виведення. Система переривань. Призначення системи переривань. Управління системою переривань. Алгоритм роботи системи переривань.

Тема 3.8 Таймери-лічильники. Режими роботи таймерів.

Розділ 4. Мікроконтролери STM32

Тема 4.1 Огляд процесорів Cortex.

Введення в процесори на базі ARM. Cortex та процесори на базі Cortex-M. Версії архітектур ARM

Тема 4.2 ЦПУ Cortex

Регістри ядра. Карта пам'яті. Технологія бітових стрічок (bit-banding). Thumb-2 та вирівнювання пам'яті. Конвеєр. Обробка переривань та виключень. Системний таймер SysTick. Режими живлення. CMSIS.

Тема 4.3 Робота з HAL

Відображення периферійних пристроїв STM32 та дескриптори HAL. Конфігурація GPIO. Режими роботи GPIO. Режим альтернативної функції GPIO. Поняття швидкості GPIO. Керування GPIO. Деініціалізація GPIO. Обробка переривань. Контролер NVIC. Таблиця векторів у STM32. Дозвіл переривань. Дозвіл переривань у CubeMX. Життєвий цикл переривань. Рівні пріоритету переривань.

Тема 4.4 Універсальні асинхронні послідовні засоби зв'язку.

Введення в UART та USART. Ініціалізація UART. Конфігурація UART з використанням CubeMX. UART-зв'язок у режимі опитування. Встановлення консолі послідовного порту в Windows. Встановлення консолі послідовного порту в Linux та MacOS. UART-зв'язок у режимі переривань. Переривання, що стосуються UART. Обробка помилок. Перенаправлення введення-виводу.

Тема 4.5Таймери

Введення в таймери. Категорії таймерів у мікроконтролері STM32. Доступність таймерів в асортименті STM32. Базові таймери. Використання таймерів у режимі переривань. Генерація тимчасового відліку у таймерах розширеного. Управління. Використання таймерів у режимі опитування. Використання таймерів у режимі DMA. Зупинка таймера. Використання CubeMX для конфігурації базового таймера. Таймери загального призначення. Використання CubeMX для конфігурації джерела тактового сигналу таймера загального призначення

Розділ 5. Програмування мікропроцесорних систем мовою assembler.

Тема 5.1 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з LED.

Тема 5.2 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з керуючою кнопкою (BUTTON).

Тема 5.3 Програмування мікропроцесорних систем. Оператори зсуву

Тема 5.4 Програмування мікропроцесорних систем. Робота з таймером без переривань.

Тема 5.5 Програмування мікропроцесорних систем. Робота з таймером за допомогою переривань.

Розділ 6. Програмування мікропроцесорних систем мовою C++

Тема 6.1 Програмування мікропроцесорних систем. Цифрові порти введення-виведення, широко-імпульсна модуляція (ШІМ).

Тема 6.2 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з LED.

Тема 6.3 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з керуючою кнопкою (BUTTON).

Тема 6.4 Програмування мікропроцесорних систем. Оператори зсуву

Тема 6.5 Програмування мікропроцесорних систем. Робота з таймером без переривань.

Тема 6.6 Програмування мікропроцесорних систем. Робота з таймером за допомогою переривань.

  1. Навчальні матеріали та ресурси

Основна література

  1. Трегуб В.Г. Проектування систем автоматизації, - Ліра-К, 2019. – 344 с.
  2. Якименко Ю.І. МІКРОПРОЦЕСОРНА ТЕХНІКА / Терещенко Т.О., Сокол Є.І., Жуйков В.Я., Петергеря Ю.С. - Ліра-К, 2018. – 440с.

Додаткова література

  1. Довідник з AVR-асемблеру. (http://s-engineer.ru/DOWNOLO AD/Asm_A VR.pdf)
  2. Офіційний довідник з AVR-асемблеру (eng). (on-line версія: https://www.microchip.com/webdoc/avrassembler/index.html9 PDF-версія: http://wwl.microchip.com/downloads/en/DeviceDoc/40001917A.pdf).
  3. Arsath Natheem S. Arduino Book for Beginners : GETTING STARTED WITH ARDUINO AND BASIC PROGRAMMING WITH PROJECTS (New Edition 2022).— 178 p.
  4. Massimo Banzi. Getting Started with Arduino, 2019. — O'Reilly, 2019. – 212 p.
  5. 8-bit AVR Instruction Set Manual (eng). (on-line версія: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb\_instruction\_list.html, PDF-версія: http://wwl.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf).
  6. Arduino Official Home Page https://www.arduino.cc/ Info on hardware, some libraries for sensors, the integrated development environment (IDE) and reference material on commands and structures
  7. www.instructables.com : Info on DIY projects prepared by others
  8. Arduino Official Project Pages https://create.arduino.cc/projecthub
  9. https://learn.adafruit.com Adafruit makes many shields and sensors, and they have tutorials for almost everything they carry
  10. http://www.arduinoclassroom.com/index.php/arduino-101 Arduino Classroom is currently doing an intro series on Arduinos. Check it for updates and more topics in the future
  11. http://playground.arduino.cc/ Arduino playground is the wiki run by the Arduino Company for its products. There is a lot of helpful information on almost everything imaginable here.
  12. Exploring Arduino: Tools and Techniques for Engineering Wizardry; 2nd Ed; Jeremy Blum; Wiley; 512 pages; 2019;
  13. Programming Arduino Next Steps: Going Further with Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 320 pages; 2018;
  14. STM32 Arm Programming for Embedded Systems (Mazidi & Naimi ARM); Muhammad Ali Mazidi, Shujen Chen; 378 pages; 2018
  15. Carmine Noviello Mastering STM32 A step-by-step guide to the most complete ARM Cortex-M platform, using a free and powerful development environment based on Eclipse and GCC.- LeanPub. -2017.-792 p.
  16. Warren Gay. Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC.- Apress.- 2018. – 235 p.
  17. Geoffrey Brown. Discovering the STM32 Microcontroller. – LeanPub. -2016. – 244 p.

Навчальний контент

  1. Методика опанування навчальної дисципліни (освітнього компонента)

Лекційні заняття

№ з/п Назва теми лекції та перелік основних питань
1

Розділ 1. Загальні відомості про мікропроцесорні системи

Тема 1.1 Інформаційні потоки в мікропроцесорної системі

Тема 1.2 Структура мікропроцесора

Тема 1.3 Основні характеристики мікропроцесорних систем

Тема 1.4 Види пам’яті, порти введення-виведення

Тема 1.5 Процесор та цифрові шини. Шини даних, адресу та управління

Тема 1.6 Принцип дії мікропроцесорної системи

2

Розділ 2. Алгоритми роботи мікропроцесорної системи

Тема 2.1 Програма. Процес виконання команди.

Тема 2.2 Робочі регістри. Команди мікропроцесора.

Тема 2.3 Команди умовного та безумовного переходу. Команди організації циклів.

Тема 2.4 Механізм переривань.

Тема 2.5 Прямий доступ до пам’яті

Розділ 3. Мікроконтролери AVR

Тема 3.1 Особливості нової серії мікроконтролерів

Тема 3.2 Внутрішня пам’ять.

Тема 3.3 Способи програмування Flash та EEPROM пам’яті

Тема 3.4 Регістри загального призначення (РОН). Регістри вводу-виводу

Тема 3.5 Пам'ять програм. Оперативна пам'ять мікроконтролерів. Область пам'яті, поєднана з набором регістрів загального призначення (РОН). Область внутрішнього ОЗУ. Область зовнішнього ОЗУ

Тема 3.6 Незалежна пам'ять даних (ЕЕРВОМ). Лічильник команд і стекова пам'ять.

Тема 3.7 Підсистема введення-виведення. Система переривань. Призначення системи переривань. Управління системою переривань. Алгоритм роботи системи переривань.

Тема 3.8 Таймери-лічильники. Режими роботи таймерів.

Розділ 4. Мікроконтролери STM32

Тема 4.1 Огляд процесорів Cortex.

Введення в процесори на базі ARM. Cortex та процесори на базі Cortex-M. Версії архітектур ARM

Тема 4.2 ЦПУ Cortex

Регістри ядра. Карта пам'яті. Технологія бітових стрічок (bit-banding). Thumb-2 та вирівнювання пам'яті. Конвеєр. Обробка переривань та виключень. Системний таймер SysTick. Режими живлення. CMSIS.

Тема 4.3 Робота з HAL

Відображення периферійних пристроїв STM32 та дескриптори HAL. Конфігурація GPIO. Режими роботи GPIO. Режим альтернативної функції GPIO. Поняття швидкості GPIO. Керування GPIO. Деініціалізація GPIO. Обробка переривань. Контролер NVIC. Таблиця векторів у STM32. Дозвіл переривань. Дозвіл переривань у CubeMX. Життєвий цикл переривань. Рівні пріоритету переривань.

Тема 4.4 Універсальні асинхронні послідовні засоби зв'язку.

Введення в UART та USART. Ініціалізація UART. Конфігурація UART з використанням CubeMX. UART-зв'язок у режимі опитування. Встановлення консолі послідовного порту в Windows. Встановлення консолі послідовного порту в Linux та MacOS. UART-зв'язок у режимі переривань. Переривання, що стосуються UART. Обробка помилок. Перенаправлення введення-виводу.

Тема 4.5 Таймери

Введення в таймери. Категорії таймерів у мікроконтролері STM32. Доступність таймерів в асортименті STM32. Базові таймери. Використання таймерів у режимі переривань. Генерація тимчасового відліку у таймерах розширеного. Управління. Використання таймерів у режимі опитування. Використання таймерів у режимі DMA. Зупинка таймера. Використання CubeMX для конфігурації базового таймера. Таймери загального призначення. Використання CubeMX для конфігурації джерела тактового сигналу таймера загального призначення.

Розділ 5. Програмування мікропроцесорних систем мовою assembler.

Тема 5.1 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з LED.

Тема 5.2 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з керуючою кнопкою (BUTTON).

Тема 5.3 Програмування мікропроцесорних систем. Оператори зсуву

Тема 5.4 Програмування мікропроцесорних систем. Робота з таймером без переривань.

Тема 5.5 Програмування мікропроцесорних систем. Робота з таймером за допомогою переривань.

Розділ 6. Програмування мікропроцесорних систем мовою C++

Тема 6.1 Програмування мікропроцесорних систем. Цифрові порти введення-виведення, широко-імпульсна модуляція (ШІМ).

Тема 6.2 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з LED.

Тема 6.3 Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з керуючою кнопкою (BUTTON).

Тема 6.4 Програмування мікропроцесорних систем. Оператори зсуву

Тема 6.5 Програмування мікропроцесорних систем. Робота з таймером без переривань.

Тема 6.6 Програмування мікропроцесорних систем. Робота з таймером за допомогою переривань.

7. Лабораторні заняття

Лабораторні заняття мають на меті закріпити теоретичні знання студентів, допомогти їм оволодіти способами роботи з сучасними технологіями програмування мікропроцесорних систем, засвоїти методи, що використовуються для проектування мікропроцесорних систем.

№ з/п Назва лабораторної роботи Кількість аудиторних годин
1 Лабораторна робота №1: Програмування мікропроцесорних систем. Цифрові порти введення-виведення. LED. 2
2 Лабораторна робота №2: Програмування мікропроцесорних систем. Цифрові порти введення-виведення, широко-імпульсна модуляція (ШІМ), робота з кнопкою. 2
3 Лабораторна робота №3: Програмування мікропроцесорних систем. Робота з аналоговими датчиками. 4
4 Лабораторна робота №4: Програмування мікропроцесорних систем. Робота з серво та кроковим двигунами. 4
5 Лабораторна робота №5: Програмування мікропроцесорних систем. Робота з LCD - дисплеєм. 4
6 Лабораторна робота №6: Програмування мікропроцесорних систем. Робота з 7 - сегментними індикаторами. 4
7 Лабораторна робота №7: Вивчення середовища розробки програм для мікропроцесорних систем AVR Studio. Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з LED. 4
8 Лабораторна робота №8: Програмування мікропроцесорних систем. Робота з портами введення-виведення. Робота з керуючою кнопкою (BUTTON). 4
9 Лабораторна робота №9: Програмування мікропроцесорних систем. Оператори зсуву. 4
10 Лабораторна робота №10: Програмування мікропроцесорних систем. Робота з таймером без переривань. 4
  1. Самостійна робота студента/аспіранта

№ з/п Назви тем і питань, що виноситься на самостійне опрацювання Кількість годин СРС
1 Тема 1. Програмування мікропроцесорних систем. Робота з таймером 15
2 Тема 2. Програмування мікропроцесорних систем. Робота з перериваннями 15
3 Тема 3. Програмування мікропроцесорних систем. Робота з серво двигунами 15
4 Тема 4. Програмування мікропроцесорних систем. Робота з кроковими двигунами 18

Політика та контроль

  1. Політика навчальної дисципліни (освітнього компонента)

  2. Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Поточний контроль: опитування за темою заняття

Календарний контроль: провадиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.

Семестровий контроль: залік

Умови допуску до семестрового контролю: зарахування усіх лабораторних робіт

Рейтинг студента з дисципліни складається з балів, що він отримує за:

1) відповідей на лабораторних заняттях;

3) відповідь на заліку.

Система рейтингових (вагових) балів та критерії оцінювання

1. Робота на лабораторних заняттях

Ваговий бал - 10. Максимальна кількість балів на всіх лабораторних заняттях дорівнює 5 балів х 4+10 балів х 6 = 80 балів.

Модульний контроль

Ваговий бал – 20.

Поточне оцінювання та самостійна робота* МК ** (тестовий) Сума

Поточне оцінювання та самостійна робота* МК ** (тестовий) Сума
Т1 Т2 Т3 Т4 Т5 Т6 Т7 Т8 Т9 Т10
5 5 5 5 10 10 10 10 10 10 20 100

Таблиця відповідності рейтингових балів оцінкам за університетською шкалою:

Кількість балів Оцінка
100-95 Відмінно
94-85 Дуже добре
84-75 Добре
74-65 Задовільно
64-60 Достатньо
Менше 60 Незадовільно
Не виконані умови допуску Не допущено
  1. Додаткова інформація з дисципліни (освітнього компонента)

Робочу програму навчальної дисципліни (силабус):

Складено доцент, к.т.н., доцент, Голубєв Леонтій Петрович

Ухвалено кафедрою _ інформаційних систем та технологій__ (протокол № _17_ від ___26.06.24___)

Погоджено Методичною комісією факультету інформатики та обчислювальної техніки (протокол № _11_ від __26.06.24__)