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

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

Рівень вищої освіти Другий (магістерський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційне забезпечення робототехнічних систем
Статус дисципліни Професійна (за вибором)
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 1 курс, весняний семестр
Обсяг дисципліни 120 годин
Семестровий контроль/ контрольні заходи Залік робота, МКР
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про керівника курсу / викладачів

Лектор: к.т.н., доцент Катін Павло Юрійович

katin.dino@gmail.com

моб. +38 098 202 08 11

к.т.н., доцент Катін Павло Юрійович

==

моб. ==

Розміщення курсу https://campus.kpi.ua

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

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

© КПІ ім. Ігоря Сікорського, 2022

Опис дисципліни

Основною метою дисципліни є формування у студентів навичок розробки, налагодження і тестування інтелектуальних вбудованих систем. У тому числі на основі ОС Linux. На базі мікропроцесорів (МП) та мікроконтролерів (МК) родини ARM, або мікрокомп'ютерів (Orange Pi, Pasberry Pi). Крім того розглядаються питання розробки прикладного програмного забезпечення, створення на базі бібліотек QT графічних інтерфейсів, файлів, баз даних, баз знань і мережевих застосувань.

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

Процес розробки, налагодження, тестування інтелектуальних вбудованих систем.

Міждисциплінарні зв’язки

Дисципліна **Технології та методика програмування вбудованих систем. ** базується на дисциплінах:

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

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

Основні завдання навчальної дисципліни

Знання
  • особливостей програмної і апаратної архітектури інтелектуальних вбудованих систем;
  • апаратної архітектури, технологій програмування мікропроцесорів (МП) та мікроконтролерів (МК) родини ARM, технології програмуваня мікрокомп'ютерів у контексті використання для вбудованих систем;
  • технологічного циклу розробки, налагодження і тестування прикладного і системного програмного забезпечення вбудованих систем з використанням обраної IDE і операційної системи;
  • документування програмного забезпечення інтелектуальних вбудованих систем з використанням UML;
  • документування апаратного забезпечення вбудованих систем з використанням структурних, функціональних і принципових схем;
  • апаратні технології і програмні шаблони для обміну інформацією між виконавчими пристроями і датчиками типової вбудованої систем.
Уміння
  • розробляти і документувати технічне завдання для розробки інтелектуальної вбудованої системи на базі потужних МП (МК), мікрокомп'ютерів (Orange Pi, Pasberry Pi);
  • програмувати мікрокомп'ютери, мікропроцесори та мікроконтролери, для інтелектуальних вбудованих систем;
  • налагоджувати, тестувати інтелектуальну вбудовану систему, разом програмну і апаратні частини;
  • документувати результати розробки інтелектуальної вбудованої системи.

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

Пререквізити

Вміти програмувати, знати одну з мов програмування, базові знання математики, архітектури комп'ютера, знання англійської мови відповідно до програми, знання теорії і практики баз даних і знань.

Постреквізити

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

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

Денна форма

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

Тема 1. Основи інтелектуальних вбудованих систем. Тема 2. Програмна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів. Тема 3. Апаратна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів. Тема 4. Інтелектуальні вбудовані системи як основа автономних наземних платформ. Тема 5. Проектування, програмування і налагодження інтелектуальних вбудованих систем.

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

||Лабораторна робота 1. Проектування, розробка, налагодження, документувння і тестування виконавчих механізмів інтелектуальних вбудованих системи.| || 1.1 Рішення на базі мікроконтролера 1.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 2. Проектування, розробка, налагодження, документувння і тестування датчиків та іх програмне опитування у інтелектуальних вбудованих системах.| || 2.1 Рішення на базі мікроконтролера 2.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 3. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи.| || 3.1 Рішення на базі мікроконтролера 3.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 4. Управління силовими елементами прототипів колісних роботів у режимі реального часу.| || 4.1 Рішення на базі таймерів і преривань 4.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 5.Використання інтерфейсів послідовної передачі інформації між мікроконтролерами і датчиками (I2C, SPI, USART, промислових мереж).| || 5.1 Рішення на базі таймерів і преривань 5.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 6.Широтно-імпульсна модуляція. Управління силовими елементами прототипів у плавному режимі зміни потужності.|
||Лабораторна робота 7. Використання АЦП і ЦАП для реалізації функціонального вузла на базі мікроконтролера та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 8. Основи технології програмування, розробки і налагодження інтелектуальної вбудованої системи.|

Заочна форма

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

Тема 1. Основи інтелектуальних вбудованих систем. Тема 2. Програмна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів. Тема 3. Апаратна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.

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

Три лабораторні з переліку за вибором. ||Лабораторна робота 1. Проектування, розробка, налагодження, документувння і тестування виконавчих механізмів інтелектуальних вбудованих системи.| || 1.1 Рішення на базі мікроконтролера 1.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 2. Проектування, розробка, налагодження, документувння і тестування датчиків та іх програмне опитування у інтелектуальних вбудованих системах.| || 2.1 Рішення на базі мікроконтролера 2.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 3. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи.| || 3.1 Рішення на базі мікроконтролера 3.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).| ||Лабораторна робота 4. Управління силовими елементами прототипів колісних роботів у режимі реального часу.| || 4.1 Рішення на базі таймерів і преривань 4.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 5.Використання інтерфейсів послідовної передачі інформації між мікроконтролерами і датчиками (I2C, SPI, USART, промислових мереж).| || 5.1 Рішення на базі таймерів і преривань 5.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 6.Широтно-імпульсна модуляція. Управління силовими елементами прототипів у плавному режимі зміни потужності.|
||Лабораторна робота 7. Використання АЦП і ЦАП для реалізації функціонального вузла на базі мікроконтролера та (Orange Pi, Pasberry Pi).| ||Лабораторна робота 8. Основи технології програмування, розробки і налагодження інтелектуальної вбудованої системи.|

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

Базова література

  1. Geoffrey Brown [Електронний ресурс] : [Веб-сайт]. – Електронні дані. – Режим доступу https://github.com/geoffreymbrown/STM32-Template (дата звернення 01.09.2018) – Назва з екрана.
  2. Andrey Koryagin (Avislab) [Електронний ресурс] : [Веб-сайт]. – Електронні дані. – Режим доступу https://github.com/avislab/STM32F103 (дата звернення 01.09.2018) – Назва з екрана.
  3. AVISLAB. Програмування STM32F103. [Електронний ресурс] : [Веб-сайт]. – Електронні дані. – Режим доступу http://www.avislab.com/blog/stm32-nvic_ua/ STM32F103 (дата звернення 01.09.2018) – Назва з екрана.
  4. Embedded Intelligent Systems. írta Dobrowiecki, Tadeusz, Lőrincz, András, Mészáros, Tamás, és Pataki, Béla/ Publication date 2015/ Szerzői jog © 2015 Dobrowiecki Tadeusz, Lőrincz András, Mészáros Tamás, Pataki Béla/ https://dtk.tankonyvtar.hu/xmlui/bitstream/handle/123456789/3763/2011-0050_13_embedded_intelligent_systems.pdf?sequence=2&isAllowed=y
  5. P Katin, V Chmelov, V Shemaev. Development of Typical ‘State’Software Patterns for CortexM Microcontrollers in Real Time. Eastern-European Journal of Enterprise Technologies, 2020. http://journals.uran.ua/eejet/article/view/205377

Допоміжна література

  1. ARM Limited. Cortex-M3 technical reference manual, 2006.
  2. STMicroelectronics. Reference manual. STM32F101xx, STM32F102xx, STM32F103xx, advanced Arm®-based 32-bit MCUs, March 2017. RM0008.
  3. STMicroelectronics. Programming manual: Stm32f10xxx/ 20xxx/ 21xxx/ l1xxxx cortex-m3 programming manual, March 2011. PM0056.
  4. STMicroelectronics. STM32F103x8. STM32F103xB. Medium-density performance line ARM®-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 com. Interfaces. March 2017.
  5. П.Ю. Катін, О.А. Похиленко. Шаблони типу Стан для створення інфраструктури системного програмного забезпечення мікроконтролерів архітектури Cortex-М у режимі реального часу для вбудованих систем. - 2021.https://scholar.google.com/scholar?oi=bibs&cluster=15067766245047819277&btnI=1&hl=en

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

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

Очна форма

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

Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1. Основи інтелектуальних вбудованих систем.
Лекція 1. Основи теорії і практики інтелектуальних вбудованих систем.
Лекція 2. Проектування, розробка, налагодження, виконавчих механізмів інтелектуальних вбудованих системи. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
2 Тема 2. Програмна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 3. Програмні рішення і операційні системи для інтелектуальних вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 4. Датчикі та іх програмне опитування у інтелектуальних вбудованих системах. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
3 Тема 3. Апаратна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 5. Структура і функціональна схема вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 6. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
4 Тема 4. Інтелектуальні вбудовані системи як основа автономних наземних платформ.
Лекція 7. Особливості будови програмної і апаратної частин автономних наземних платформ.
Лекція 8. Управління силовими елементами прототипів колісних роботів у режимі реального часу. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
5 Тема 5. Проектування, програмування і налагодження інтелектуальних вбудованих систем.
Лекція 9. Технічна документація для проектування, програмування і налагодження інтелектуальних вбудованих систем.
Лекція 10. Основи технології програмування, розробки і налагодження інтелектуальної вбудованої системи. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
6 МКР1 Модульна контрольна робота.
7 МКР2 Модульна контрольна робота.

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

Назва лабораторної роботи Кількість ауд. годин
Лабораторна робота 1. Проектування, розробка, налагодження, документувння і тестування виконавчих механізмів інтелектуальних вбудованих системи. 2
1.1 Рішення на базі мікроконтролера 1.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 2. Проектування, розробка, налагодження, документувння і тестування датчиків та іх програмне опитування у інтелектуальних вбудованих системах. 2
2.1 Рішення на базі мікроконтролера 2.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 3. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи. 2
3.1 Рішення на базі мікроконтролера 3.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 4. Управління силовими елементами прототипів колісних роботів у режимі реального часу. 2
4.1 Рішення на базі таймерів і преривань 4.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).
Лабораторна робота 5.Використання інтерфейсів послідовної передачі інформації між мікроконтролерами і датчиками (I2C, SPI, USART, промислових мереж). 2
5.1 Рішення на базі таймерів і преривань 5.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).
Лабораторна робота 6.Широтно-імпульсна модуляція. Управління силовими елементами прототипів у плавному режимі зміни потужності. 2
Лабораторна робота 7. Використання АЦП і ЦАП для реалізації функціонального вузла на базі мікроконтролера та (Orange Pi, Pasberry Pi).
Лабораторна робота 8. Основи технології програмування, розробки і налагодження інтелектуальної вбудованої системи. 2

Заочна форма

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

Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1. Основи інтелектуальних вбудованих систем.
Лекція 1. Основи теорії і практики інтелектуальних вбудованих систем.
Лекція 2. Проектування, розробка, налагодження, виконавчих механізмів інтелектуальних вбудованих системи. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
2 Тема 2. Програмна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 3. Програмні рішення і операційні системи для інтелектуальних вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 4. Датчикі та іх програмне опитування у інтелектуальних вбудованих системах. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).
3 Тема 3. Апаратна складова вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 5. Структура і функціональна схема вбудованих систем на основі потужних мікроконтролерів (МП) і мікрокомп'ютерів.
Лекція 6. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи. Рішення на базі мікроконтролера і мінікомпьютера (Orange Pi, Pasberry Pi).

|6|МКР1 Модульна контрольна робота.| |7|МКР2 Модульна контрольна робота.|

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

Назва лабораторної роботи Кількість ауд. годин
= Три лабораторних за вибором =
Лабораторна робота 1. Проектування, розробка, налагодження, документувння і тестування виконавчих механізмів інтелектуальних вбудованих системи. 2
1.1 Рішення на базі мікроконтролера 1.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 2. Проектування, розробка, налагодження, документувння і тестування датчиків та іх програмне опитування у інтелектуальних вбудованих системах. 2
2.1 Рішення на базі мікроконтролера 2.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 3. Базові паттерни (шаблони) програмної складової інтелектуальних вбудованих системи. 2
3.1 Рішення на базі мікроконтролера 3.2 Рішення на базі мінікомпьютера (Orange Pi, Pasberry Pi).
Лабораторна робота 4. Управління силовими елементами прототипів колісних роботів у режимі реального часу. 2
4.1 Рішення на базі таймерів і преривань 4.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).
Лабораторна робота 5.Використання інтерфейсів послідовної передачі інформації між мікроконтролерами і датчиками (I2C, SPI, USART, промислових мереж). 2
5.1 Рішення на базі таймерів і преривань 5.2 Рішення на базі операціних систем реального часу для МК або МП та (Orange Pi, Pasberry Pi).
Лабораторна робота 6.Широтно-імпульсна модуляція. Управління силовими елементами прототипів у плавному режимі зміни потужності. 2
Лабораторна робота 7. Використання АЦП і ЦАП для реалізації функціонального вузла на базі мікроконтролера та (Orange Pi, Pasberry Pi).
Лабораторна робота 8. Основи технології програмування, розробки і налагодження інтелектуальної вбудованої системи. 2

Самостійна робота студента/аспіранта

Очна форма

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Складові частини типового МК. Обчислювальне ядро (CPU), система апаратних і програмних перевивань, пам'ять для зберігання програм за технологією Flash, (FlashROM), оперативна пам’ять (RAM), тощо. Архітектура обчислювального ядра МК звичайно реалізується за Гарвардською архітектурою (Harvard architecture). Однією з базових характеристик є розрядність МК, відповідно якої здійснюється первісна класифікація. Існують 8 розрядні, 16 розрядні і 32 розрядні МК. Архітектура ARM у цілому розподіляється на три групи: група Cortex-A – потужні процесори загального призначення для ноутбуків, планшетів, робочих станцій, міні комп’ютерів, тощо; група Cortex-R – процесори для складних систем реального часу; група Cortex-M – процесори для мікроконтролерів. що є на сьогоднішній день домінуючою на ринку мікроконтролерів. 12
2 Базові характеристики серії МК STM32F1х. Послідовні інтерфейси передавання даних. Досконала периферія. Система управління затримками по часу і тактування. Типова периферія МК STM32. Шина AHB є проміжною між APB1, APB1 і підключає контролер DMA та деякі додаткові елементи доступу. Бібліотеки CMSIS. Універсальні синхронні (асинхронні) шини (universal synchronous/asynchronous receiver/transmitter (USART)). Часові графіки апаратного протоколу передачі даних дуже прості і показані на рис.9 [1]. 11
3 Механізм скидання і переривань у мікроконтролері. Поняття про регістр прапорів МК. Дослідження механізму переривань на прикладі таймеру. Поняття про функцію обробки переривань. Обробники переривань на прикладі таймеру і порту вводу-виводу. Загальна структура програм з використанням функцій переривань.Функціональна схема і програмне управління таймерами у МК загального призначення. Повний набір регістрів для управління таймерами.Поняття про вектор переривань. Розміщення векторів переривань у оперативної пам’яті. Принципи написання функції обробки переривань.Повний цикл емуляції розробки, тестування, налагодження і програмування функціонального вузла на базі мікроконтролера, з використанням перевивань, що керує портами вводу-виводу. 10
4 Технологія DMA (Direct Memory Access) або прямого доступу до пам’яті (ПДП) МК. Переваги і реалізація ПДП. Програмне налаштування ПДП на різні варіанти периферії МК. Реалізація ПДП у мікроконтролерних системах. Аналого-цифрові перетворювачі (АЦП) у МК, призначення, основні характеристики. Процедура аналого-цифрового перетворення аналогових сигналів у цифрові. Теоретичні основи АЦП. Дві фази процесу аналого-цифрового перетворення аналогових сигналів до цифрового коду. Використання АЦП у мікроконтролерних системах.Методи перетворення аналогових сигналів до цифрового коду. Характеристики АЦП. Приклади використання АЦП у МПС на основі STM32. Розрядність АЦП, діапазон опорних напруг. 10
5 Виклик віддалених процедур Remote Procedure Call (RPC). Налаштування і управління периферійними пристроями МПС на прикладі СОМ порту. Дослідження сигналу лінії TxD. Запис і читання інформації СОМ порту у синхронному режимі. 10
6 Теорія послідовних інтерфейсів. Реалізація системи передачі даних з використанням інтерфейсу SPI. Поняття про апаратну частину SPI. Програмне управління SPI для реалізації СПД на основі МК. Повний цикл емуляції розробки, тестування, налагодження програмного прикладу СПД на основі SPI. 10
7 Патерни проектування що породжують. Загальний опис патернів: Абстрактна фабрика, будівельник, фабричний метод, прототип. Докладний розгляд патерну одинак. Структурні патерни проектування. Загальний опис патернів: Адаптер, Міст, Компонувальник. Докладний опис патерну Декоратор. 15
8 Логічна і фізична адресація пам'яті. Віртуальна пам'ять. Динамічний розподіл пам'яті. Пули пам'яті. Куча за замовчуванням. Створення додаткового пулу пам'яті. Виділення та звільнення пам'яті в кучі. Перевірка коректності даних, які розміщені в кучі. Отримання інформації про захист сторінок пам'яті. 5
9 Організація протоколів прикладного рівня. Архітектура мережної підтримки Windows та Linux. Завдання керування введенням-виведенням. Фізична організація пристроїв введення-виведення. Контролери, регістри. Організація програмного забезпечення введення-виведення. 5

Заочна форма

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Складові частини типового МК. Обчислювальне ядро (CPU), система апаратних і програмних перевивань, пам'ять для зберігання програм за технологією Flash, (FlashROM), оперативна пам’ять (RAM), тощо. Архітектура обчислювального ядра МК звичайно реалізується за Гарвардською архітектурою (Harvard architecture). Однією з базових характеристик є розрядність МК, відповідно якої здійснюється первісна класифікація. Існують 8 розрядні, 16 розрядні і 32 розрядні МК. Архітектура ARM у цілому розподіляється на три групи: група Cortex-A – потужні процесори загального призначення для ноутбуків, планшетів, робочих станцій, міні комп’ютерів, тощо; група Cortex-R – процесори для складних систем реального часу; група Cortex-M – процесори для мікроконтролерів. що є на сьогоднішній день домінуючою на ринку мікроконтролерів. 12
2 Базові характеристики серії МК STM32F1х. Послідовні інтерфейси передавання даних. Досконала периферія. Система управління затримками по часу і тактування. Типова периферія МК STM32. Шина AHB є проміжною між APB1, APB1 і підключає контролер DMA та деякі додаткові елементи доступу. Бібліотеки CMSIS. Універсальні синхронні (асинхронні) шини (universal synchronous/asynchronous receiver/transmitter (USART)). Часові графіки апаратного протоколу передачі даних дуже прості і показані на рис.9 [1]. 11
3 Механізм скидання і переривань у мікроконтролері. Поняття про регістр прапорів МК. Дослідження механізму переривань на прикладі таймеру. Поняття про функцію обробки переривань. Обробники переривань на прикладі таймеру і порту вводу-виводу. Загальна структура програм з використанням функцій переривань.Функціональна схема і програмне управління таймерами у МК загального призначення. Повний набір регістрів для управління таймерами.Поняття про вектор переривань. Розміщення векторів переривань у оперативної пам’яті. Принципи написання функції обробки переривань.Повний цикл емуляції розробки, тестування, налагодження і програмування функціонального вузла на базі мікроконтролера, з використанням перевивань, що керує портами вводу-виводу. 10
4 Технологія DMA (Direct Memory Access) або прямого доступу до пам’яті (ПДП) МК. Переваги і реалізація ПДП. Програмне налаштування ПДП на різні варіанти периферії МК. Реалізація ПДП у мікроконтролерних системах. Аналого-цифрові перетворювачі (АЦП) у МК, призначення, основні характеристики. Процедура аналого-цифрового перетворення аналогових сигналів у цифрові. Теоретичні основи АЦП. Дві фази процесу аналого-цифрового перетворення аналогових сигналів до цифрового коду. Використання АЦП у мікроконтролерних системах.Методи перетворення аналогових сигналів до цифрового коду. Характеристики АЦП. Приклади використання АЦП у МПС на основі STM32. Розрядність АЦП, діапазон опорних напруг. 10
5 Виклик віддалених процедур Remote Procedure Call (RPC). Налаштування і управління периферійними пристроями МПС на прикладі СОМ порту. Дослідження сигналу лінії TxD. Запис і читання інформації СОМ порту у синхронному режимі. 10
6 Теорія послідовних інтерфейсів. Реалізація системи передачі даних з використанням інтерфейсу SPI. Поняття про апаратну частину SPI. Програмне управління SPI для реалізації СПД на основі МК. Повний цикл емуляції розробки, тестування, налагодження програмного прикладу СПД на основі SPI. 10
7 Патерни проектування що породжують. Загальний опис патернів: Абстрактна фабрика, будівельник, фабричний метод, прототип. Докладний розгляд патерну одинак. Структурні патерни проектування. Загальний опис патернів: Адаптер, Міст, Компонувальник. Докладний опис патерну Декоратор. 15
8 Логічна і фізична адресація пам'яті. Віртуальна пам'ять. Динамічний розподіл пам'яті. Пули пам'яті. Куча за замовчуванням. Створення додаткового пулу пам'яті. Виділення та звільнення пам'яті в кучі. Перевірка коректності даних, які розміщені в кучі. Отримання інформації про захист сторінок пам'яті. 5
9 Організація протоколів прикладного рівня. Архітектура мережної підтримки Windows та Linux. Завдання керування введенням-виведенням. Фізична організація пристроїв введення-виведення. Контролери, регістри. Організація програмного забезпечення введення-виведення. 5

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

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

Система вимог, які ставляться перед студентом:

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;
  • на лекції викладач користується власним презентаційним матеріалом; відпрацьовує практичну частину на віртуальній машині з встановленою відповідною РСУБД; використовує гугл-диск для викладання матеріалу поточної лекції, додаткових ресурсів, лабораторних робіт та інше; викладач відкриває доступ до певної директорії гугл-диска для скидання електронних лабораторних звітів та відповідей на МКР;
  • на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;
  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;
  • модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); результат пересилається у файлі до відповідної директорії гугл-диску;
  • заохочувальні бали виставляються за: активну участь на лекціях; участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць; презентацій по одній із тем СРС дисципліни тощо. Кількість заохочуваних балів не більше 10;
  • штрафні бали виставляються за: невчасну здачу лабораторної роботи. Кількість штрафних балів не більше 10.

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

  • студент отримує позитивну оцінку за результатами роботи у семестрі, якщо має підсумковий рейтинг за семестр не менш ніж 60 балів і виконав умови допуску, був присутній на заліку і не був видалений;
  • якщо студент виконав умови допуску РСО і має підсумковий рейтинг за семестр менш ніж 60 балів, або хоче підвищити оцінку, то він виконує залікову контрольну роботу або проходить залікову співбесіду, у день заліку. Питання (програма) заліку у Додатку 1;
  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту, вихідного коду, що не містить помилок, вихідний код (проект) розміщується на GitHub, або іншій аналогічній системі, за узгодженням з викладачем у відкритому вигляді або приватно;
  • модульні контрольні роботи пишуться на лекційних заняттях із застосуванням всіх доступних матеріалів;
  • заохочувальні бали виставляються за: активну участь на лекціях; участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць; презентацій по одній із тем СРС дисципліни тощо. Кількість заохочуваних балів на більше 10;
  • штрафні бали виставляються за: невчасну здачу лабораторної роботи, затримка більше ніж 3 тиждня. Кількість штрафних балів на більше 10.

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

Для позитивної оцінки знання синтаксису мов програмування С(С++) є обов'язковою.
Модульні контрольні роботи (Дозволяється об'єднувати дві модульні контрольні роботи у одну, оцінка у такому випадку збільшуються у двічі):
  • «відмінно» – 2,5 балів, повна відповідь (не менше 90% потрібної інформації), відрізняти процедурне і ООП рішення, вміння користуватися знаннями для практичного програмування на рівні навичок, вміння вирішити завдання у декілька варіантів, визначити перевагу і недоліки різних варіантів рішення, вміння читати і використовувати шаблонний вихідний код, розробляти власні шаблони і нестандартні рішення, розробляти і знати технологічний цикл рішення для модуля ядра і прикладних ООП рішень;
  • «дуже добре» – 2 бала, відрізняти процедурне і ООП рішення, достатньо повна відповідь (не менше 75% потрібної інформації) або повна відповідь з незначними недоліками; вміння користуватися вихідним кодом та знаннями для практичного програмування, наявність твердих навичок програмування, рішення у одному з варіантів, вміння читати і використовувати шаблонний вихідний код для рішення завдання, мати розуміння про типові шаблони, розробляти і знати технологічний цикл рішення для модуля ядра і прикладних рішень;
  • «добре» – 1,5 бала, відрізняти процедурне і ООП рішення, неповна відповідь (не менше 60% потрібної інформації) та незначні помилки, знання технології практичного програмування, вміння читати і використовувати вихідний код для рішення завдання, розробляти і знати технологічний цикл прикладних ООП рішень, розробляти рішення для модулів ядра з використанням додаткової літератури і ресурсів;
  • «задовільно» – 1 бал, відрізняти процедурне і ООП рішення, неповна відповідь (не менше 50% потрібної інформації), помилки, що вимагають допомоги викладача, наявність слабких практичних навичок програмування, вміння вирішувати задачу з використанням шаблонного відхідного коду і додаткової літератури (ресурсів), розробляти і знати технологічний цикл прикладних рішень, мати загальне розуміння про розробку модулів ядра.
  • «незадовільно» – 0 балів, відповідь не відповідає вимогам до «задовільно»/
Лабораторні роботи (Для позитивної оцінки наявність знань синтаксису мов програмування С(С++) є обов'язковим)
  • «відмінно» – 10 балів, повна відповідь (не менше 90% потрібної інформації), відрізняти процедурне і ООП рішення, вміння користуватися знаннями для практичного програмування на рівні навичок, вміння вирішити завдання у декілька варіантів, визначити перевагу і недоліки різних варіантів рішення, вміння читати і використовувати шаблонний вихідний код, розробляти власні шаблони і нестандартні рішення, розробляти і знати технологічний цикл рішення для модуля ядра і прикладних рішень;
  • «дуже добре» – 7,5 бала, відрізняти процедурне і ООП рішення, достатньо повна відповідь (не менше 75% потрібної інформації) або повна відповідь з незначними недоліками; вміння користуватися вихідним кодом та знаннями для практичного програмування, наявність твердих навичок програмування, рішення у одному з варіантів, вміння читати і використовувати шаблонний вихідний код для рішення завдання, розробляти і знати технологічний цикл рішення для модуля ядра і прикладних рішень;
  • «добре» – – 5 балів, відрізняти процедурне і ООП рішення, неповна відповідь (не менше 60% потрібної інформації) та незначні помилки, знання технології практичного програмування, вміння читати і використовувати вихідний код для рішення завдання, розробляти і знати технологічний цикл прикладних рішень, розробляти рішення для модулів ядра з використанням додаткової літератури і ресурсів;
  • «задовільно» – – 2,5 бала, відрізняти процедурне і ООП рішення, неповна відповідь (не менше 50% потрібної інформації), помилки, що вимагають допомоги викладача, наявність слабких практичних навичок програмування, вміння вирішувати задачу з використанням шаблонного відхідного коду і додаткової літератури (ресурсів), розробляти і знати технологічний цикл прикладних рішень, мати загальне розуміння про розробку модулів ядра.
  • «незадовільно» – 0 балів, відповідь не відповідає вимогам до «задовільно»/

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

Залік

Студенти, які виконали всі умови допуску (не мають заборгованостей з обраної кількості лабораторних робіт, наявні усі електронні звіти) та набрали протягом семестру необхідну кількість балів, можуть здавати залік або погоджуватися з результатами поточного контролю; На заліку студенти виконують або письмову контрольну роботу або співбесіду, у залежності від способу навчання, у віддаленому варіанті співбесіда, у аудиторному варіанті за вибором викладача; білет містить 3 питання, що включають практичну і теоретичну складові. Перше питання має охоплювати технологію і особливості системного програмування, друге питання - загальні поняття про процедурне програмування на С, 3 питання - прикладне ООП з використанням С++. Програма надана у додатку 1.

  • «відмінно», повна відповідь (не менш ніж 90% потрібної інформації) – 9-10 балів;
  • «добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 7-8 балів;
  • «задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 5-6 бали;
  • «незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0-4 балів.
Заохочувальні бали
  • за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо); за активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує студентам задати свої питання) 1-2 бали, але в сумі не більше 10;
  • презентації по СРС – від 1 до 5 балів.

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

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

Додаткова інформація з дисципліни (освітнього компонента)

  • перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;

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

Складено доцент, к.т.н., Катін Павло Юрійович

Ухвалено кафедрою ІСТ(протокол № 1 від 30.08.2021 р.)

Погоджено Методичною комісією факультету[1] (протокол № 1 від 30.08.2021 р.)

Додаток 1 - Розрахунок балів і оцінювання для 2022 року

Кількість лабораторних робіт 7, максимальна оцінка 10 балів за 1 ЛР. Відповідність балам оцінки за одну лабораторну роботу: задовільно 2,5; добре 5; дуже добре 7,5; відмінно 10.
Максимальна кількість балів за лабораторні роботи за поточний контроль 70 балів. Мінімальна кількість балів за лабораторні роботи за поточний контроль при умові, що всі лабораторні роботи виконані 35 балів. У тому випадку, коли здані всі лабораторні роботи і не набрано 35 балів надається студенту можливість за рахунок детального обговорення лабораторних робіт набрати додаткові бали. У загальній сумі не більше 35. За одну МКР 2,5 бала, максимальна кількість 5 балів, допускається об'єднувати МКР у одну, що оцінюється у 5 балів максимально. Максимальна кількість балів за поточний контроль - 75 балів. При наборі додаткових балів у тому разі, коли не набрано з початку потрібна кільність балів до допуску, максимальна кількість балів за поточний контроль не може перевищувати 60 балів. Умова допуску до заліку 35 балів, при умові, що захищені всі лабораторні роботи. На заліку максимально можливо отримати 25 баллов. 8,5 балів за 2 перших запитання. 8 балів за трете запитання.

Додаток 2 - Перелік теоретичних питань на залік

Приклад білету

  1. Основи стандарту POSIX у вбудованих системах на прикладі Linux. Базові команди оболонки ОС для системного програмування. Теорія і практичне завдання.
  2. Функції управління виконавчими механізмами у вбудованих системах. Оголошення, описання, виклик. Передача змінних у функцію по значенню. Навести приклади функцій для управління периферійними пристроями. Теорія і практичне завдання.
  3. Класи для опитування датчиків у вбудованих системах. Оголошення конструктора, перевантаження конструктра і методів.  Практичні приклади використання у стилі С++. Теорія і практичне завдання.

Перелік загальних питань апаратної частини вбудованої системи

  1. Які системи має типовий МК та мінікомпьютер (Orange Pi, Pasberry Pi)?
  2. Для чого призначена система синхронізації типового МК, скидання та запуску, приведіть приклад функціональної схеми системи для STM32F1хх та мінікомпьютера (Orange Pi, Pasberry Pi).
  3. Розкрийте поняття обчислювального ядра (CPU) МК та мінікомпьютера (Orange Pi, Pasberry Pi)?
  4. Для чого призначена система апаратних і програмних перевивань типового МК та мінікомпьютера (Orange Pi, Pasberry Pi) ?
  5. Для чого призначена пам'ять для зберігання програм, звичайно виконується за технологією Flash, (FlashROM) мінікомпьютера (Orange Pi, Pasberry Pi) ?
  6. Для чого призначена оперативна пам’ять (RAM) мінікомпьютера (Orange Pi, Pasberry Pi)?
  7. Для чого призначена енергонезалежна пам'ять зі зберіганням інформації з можливістю запису EEPROM?
  8. Який стандартний набір периферійних пристроїв типового МК та мінікомпьютера (Orange Pi, Pasberry Pi) ?
  9. За якою архітектурою будуються типові МК та мінікомпьютери (Orange Pi, Pasberry Pi)?
  10. Розкрийте характеристику - розрядність, що вона визначає і як впливає на вибір МК та мінікомпьютера (Orange Pi, Pasberry Pi) для побудови технічної системи?
  11. Розкрийте особливості архітектури ARM.
  12. Які базові характеристики і призначення групи МК Cortex-A?
  13. Які базові характеристики і призначення групи МК Cortex-R ?
  14. Які базові характеристики і призначення групи МК Cortex-M ?
  15. Які особливості роботи має режим виконання задач (Thread mode) у МК архітектури ARM ?
  16. Які особливості роботи має режим виконання переривань (Handler mode) у МК архітектури ARM ?
  17. У чому полягає режим доступу простого рівня (Unprivilege) ) у МК архітектури ARM ?
  18. Склад і призначення регістрів загального призначення у МК архітектури ARM ? Перелік питань щодо програмування виконавчих механізмів вбудованої системи
  19. Як налаштовуються порти вводу-виводу на альтернативну функцію мінікомпьютера (Orange Pi, Pasberry Pi)?
  20. Назвіть базові характеристики МК родини STM32F1хх та мінікомпьютерів (Orange Pi, Pasberry Pi).
  21. Які послідовні інтерфейси передавання даних відомі для будь якого типу МК та мінікомпьютерів (Orange Pi, Pasberry Pi), яка відома архітектура МК містить тільки один тип інтерфейсу?
  22. Для чого потрібні АЦП у будь якому типі МК та мінікомпьютері (Orange Pi, Pasberry Pi), які МК не містять АЦП?
  23. Які функції забезпечує DMA?
  24. Що входить до системи запуску і скидання типового МК та мінікомпьютера (Orange Pi, Pasberry Pi)?
  25. Як підключена типова периферія МК архітектури ARM до обчислювального ядра?
  26. Назвіть функції, що виконують 3 типових шини APB1, APB2, and AHB?
  27. Які функції підтримує шина APB1?
  28. У якому заготовочному файлі записана інформація про систему обробки переривань МК. Поясніть на прикладі STM32F1хх або мінікомпьютері (Orange Pi, Pasberry Pi).
  29. Які типові функції має модуль управління перериваннями МК будь-якого типу?
  30. Назвіть модуль для управління перериваннями на прикладі STM32F1хх. Які функції він виконує?
  31. Що визначає термін пріоритет переривання?
  32. Які є пріоритети у МК архітектури STM32F1хх. Який є максимальним і мінімальним?
  33. Розкрийте поняття пріоритету вкладеного переривання?
  34. Розкрийте поняття немаскованого переривання?
  35. Яке переривання будь-якого МК або мінікомпьютера (Orange Pi, Pasberry Pi) виникає після натискання кнопки скидання?
  36. Які типи переривань у архітектурі STM32F1хх не можна відмінити програмно, назвіть їх пріоритет, причину і назву?
  37. Покажіть встановлення пріоритету програмно на прикладі наданого коду.
  38. Поважить встановлення субпріоритет програмно на прикладі наданого коду, як це вплине на роботу програми.
  39. Які види таймерів присутні у архітектурі STM32F?
  40. Які 4 елемента містить типовий таймер. Розкрийте на прикладі STM32F?
  41. Які режими роботи таймеру при налаштуванні на вихід характерні для всіх МК. Які функції може виконувати таймер у цьому режимі?
  42. Розкрийте сутність роботи таймеру на вхід. Які функції може виконувати таймер у цьому режимі?
  43. Розкрийте сутність роботи таймеру у режимі захоплення сигналу.
  44. Розкрийте сутність роботи таймеру у режимі ШИМ. Які функції у технічній системі може виконувати МК у режимі ШИМ.
  45. Розкрийте сутність роботи таймеру у режимі переривання. Які кроки треба зробити, щоб налаштувати таймер у режимі переривання?

Перелік питань програмування датчиків вбудованої системи Частина 1

  1. Як організована архітектура DMA у родини МК STM32F1хх:
  2. У чому полягає процес дискретизації АЦП?
  3. У чому полягає процес квантування у АЦП?
  4. Яка характеристика визначає швидкодію АЦП?
  5. Яка характеристика визначає точність АЦП, як це зв’язано з розрядністю АЦП?
  6. У чому полягає перевага використання DMA контролеру у технічному рішенні для будь-якого пристрою на базі МК?
  7. У чому недоліки використання DMA контролеру у технічному рішенні для будь-якого пристрою на базі МК?
  8. Розкрийте поняття мови UML, коли доцільно використовувати дану універсальну мову?
  9. Наведіть приклад UML діаграми UseCase зі всьома типами зв’язків.
  10. Опишіть кожний тип зв’язку діаграми UseCase.
  11. Наведіть приклад використання табличного опису прецеденту, приведіть практичний приклад.
  12. Наведіть приклад UML діаграми State, для яких систем доцільно використовувати даний вид діаграми.
  13. Наведіть приклад математичного опису кінцевого автомату, покажить прямий зв'язок моделі UML діаграми State і кінцевого автомати.
  14. Наведіть програмну реалізацію UML діаграми State у вигляді прототипу фрагменту програми.
  15. Яка характеристика визначає точність АЦП, як це зв’язано з розрядністю АЦП?
  16. Назвіть основні характеристики АЦП для МК STM32F1хх та мінікомпьютера (Orange Pi, Pasberry Pi).
  17. Як програмно керується АЦП для МК STM32F1хх та мінікомпьютера (Orange Pi, Pasberry Pi)?
  18. У чому полягає перевага використання DMA контролеру у технічному рішенні для будь-якого пристрою на базі МК? Частина 2 Основне призначення шини I2C.
  19. Нарисуйте схему підключення декількох МК або мінікомпьютерів (Orange Pi, Pasberry Pi), що підключені через шину I2C.
  20. Назвіть кожну лінію шини I2C та її призначення, розкрийте абревіатури SCL, SDA.
  21. Як передається інформація, коли до шини I2C підключені декілька підлеглих МК або мінікомпьютерів (Orange Pi, Pasberry Pi).
  22. Яке значення рекомендованого інтервалу опору резисторів. На що впливає опір резисторів.
  23. Яке чисельне значення швидкості шини I2C.
  24. У чому перевага шини I2C у порівнянні з іншими послідовними інтерфесами.

[1] Методичною радою університету – для загальноуніверситетських дисциплін.