ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

    Міністерство освіти і науки України

    Воронезький Державний Університет

    Фізичний факультет

    | | "ДО ЗАХИСТУ допущені" |
    | № ______________________ | Зав. кафедрою фізики напівпровідників |
    | кафедральної реєстрації | |
    | | Та мікроелектроніки |
    | | Проф. __________ Петров Б.К. |
    | |"____"__________ 2002 |

    УДК.681.3 КОРОБКОВ Георгій Миколайович

    РОЗРОБКА Програмні та апаратні

    ПІДТРИМКИ До Методичні вказівки

    «ПРОГРАМУВАННЯ Мікроконтролери»

    Магістерська дисертація по напряму «Фізика»

    Науковий керівник доц. ___________ Клюкін В.І.

    ВОРОНІЖ 2002

    РЕФЕРАТ

    УДК. 681.3 КОРОБКОВ Георгій Миколайович
    РОЗРОБКА Програмні та апаратні ПІДТРИМКИ До Методичні вказівки
    «ПРОГРАМУВАННЯ Мікроконтролери». - Магістерська дисертація знапрямом «Фізика», Воронеж, ВДУ, 2002. - 93 с., Іл. 45, табл. 4,прилож. 5, библ. 21 назв.

    В даний час мікроконтролери приймають все більшепоширення. Однак, інформації з питань навчання програмуваннюмікроконтролерів в поєднанні з зовнішніми виконавчими буває недостатньо.

    У роботі розглянуті архітектура, апаратні і програмні засобипоширених і недорогих мікроконтролерів фірми ATMEL серії AVR типу
    AT90S1200, AT90S2313, AT90S4414 і AT90S8515. Аналіз методикипрограмування в інтегрованому середовищі розробки дозволив об'єднатипрактичні рекомендації з деякими особливостями навчанняпрограмування мікроконтролерів. На підставі цього запропоновано алгоритмнавчання.

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

    Так само наведені рішення чотирьох типових задач по роботі з пам'яттю,індикацією, пристрій «кодовий замок» і пристрій вимірника частотизвукового діапазону. У додатках наведено тексти програм та довідковідані на розглянуті AVR мікроконтролери.

    ЗМІСТ

    ВСТУП 4


    1. ОСНОВИ АРХІТЕКТУРИ Мікроконтролери 6

    1.1. ОСНОВНІ ТИПИ Мікроконтролери ТА ЇХ АРХІТЕКТУРА 6
    1.2. Апаратні засоби 10

    1.2.1. Запуск мікроконтролера 10

    1.2.2. Тактірованіе і командні цикли 10

    1.2.3. Програмний лічильник і АЛУ 11

    1.2.4. Підпрограми та функції 13

    1.2.5. Введення-виведення даних 17
    1.3. Інструментальні та програмні засоби розробки і налагодження 20
    1.4. Основні типи інтерфейсів МК. 27

    1.4.1. Підключення перемикачів і придушення «дзвону» контактів. 27

    1.4.2. Світлова індикація. 28

    1.4.3. Введення з матричної клавіатури. 30

    2. ОСОБЛИВОСТІ ПОБУДОВИ І ФУНКЦІОНУВАННЯ мікроконтролерів фірми ATMEL
    СІМЕЙСТВА AVR 32

    2.1. Архітектура мікропроцесорного ядра AVR-мікроконтролерів 32
    2.2. Апаратні засоби AVR. 41
    2.3. Система команд мікроконтролера AVR 49

    3. ПРОГРАМНЕ І ІНСТРУМЕНТАЛЬНЕ ЗАБЕЗПЕЧЕННЯ ПРОЦЕСУ ПРОГРАМУВАННЯ
    Мікроконтролери 56

    3.1. Написання та налагодження програмного коду за допомогою AVR Studio 56

    3.1.1. Огляд AVR Studio 57

    3.1.2. Створення нового проекту 58

    3.1.3. Виконання програмного коду 62
    3.2. Аналіз методики реалізації розробки програмного забезпечення 69

    3.2.1. Класифікація варіантів завдань 69

    3.2.2. Розгляд типових прикладів 73
    3.3. Опис макета програматора. 77
    ВИСНОВОК 80
    БІБЛІОГРАФІЧНИЙ Посібник/За ред 81
    ДОДАТОК 1 Інструкції процесорів AVR. 83
    ДОДАТОК 2. Таблиця регістрів мікроконтролера AT90S1200 88
    ДОДАТОК 3. Програма для вимірювача звукової частоти 89
    ДОДАТОК 4. Програма для пристрою «кодовий замок» 91
    ДОДАТОК 5. Основні характеристики

    мікроконтролерів AVR 93

    ВСТУП

    Можна вважати що мікроконтроллер (МК) - це комп'ютер, що розмістивсяв одній мікросхемі. Звідси і його основні привабливі якості: малігабарити; високі продуктивність, надійність і здатність бутиадаптованим для виконання самих різних завдань.

    Мікроконтролер крім центрального процесора (ЦП) містить пам'ять ічисленні пристрої введення/виводу: аналого-цифрові перетворювачі,послідовні і паралельні канали передачі інформації, таймериреального часу, широтно-імпульсні модулятори (ШІМ), генераторипрограмованих імпульсів і т.д. Його основне призначення - використання всистемах автоматичного управління, вбудованих в самі різніпристрої: кредитні картки, фотоапарати, мобільні телефони, музичніцентри, телевізори, відеомагнітофони та відеокамери, пральні машини,мікрохвильові печі, системи охоронної сигналізації, системи запалюваннябензинових двигунів, електроприводи локомотивів, ядерні реактори ібагато, багато іншого. Вбудовувані системи управління стали настількимасовим явищем, що фактично сформувалася нова галузь економіки,отримала назву Embedded Systems (вбудовані системи).

    Досить широке поширення мають МК фірми ATMEL,функціональні можливості яких охоплюють всі перераховані завдання
    [1,2].

    Застосування МК можна розділити на два етапи: перший - програмування,коли користувач розробляє програму і прошиває її безпосередньо вкристал, і другий - узгодження спроектованих виконавчих пристроївз запрограмміруемим МК. Значно полегшують налагодження програми на першомуетапі - симулятор, який наочно моделює роботу мікропроцесора. Надругому етапі для налагодження використовується внутрісхемний емулятор, якийє складним і дорогим пристроєм, часто недоступним пересічномукористувачеві.

    У той же час в літературі мало приділено уваги питанням навчанняпрограмування деяких недорогих МК, в поєднанні з реальнимивиконавчими пристроями.

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

    1. ОСНОВИ АРХІТЕКТУРИ Мікроконтролери


    1.1. ОСНОВНІ ТИПИ Мікроконтролери ТА ЇХ АРХІТЕКТУРА

    Якщо представити всі типи сучасних мікроконтролерів (МК), то можнавражений величезною кількістю різноманітних приладів цього класу,доступних споживачеві. Однак всі ці пріори можна розділити на наступніосновні типи:

    . Вбудовувані (embedded) 8-розрядні МК;

    . 16 - і 32-розрядні МК;

    . Цифрові сигнальні процесори.

    Промисловістю випускаються дуже широка номенклатура вбудованих
    МК. У них всі необхідні ресурси (пам'ять, пристрої введення-виводу і т.д.)розташовуються на одному кристалі з процесорним ядром [3]. Якщо податихарчування і тактові імпульси на відповідні входи МК, то можна сказати,що він як би «оживе» і з ним можна буде працювати. Зазвичай МК містятьзначне число допоміжних пристроїв, завдяки чому забезпечується їх включення в реальну систему з використанням мінімальної кількостідодаткових компонентів. До складу цих МК входять:

    . Схема початкового запуску процесора (Reset);

    . Генератор тактових імпульсів;

    . Центральний процесор;

    . Пам'ять програм (E (E) PROM) і програмний інтерфейс;

    . Засоби введення/виводу даних;

    . Таймери, що фіксують кількість командних циклів.

    Загальна структура МК показана на рис. 1.1. Ця структура даєуявлення про те, як МК зв'язується із зовнішнім світом.

    Більш складні вбудовувані МК можуть додатково реалізовуватинаступні можливості:

    . Вбудований монітор/відладчик програм;

    . Внутрішні засоби програмування пам'яті програм (ROM);

    . Обробка переривань від різних джерел;

    . Аналоговий введення/виводу;

    . Послідовний введення/виведення (синхронний та асинхронний);

    . Паралельний введення/виведення (включаючи інтерфейс з комп'ютером);

    . Підключення зовнішньої пам'яті (мікропроцесорний режим).

    Всі ці можливості значно збільшують гнучкість застосування МК іроблять більш простим процес розробки систем на основі і.

    Рис. 1.1. Структура мікроконтролера.

    Деякі МК (особливо 16 - і 32-розрядні) використовують тількизовнішню пам'ять, яка включає в себе як пам'ять програм (ROM), так ідеякий об'єм пам'яті даних (RAM), необхідний для даного застосування. Вонизастосовуються в системах, де потрібен великий об'єм пам'яті і відноснене велика кількість пристроїв (портів) введення/виводу. Типовим прикладомзастосування такого МК із зовнішньою пам'яттю є котроллери жорсткого диска
    (HDD) з буферної кеш-пам'яті, що забезпечує проміжне зберігання ірозподіл великих обсягів даних (порядку декількох мегабайт). Зовнішняпам'ять дає можливість такому мікроконтролеру працювати з більш високоюшвидкістю, ніж вбудовується МК.

    Цифрові сигнальні процесори (DSP) - відносно нова категоріяпроцесорів. Призначення DSP полягає в тому, щоб отримувати поточні дані віданалогової системи, обробляти дані і формувати відповіднийвідгук у реальному масштабі часу. Вони зазвичай входять до складу систем,використовуючись як пристрої керування зовнішнім устаткуванням, і непризначені для автономного застосування.

    Система команд.

    Залежно від кількості використовуваних кодів операцій системи команд МКможна розділити на дві групи: CISC і RISC. Термін CISC означає складнусистему команд і є абревіатурою англійського визначення Complex
    Instruction Set Computer. Аналогічно термін RISC означає скороченусистему команд і походить від англійського Reduce Instruction Set Computer.
    Систему команд МК 8051 можна віднести до типу CISC. Однак, не дивлячись нашироку поширеність цих понять, необхідно визнати, що саміназви не відображають головного відмінності між системами команд CISC і RISC.
    Основна ідея RISC архітектури - це ретельний підбір таких комбінаційкодів операцій, які можна було б виконати за один такт тактовогогенератора. Основний виграш від такого підходу - різке спрощенняапаратної реалізації ЦП і можливість значно підвищити йогопродуктивність.

    Очевидно, що в загальному випадку одній команді CISC відповідаєкілька команд RISC. Проте зазвичай виграш від підвищення швидкодії врамках RISC перекриває втрати від менш ефективної системи команд, щопризводить до більш високої ефективності RISC систем в цілому в порівнянні з
    CISC.

    Проте в даний час межа між CISC і RISC архітектуроюстрімко стирається. Наприклад, МК сімейства AVR фірми Atmel маютьсистему команд із 120 інструкцій, що відповідає типу CISC. Однакбільшість з них виконується за один такт, що є ознакою RISCархітектури. Сьогодні прийнято вважати, що ознакою RISC архітектуриє виконання команд за один такт тактового генератора. Число командсаме по собі значення вже не має.

    Типи пам'яті МК.

    Можна виділити три основні види пам'яті, яка використовується в МК: а) пам'ять програм; б) пам'ять даних; в) регістри МК.

    Пам'ять програм являє собою постійну пам'ять, призначенудля зберігання програмного коду і констант. Ця пам'ять не зраджуєвмісту в процесі виконання програми. Пам'ять даних призначенадля зберігання змінних в ході виконання програми. Регістри МК - цей видпам'яті включає внутрішні регістри процесора і регістри, які служатьдля управління периферійними пристроями.

    Для зберігання програм звичайно є один з видів постійної пам'яті:
    ROM (масочний ПЗУ), PROM (однократно програмовані ПЗП), EPROM
    (електрично програмовані ПЗП з ультрафіолетовим стиранням) або EEPROM
    (ПЗУ з електричною записом і стиранням, до цього виду також відносятьсясучасні мікросхеми Flash-пам'яті). Всі ці види пам'яті єенергонезалежними - це означає, що вміст пам'яті зберігається післявимкнути живлення МК.

    Багаторазово програмувальні ПЗУ - EPROM і EEPROM (Electrically
    Erasable Programmable Memory) підрозділяються на ПЗУ з стираннямультрафіолетовим (УФ) опроміненням (випускаються в корпусах з вікном), та МК зелектрично Перепрограмміруємая пам'яттю, відповідно.

    В даний час протоколи програмування сучасної EEPROMпам'яті дозволяють виконувати програмування МК безпосередньо у складісистеми, де він працює. Такий спосіб програмування отримав назву -
    ISP (In System Programming). І тепер можна періодично оновлюватипрограмне забезпечення МК без видалення з плати. Це дає величезний виграшна початкових етапах розробки систем на базі МК або в процесі їхвивчення, коли маса часу йде на багаторазовий пошук причиннепрацездатності системи і виконання наступних циклів стирання -програмування пам'яті програм.

    Функціонально Flash-пам'ять мало відрізняється від EEPROM. Основневідмінність полягає у здатності стирання записаної інформації. У пам'яті
    EEPROM стирання проводиться окремо для кожного осередку, а в Flash-пам'ятістирання здійснюється цілими блоками.

    ОЗП (RAM) - оперативний запам'ятовуючий пристрій, що використовується длязберігання даних. Цю пам'ять називають ще пам'яттю даних. Число циклівчитання і запису в ОЗУ необмежено, але при відключення живлення всяінформація втрачається.


    1.2. Апаратні засоби


    1.2.1. Запуск мікроконтролера

    У багатьох програмах використовується батарейне харчування МК, а вдеяких випадках застосовуються навіть конденсатори великої місткості, якізабезпечують збереження працездатності при короткочасних відключенняхарчування. Тому проблема енергоспоживання (енергозбереження) вельмиактуальна для МК. Так як практично всі сучасні МК виробляються за
    КМОП технології, то вони споживають значно менше потужності, ніж ранішевипускалися біполярні або n-МОП - мікроконтролери.

    Скидання в початковий стан.

    На рис. 1.3. зображена схема скидання. Цю схему кращого за всевикористовувати у випадках, коли гарантовано підтримку напруги живленняв робочому діапазоні. Кнопка RESET використовується в процесі розробкипристроїв для скидання МК в початковий стан. (Див. мал. 1.2.)

    Рис. 1.2. Схема RESET.

    1.2.2. Тактірованіе і командні цикли

    Існує три способи завдання тактової частоти МК. Перший спосіб --використання кварцового резонатора. Другий спосіб синхронізації --використання RC генератора. Третій спосіб синхронізації - це подачатактових імпульсів від зовнішнього генератора. З його допомогою можна задати будь-якучастоту синхронізації.

    Слід звернути увагу на те, що командні цикли і тактисинхронізації не одне і теж. Командний цикл складається зазвичай з декількохтактів, які необхідні процесору для виконання команди. На рис. 1.3,показаний командний цикл, що складається з чотирьох тактів.

    Рис. 1.3. Командний цикл і машинні такти.

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

    1.2.3. Програмний лічильник і АЛУ

    Програмний лічильник (Program Counter) або лічильник команд (СК)використовується для вказівки наступної команди виконуваної програми.
    Реалізація цієї функції значно ускладнюється, коли необхідно зберегтивміст СК при виклику підпрограм і обробки запитів переривання абозабезпечити розгалуження програми. СК є лічильник зпаралельним введенням/висновком. У процесорах з архітектурою Прінстонськийвміст СК надходить оп шині даних у схему управління пам'яттю, вказуючиадреса зчитуємо команди. Часто СК входить до складу схеми управлінняпам'яттю - це дозволяє уникнути передачі адреси по внутрішній шині даних.
    Важливі особливості функціонування СК - паралельна завантаження новоговмісту, що надходить із шини даних, можливість скидання (повернення доадресою першої команди програми), реалізація інкремента. У 8-розрядних МКрозрядність СК зазвичай більше, ніж 8 біт. При завантаження в СК нової адреси,він вступає по шині даних частинами по 8-біт, що вимагає виконаннядодаткових машинних циклів. Щоб скоротити час завантаження СК,деякі МК мають команди розгалуження, при яких завантажується тільки 8молодших розрядів адреси, а старші розряди залишаються без зміни. Привиконанні такої команди досить передати по шині даних тільки одинбайт, тоді як для завантаження повного 16-розрядної адреси потрібнопересилання двох байт.

    Після читання чергової команди вміст СК збільшується
    (інкрементіруется), щоб забезпечити перехід до адреси наступної команди.
    Якщо виконується виклик підпрограми або відбувається переривання, то адресаповернення (поточний состояніе СК) може бути збережений в стеку без виконаннядодаткових тактів для інкремента вмісту СК. У роботі з МКнеобхідно стежити, щоб значення СК не вийшло за межі пам'яті програм.
    Так як це може призвести до виконання невизначених команд інепередбачуваного результату.

    Арифметико-логічний пристрій (АЛП) процесора використовується длявиконання всіх математичних операцій в програмі. Це операції включаютьдодавання, віднімання, логічне І, логічне АБО, зсув вмістурегістрів і установку вмісту регістра стану відповідно доотриманими результатами. АЛУ не використовується при читанні або запису данихабо команд, воно служить тільки для обробки даних.

    АЛУ можна представити як апаратний блок, який обробляє дваслова даних (операнди) і зберігає отриманий результат (див. рис. 1.4).
    Як вводяться операнди в АЛУ і куди надходить результат - залежить відконкретного типу МК. У цьому полягає одна з основних відмінностей між різнимитипами процесорів і системами команд. Деякі МК вибирають один операндз регістра-акумулятора і зберігають результат також в акумуляторі. Інші
    МК дозволяють використовувати різні джерела операндів і місця розміщеннярезультатів.

    Рис. 1.4. Структура АЛП.

    АЛУ зазвичай працює тільки з позитивними цілими числами. Однак привиконання віднімання виходять негативні числа, якщо віднімається більшезменшуваного. Для представлення негативних чисел використовуєтьсядодатковий код - «додаток до двох». Це необхідно враховувати признайомство з роботою АЛП.

    Замість віднімання одного числа з іншого, відбувається додаваннянегативного числа:

    А - В = А + (-В), де від'ємне число (-В) представляється в додатковому коді.
    Щоб отримати додатковий код негативного двійкового числа,необхідно Інвертувати значення кожного біта, а потім додати одиницю:

    -В = (В ^ 0хff) + 1, де ^ - операція «виключне або».

    Складність АЛУ багато в чому визначає складність усього МК в цілому. Частонад створенням АЛУ працює група розробників, порівнянна по складу зтієї, яка працює над іншою частиною мікропроцесора абомікроконтролера. Від того, як працює АЛП, залежить функціонуванняпроцесора, що входить до складу МК, а значить і всього МК в цілому.

    1.2.4. Підпрограми та функції

    При виклику підпрограми або функції потрібно зберегти вміст СКдля того, щоб команда повернення могла повернути управління вихідноїпрограмі. Це може виконуватися автоматично шляхом збереження адресиповернення в сітці. При поверненні до вихідної програмі адреса витягується зстека і завантажується в СК. Виклик функції може бути реалізований в МК, немають стека, шляхом використання індексного регістра для емуляції стека.
    Якщо не можна безпосередньо завантажити в стек вміст СК, то адресаповернення до вихідної програмі можна зберегти в емулювати стеку.

    Іноді доводиться передавати функції деякі параметри. Один знайефективніших і часто зустрічаються способів передачі параметрів уфункцію - це помістити їх в стек перед викликом функції. У підпрограміможна завантажити індексний регістр значення покажчика стека і таким чиномотримати доступ до параметрів.

    Іншим способом передачі параметрів є їх збереження в регістрахпроцесора або в пам'яті даних у якості спеціальних змінних. Передачапараметрів через регістри скорочує число регістрів, доступних привиконанні функції. Збереження ж параметрів у вигляді спеціальних зміннихзменшує обсяг пам'яті, доступної для використання програмою. Данеобмеження може бути досить істотно для МК. Зазвичай значеннящо повертаються параметрів завантажуються в регістри процесора, тому що ценайбільш швидкий і ефективний спосіб передачі даних.

    Переривання.

    Переривання - це запуск спеціальної підпрограми (званої
    «Обробником переривання» чи «програмою обслуговування переривання»),який викликається сигналом апаратури. На час виконання цієїпідпрограми реалізація поточної програми зупиняється (див. ріс.1.5).
    Термін «запит на переривання» (interrupt request) використовується тому, щоіноді програма відмовляється підтвердити переривання і виконати оброблювачпереривання негайно.

    Рис. 1.5. Виконання переривань.

    МК може не реагувати на переривання, поки не завершиться виконанняпоточного завдання - цей реалізується шляхом заборони (маскування)обслуговування запиту переривання. Після рішення задачі можливий один з двохваріантів: скидання маски і дозвіл обслуговування переривання, що призведе довикликом обробника переривання, чи аналіз значення бітів, що вказують нанадходження запитів переривання і безпосереднє виконання програмиобслуговування без виклику обробника переривання. Такий метод обробкипереривання використовується, коли потрібно забезпечити заданий часвиконання основної програми, тому що будь-яке перебування може порушитиреалізацію необхідного інтерфейсу.

    Оброблювач завжди забезпечує наступну послідовність дій:

    1. Зберегти вміст регістрів контексту.

    2. Скинути контролер переривань і устаткування, яке викликало запит.

    3. Обробити дані.

    4. Відновити вміст регістрів контексту.

    5. Назад до перерваної програмі.

    Регістри контексту - це регістри, що визначають поточний станвиконання основної програми. Зазвичай до їх відносять СК, регістри стану йакумулятор. Інші регістри МК, такі як індексні регістри, можуть бутивикористані в процесі обробки переривання, тому їх вміст такожнеобхідно зберегти. Всі інші регістри є специфічними дляконкретного типу МК і його застосування.

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

    Вкладені переривання складні деяких типів МК, які не маютьстека. Ці переривання так само можуть викликати проблеми, пов'язані зпереповненням стека.

    Іноді МК може швидко відреагувати на запит переривання, прийнявшинеобхідні дані, які будуть потім використані після вирішення поточноїзавдання. Це реалізується шляхом збереження надійшли даних в масивіпам'яті і наступної їхньої обробки, коли виконання вихідної програми будезавершено. Такий спосіб обслуговування є гарним компромісом міжнегайною повною обробкою переривання, що може зажадати багаточасу, і ігноруванням переривання, що може призвести до втратиінформації про подію, що викликала переривання.

    При обробці переривання вміст регістра стану звичайно (але незавжди) автоматично зберігається разом із вмістом СК перед обробкоюпереривання. Це рятує від необхідності зберігати його в пам'ятіпрограмними засобами за допомогою команди пересилання, а потімвідновлювати при поверненні до вихідної програмі. Однак такеавтоматичне збереження реалізується не у всіх типах МК.

    Якщо вміст регістра стану зберігається перед початком обробкипереривання, то по команді повернення виробляється його автоматичнеоновлення. Якщо вміст інших регістрів змінюється при виконанніобслуговування переривання, то воно також має бути збережене в пам'яті дозміни і відновлено перед поверненням в основну програму.

    «Вектор переривання» - це адреса, що завантажується в СК при переходідо обробникові переривання. Існує кілька типів векторів. Адреса,який завантажується в СК при запуску МК (RESET) називається «вектор скидання».
    Для різних переривань можуть бути задані різні вектора. Але інодірізним перериваннях призначається один вектор. Це не повинно викликатипроблем при роботі з МК, тому що найчастіше він виконує одну єдинупрограму. У МК, де апаратна частина добре відома, не повинно виникнутибудь-яких проблем при спільному використанні векторів переривань.

    У висновку можна додати, що системні підпрограми - це свогороду програмні переривання, які за допомогою спеціальних процесорнихкоманд імітують апаратні переривання. Вони розташовуються в довільномумісці пам'яті, або можуть вимагати для звернення до них межсегментнихпереходів.

    Таймери.

    Таймери в мікропроцесорних системах використовуються не тільки длязабезпечення заданої затримки, але і для вирішення набагато ширшогокола завдань. Зазвичай для перемикання таймера використовують тактові імпульсипроцесора. Завантаживши в таймер початкове значення, можна відраховуватипевні проміжки часу, фіксуючи закінчення інтервалу з моментупереповнення таймера. Часто перед таймером включають попереднійдільник тактової частоти, щоб мати можливість відраховувати більшедовгі інтервали часу. Дільник забезпечує інкремент вмістутаймера після надходження певного числа тактових імпульсів.

    Їх можна використовувати для точного формування тимчасових інтервалів,підрахунку імпульсів на виходах МК, формування послідовностіімпульсів, тактірованія приймача-послідовного каналу зв'язку.
    Таймери/лічильники здатні виробляти запити переривань, перемикаючи ЦП наїхнє обслуговування по подіям і звільняючи його від необхідностіперіодичного опитування станів таймерів. Оскільки основне застосування МКзнаходять у системах реального часу, таймери/лічильники є їхобов'язковим елементом. У деяких модифікаціях число таймерів досягає
    32.

    1.2.5. Введення-виведення даних

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

    У багатьох МК окремі висновки портів можуть бути запрограмовані навведення або виведення даних. Необхідно звернути особливу увагу на те, при введенніданих зчитується значення сигналу, що надходить на зовнішній висновок, а невміст тригера даних. Якщо до зовнішнього висновку підключені висновки іншихпристроїв, то вони можуть встановити свій рівень вихідного сигналу, якийбуде лічений замість очікуваного значення даних, записаних в тригер. Удеяких МК існує можливість вибору між читанням даних,встановлених на виході тригера або на зовнішньому висновку.

    Коли на шину необхідно вивести «0» або «1», то спочатку записуютьвідповідне значення в тригер даних, а потім за допомогою тригерауправління на виході встановлюється необхідний рівень потенціалу.
    Тригер управління дозволяє виведення даних на шину. У сучасних МКзабезпечується індивідуальний доступ до тригера даних та управління здопомога адресної шини.

    Зовнішній висновок може бути також використаний для подання запитупереривання. Це звичайно реалізується, коли висновок працює в режимі введення.

    Найбільш розповсюджений вид зв'язку між різними електронно -обчислювальними системами - це послідовний обмін. У цьому випадку байтданих передається по єдиному проводу біт за бітом із забезпеченнямсинхронізації між приймачем і джерелом даних. Очевидна перевагапослідовної передачі даних полягає в тому, що вона вимагає невеликогокількості ліній зв'язку.

    Існує безліч стандартних послідовних протоколів передачіданих. У деяких МК ці протоколи реалізуються внутрішніми схемами,розміщеними на кристалі, що дозволяє спростити розробку різнихдодатків.

    Аналоговий компаратор.

    Часто в МК вбудовується аналоговий компаратор напруг. Компараторявляє собою просту схему, яка, яка порівнює дванапруги. Звичайно один сигнал називають вхідним, а інший опорним. [7] Навиході встановлюється «1», якщо вхідна напруга більше, ніж опорне
    (див. рис. 1.6). цей спосіб найбільш зручно використовувати в такихпристроях, як термостати, де необхідно контролювати досягненняпевного рівня вимірюваної величини, що задається значеннямвхідної напруги.

    Рис. 1.6. Сигнали на вході і виході аналогового компаратора.

    Програмування пристроїв.

    Програмування пристроїв, у тому числі і мікроконтролерів зазвичайвідбувається таким чином. У регістр програматора завантажується значення,яке необхідно розмістити за певною адресою, потім включаєтьсясхема, яка пересилає вміст цього регістра по заданому адресу,проходить якийсь час очікування, поки завершиться процеспрограмування вибраної комірки пам'яті і, на кінець, виконуєтьсяверифікація, тобто перевіряється правильність записаного значення.
    Програмування всього пристрою може зайняти від декількох секунд додекількох хвилин залежно від розміру пам'яті і алгоритмупрограмування.

    Часто обладнання для програмування виявляється занадто дорогим,особливо для радіоаматорів і підприємств малого бізнесу. Але в деякихвипадках для програмування потрібно дуже простий і доступнийобладнання. Наприклад, деякі моделі PIC і AVR мікроконтролерівпрограмуються дуже легко. Існує також пристрої, які невимагають обладнання для програмування, на приклад, МК Basic STAMP, абомають вбудований апаратно-програмний блок, що рятує від необхідностівикористання зовнішнього обладнання, крім джерела підвищеної напругидля програмування, як МК 68НС05.

    Дуже важливий аспект, що стосується програмування пристроїв,полягає в тому, що чи може пристрій бути запрограмовано всистемі. Це називається внутрішньосистемні програмування (ВСП) - віданглійської In-System Programming (ISP). Якщо МК допускає можливістьтакого програмування, то це означає, що він може бути змонтований наплату з порожньою пам'яттю програм, яка потім може бути запрограмованабез будь-якого впливу на інші компоненти схеми. Це може стативажливою обставиною при виборі МК. Використання ВСП позбавляє МК віднеобхідність купувати спеціальний програматор, дає можливість оновлюватипрограмне забезпечення без зміни розташованих на платі апаратнихкоштів і дозволяє виробникам створювати запас готових виробів, якіможуть легко модифікуватися відповідно до надходять замовленнями.

    Безпека пам'яті програм.

    Для багатьох додатків бажано захистити програмний код, записанийв МК. Щоб забезпечити таку можливість багато МК містять спеціальнізасоби для запобігання зчитування зберігаються в них програм. Частотака можливість реалізується шляхом встановлення певного значенняконфігураційного біта в процесі програмування. Зазвичай значення цьогобіти можна змінити тільки в процесі перепрограмування вміступам'яті МК, наприклад при УФ стирання вмісту EPROM.

    Захист не може запобігти всі можливості зчитуванняпрограмного коду. Таке зчитування можна зробити в багатьохлабораторіях, що виконують аналіз причин відмов мікросхем, причому за дужекороткий час. Щоб ускладнити і зробити операцію зчитування меншефективною, деякі компанії зашифровують записані програми шляхомперемішування команд і включають спеціальні апаратні блоки, якіперетворять переміщених дані в потік команд процесора. І все-таки,установка біта захисту не може гарантувати абсолютний захист програмногокоду завантаженого в МК.

    1.3. Інструментальні та програмні засоби розробки і налагодження

    Найефективніший спосіб налагодження програм для МК - застосуванняспеціалізованих професійних інструментальних оцінних засобів, дояких слід віднести:
    . внутрісхемние емулятори (ВСЭ) - програмно апаратне засіб, здатний заміщати собою емуліруемий процесор у реальному пристрої;
    . програмні симулятори - програмний засіб здатне імітувати роботу МК і його пам'яті;
    . монітори налагодження - спеціальна програма, що завантажується в пам'ять налагоджувати системи.
    . плати розвитку (Evaluation Boards - оціночні плати) - своєрідні конструктори для макетування прикладнихсистем;
    . емулятори ПЗУ - програмно-апаратний засіб, що дозволяє замінити ПЗУ налагоджувати пристрою на ОЗУ, в яке можна завантажити програму з комп'ютера через один зі стандартних каналів зв'язку.

    Крім цього існують і комбіновані пристрої та набори.

    Симулятори

    Як правило, симулятор складається з відладчика, моделі ЦП та пам'яті. Більшедосконалі пристрої містять у своєму складі моделі вбудованихпериферійних пристроїв (таймерів, портів, АЦП і систем переривань).

    Симулятор повинен вміти завантажувати файли програм у всіх популярнихформатах, максимально повно відображати інформацію про стан ресурсівсімуліруемого МК, а також надавати можливості по симуляції виконаннязавантажується програми в різних режимах. У процесі налагодження модельвиконує програму, і на екрані монітора комп'ютера відображається поточнийстан моделі.

    Завантаживши програму в симулятор, користувач може запускати їїпокроковому або безперервному режимі, задавати умовні або безумовні точкизупину, контролювати і вільно модифікувати вміст комірок пам'ятіі регістрів сімуліруемого МК. Симулятор дозволяє швидко перевірити логікувиконання програми, правильність виконання арифметичних операцій.

    У залежності від класу використовуваного відладчика деякі моделісимуляторів підтримують високорівневу налагодження програм.

    Симулятор може містити і ряд додаткових програмних засобів,наприклад інтерфейс зовнішнього середовища. Наявність такого інтерфейсу дозволяєстворювати і гнучко використовувати модель зовнішнього середовища МК, що функціонує іщо впливає на налагоджують програму по заданому алгоритму.

    У реальному системі МК зазвичай «займається» зчитуванням інформації зпідключених до нього пристроїв (датчиків), обробкою її та видачікеруючих сигналів на виконавчі пристрої. Для того щоб в простомусимуляторі змоделювати роботу датчика, потрібно в ручну змінювати поточнестан моделі периферійного пристрою, до якого в реальній системіпідключений датчик. Але існує ряд сучасних розробок програмнихсимуляторів, в яких щоб імітувати зовнішні умови і ситуації, звичайновикористовується спеціальний файл вхідних впливів. Цей файл задаєпослідовність вхідних сигналів, що надходять на моделюєтьсяпристрій.

    Приміром, для мікроконтролерів AVR цей вхідний файл програмногосимулятора може виглядати наступним чином:

    000000000:00

    000000006: F1

    000000015:18

    000000109:1 C

    000000203:61

    000000250:10

    000000344:1 F

    000000391:71

    999999999: ff де кожен рядок містить - цикл: дані, що надходять на якій-небудьвказаний порт.

    У деяких моделях симуляторів ця проблема імітації зовнішніх сигналіввирішена таким чином, що симулятор має вбудований засіб для створеннямоделей підключених до МК зовнішніх пристроїв, включаючи засоби графічноговідображення інформації.

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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status