Розробка принципової схеми та програмного забезпечення на мікроконтролері ATtiny13
ВСТУП
Архітектура ЕОМ - це набір
відомостей, необхідний та достатній для написання для даної обчислювальної
машини <#"701996.files/image001.gif">
Рисунок 2.1 − Блок- схема
ATtiny13
Прилад виготовлений за високощільною
енергонезалежною технологією виготовлення пам'яті компанії Atmel. Вбудована ISP
Flash дозволяє перепрограмувати пам'ять програми в системі через послідовний
SPI інтерфейс програмою-завантажувачем, виконуваної в AVR ядрі, або звичайним
програматором енергонезалежній пам'яті. ATtiny13 підтримується різними
програмними засобами та інтегрованими засобами розробки, такими як компілятори
C, макроассемблери, програмні відладчики / симулятори, внутрішньо схемні
емулятори та ознайомчі набори.
Відмінні особливості:
· Високоякісний
низькоспоживаючий 8 - бітний AVR мікроконтролер.
· Передова RISC
архітектура:
120 команд, більшість яких
виконується за один тактовий цикл;
32 8-бітних робочих
регістра загального застосування;
повністю статична
архітектура.
· Незалежна пам'ять
програм і даних:
1 КБ внутрішньо системної
програмованої Flash-пам'яті програми, здатної витримати 10 000 циклів запису /
стирання;
64 байта внутрішньо системної
програмованої EEPROM пам'яті даних, здатної витримати 100 000 циклів запису /
стирання ;
64 байта вбудованої SRAM
пам'яті (статичне ОЗУ);
програмований захист від
зчитування самостійно програмуючої Flash-пам'яті програми і EEPROM пам'яті
даних.
· Характеристики
периферії:
один 8-розрядний таймер /
лічильник і два ШІМ каналів;
4-канальний 10 бітний АЦП з
вбудованим ІОН;
програмований сторожовий
таймер з вбудованим генератором;
вбудований аналоговий
компаратор.
· Спеціальні
характеристики мікроконтролера:
вбудований
відладчикdebugWIRE;
внутрішньо системне
програмування через SPI порт;
зовнішні і внутрішні
джерела переривання;
режими зниженого споживання
Idle, ADC NoiseReduction і Power-down;
удосконалена схема
формування скидання при включенні;
програмована схема
виявлення короткочасних зникнень харчування;
вбудований відкалібрований
генератор.
· Порти введення -
виведення і корпусне виконання:
8 вивідні PDIP і SOIC
корпусу: 6 програмованих ліній введення-виведення.
· Діапазон напруги
живлення: від 2.7 до 5.5 В.
· Споживання:
активний режим: 290 мкА при
частоті 1 МГц і напрузі живлення 1.8 В;
режим зниженого споживання:
0.5 мкА при напрузі живлення 1.8 В.
Розміщення виводів мікроконтролера
зображено на рисунку 2.2.
Рисунок 2.2 - Розміщення виводів
ATtiny13
· VCC- напруга
живлення.
· GND - заземлення.
· Порт B (PB5: PB0) -
порт B являє собою 6-розрядний двонаправлений порт вводу/виводу з внутрішніми
навантажувальними резисторами (вибраними для кожного біта).
· RESET-вхід скидання
[4-5].
2.2
Розробка структурної схеми
Проаналізувавши
архітектуру мікроконтролера ATtiny13 та технічне завдання, була розроблена
функціональна схему пристрою (рис. 2.3), яка складається з наступних блоків:
· мікроконтролер;
· блок
керування;
· схема
скиду;
· стабілізатор
напруги;
· керуючий
елемент;
· блок
індикації;
· реле;
· блок
живлення.
Рисунок 2.3 - Функціональна схема
пристрою
2.3 Вибір електронних компонентів
мікроконтролер архітектура кодовий адресний
Для роботи мікроконтролера потрібна
напруга 5 В, для її забезпечення ми використаємо стабілізатор напруги 78L05.
Якщо на вхід даного стабілізатора подати 12 В і 0,2 А то на виході буде 5 В.
Його характеристики такі:
вихідна напруга 5 В;
максимальний вихідний струм
0,1 А;
вхідна напруга до 30 В;
робоча температура -20°С ÷
+150°С;
Схема включення стабілізатора
зображена на рисунку 2.4.
L05 - найпростіший стабілізатор
додатної фіксованої напруги 5 вольт в корпусі з трьома виходами для широкого
застосування. Цей стабілізатор розрахований на навантаження в 100mA. Звісно, є
захист від перевищення струму навантаження, захист від перегріву. Стабілізатори
в цьому виконанні розраховані на застосування в слабкострумових електричних
ланцюгах. Напруга на вході також близько 10 вольт.
Рисунок 2.4 - Схема включення
стабілізатора 78L05
У якості блоку індикації
використовуються 3 світлодіоди. Якщо струм споживання світлодіода в робочому
режимі не перевищує 30 мА, а номінальна напруга не перевищує напруги живлення
мікроконтролера, то ми можемо підключати його безпосередньо до лінії порту
введення / виводу.
Світлодіод треба підключати через
резистор (рис.2.5). Справа в тому, що прямий опір світлодіода дуже малий. І
якщо не обмежувати струм через резистор, то він згорить. Або, що вірогідніше,
спалить вивід мікроконтролера.
Рисунок 2.5 - Схема підключення
світлодіода
Для скиду мікроконтролера в схемі є
кнопка RESET. Реалізація скиду (рис. 2.6) відбувається наступним чином: при
включенні схеми конденсатор розряджений і напруга на RST близька до нуля -
мікроконтролер не стартує. Але з часом, через резистор, конденсатор зарядиться
і напруга на RST досягне логічної одиниці - МК запуститься. Кнопка дозволяє
примусово зробити скидання, якщо треба.
При конструюванні пристроїв на
мікроконтролерах часто виникає необхідність управління різними зовнішніми
пристроями за допомогою включення і вимкнення напруги живлення. При цьому
напруга живлення і струм споживання таких пристроїв можуть змінюватися в
найширших межах. Універсальним способом управління подібними пристроями є
електромагнітне реле. В даний час у продажу з'явилися малогабаритні реле з
досить непоганими параметрами. Сьогодні реле можуть комутувати навантаження в
ланцюзі до 220 вольт при струмі до 10 ампер і вище. Обмотка реле зазвичай
розрахована на напругу 12В і споживає струм всього 40 мА. Схема підключення
вказана на малюнку 2.7.
Для того, що б включити навантаження
мікроконтролер виставляє на своєму виході (в даному випадку на виході PB0)
сигнал логічної одиниці. Напруга через резистор R1 поступає на базу
транзистора. Транзистор відкривається і реле спрацьовує. Його контакти
замикають ланцюг навантаження. Для відключення навантаження мікроконтролер
виставляє на своєму виході сигнал логічного нуля. На базі VT1 напруга
знижується до нуля. Транзистор закривається і реле відключається. Діод VD1
служить для захисту схеми від напруги самоіндукції, яке виникає в обмотці реле
при знятті з неї напруги [6].
Рисунок 2.7 - Схема підключення реле
до мікроконтролера
У розділі розглянуто всі
функціональні можливості і властивості мікроконтролера ATtiny13, його
архітектура. Визначено електронні компоненти схеми та типи їх підключення.
За допомогою визначення усіх
функціональних вузлів схеми, була створена функціональна і електрична
принципова схема згідно технічного завдання курсового проекту.
3.
РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
.1 Розробка алгоритму функціонування
Алгоритм
<#"701996.files/image008.gif">
Рисунок 3.1 - Блок-схема алгоритму
функціонування
3.2 Організація пам’яті та розподіл
адресного простору
Архітектура AVR має дві основні
області пам'яті: пам'ять даних (рис. 3.3) і пам'ять програм (рис. 3.2). Крім
того, ATtiny13 має пам'ять EEPROM для зберігання даних. Всі три області пам'яті
є лінійними. ATtiny13
містить 1K байт на кристалі внутрішньо системної програмованої флеш-пам'яті для
програмного зберігання. Оскільки всі AVR команди по 16 або 32 байти,
флеш-пам'ять організована як 512 х 16. Флеш-пам'ять
має витривалість не менше 10000 циклів запису / стирання. ATtiny13 програмний
лічильник (РС) дев'ятибітний, що дозволяє виконувати 512 локацій пам'яті
програм.
Рисунок 3.2 - Організація програмної
пам’яті
Найнижчі 160 локацій пам'яті даних
відведені для звертання до реєстровогофайлу, пам'яті введення / виведення і
внутрішньої SRAM пам'яті. Перші 32 локації звертаються дореєстрового файлу,
наступні 64 локації- до стандартної пам'яті введення / виведення, а останні 64
-до внутрішньої SRAM пам’яті даних.
При адресації пам'яті даних
використовуються п'ять режимів адресації: безпосередня адресація, непряма зі
зсувом, непряма, непряма з преддекрементом і непряма з постдекрементом.
Регістри з R26 по R31 реєстрового файлу працюють як X, Y і Z регістри показники
непрямої адресації.
При використанні непрямої адресації
з автоматичним преддекрементом і постдекрементом автоматично декрементуются і
інкрементуются адреси записані в регістри X, Y і Z. Усіма цими режимами
перекривається весь адресний простір даних, включаючи 32 регістра загального
призначення і 64 регістра І/O.
Рисунок 3.3 - Організація пам’яті
даних
містить 64 байти пам'яті даних
EEPROM. Вона організована як окремий простір даних, в якому окремі байти можуть
бути прочитані і записані. EEPROM має на витривалість
щонайменше
100 000 циклів запису / стирання.
Всі I / O локації доступні для LD /
LDS / LDD і ST / STS / STD інструкцій, даними, що передаються між 32 робочими
регістрами загального призначення і середовищем введення / виводу. Регістри
введення / виводу в діапазоні адрес 0x00-0x1F безпосередньо доступні за
допомогою SBIі CBI інструкції. У цих регістр
f,
значення одного біта може бути перевірена за допомогою НВІС і SBIC інструкції.
При використанні спеціальних команд введення / виведення
IN
і OUT,повинні бути використані адреси введення / виведення 0x00 - 0x3F. Для
сумісності з майбутніми пристроями, зарезервовані біти повинні бути записані в
нуль, якщо є вони доступні [7].
3.3 Розробка програми, що керує
роботою мікропроцесора
Всі мови програмування діляться на
дві групи:
− мови низького рівня
(машинного орієнтування);
− мови високого рівня.
Так як програмування мікроконтролера
невіддільно від його апаратної частини, то пишучи код на мові низького рівня,
ви звертаєтесь до всієї периферії напряму і бачите що і як відбувається.
Яскравим представником мов низького
рівня є Асемблер. Тому для програмної реалізації схеми використана саме дана
мова.
Специфіка мови Асемблер полягає ще й
у тому, що набір операторів для цієї мови безпосередньо залежить від системи
команд конкретного МК. Тому, якщо два МК мають різну систему команд, то і мова
Асемблер для кожного такого МК буде своя.
Мови програмування високого рівня
відрізняються тим, що вони більш орієнтовані на людину. Більшість команд мов
високого рівня не пов'язані з конкретними командами МК.
Програмне забезпечення було
розроблене за допомогою AVRStudio − інтегрованого середовища розробки
(IDE) для розробки 8-ми і 32-х бітних AVR додатків від компанії Atmel.
Лістинг програми виглядає наступним
чином:
MOVFF 0, 0x7550x55, F, BANKED0x66,
F, BANKED0x77, W, ACCESS0, F, BANKED0xf88, W, ACCESS0xaa, F, BANKED0x1d, 0x7,
BANKED0x160e0e0x7, 0x5, BANKED0x280x8, 0x5, BANKED0x8, 0x4, BANKED0xb3, 0x5,
BANKED0xa, 0x800xffffff240x18c0x19, F, ACCESS0xffffff2c0x18c0x29, F, ACCESS0xffffff340x18c0x39,
F, ACCESS0x2, 0x4680x68, 0x2, ACCESS0xbb, F, BANKED0, F, BANKED0x55, F,
BANKED0x77, F, BANKED0x1760xb3, 0x4, BANKEDPCLATH, 0x50x52ADCON0, 0x5,
ACCESS0x152ADCON0, 0x4, ACCESS0x1580xa, 0x2, BANKED0x1580xb3, 0x4, BANKED0x17,
0x210x21, 0x50x68ADCON1, 0x5, ACCESS0x152ADCON1, 0x4, ACCESS0x1580xa, 0x2,
BANKED0x1580xb3, 0x4, BANKED0x17, 0x210x21, 0x50x7e0xfc0, 0x5,
ACCESS0x1520xfc0, 0x4, ACCESS0x1580xa, 0x2, BANKED0x1580xb3, 0x4, BANKED0x17,
FSR2LFSR2L, 0x7000, F, BANKED0x55, F, BANKED0x77, F, BANKED0x72, ACCESSADCON0,
0x5, ACCESS0x23, 0x5960x15, F, ACCESS0xffffff9a0x91, W, BANKED0x1940, F,
BANKED0x55, F, BANKED0x77, F, BANKED0x74, ACCESSADCON1, 0x5, ACCESS0x18,
0x5660x25, F, ACCESS0xffffffb20x92, W, BANKED0x1940, F, BANKED0x55, F,
BANKED0x77, F, BANKED0x78, ACCESS0xfc0, 0x5, ACCESS0xd, 0x5360x35, F,
ACCESS0xffffffca0x93, W, BANKED0x1940xfb7, 0xd71FSR1H, 0xd72PLUSW0, 0xd73PRODH,
0xfb00xfb0, 0x9b30xb3, 0x4, BANKEDTOSH, 0x3c0x1580x1620x1760x53, 0x2,
BANKED0xb3, 0x5, BANKEDPCLATH, 0x450x1760, F, BANKED0x75, F,
ACCESS0x1620x1580x7a, 0x2, ACCESSFSR0L, 0xe450x45, F, ACCESS0x41, W,
ACCESSTMR1H, 0x1b00xb0, BANKEDT1CON, 0xe550x55, F, ACCESS0x52, W, ACCESST0CON,
0x2b00xfb0, ACCESSOSCCON, 0xe650x65, F, ACCESS0x63, W, ACCESSTRISA, 0x4b00xfb0,
ACCESS0xb0, F, BANKED0x176ADRESH, 0x5, ACCESS0x22, F, BANKED0x7, 0x5230x23,
0x2, BANKED0x23, W, ACCESS0xf87, 0x7220x22, F, BANKED0x920x1, 0xb50x9cADCON0,
0x5, ACCESS0x152ADCON0, 0x4, ACCESS0x176ADCON1, 0x5, ACCESS0x152ADCON1, 0x4,
ACCESS0x1760xfc0, 0x5, ACCESS0x1520xfc0, 0x4, ACCESS0x1760xba, 0x2,
BANKEDADRESH, 0x4, ACCESS0xf73, 0x5ea0xea, 0x2, BANKED0x8, 0x2,
BANKED0xf20x1020x21, 0x3, BANKED0x8, 0x2, BANKEDADCON0, 0x5, ACCESSADCON1, 0x5,
ACCESS0xfc0, 0x5, ACCESS0x176ADCON0, 0x4, ACCESSADCON1, 0x4, ACCESS0xfc0, 0x4,
ACCESS0x1580x1580x8, 0x2, BANKED0x1580x1580x1580x1580x1580x8, 0x2,
BANKED0x1980x1620xa, 0x2, BANKED0x8, 0x2, BANKED0x8e, 0x5, BANKEDBSR, 0x5,
ACCESS0x9d, 0x1, BANKED0x8, 0x2, BANKED0xe1, 0x4, BANKEDTOSH, 0xb8e0x8e, 0x5,
BANKED0x9d, 0x5, BANKEDFSR1H, 0x5, ACCESSFSR1L, 0x5, ACCESS0x8, 0x2,
BANKED0x28, BANKED0x29, W, ACCESS0x32, F, ACCESS0x2e, F, ACCESS0x65,
ACCESS0x2e, F, ACCESS0x30, W, BANKED0x31, W, ACCESS0x62, 0x4, BANKED0x20, F,
ACCESS0x61, 0x2, BANKED0x69, BANKED0x69, 0x1, ACCESS0x2e, W, ACCESS0x76,
ACCESS0x61, ACCESS0x69, BANKED0x69, ACCESS0x40, 0x1, ACCESS0x61, ACCESS0x69,
BANKED0x64, BANKED0x64, F, ACCESS0x72, 0x2, BANKED
У розділі описано роботу схеми, її
алгоритм і наведено блок-схему функціонування. Описано розподіл і організацію
пам’яті і адресного простору мікроконтролера.
Також розроблено програмне
забезпечення у середовищі AVRstudio, що керує роботою мікропроцесора.
4.
МОДЕЛЮВАННЯ РОБОТИ
Моделювання роботи системи кодового
захисту з однією кнопкою (рис. 4.1) проводилось у пакеті Proteus 7.7
Professional (Isis 7.7 Professional).
Рисунок 4.1 - Змодельована схема
системи кодового захисту з однією кнопкою
Після встановлення режиму роботи
схеми, переходимо до програмування чисел. Після встановлення кожного числа,
починає блимати блок індикації, що складається з 3-х світлодіодів (рис. 4.2).
Після завершення програмування
чисел, програма переходить в звичайний режим введення чисел.
Якщо комбінація була введена
правильно - вмикається блок індикації з одного світлодіода (рис. 4.3).
Рисунок 4.2 - Індикація завершення
введеного числа
Рисунок 4.3 - Індикація правильно
введеної комбінації
Схема та програма взаємодіють
правильно, функціональність пристрою відповідає технічному завданню.
ВИСНОВКИ
У курсовому проекті було розроблено
систему кодового захисту з однією кнопкою на мікроконтролері ATtiny13. Розробка
апаратної частини проекту дозволила детально ознайомитись з архітектурою
мікроконтролера, його властивостями, а також
електронними
компонентами схеми. Відповідна схема була промодельована у пакеті Proteus 7.7
Professional, де і була перевірена функціональність пристрою. Програмне
забезпечення було створене в середовищі AVRStudio
мовою
Асемблер.
Даний проект дозволяє розробити
реальний пристрій, котрий міг би використовуватись для обмеження доступу до
приміщень або сейфів, у різного роду пристроях, котрі вмикаються після
правильного введення кодової комбінації.