Міністерство освіти і науки, молоді та спорту України
ЛУЦЬКИЙ Національний технічний університет
Факультет комп’ютерних наук та інформаційних технологій
Кафедра комп’ютерної
інженерії
До захисту допущено
Завідувач кафедри
_________ к.т.н., доц. Пех П.А.
“___”_____________ 2012 р.
Пояснювальна записка
ДО ДИПЛОМНОЇ РОБОТИ
на тему: «Програмне забезпечення для діагностики
мікроконтролерів AVR»
Студент групи КСМ-41
Медведєв В.В.
Керівник роботи: асистент Бортник К.Я.
Консультанти з розділів:
ЛУЦЬК - 2012 р.
РЕФЕРАТ
Мета роботи - розроблення діагностичних програм для МК AVR фірми ATMEL з застосуванням програмного середовища налаштування AVR Studio 4.
Для реалізації поставленої задачі в дипломній роботі:
– проведено аналіз інтерфейсу програми AVR Studio 4;
– розглянуті можливості програми AVR Studio 4 для реалізації діагностичних завдань;
– розроблено алгоритми у відповідності з поставленими завдання діагностики зовнішніх пристрої та внутрішніх компонентів МК AVR;
– розроблено діагностичну програму звернення до портів вводу-виводу МК AVR для керування зовнішніми пристроями;
– розроблено діагностичну програму додавання та віднімання двійкових та двійково-десяткових чисел для МК AVR з метою перевірки їх виконання;
– здійснено компіляцію, налаштування та завантаження діагностичних програм в пам'ять МК AVR.
В першому розділі проводиться ознайомлення з середовищем налаштування AVR Studio 4, розробка діагностичної програми звернення до портів вводу-виводу МК AVR.
В другому розділі розглядаємо представлення чисел в МК та розробляємо діагностичну програму додавання та віднімання двійкових та двійково-десяткових чисел для МК AVR.
В третьому розділі розглядаємо технологію FLASH-EEPROM та завантажуємо діагностичні програми в пам’ять МК AVR.
В четвертому розділі розглядаємо охорону праці.
ДІАГНОСТИКА, AVR STUDIO 4, МК, AVR, FLASH-EEPROM.
ЗМІСТ
Вступ
Розділ 1. Розробка діагностичної програми звернення до портів вводу-виводу МК AVR
.1 Теоретичні відомості про програмне середовище налаштування AVR Studio
.2 Розробка діагностичної програми звернення до портів вводу-виводу для керування зовнішніми пристроями
.3 Компіляція розробленої програми
.4 Налаштування програми
.5 Основні засоби налаштування AVR Studio
Розділ 2. Розробка діагностичної програми додавання та віднімання двійкових та двійково-десяткових чисел для МК AVR
.1 Теоретичні відомості про представлення чисел в МК
.2 Додавання та віднімання чисел у додатковому коді
.3 Додавання та віднімання двійково-десяткових чисел
.4 Програмування арифметичних операцій
Розділ 3. Завантаження діагностичних програм в пам'ять МК AVR
.1 Пам'ять команд МК (технологія FLASH-EEPROM)
.2. Фізична організація флеш-пам'яті базової серії МК сімейства AVR
.3 Доступ центрального процесора до пам'яті EEPROM на запис/читання
.4 Регістр адреси EEAR пам'яті EEPROM
.5 Регістр даних EEDR пам'яті EEPROM
.6 Регістр керування EECR пам'яті EEPROM
.7 Читання пам'яті EEPROM всіх типів МК AVR
.8 Запис в пам'ять EEPROM в МК АТ90S2313, AT90S4414 і АТ90S8515
.9 Директиви асемблера для реалізації діагностичних програм
Розділ 4. Охорона праці
.1 Аналіз потенційно небезпечних шкідливих виробничих чинників що впливають на персонал
.2 Заходи щодо техніки безпеки
.3 Заходи, що забезпечують виробничу санітарію і гігієну праці
.4 Рекомендації по пожежній безпеці
Висновки
Список використаних джерел
Додатки
Швидкий розвиток компонентів елементної бази для побудови мікроконтролерних (МК) та мікропроцесорних (МП) систем керування різноманітними пристроями та технологічними процесами сприяє науково-технічному розвитку країни, є основою удосконалення архітектури таких систем, якісного підвищення їх продуктивності і надійності.
Номенклатура та область застосування таких систем постійно розширюється. На сучасному етапі науково-технічного розвитку їх впровадження охоплює практично всі види виробничої та наукової діяльності.
Застосування МП та МК у науково-технічних рішеннях вимагає від спеціалістів досконалого володіння сучасними методами проектування МП та МК систем, вміння використовувати їх при практичному вирішенні інженерних задач.
МК в повсякденному житті застосовуються як в складній побутовій техніці, так і у супутникових навігаційних системах. До сфери застосування МК входить управління пристроями різного призначення за допомогою дискретних сигналів і багато іншого. Можна сказати, що без МК в даний час не обходиться практично жодний сучасний електронний пристрій.
Впровадження МК в усі сфери життєдіяльності ставить перед розробниками електронної техніки завдання із забезпечення діагностування МК.
Мета дипломної роботи - розроблення діагностичних програм для МК AVR фірми ATMEL з застосуванням програмного середовища налаштування AVR Studio 4.
За останні роки МК AVR набули великої популярності, залучаючи розробників досить вигідним співвідношенням показників «ціна/швидкодія/енергоспоживання», зручними режимами програмування, доступністю програмно-апаратних засобів підтримки і широкою номенклатурою кристалів. МК цієї серії є зручним інструментом для створення сучасних високопродуктивних і економічних контролерів багатоцільового призначення.
МК сімейства AVR фірми ATMEL володіють низьким рівнем споживання, невисокою вартістю при досить високих функціональних можливостях, високим швидкодією і можливістю багатократного перезапису програм. Хоча аналогічні за характеристиками МК випускаються багатьма фірмами, за загальним комплексом властивостей сімейство AVR одне з найбільш ефективних у класі недорогих 8-розрядних МК.
У МК AVR є дві особливості, які відрізняють це сімейство від інших МК. По-перше, система команд і архітектура ядра AVR розроблялася спільно з фірмою-розробником компіляторів мов програмування високого рівня IAR Systems. У результаті з'явилася можливість створення AVR-програм на мові С без великої втрати в продуктивності в порівнянні з програмами написаними на мові асемблера. По-друге, одним з істотних переваг МК AVR стало застосування конвеєра. У результаті для МК AVR не існує поняття машинного циклу: більшість команд виконується за один такт. Для порівняння зазначимо, що МК сімейства PIC, які користуються великою популярністю, виконують команду за 4 такту, а класичні 8051 - взагалі за 12 тактів.
Для програмування МК сімейства AVR існує багато засобів розробка, проте, найбільш популярним, поза сумнівом, є програмний пакет AVR Studio 4. Є ряд причин такої популярності. Це безкоштовний програмний пакет, що розроблений фірмою «ATMEL», який об'єднує в собі текстовий редактор та програмний емулятор МК різних типів. Пакет AVR Studio 4 використовується також спільно з апаратними засобами налаштування фірми «ATMEL». Програмне середовище AVR Studio надає користувачу можливість повністю контролювати виконання програм з використання симулятора, який підтримує всі типи МК AVR. Середовище налаштування підтримує виконання програм у вигляді асемблерного тексту формату AVR Assembler, IAR Systems Assembler та у форматі мови програмування C компілятора фірмі IAR Systems ICCA90 C Compiler. З AVR Studio також сумісні всі програматори та засоби налаштування, що підтримують МК фірми «ATMEL».
Для виконання поставленої задачі в дипломній роботі необхідно:
– провести аналіз інтерфейсу програми AVR Studio 4;
– розглянути можливості програми AVR Studio 4;
– розробити діагностичну програму звернення до портів вводу-виводу МК AVR для керування зовнішніми пристроями;
– розробити діагностичну програму додавання та віднімання двійкових та двійково-десяткових чисел для МК AVR з метою перевірки їх виконання;
– здійснити компіляцію, налаштування та завантаження діагностичних програм в пам'ять МК AVR.
РОЗДІЛ 1
РОЗРОБКА ДІАГНОСТИЧНОЇ ПРОГРАМИ ЗВЕРНЕННЯ ДО ПОРТІВ
ВВОДУ-ВИВОДУ МК AVR
1.1 ТЕОРЕТИЧНІ ВІДОМОСТІ ПРО ПРОГРАМНЕ СЕРЕДОВИЩЕ
НАЛАШТУВАННЯ AVR STUDIO 4
Для програмування МК сімейства AVR існує багато засобів розробки, проте, найбільш популярним, поза сумнівом, є програмний пакет AVR Studio 4. Є ряд причин такої популярності - це безкоштовний програмний пакет, розроблений фірмою ATMEL, який об'єднує в собі текстовий редактор та програмний емулятор МК різних типів. Пакет AVR Studio 4 використовується також спільно з апаратними засобами налаштування фірми ATMEL.
З сайту компанії ATMEL програма AVR Studio 4 доступна для скачування за адресою: #"896933.files/image001.gif">
Рис. 1.1 - Діалогове
вікно Майстра налаштування проекту
Після вибору нового проекту (кнопка New Project) з'являється наступне діалогове вікно вибору мови програмування, імені проекту і місця розташування проекту на диску (рис. 1.2).
У цьому діалоговому вікні необхідно визначити мову програмування для AVR Studio. При розробці програм для AVR використовуються дві основні мови: C++ та Асемблер.
Вибір мови програмування залежить від вимог, що пред’являються до самої програми. Якщо потрібна максимальна швидкодія, компактність коду і його надійність, та «ручне» гнучке управління різними елементами МК, то це, звичайно, Асемблер. Якщо ж потрібна простота та комфортність в написанні, а також наочність програмного коду, то це C++, проте в цьому випадку буде деякий програш в продуктивності. Синтаксис Асемблера дуже простий, всі його команди базуються тільки на архітектурі самого МК, тобто, при програмуванні все зводиться до системи команд.
програмний діагностика мікроконтролер пам'ять
Рис. 1.2 - Діалогове
вікно вибору мови програмування, імені проекту та місця розташування проекту на
диску
Для програм на Асемблері в діалоговому вікні вибору мови програмування необхідно вказати Atmel AVR Assembler, для програм на мові С++ - AVR GCC.
Лабораторний практикум передбачає написання програм на Асемблері. Після вибору мови програмування Atmel AVR Assembler активізуються раніше затінені опції імені проекту (Project name) та імені Асемблерного файлу з розширенням *.asm ((Initial file). При введенні імені проекту автоматично створюється асемблерний файл з таким же ім’ям, яке за бажанням користувача можна змінити. Після проведених призначень активується кнопка Next (рис. 1.3).
За бажанням користувача можна змінити директорію*, в якій
зберігатимуться усі результати роботи з проектом. Ім’я директорії для
збереження проекту необхідно задавати англійськими буквами, для запобігання
проблем при компіляції (рядок Location, рис. 1.4).
Рис. 1.3 - Діалогове вікно з вибраними необхідними атрибутами
Рис. 1.4 - Зміна
розташування проекту на диску
Необхідні підготовчі роботи для створення проекту виконані. Далі необхідно натиснути кнопку Next, щоб перейти до наступного діалогового вікна вибору платформи наладження та МК (рис. 1.5).
У наступному діалоговому вікні (рис. 1.6) необхідно визначити вид (платформу) налаштування для МК. Оскільки підключені зовнішні пристрої відсутні, то будемо здійснювати програмне моделювання МК.
У вікні вибору платформи (рис. 1.6) (Debug platform)
необхідно вибрати опцію AVR Simulator (AVR моделювання). У вікні пристроїв
(Device) представлений широкий вибір МК виробництва фірми Atmel.
Рис. 1.5 - Діалогове вікно вибору платформи налаштування та МК
Для проведення дипломної роботи необхідно обрати мікроконтролер AT90S2313.
Після вибору режиму програмного моделювання та типу МК
необхідно натиснути кнопку Finish (рис. 1.6).
Рис. 1.6 - Діалогове вікно з обраною платформою моделювання
та МК
Всі необхідні процедури для створення проекту закінчені.
Після натиснення кнопки Finish переходимо в основну програму, в якій з'являється
вікно проекту (рис. 1.7).
Рис. 1.7 - Вікно
проекту в основній програмі
1.2 Розробка діагностичної програми звернення до портів
вводу-виводу для керування зовнішніми пристроями
Програма для AVR Studio 4, що розроблена на Асемблері, складається з послідовності різних інструкцій, які вводяться у вікно проекту.
Діагностична програму «запалює» світлодіоди, що підключені до виводів 1, 3 і 7 порту D МК, тобто видає в порт D код 0b01000101.
Для реалізації програми необхідно звернутися до опису МК AT90S2313, а також ознайомитися з системою команд МК AVR.
Приклад діагностичної програми для МК AT90S2313:
.include "2313 def.inc" //Підключаємо заголовний файл
loop:
ldi r16, 0b01000101
out DDRD, r16
out PORTD, r16
rjmp loop
Розглянемо детально наведену програму (рис. 1.8).
Рис. 1.8 - Робоче
вікно з текстом програми
На самому початку коду програми необхідно підключити спеціальний файл, де описана конфігурація МК - "2313def.inc". За наявності цього файлу компілятор асоціює наш код саме з цією моделлю МК, відстежуючи правильність його написання. Далі йде текст самої програми.
loop: - це мітка. Це не команда і вона не переводиться в машинний код, вона просто вказує на позицію команди, тобто її розташування в пам'яті програм. Слід звернути увагу на самий нижній рядок: інструкція rjmp loop - це інструкція непрямого переходу до покажчика loop. При компіляції програми компілятор замість слова loop підставляє число, яке дорівнює адресі інструкції, де стоїть коштує мітка loop.
Числа в мікроконтролері можна представляти в двійковій, вісімковій, десятковій та шістнадцятирічній формах. Наприклад, десяткове число 255 можна записати так: у двійковій - 0b11111111; у вісімковій - $377 та в шістнадцятирічній - 0xff. Найбільш поширена - двійкова система числення.
Для більшості AVR МК існують три види переходів: безумовний, непрямий та відносний.
Безумовний - це перехід безпосередньо до вказаного місця пам'яті програм. За безумовний перехід відповідає інструкція jmp. В якості параметра у неї повинне стояти значення адреси, куди слід зробити перехід.
Непрямий - це перехід по покажчику Z. При розподілі регістрів загального призначення в адресному просторі (див. опис AT90S2313), видно що останні 6 регістрів ще використовуються в якості покажчиків X, Y і Z, причому кожен покажчик має розрядність 16 біт, тобто складається з двох регістрів - старшого і молодшого. Якщо виконати інструкцію IJMP, то відбудеться перехід на те місце в пам'яті програм, адреса якого прописана в регістрі Z.
Відносний - це перехід, який здійснюється до адреси рівного сумі значення лічильника програм і значення константи, яка у свою чергу є операндом інструкції rjmp.