Програма навчальної дисципліни
Форма № Н - 3.04
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ДВНЗ «ПРИАЗОВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ»
ЕНЕРГЕТИЧНИЙ ФАКУЛЬТЕТ
КАФЕДРА ЕЛЕКТРИФІКАЦІЇ ПРОМИСЛОВИХ ПІДПРИЄМСТВ
ЗАТВЕРДЖУЮ
Декан факультету
Ю.Л. Саєнко
___________________________
«_____»___________2016 року
РОБОЧА ПРОГРАМА НАВЧАЛЬНОЇ ДИСЦИПЛІНИ
Програмування для МП-систем
(шифр і назва навчальної дисципліни)
галузь знань 0507 «Електротехніка та електромеханіка»
спеціальність 7.05070106, 8.05070106 «Системи управління виробництвом та розподілом електроенергії»
2016 – 2017 навчальний рік
Робоча програма з дисципліни «Програмування для МП-систем» для студентів за спеціальністю 7.05070106, 8.05070106 «Системи управління виробництвом та розподілом електроенергії».
Розробник:Поднебенна С.К., доцент кафедри електрифікації промислових підприємств
Робоча програма затверджена на засіданні кафедри електрифікації промислових підприємств
Протокол від « ____» ____________20___ року № ___
Завідувач кафедри електрифікації промислових підприємств
___________________ (Жежеленко І.В. )
(підпис) (прізвище та ініціали)
Схвалено методичною комісією факультету
Протокол від. « ____» ____________20___ року № ___
Голова ___________________ (___________)
(підпис) (прізвище та ініціали)
Ó ДВНЗ «ПДТУ», 2016 рік
Ó Поднебенна С.К., 2016 рік
Опис навчальної дисципліни
Форма навчання | Кредитів ЄКТС | Годин | Аудиторних годин | Самостійна робота | Розподіл за семестрами | ||||||
Всього | Лекції | Практичні | Лабораторні | Іспитів | Заліків | Курсових робіт | Курсових проектів | ||||
Денна | - | - | - |
МЕТА ТА ЗАВДАННЯ навчальної ДИСЦИПЛІНИ
Мета: формування у студентів теоретичних знань і практичних навичок по застосуванню|вживанню| сучасних методів програмування мікропроцесорних систем.
Завдання:надбання студентами міцних знань і практичних навичок в області, визначуваною основною метою курсу.
В процесі вивчення дисципліни студент повинен знати:
- структуру та принципи побудови мікроконтролерів;
- устрій мікроконтролерів родини AVR (наприклад, ATMega16);
- принципи програмування мікроконтролерів родини AVR мовами програмування Assembler та C/C++;
вміти:
- працювати зі спеціальним програмним забезпеченням: AVR Studio, IAR Systens, WinAVR;
- складати програми на мові програмування C/C++;
- за допомогою програматора переносити програму до мікроконтролера;
- застосовувати придбані знання при вирішенні практичних задач.
Програма навчальної ДИСЦИПЛІНИ
«Програмування для МП-систем»
3.1 Введення. Мікропроцесорні системи. Системи числення. (9 год.)
Вступ. Роль і місце мікропроцесорів на сучасному етапі розвитку виробничих сил.
Представлення інформації в цифрових системах. Подання цілих і дробових чисел у різних системах числення. Двійкова, вісімкова, десяткова і шістнадцяткова системи числення.
Переклад чисел з однієї системи числення в іншу.
Двійково-десяткова система кодування чисел (BCD - код). Кодування текстової інформації. Стандартні коди: КОІ-7 і КОІ-8 (ASCI і ASCII).
Форми представлення чисел. Числа з фіксованою точкою. Формати. Поняття про зворотні і додаткові коди. Алгоритми виконання основних арифметичних операцій.
3.2 Мікроконтролери. Мікроконтролери ATMEL AVR. (36 год.)
Структура мікроконтролера.
Вбудовані пристрої: пристрої пам'яті і порти введення / виводу (I / O), інтерфейси зв'язку, таймери, системний годинник.
Пристрої пам'яті: оперативна пам'ять (RAM), постійні запам'ятовувальні пристрої (ROM), ROM, що перепрограмується (EPROM), ROM, що пере програмується електрично (EEPROM).
Таймери: годинник реального часу, таймери переривань. Засоби I / O: послідовні порти зв'язку, паралельні порти (I / O лінії), аналого-цифрові перетворювачі (A / D), цифроаналогові перетворювачі (D / A), драйвери рідкокристалічного дисплея (LCD) або драйвери вакуумного флуоресцентного дисплея (VFD).
Класифікація мікроконтролерів за розрядністю. CISC- та RISC- архітектура контролерів. Тактова частота контролерів.
Родина мікроконтролерів Mega AVR.
Порти загального призначення МК ATMega16. Регістри портів загального призначення МК ATMega16. Основні характеристики МК ATMega16.
Таймер-лічильник Т0 МК ATMega16. Нормальний режим. Таймер-лічильник Т0 МК ATMega16. СТС режим. Таймер-лічильник Т0 МК ATMega16. Режим широтно-імпульсної модуляції. Таймер-лічильник Т1 МК ATMega16. Таймер-лічильник Т2 МК ATMega16.
Інтерфейс SPI МК ATMega16.
АЦП МК ATMega16. Основні регістри. АЦП МК ATMega16. Поняття перетворення. АЦП МК ATMega16. Поняття переривання. Реалізація переривань для АЦП на базі МК ATMega16.
Інтерфейс TWI МК ATMega16.
UART МК ATMega16.
Родина мікроконтролерів Tiny AVR. Загальні відомості. Відмінні особливості. Характеристика мікропроцесора. Характеристики підсистеми введення-виведення. Периферійні пристрої. Архітектура ядра. Цокольовка та опис виводів. Архітектура мікроконтролерів Tiny AVR.
Організація пам’яті: пам’ять програм. Пам'ять даних. Енергонезалежна пам’ять даних.
Лічильники команд та виконання програм. Лічильник команд. Функціонування конвейєра. Команди типу «перевірка/пропуск». Команди умовного переходу. Команди безумовного переходу. Команди виклику підпрограм. Кманди повренення із підпрограм. Стек.
Система команд. Загальні відомості. Команди логічних операцій. Команди арифметичних операцій та команди зсуву. Команди бітових операцій. Команди пересилання даних. Команди передачі управління. Команди управління системою. Опис команд.
Тактування. Режими зниженого енергоспоживання. Скид. Тактовий генератор. Генератор із зовнішнім резонатором. Низькочастотний кварцовий генератор. Зовнішній сигнал синхронізації. Схема ФАПЧ. Управління тактовою частотою. Управління електроспоживанням. Управління тактовими сигналами модулів. Скид по ввімкненню живлення. Апаратний скид. Скид від вартового таймера. Скид при зниженій напрузі живлення. Управління системою скиду.
Переривання. Таблиця векторів переривання. Обробка переривань. Зовнішні переривання.
Порти введення/виведення. Загальні відомості. Регістри. Конфігурування портів введення/виведення.
Апаратний модулятор. Таймери. Призначення таймерів/лічильників. Переривання від таймерів/лічильників. Переддільники. Керування переддільниками. Таймер/лічильник Т0, Т1. Вартовий таймер.
Аналоговий компаратор.
Аналогово-цифровий перетворювач. Функціонування модуля АЦП. Результат перетворення. Підвищення точності перетворення. Параметри АЦП.
Універсальний синхронний/асинхронний прийомопередавач (USART). Використання модуля USART. Швидкість прийому/передачі. Формат кадру. Передача даних. Прийом даних. Мультипроцесорний режим роботи.
Універсальний послідовний інтерфейс USI. Загальні відомості про інтерфейс SPI. Загальні відомості про інтерфейс TWI. Режими роботи модуля USI. Трипровідний режим. Двопровідний режим.
Програмування мікроконтролерів Tiny AVR.
Архітектура однокристального мікроконтролера. Устрій мікроконтролера. Особливості функціонування. Черга команд. Регістри мікроконтролера. Поділ на групи. Призначення. Адресний простір пам'яті і введення-виведення. Сегментація пам'яті і обчислення адрес. Функціонування мікроконтролера. Часові діаграми роботи в мінімальному режимі.
3.3 Проектування мікропроцесорних систем (12 год.)
Основні завдання, які вирішуються при проектуванні мікропроцесорних систем. Організація і особливості проектування мікропроцесорних систем. Цикл проектування системи. Вимоги користувачів і функціональна специфікація.
Структурна схема мікропроцесорної системи. Вибір і обґрунтування мікросхем для розробки мікропроцесорних систем. Розробка принципової схеми мікропроцесорних систем. Організація центрального процесорного блоку. Система живлення. Модуль скидання і синхронізації. Організація пам'яті мікропроцесорних систем. Блок зв'язку з оператором. Організація вводу-виводу. Цифрові та аналогові входи-виходи.
3.4 Програмування мікроконтролерів. Мови програмування низького рівня (Assembler), високого рівня (С/С++). Компілятори. (45 год.)
Основи програмування мікроконтролерів. Формати команд. Способи адресації. Опис і склад системи команд.
Мови програмування мікроконтролерів ATMEL AVR.
Программування мовою Assembler. Особливості виконання команд. Команди пересилання даних. Арифметичні і логічні команди. Команди передачі управління. Команди управління циклами. Складання, трансляція і виконання команди.
Мови програмування високого рівня. C/C++.
Огляд мови. Змінні і арифметичні вирази. Інструкція for. Іменовані константи. Введення-виведення символів. Масиви. Функції. Аргументи. Виклик за значенням. Символьні масиви. Зовнішні змінні і область видимості.
Типи, оператори та вирази. Імена змінних. Типи і розміри даннях. Константи. Оголошення. Арифметичні оператори. Оператори відносини і логічні оператори. Перетворення типів. Оператори інкремента і декремента. Побітові оператори. Оператори і вирази присвоювання. Умовні вирази. Пріоритет і черговість обчислень
Управління. Інструкції та блоки. Конструкція if-else. Конструкція else-if. Перемикач switch. Цикли while і for. Цикл do-while. Інструкції break і continue. Інструкція goto і мітки.
Функції і структура програми. Основні відомості про функції. Функції, що повертають нецілі значення. Зовнішні змінні. Області видимості. Заголовкові файли. Статичні змінні. Реєстрові змінні. Блокова структура. Ініціалізація. Рекурсія. Препроцесор мови Сі. Включення файлу. умовна компіляція
Покажчики та масиви. Покажчики та адреси. Покажчики та аргументи функцій. Символьні покажчики функції. Масиви покажчиків, покажчики на покажчики. Багатовимірні масиви. Ініціалізація масивів покажчиків. Покажчики проти багатовимірних масивів. Аргументи командного рядка. Покажчики на функції. Складні оголошення.
Структури. Основні відомості про структури. Структури і функції. Масиви структур. Покажчики на структури. Структури з посиланнями на себе. Перегляд таблиць. Засіб typedef. Об'єднання. Бітові поля.
Введення і вивід. Стандартне введення-виведення. Форматний вивід (printf). Списки аргументів змінної довжини. Форматне введення (scanf). Доступ до файлів. Управління помилками (stderr і exit). Введення-виведення рядків. Інші бібліотечні функції. Операції з рядками. Аналіз класу символів і перетворення символів. Функція ungetc. Виконання команд операційної системи. Управління пам'яттю. Математичні функції. Генератор випадкових чисел.
Основні принципи програмування мікроконтролерів ATMEL AVR мовою C/C++.
Поняття транслятора та компілятора. Відмінність між компілятором, вбудованим до мови програмування та компіляторами для мікроконтролерів. Компілятори для мікроконтролерів ATMEL AVR: AVR Studio, IAR Systems, WinAVR та інші.
Основи роботи з компілятором IAR Systems.
IAR Embedded Workbench. C / C ++ компілятор. Підтримка ANSI C.
Транслятор асемблера. Макроассемблер для програм реального часу і препроцесор для C / C ++ компілятора.
Компоновщик. Вихідні формати для спільного використання з внутрісхемних емуляторами.
Текстовий редактор. Користувальницький інтерфейс, автоматичне виділення помилок програмного коду, персоналізовану інструментальну панель, підсвічування блоків, навігація по іменах підпрограм, макросів та змінних.
Симулятор і відладчик в кодах С/С++ і Assembler. Перегляд областей EEPROM, DATA, CODE, регістрів введення / виводу. Встановлення точок зупину і апаратних прапорів. Обробка переривань з прогнозом. Контроль стека і будь-яких локальних змінних. Режим покрокового виконання програми.
Менеджер проектів. Контроль і управління робочими модулями.
Додаткові утиліти для роботи з оптимізованою CLIB / DLIB бібліотекою.
Взаємодія з утилітою AVR Studio. Можливість самостійного управління оптимізацією окремих модулів проекту.
Створення файлу з розширенням .hex.
3.5 Програмно-апаратне забезпечення програмування мікроконтролерів. Програматори. (18 год.)
Програмно-апаратний комплекс для завантаження програми до мікроконтролеру.
Внутрішньосхемне програмування ISP - in-cirсuit serial programming.
Інтерфейс SPI - Serial Peripheral Interface.
SCK (SPI ClocK). Тактовий сигнал, який програматор формує на лінії SCK. MOSI (Master Out, Slave In - вхід веденого, вихід ведучого). Лінія передачі даних від програм (ведучий), до програмованого микроконтроллеру (підпорядкований). MISO (Master In, Slave Out - вихід веденого, вхід ведучого). Лінія передачі даних від програмованого мікроконтролера (ведений) до програматора (ведучий).
Апаратний програматор ATMEL AVRISPMKII. Основні характеристики. Програмування мікроконтролерів (МК) AVR серій AT90, ATTINY, ATMEGA і ATXMEGA по інтерфейсах ISP, TPI або PDI. Робота з програмним забезпеченням, що підтримує протокол AVRISPmkII (STK500v2 / USB). Тактові частоти для інтерфейсу ISP (від 51 Гц до 8 МГц), для інтерфейсів TPI і PDI (250 кГц).
Генератор меандру. Напруга живлення.
Калібрування внутрішнього RC-генератора контролера.
Робота в операційних системах Linux / Windows.
Програматори (програмні): AVRDUDЕ, AVReAL, ICProg, PonyProg.
Кросплатформенна вільна консольна програма, призначена для прошивки мікроконтролерів фірми Atmel серії AVR AVRDude (AVR Downloader-Uploader). Апаратні програматори, які підтримує AVRDUDE.
Основні відмінності від аналогічних програм. Установка. Можливості програми. Додавання / редагування списку МК. Робота з файлом "atmel.ini". Опис параметрів: заголовок розділу; значення і опис параметрів розділу для Fuse бітів: Lock байт, High байт; Low байт, Extended/Fuse/Fuse байт.
Додавання / редагування списку програматорів. Робота з файлом "programm.ini". Опис змінних файлу.