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

     

     

     

     

     

         
     
    Відповіді до екзамену з Мікропроцесорні системи (мікроконтролери мікрокопроцессори )
         

     

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

    1. Історія
    У 1642 Паскаль винайшов механічну лічильну машину (+,-). 30 років по тому
    Лейбніц зробив машину, яка могла множити, ділити, плюсовать івіднімати. На початку 19в Беббідж сконструював різницеву машину, якамогла складати і віднімати. Потім зробив аналітичну машину, її можнабуло програмувати. Програміст на цій машині - Ада серпня Ловлейс. У
    30 роки 20 ст в Гарварді Айкент зробив машину Беббідж на електричнихреле. 1943 - Моушлі створив електронний комп'ютер ENIAC (він мав 20регістрів, 1 регістр - 10-розрядне десяткове число). Джон фон Нейман:
    «Машина повинна складатися: АЛП, пам'ять, пристрій введення-виведення, пристрійуправління ». 1953 IBM побудувала перший комп'ютер - IBM 701. 1956 --винайдений транзистор. 1961 - фірма DEC випустила комп. PDP-1 (120 тис.доларів). PDP-8 був 12 бітним і мав шинну архітектуру (16 тис. дол.).
    1964 - випуск IBM 360. На початку 80-х винайдена БІС. 1981 - INTEL 8088, наце проце зроблений IBM PC.


    4. АРХІТЕКТУРА Мікроконтролери
    Контролером в техніці регулювання вважається управляючий пристрій,здійснює регулюють або контролюючі функції в системі.
    Контролер, реалізований на одному кристалі, називається мікро контролером.
    Сучасний мікроконтроллер є великою цифрової інтегральної схемою,об'єднує мільйони, виконаних за мікронним технологій, транзисторів.
    Типова структура мікроконтролера зображена на рис. 1.1. Мікроконтролерскладається з трьох, пов'язаних системними шинами, елементів: процесорногоядра, пам'яті і набору програмувальних функціональних блоків різногопризначення.

    Рис. 1.1. Структура мікроконтролера
    Процесорний ядро (MCU - Microprocessor Com Unit) є основоюмікроконтролера. Воно виконує всі обчислювальні операції і одночасно,керує роботою всіх інших елементів схеми. За системним шинпроцесорний ядро обмінюється даними з пам'яттю і всіма функціональними
    (ннж.ші Розрядність процесорного ядра визначає розрядністьмікроконтролера Найбільш поширені в даний час 8-бітні (8 --розрядні) мікроконфолпери Разом з тим, широке застосування в простихзавданнях знаходять і 4-бітні видання, а в складних високопродуктивнихсистемах 16 - і 32-бітові
    У пам'яті (Memory) зберігається програма роботи мікрокош рол лора, вихіднідані і всі проміжні результати обчислень. Пам'ять складається збезлічі багаторозрядних осередків, кожна з яких має свою адресу За цимадресою процесорний ядро знаходить конкретну комірку пам'яті в процесіобміну. Пам'ять мікроконтролера звичайно розділена на дві частини: пам'ятьданих (Data Memory) і пам'ять програм (Program Memory).
    Функціональні блоки різних типів забезпечують взаємодіюмікроконтролера із зовнішнім світом. Ці блоки можуть виконувати самі різніфункції: введення і виведення інформації, підрахунок зовнішніх подій і інтервалівчасу, передача зовнішніх запитів на процесорний ядро, аналого-цифрові тацифроаналогові перетворення сигналів, порівняння різних величин,контроль за напругою живлення та ін Для процесорного ядра будь-якоїфункціональний блок представляється у вигляді одного або декількох регістрів.
    Кожен регістр має свій оригінальний адреса, за якою процесорний ядрознаходить його в процесі роботи.
    Програма роботи мікроконтролера зберігається в пам'яті у виглядіпослідовності команд (інструкцій). 8 процесі роботи процесорний ядропослідовно витягує з пам'яті інструкції, розшифровує і виконуєїх. Залежно від дії в ядрі виконуються різні арифметичніі логічні операції, пересипання даних. При необхідності, в процесівиконання інструкції, процесорний ядро звертається за даними до осередківпам'яті і функціональним блокам, або пересипає в них результатиобчислень. Безліч інструкцій, які розуміє процесорний ядро,утворює систему команд мікроконтролера.
    Практично всі провідні виробники розробляють цілі сімействамікроконтролерів з так званої модульної структурою. При цьомупроцесорний ядро для всього сімейства незмінно, а пам'ять і складфункціональних блоків у кожного мікроконтролера різні. Процесорнийядро завжди має свою оригінальну схему і, обов'язково, оригінальне ім'я.
    Наприклад, мікроконтролери фірми Motorola побудовані на базі ядра НС05 і
    НС08, фірма Intel створила ядро MCS-51 та мг.8-96, контролери фірми
    Microchip будуються на базі ядра PIC12, PIC16, PIC17. 1'К'Ш фірма Л/me /посилено розвиває сімейство мікроконтролерів з ядром AVR
    Процесорний ядро на основі відомих схемотехнічних рішень, технологійпроектування і виробництва цифрових схем реалізує певнуархітектуру системи. Для мікропроцесорної системи поняття «архітектура»включає в себе безліч її структурних особливостей, основними з якихвважаються: організація пам'яті і система команд. В даний час відомічотири загальних архітектурних принципу в тій чи іншій мірі, що реалізуються вбудь-якому процесорному ядрі.
    По організації пам'яті розрізняються:
    ° Неймановская архітектура - характеризується загальним простором пам'яті длязберігання даних та програми. При цьому розрядність пам'яті зафіксована (якправило, дорівнює одному байту). Таку архітектуру мають, наприклад,мікроконтролери НС05 і НС08 фірми Motorola, у яких загальний масив 8 --бітних комірок пам'яті включає в себе як пам'ять програм, так і пам'ятьданих [5].
    0 Гарвардська архітектура - відрізняється поділом пам'яті програм і пам'ятіданих. При цьому розрядність пам'яті програм і вшанування пам'яті даних, а також шинидоступу до них, різні. Зокрема, всі мікроконтролери PIC12, PIC16фірми Microchip мають 8-бітну пам'ять даних, а розрядність пам'яті програму них різна: PIC12 мають 12 бітну пам'ять програм, а РЮШ - 14 бітну
    [3]. За системою команд розрізняються:
    0 CISC-архітектура (Complicated Instruction Set Computer) - архітектура зрозвиненою системою команд. Система команд процесорного ядра маєінструкції різного формату: однобайтові, багатобайтових, трехбайтовие.
    Різні інструкції при цьому мають і істотно різний час виконання.
    0 RISC-архітектура (Reduced Instruction Set Computer) - архітектура зскороченим набором команд. Одна інструкція, як правило, займає тількиодну комірку пам'яті, і всі інструкції мають рівне час виконання.
    Мікроконтролери з RISC-архітектурою мають порівняно більш високупродуктивність при тій же тактовою частотою сигналу синхронізації і вданий іремя більш поширені.
    Різні виробники у своїх виробах використовують часто різніархітектурні принципи. Тому наведене вище поділ досить умовно
    Наприклад, AVR-мікроконтролери фірми Atmel, на думку її творців (Alf
    Bogen і Vergard Wollan), мають поліпшену RISC (enhanced RISC) архітектуру.
    Відповідно до принципів RISC - архітектури практично всі командимікроконтролера (крім тих, у яких одним з операндів є 16 --розрядний адреса) займають тільки в одну комірку пам'яті програм. Але зробитице розробникам вдалося за рахунок одночасного використання принципів
    Гарвардської архітектури та розширення комірки пам'яті програм до 16 розрядів.
    Тому в системі команд AVR-мікроконтролерів цілих 130 різних команд,що значно більше, ніж у більшості сучасних RISC - архітектур.
    Для порівняння, контролери фірми Microchip з ядром PIC12. PIC16, PIC17мають всього 33 команди [3].

    5. Архітектура мікропроцесора КР580ВМ80А
    Мікросхема КР580ВМ80А - функціонально закінчений однокристальнийпаралельний 8-розрядний мікропроцесор з фіксованою системою команд,застосовується в якості центрального процесора в пристроях обробкиданих і управління. Мікропроцесор має роздільні 16-розрядний каналадреси та 8-розрядний канал даних. Канал адреси забезпечує прямуадресацію зовнішньої пам'яті об'ємом до 65536 байт, 256 пристроїв введення і 256пристроїв виводу.
    Восьмирозрядному арифметико-логічний пристрій мікропроцесоразабезпечує виконання арифметичних і логічних операцій над двійковимиданими, представленими в додатковому коді, а також обробку двійковій -десяткових упакованих чисел.
    До складу блоку регістрів входять: 16-розрядний регістр адреси команди (IP),
    16-розрядний регістр покажчика стека (SP), 16-розрядний регістр тимчасовогозберігання (WZ), 16-розрядна схема інкремента-декремент і шість 8-розряднихрегістрів загального призначення (B, C, D, Е, Н, L), які можутьвикористовуватися і як три 16-розрядних регістра (НД, DE, HL).
    Мікропроцесор виконує команди з машинним циклами. Число циклів,необхідне для виконання команди, залежить від її типу і може бути відодного до п'яти. Машинні цикли виконуються за машинним тактів. Число тактівв циклі визначається кодом виконуваної команди і може бути від трьох доп'яти. Загальна тривалість такту дорівнює періоду тактової частоти і при частоті 2,0
    МГц становить 500 нс.

    6. Визначення мікроконтролера.
    Контролером в техніці регулювання вважається управляючий пристрій,здійснює регулювання або контролюючі функції в системі.
    Контролер, реалізований на одному кристалі, називається мікро контролером.
    Сучасний мікроконтроллер є великою цифрової інтегральної схемою,об'єднує мільйони, виконаних за мікронним технологій, транзисторів.
    Типова структура МК зображена на рис. МК складається з трьох, пов'язанихсистемними шинами, елементів: процесорного ядра, пам'яті і наборупрограмувальних функціональних блоків різного призначення.
    Процесорний ядро є основою МК.
    Воно виконує всі обчислювальні операції і, одночасно, управляєроботою всіх інших елементів схеми.
    За системним шинам Пасмо обмінюється даними з пам'яттю і всімафункціональними блоками. Розрядність ПЯ визначає розрядність МК
    (4,8,16,32-бітні).
    У пам'яті зберігається програма роботи МК, вихідні дані і всі проміжнірезультати обчислень. Пам'ять складається з безлічі багаторозрядних осередків,кожна з яких має свою адресу. Пам'ять МК звичайно розділена на двічастини: пам'ять даних і пам'ять програм.
    Функціональні блоки різних типів забезпечують взаємодію МК іззовнішнім світом. Ці блоки можуть виконувати самі різні функції: введення івивід інформації, підрахунок зовнішніх подій і інтервалів часу, передачазовнішніх запитів на ПЯ, анолого-цифрові і ціфроанологовие перетвореннясигналів. Для ПЯ будь-який функціональний блок представляється у вигляді одного абодекількох регістрів. Кожен регістр має свій оригінальний адресу, заякому ПЯ знаходить його процесі роботи.
    Програма роботи МК зберігається в пам'яті у вигляді послідовності команд. Упроцесі роботи ПЯ послідовно витягує з пам'яті інструкції,розшифровує і виконує їх. В залежності від інструкцій в ядрівиконуються різні арифметичні і логічні операції, пересиланняданих. При необхідності, в процесі виконання інструкцій, ПЯ звертаєтьсяза даними до комірок пам'яті і функціональним блокам, або пересилає в нихрезультати обчислень. Безліч інструкцій, які розуміє ПЯ, утворюютьсистему команд МК.
    В даний час відомі чотири загальних архітектурних принципу в тій чиіншою мірою, що реалізовуються в будь-якому ПЯ.
    По організації пам'яті розрізняються:
    - Неймановская архітектура - характеризується загальним простором пам'ятідля зберігання даних і програми. При цьому розрядність пам'яті зафіксована
    (як правило 1 байт)
    - Гарвардська архітектура - відрізняється поділом пам'яті програм і пам'ятіданих. При цьому розрядність пам'яті програм і вшанування пам'яті даних, а також шинидоступу до них, різні.
    За системою команд розрізняються:
    - CISC архітектура - архітектура з розвиненою системою команд. Система команд
    ПЯ має інструкції різного формату: однобайтові, багатобайтових,трехбайтовие. Різні мають різний час виконання.
    - RISC архітектура - архітектура зі скороченим набором команд. Однаінструкція як правило займає одну комірку пам'яті, і всі інструкції маютьрівне час виконання.

    7. Процесорний ядро.
    Кожен виробник МК для серії випускаються ним виробів розробляє іпатентує своє оригінальне процесорний ядро. Однак у більшості з нихприсутні одні й ті ж елементи: регістр інструкцій, програмнийлічильник, арифметико-логічний пристрій, регістри загального призначення,регістр стану, регістри введення/виводу, скл.
    Програмний лічильник: регістр призначений для зберігання адреси коміркипам'яті програм, в якій знаходиться виконувана в даний моментінструкція. Розрядність програмного лічильника визначається кількістюосередків у пам'яті програми. При виконанні команди вміст ПС змінюється.
    У простому випадку воно збільшується на 1. Але деякі команди здатнісамі записувати дані в ПС. У цьому випадку новий вміст ПС івизначається даними, закладеними в виконуваної інструкції.
    Регістр інструкцій: регістр, призначений для зберігання зчитаної зпам'яті програм інструкції. Лічені з пам'яті програм інструкціядекодується дешифратор команд і виконується мікропрограмного автоматомядра. Розрядність регістра інструкцій визначається розрядністю пам'ятіпрограм.
    Арифметико-логічний пристрій: логічна схема, безпосередньощо здійснює перетворення однієї або двох змінних відповідно доінструкцією занесеної в регістр команд. Стандартне АЛУ здатне виконуватинайпростіші арифметичні або логічні операції над однією або двомазмінними (додавання, віднімання, інкремент, декремент, NOT, AND, OR,exclusive OR). Деякі виробники інтегрують на кристал такожвбудований помножувач двох змінних.
    Регістри загального значення: Регістри загального значення призначені длятимчасового зберігання даних в процесі обчислень. Розрядність регістріввизначає розрядність обчислень і розрядність самого МК. Кількістьрегістрів може бути довільним. Зазвичай в цих регістрах зберігаєтьсяінформація, що обробляється АЛУ і отриманий в ньому результат обчислень. Надеякі з регістрів можуть бути покладені додаткові функції. Убільшості архітектур один з регістрів відрізняється від інших великимиможливостями. Він зазвичай називається акумулятор або робочий регістр. У цьомурегістрі може зберігатися одна зі змінних, що обробляються в АЛП, і тудиж поміщається результат операції.
    Регістри введення/виводу: призначені для управління функціональними блоками
    МК, енергозалежної пам'яттю даних і програм. У різних операціяхрегістри можуть брати участь цілком або окремими бітами. Окремий бітрегістра іменується прапором. Звернення до регістрів в різних архітектурахорганізується різним чином. Зазвичай звернення до них здійснюється як доелементам процесорного ядра по привласненим в архітектурі іменами та адресами,в ряді випадків до них звертаються за допомогою спеціальних команд введення/виводу.
    Регістр стану: призначений для зберігання окремих ознакрезультату, отриманого при виконанні різних арифметичних ілогічних операцій в АЛП. Регістр зазвичай розглядається складається зокремих біт (прапорів), кожен з яких несе в собі певнуінформацію про яке-небудь одному ознаку результату. Типовими прапорамирегістра стану є:
    - Прапор переносу: встановлюється при виникненні переносу зі старшогорозряду результату.
    - Прапор переповнення: встановлюється при переповнення розрядної сітки.
    - Прапор негативного результату: встановлюється, коли результат євід'ємним числом.
    - Прапор нульового результату: встановлюється, коли результат операції дорівнюєнулю.
    - Прапор полупереноса: встановлюється при виникненні переносу з молодшоїтетради 8-бітного числа до старшої (з третього розряду в четвертий).
    Стек: пам'ять даних, організована за принципом: останній зайшов - першавийшов. Така пам'ять призначається, зазвичай, для оперативного збереженнявмісту окремих регістрів при переходах до підпрограм. Одним зтаких регістрів є програмний лічильник. Витяг з стекавмісту регістрів здійснюється в порядку, зворотному порядку запису.
    Запис у стек і витяг з стека не вимагає знання адреси комірок пам'яті,в які записуються дані. Стек може бути організований або вспеціально створених у ядрі комірках пам'яті, або в області SRAM. Уостанньому випадку в ядрі передбачається спеціальний регістр - покажчикстека. Покажчик стека зберігає адресу останньої збережені комірки пам'яті вобласті стека. Кількість комірок пам'яті, які використовуються в стеку длязберігання даних, іменується глибиною стека. Глибина стека в різнихархітектурах ядра може бути різна: від 2-х яче?? до до розміру SRAM.класифікація команд
    Безліч інструкцій мікроконтролера утворює систему команд. Системакоманд, як правило, не змінюється для всіх мікроконтролерів одногосімейства. У повному списку інструкцій при описі системи зазвичайвиділяються окремі групи, споріднених із застосування інструкцій,наприклад, арифметичні та логічні команди, команди пересилання та ін Цеподіл досить умовно і повністю визначається політикою розробника.
    При описі системи команд наводиться повна інформація про кожнуінструкції: способи адресації, використання прапорів регістра стану,виконавчі.
    Як приклад розглянемо систему команд мікроконтролера А Ттеда 163
    Система команд мікроконтролера містить 130 команд, умовно розділених начотири групи:команди пересилання даних (data transfer instructions), 0арифметичні та логічні команди (arithmetic and logic instructions), ° команди роботи з бітами (bit and bit-test instructions), ° командирозгалуження (branch instructions).
    При описі системи команд використані наступні позначення:
    Rd - регістр-приймач результату (0 Rd * - регістр-приймач результату з номером більш 16 (16 Rr-регістр-джерело (0 <р <31),
    Rdl: регістри R24, R26, R28, R30 (для інструкцій ADIW і SBIW),

    Р-адреса регістра введення/виводу, Р *- адреса побітне адресується регістравведення/виводу ($ 00 - $ 1F)
    До - символьний або чисельна константа (8 біт) до - адресна константаb - номер біта в регістрі (3 біта)
    0 s - номер біта в регістрі статусу (3 біта)
    0 X, Y, Z - регістри непрямої адресації (X = R27: R26, Y = R29: R28; Z = R31
    : R30 Команди пересилання
    Команди пересилання здійснюють переміщення даних між комірками пам'яті тарегістрами процесорного ядра. Один з операндів, що беруть участь в інструкції,є джерелом даних, другий - приймачем. При пересиланні з джерелав приймач копія даних завжди залишається в джерелі. Таким чином, всікоманди пересилки практично здійснюють копіювання даних.
    Одним з операндів в будь-якій команді пересилання зазвичай є регістр загальногопризначення процесорного ядра. Другим може бути будь-який регістр або коміркапам'яті.
    Інструкції, як правило, не впливають на прапори в регістрі станупроцесорного ядра.
    У системі команд мікроконтролерів AVR передбачено 34 інструкції,здійснюють передавання даних. В інструкціях використовуються всі, завинятком бітових, способи адресації даних; одним з операндів в будь-якійінструкції є регістр загального призначення. Інструкція Idi (toadimmediate), що використовує безпосередню адресацію, може бутивикористана тільки в старшій половині файлу регістрів загального призначення
    (R16. ... R31), решта команд працюють з будь-яким з регістрів файлу.
    Інструкцію spm (store program memory), що здійснює запис коли в пам'ятьпрограм, можна використовувати тільки в Boot Program Section пам'яті програм;
    Час виконання інструкцій, що працюють з регістрами, так само 1 такту.
    Інструкції, які звертаються до комірок пам'яті даних, виконуються за 2 такту, а
    'обертаються до комірок пам'яті програм - за 3 такту.


    Арифметичні та логічні команди
    До групи арифметичних команд входить команди виконують додавання,віднімання, декремент і інкремент даних, логічне множення логічнедодавання, операцію виключає Або, інверсію змінної. Зазвичай до етоігрупи відносять також інструкції порівняння даних. У мікроконтролері Aтmegа
    163реалізовани також функції арифметичного множення цілих чисел ідрібних чисел, без знака і з знако3м
    Всі дії цієї групи, як правило, призводять до зміни станупрапорів регістра стану відповідно до резулиа1амі, виконуваноїоперації.
    У мікроконтролерах з архітектурою AVR передбачено досить багато (31)інструкцій, що виконують арифметичні та логічні перетворення даних.
    Інструкції використовують виключно пряму реєстрову або безпосереднюадресацію даних. Операнди зберігаються в регістрах загального призначення, в одинз них (регістр-приймач) завжди спрямовується і результат обчислень.
    В результаті виконання інструкцій змінюються прапори регістра SREG (Status
    Register), а прапор переносу С (сапу), крім того, безпосередньо бере участьу виконанні ряду операцій.
    Арифметичні команди додавання і віднімання виконують додавання і відніманняодно-і двухбайтних операндів. Команди adc (add with сапу two registers) іsbc (subtract with carry two registers) використовують при обчисленнях прапорпереносу С.
    Інструкції логічного множення (and) і логічного додавання (or),
    Що виключає АБО (ось) перетворять тільки однобайтние дані.
    Інструкція доповнення до одиниці com (one's complement), фактичновиконує операцію інверсії, а інструкція доповнення до двох neg (two'scomplement) - змінює знак числа
    Інструкції установки (set) дозволяють встановити як окремі, так і всібіти обраного регістра в одиничне стан, а команди очищення (dear) --в нульове.
    Інструкції інкремента регістра inc (increment) і декремент регістра dec
    (decrement) використовують пряму адресацію одного обраного регістра.
    Тест на нуль або мінус tst (test for zero or minus) фактично не змінюєвмісту регістра, але встановлює відповідні прапори при рівностіоперанда нулю або при його негативному значенні.
    Команди порівняння (compare) також не змінюють містить ° го Регістр ° в 'аоцінюють різниця операндів і встановлюють відповідні Прапори врегістрі стану.
    Шість інструкцій множення (multiply виконують множення |-1ель | Х і дрібнихоперандів з урахуванням і без урахування знака. 16-бітовий результат/1 ^ піхов завждиописується в регістри загального призначення RO: R1.
    Більшість арифметичних і логічних команд виконуємо! 0 ^ за ° Дін такт-
    Виняток становлять лише команди з безпосередньою адресації ^. '
    РА2? Таюі ^ ° двухбайтнимі словами: adiw (add immediate to word) і sbiw
    (subtract im ^ 196 m vvo/") - і команди множення, що виконуються за два такту.
    Бітові команди
    Бітові команди (Вit And Bit-Test Instructions) дозволяють звертатисябезпосередньо до окремих бітам регістрів процесорного ядра і виконуватиз вибраними битами найпростіші операції пересилання, установки і скидання.
    Операндами команд можуть бути як біти регістрів загального призначення, так ібіти регістрів введення/виводу. Бітові команди можуть впливати на окреміпрапори регістра ознак.
    Бітові команди мікро контролером сімейства AVR працюють з окремимибітами регістрів загального призначення і регістрів ввоода/виводу Біти регістріввведення/виводу можуть бути встановлені або скинуті. Бити регістрів загальногопризначення можуть бути зміщені в сусідні клітинки, як вліво (в сторонустарших розрядів), так і вправо (в сторону молодших розрядів). В операціяхзсуву, крім розрядів регістрів, може брати участь і біт переносу.
    Спеціальні команди передбачені котрі три установки і скидання окремих прапоріврегістра стану.
    Команда swap міняє місцями тетради (полубайти) регістрів загальногопризначення.

    10. Мікроконтролер Atmega і його зовнішні підключення.

    Контролером в техніці регулювання вважається управляючий пристрій,здійснює регулюючі та контролюючі функції в системі. Як правилоце вичілітельная машина. З розвитком технологій різні компоненти цієїмашини, такі як процесорний ядро, різні види пам'яті, АЦП, таймери іін ставали мініатюрніше і стало можливим включати їх в однуінтегральну мікросхему або їх малий набір. Мікроконтролер - контр.,реалізований на одному кристалі.
    AVR мікроконтролери фірми Atmel мають поліпшену RISС архітектуру.
    Мікроконтролер складається з трьох елементів: процесорного ядра, пам'яті інабору функціональних блоків різного призначення, пов'язаних системнимишинами.
    Процесорний ядро є основою мікроконтролера. Воно виконує всіарифметичні операції, управляє роботою всіх інших елементівсистеми.
    У пам'яті зберігається програма роботи мікроконтролера, вихідні дані і всіпроміжні результати обчислень.
    Функціональні блоки забезпечують зв'язок мікроконтролера із зовнішнім світом.
    Для процесорного ядра будь-якої функ. блок представляється у вигляді одного абодекількох регістрів. Кожен регістр має свій оригінальний адресу.

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

    Ємність С = 13,, 43пФ. Для вибору синхронізації використовуються біти CRSEL0-3.

    12. Сторожовий таймер
    Сторожовий таймер синхронізований від окремого внутрішнього генератора накристалі, що працює з частотою 1МГц (при напрузі живлення 5В).
    Затримка скидання встановлюється за допомогою предделітеля (Prescaler).
    Налаштування предделітеля здійснюється установкою або скиданням бітів
    WDP0 ... WDP2 регістра управління сторожовим таймером WDTCR. Після закінченнявстановленого часу затримки сторожовий таймер подає сигнал скидання намікроконтроллер.
    Інтервали затримки сторожового таймера
    | WDP2 | WDP1 | WDP0 | Количест | Затримка |
    | | | | У | а |
    | | | | Циклів | скидання |
    | 0 | 0 | 0 | 16К | 15ms |
    | 0 | 0 | 1 | 32К | 30ms |
    | 0 | 1 | 0 | 64К | 60ms |
    | 0 | 1 | 1 | 128К | 0,12 s |
    | 1 | 0 | 0 | 256К | 0,24 s |
    | 1 | 0 | 1 | 512К | 0,49 s |
    | 1 | 1 | 0 | 1,024 К | 0,97 s |
    | 1 | 1 | 1 | 2,048 К | 1,9 s |


    Скидання може бути запобігти інструкцією wdr.
    Біт WDE в регістрі WDTCR дозволяє підключити або відключити сторожовийтаймер. При вирішенні роботи сторожового таймера його стан невизначено і перш, ніж дозволяти його включення, необхідно виконатиінструкцію wdr. В іншому випадку контролер може бути скинутий перш, ніжбуде виконана команда wdr, прописана після дозволу. Длязапобігання випадкових помилок заборону сторожового таймера повиненоформлятися спеціальною процедурою виключення.

    13. Програмно_управляемий_обмен
    Порти введення - призначені для зв'язку мікроконтролера з різнимиоб'єктами і можуть реалізовувати різні алгоритми обміну даними:асинхронний програмний обмін, синхронний обмін, введення - з сигналамиквітірованія. Обмін даними між портами і об'єктами забезпечуєтьсяспеціальними підпрограмами - драйверами, що створюються індивідуально длякожного об'єкта.
    Асинхронний обмін
    У режимі асинхронного програмного обміну введення і виведення даних здійснюєтьсяза програмою в моменти виконання інструкцій введення і виведення даних.
    Передбачається, що об'єкт завжди готовий до обміну: при введенні - дані вмомент виконання інструкції in присутні на лініях порту, при виводі --дані будуть прочитані з ліній порту до наступного висновку. Наприклад,мікроконтроллер ATmega 63 здійснює асинхронний висновок даних привиконання фрагмента програми:
    . equ porta = $ B;
    . equ ddra = $ A;
    . csegldi r 6, $ FF; $ FF в r 6out ddra, r 6; порту А на висновокout porta, r0; даних з регістра r0 в порт A.
    Час виконання команди виведення дорівнює двом періодам тактового сигналу. Тойж мікроконтроллер протягом двох тактів введе дані з ліній порту привиконання фрагмента програми:
    . equ pina = $ 9;
    . csegin r0, pina; введення даних з порту pina в регістр r0.
    За адресою $ 9 в просторі введення - мікроконтролера розміщений регістрpina, з вхідних ліній якого і будуть взяті дані під час виконанняінструкції.

    симплексних ОБМІН

    симплексним вважається односпрямований обмін даними. Такий обмін звичайноє синхронним. У цьому випадку кожну зміну даних на лініях портусупроводжується сигналом синхронізації (). Строб генерується джереломданих і призначається для завдання моменту запису даних у регістрприймача. При виведенні даних сигнал стробі повинен сформуватимікроконтроллер, використовуючи для цього спеціальні лінії шини керування абоокремі біти портів введення -. На рис. 9.2 показаний варіант з'єднаннямікроконтролера ATmega 63 c посимвольний принтером, що має 8-бітний вхіддля отримання даних DATA, вихід сигналу готовності READY і вхід стробування
    # STB. Активним на вході стробування є сигнал низького рівня. Порт
    PORTA мікроконтролера і біт PB6 порту PORTB програмуються на висновокданих, біт PB2 порту PORTB на введення. Підпрограма виводу повинна:здійснити перевірку готовності принтера (сигналу готовності принтера
    READY і його аналіз), при виявленні сигналу READY = 1 вивести дані в порт
    PORT, підтвердити висновок даних виводом сигналу стробування # STB = 0 длязапису даних у принтер. Якщо принтер не готовий до обміну мікроконтроллерчерез заданий інтервал часу повторює операцію.

    Рис. 9.2. Підключення принтера до мікроконтролеру
    Режим синхронного введення дозволяє точно визначити момент зчитування даних зоб'єкта. У цьому режимі сигнал стробування, що підтверджує готовністьданих, що надходить з об'єкта на мікроконтроллер. При появі стробімікроконтроллер повинен здійснити введення даних з порту.
    Напівдуплексному ОБМІН
    Напівдуплексному вважається двонаправлений синхронний обмін, при якому вбудь-який момент часу передача даних може проводитися тільки в одномунапрямі. Напрямок передачі даних порту змінюється в процесі роботив залежності від розв'язуваної в поточний момент завдання. На рис. 9.3 зображенийваріант з'єднання мікроконтролера ATmega 63 з об'єктом для обміну данимив напівдуплексному режимі. У схемі на рис. 9.3 передача даних упаралельному форматі здійснюється по лініях порту PORTA. Для видачі таприйому чотирьох сигналів керування обміном (квітірованія): строб введення
    # STB IN (Strobe Input), стрибає виведення # STB OUT (Strobe Out), підтвердженнявведення # ACK IN (Acknowledge Input) та підтвердження виводу # ACK OUT
    (Acknowledge Out), використано дві лінії порту PORTB і входи запитів напереривання INT0 і INT. При надходженні сигналу # STB IN = 0 контролерповинен виставити сигнал підтвердження # ACK IN = 0 і здійснити запис увхідний регістр порту PORTA .. При низькому рівні сигналу ASK IN об'єктузабороняється формувати новий сигнал # STB IN. Після закінчення записуконтролер знімає сигнал # ACK IN, дозволяючи повторну передачу даних.
    Робота мікроконтролера в режимі виведення аналогічна. Мікроконтролервиводить дані в порт PORTA, підтверджуючи висновок сигналом # STB OUT = 0.
    Об'єкт формує сигнал підтвердження # ACK OUT = 0, повідомляючи про контролераготовність до прийому даних. При знятті сигналу # ACK OUT контролер повинензняти сигнал # STB OUT і може знову перейти до висновку даних. Одночаснапередача даних у двох напрямках при напівдуплексному обміні неможлива.
    Дуплексна ОБМІН
    Дуплексним вважається двонаправлений синхронний обмін, при якому в будь-якіймомент часу можлива передача даних у двох напрямках. У цьому випадкудля передачі даних в кожному напрямку виділяється свій односпрямованийпорт. На рис. 9.4 зображений варіант з'єднання мікроконтролера ATmega 1
    63 з об'єктом для обміну даними в режимі дуплексному

    Рис. 9.3. Підключення мікроконтролера при напівдуплексному обміні
    Рис. 9.4. Підключення мікроконтролера при дуплексному обміні У схемі нарис. 9.4 порт PORTA працює на введення даних, порт PORT - на висновок, алінії PC0 і PC порту PORTC використані для виведення сигналів квітірованія
    # ACK IN і # ACK OUT. Для введення сигналів квітірованія від об'єкта # STB IN і
    # ACK OUT використані входи запитів на переривання INT0 і INT. При такомупідключенні завдання введення даних у мікроконтроллер отримує більшийпріоритет ніж завдання виведення.

    14.Порти вводу-виводу призначені для зв'язку мікроконтролера з різнимиоб'єктами і можуть реалізовувати різні алгоритми обміну даними:
    1) Асинхронний програмний обмін 2) Синхронний обмін 3) Введення-виведення з сигналамиквітірованія.
    Обмін даними між портами і об'єктами забезпечується спеціальнимипідпрограмами - драйверами, що створюються індивідуально для кожногооб'єкта.

    Асинхронний обмін.

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

    Приклад програми для здійснення асинхронного виведення даних для
    Atmega163:
    . equ porta = $ 1B;. equ ddra = $ 1A;. cseg; ldi r16, $ FF; запис $ FF в r16out ddra, r16; включення порту А на висновок out porta, r0;вивід даних з регістра r0 в порт А.
    Введення даних з ліній порту.
    . equ pina = $ 19. cseg in r0pina
    ; введення даних з порту pina в регістр r0.
    За адресою $ 19 в просторі введення - виведення мікроконтролера розміщенийрегістр pina, з вхідних ліній якого і будуть взяті дані під часвиполненія інструкції.

    симплексних обмін.
    симплексним вважається односпрямований обмін даними. Такий обмін звичайноє синхронним. У цьому випадку кожну зміну даних на лініях портусупроводжується сигналом синхронізації (стробі). Строб генеруєтьсяджерелом даних і призначений для завдання моменту запису даних урегістр пріемніка.Прі виведення даних сигнал стробі повинен сформуватимікроконтроллер, використовуючи для цього спеціальні лінії шини керування абоокремі біти портів введення - виведення.
    Варіант з'єднання Atmega163 з посимвольний принтером, що має 8-бітнийвхід для прийому даних DATA, вихід сигналу готовності READY і вхідстробування # STB. Активним на вході стробування є сигнал низькогорівня. Порт А мікроконтролера і біт РВ6 порту PORTB програмуються навиведення даних, біт PB2 порту PORTB на введення. Підпрограма виводу повинна:здійснювати перевірку готовності принтера, при виявленні сигналу READY = 1вивести дані в порт PORTА, підтвердити висновок даних виводом сигналустробування # STB = 0 для запису даних у принтер. Якщо принтер не готовий дообміну мікроконтроллер через заданий інтервал часу повторює операцію.
    Режим синхронного введення даних дозволяє точно визначити момент зчитуванняданих з об'єкту. У цьому режимі сигнал стробування, що підтверджуєготовність даних надходить з об'єкта в мікроконтроллер. При появістробі мікроконтроллер повинен здійснити введення даних з порту.

    напівдуплексному обмін.
    напівдуплексному вважається двонаправлений синхронний обмін, при якому вбудь-який момент часу передача даних може проводитися тільки в одномунапрямі. Напрямок передачі даних порту змінюється в процесі роботи вЗалежно від розв'язуваної в поточний момент завдання. Приклад: передача даних упаралельному форматі здійснюється по лініях порту PORTA. Для видачі таприйому чотирьох сигналів керування обміном (сигнали квітірованія):використані дві лінії порту PORTB і входи запитів на переривання INTO і
    INT1. При надходженні сигналу # STB IN = 0 контролер повинен виставити сигналпідтвердження # ACK IN = 0 і здійснити запис у вхідний регістр порту
    PORTA. При низькому рівні сигналу # ACK IN об'єкта забороняється формуватиновий сигнал # STB IN. Після закінчення запису контролер знімає сигнал # ACK
    IN, дозволяючи повторну передачу даних. Робота мікроконтролера в режимівиведення аналогічна. Мікроконтролер виводить дані в порт PORTA, підтверджуючивисновок сигналом # STB OUT = 0. Об'єкт формує сигнал підтвердження # ACK
    OUT = 0, повідомляючи контролеру про готовність до прийому даних. При знятті сигналу
    # ACK OUT контролер повинен зняти сигнал # STB OUTі може знову перейти довисновку даних.
    Одночасна передача даних у двох напрямках при напівдуплексному обмінінеможлива.

    Дуплексний обмін.
    дуплексним вважається двонаправлений синхронний обмін, при якому вбудь-який момент часу можлива передача даних у двох напрямках. У цьомувипадку для передачі даних в кожному напрямку виділяється свійодноспрямований порт. Порт PORTA працює на введення даних, порт PORTB - нависновок, а лини

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

     

     

     

     

     

     

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