Методи програмування PIC та AVR мікроконтролерів

Поняття про мікроконтролери, їх класифікація та структура. Структура процесорного ядра та функції основних модулів мікроконтролера. Основні особливості, будова, принцип дії, класифікація та порівняння методів програмування мікроконтролерів PIC і АVR.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 12.12.2013
Размер файла 995,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Міністерство освіти та науки, молоді та спорту України

Східноєвропейський національний університет імені Лесі Українки

Курсова робота

Методи програмування PIC та AVR мікроконтролерів

Робота студента 42 групи фізичного факультету

Подольчука Олега Васильовича

Науковий керівник:

Мартинюк Олександр Семенович

доцент кафедри загальної фізики та методики викладання фізики CНУ,

кандидат педагогічних наук

Луцьк 2012

Зміст

Вступ

1. Класифікація і структура мікроконтролерів

1.1 Структура процесорного ядра МК

1.2 Система команд процесора МК

1.3 Схема синхронізації МК

1.4 Пам'ять програм і даних МК

1.4.1 Пам'ять програм

1.4.2 Пам'ять даних

1.4.3 Регістри МК

1.4.4 Стек МК

1.4.5 Зовнішня пам'ять

1.5 Порти вводу/виводу

1.6 Таймери і процесори подій

1.7 Модуль переривань МК

1.8 Мінімізація енергоспоживання в системах на основі МК

1.9 Тактові генератори МК

1.10 Апаратні засоби забезпечення надійної роботи МК

1.10.1 Схема формування сигналу ініціалізації МК

1.10.2 Блок детектування зниженої напруги живлення

1.10.3 Сторожовий таймер

1.11 Додаткові модулі МК

1.11.1 Модулі послідовного вводу/виводу

1.11.2 Модулі аналогового вводу/виводу

2. Основні особливості мікроконтролерів серії PIC

2.1 Склад і призначення сімейств PIC-контролерів

2.1.1 Мікроконтролери сімейств PIC16CXXX і PIC17CXXX

2.1.2 Особливості архітектури мікроконтролерів сімейства PIC16CXXX

2.2 Мікроконтролери підгрупи PIC16F8X

2.2.1 Основні характеристики

2.2.2 Порти вводу/виводу

2.3 Система команд мікроконтролерів підгрупи PIC16F8X

2.3.1 Перелік і формати команд

2.3.2 Особливості програмування і налагодження

3. Основні характеристики сімейства мікроконтролерів АVR

3.1 Основні характеристики AVR-контролерів

3.2 Арифметико-логічний пристрій

3.3 Структура команд

3.4 Виконання команди

3.5 Область вводу / виводу

3.6 Переривання і підпрограми

3.7 Блок-схема мікроконтролерів AT90S1200 і AT90S8515

3.8 Конструктивне виконання корпусів і розташування виводів

3.9 Програмування для AVR на мові високого рівня Сi++

4. Стендові випробування для порівняння мікроконтролерів AVR з головними конкурентами

5. Результати

Висновок

Використана література

Вступ

Мікроконтролери можна зустріти у величезній кількості сучасних промислових та побутових приладів: верстатах, автомобілях, телефонах, телевізорах, холодильниках, пральних машинах ... і навіть кавоварках. Серед виробників мікроконтролерів можна назвати Intel, Motorola, Hitachi, Microchip, Atmel, Philips, Texas Instruments, Infineon Technologies (колишня Siemens Semiconductor Group) і багатьох інших.

Перший контролер був розроблений в 1971 році інженером англ. Gary W. Boone, співробітником «Texas Instruments». У 1980 році фірма Intel випускає мікроконтролер «i8048». Трохи пізніше в цьому ж році «Intel» випускає наступний мікроконтролер: «i8051». Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку. З погляду технології мікроконтролер i8051 був для свого часу дуже складним виробом -- у кристалі було використано 128 тисяч транзисторів, що в 4 рази перевищувало кількість транзисторів в 16-розрядному мікропроцесорі i8086.

На сьогоднішній день існує більше 200 модифікацій мікроконтролерів, що сумісних з i8051, випускаються двома десятками компаній, і великої кількості мікроконтролерів інших типів. Популярністю у розробників користуються 8-бітові мікроконтролери PIC від фірми «Microchip Technology» і «AVR» від фірми «Atmel».

Мікроконтромлер (англ. microcontroller), або однокристальна мікроЕОМ -- виконана у вигляді мікросхеми спеціалізована мікропроцесорна система, що включає мікропроцесор, блоки пам'яті для збереження коду програм і даних, порти вводу-виводу і блоки зі спеціальними функціями (лічильники, компаратори, АЦП та інші).

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

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

1. Класифікація і структура мікроконтролерів

В даний час промисловістю випускається цілий ряд типів МК. Усі ці прилади можна умовно поділити на три основних класи:

· 8-розрядні МК для вбудовуваних задач;

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

· цифрові сигнальні процесори (DSP).

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

Зростанню популярності 8-розрядних МК сприяє постійне розширення номенклатури виробів, що випускаються такими відомими фірмами, як Motorola, Microchip, Intel, Zilog, Atmel і багатьма іншими. Сучасні 8-розрядні МК володіють, як правило, кількома відмітними ознаками. Перелічимо основні з них:

· модульна організація, при якій на базі одного процесорного ядра (центрального процесора) проектується ряд (лінійка) МК, що відрізняються об'ємом і типом пам'яті програм, об'ємом пам'яті даних, набором периферійних модулів, частотою синхронізації;

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

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

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

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

Процесорне ядро містить у собі:

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

· внутрішню контролерну магістраль (ВКМ) у складі шин адреси, даних і управління;

· схему синхронізації МК;

· схему управління режимами роботи МК, включаючи підтримку режимів зниженого енергоспоживання, початкового запуску (ініціалізації) і т.д.

Змінюваний функціональний блок містить у собі модулі пам'яті різного типу й об'єму, порти вводу/виводу, модулі тактових генераторів (Г), таймери. У відносно простих МК модуль обробки переривань входить до складу процесорного ядра. У більш складних МК він виготовляється як окремий модуль з розвинутими можливостями[1,71]. До складу змінюваного функціонального блоку можуть входити і такі додаткові модулі як компаратори напруги, аналого-цифрові перетворювачі (АЦП) і інші. Кожен модуль проектується для роботи в складі МК з урахуванням протоколу ВКМ. Даний підхід дозволяє створювати різноманітні за структурою МК у межах одного сімейства.

Рис.1.1. Модульна організація МК

1.1 Структура процесорного ядра МК

Основними характеристиками, які визначають продуктивність процесорного ядра МК, є:

· набір регістрів для збереження проміжних даних;

· система команд процесора;

· способи адресації операндів у просторі пам'яті;

· організація процесів вибірки і виконання команди.

З погляду системи команд і способів адресації операндів процесорне ядро сучасних 8-розрядних МК реалізує один із двох принципів побудови процесорів:

· процесори з CISC-архітектурою, які реалізують так звану повну систему команд (Complicated Instruction Set Computer);

· процесори з RISC-архітектурою, що реалізують скорочену систему команд (Reduced Instruction Set Computer).

CISC-процесори виконують великий набір команд із розвинутими можливостями адресації, даючи виробнику можливість вибрати найбільше придатну команду для виконання необхідної операції. У застосуванні до 8-розрядних МК процесор з CISC-архітектурою може мати однобайтний, двохбайтний і трьохбайтний (рідко чотирьохбайтний) формат команд. При цьому система команд, як правило, неортогональна, тобто не всі команди можуть використовувати кожен зі способів адресації стосовно до кожного з регістрів процесора. Вибірка команди на виконання здійснюється побайтно протягом декількох циклів роботи МК. Час виконання команди може складати від 1 до 12 циклів. ДО МК із CISC-архітектурою відносяться МК фірми Intel з ядром MCS-51, які підтримуються в даний час цілим рядом виробників, МК сімейств НС05, НС08 і НС11 фірми Motorola і ряд інших[1,54].

У процесорах з RISC-архітектурою набір команд, які виконуються, скорочений до мінімуму. Для реалізації більш складних операцій приходиться комбінувати команди. При цьому всі команди мають формат фіксованої довжини (наприклад, 12, 14 або 16 біт), вибірка команди з пам'яті і її виконання здійснюється за один цикл (такт) синхронізації. Система команд RISC-процесора припускає можливість рівноправного використання всіх регістрів процесора. Це забезпечує додаткову гнучкість при виконанні ряду операцій. До МК із RISC-процесором відносяться МК AVR фірми Atmel, МК PIC16 і PIC17 фірми Microchip і інші.

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

По-перше, оцінка продуктивності МК за часом виконання команд різних систем (RISC і CISC) не зовсім коректна. Звичайно продуктивність МП і МК прийнято оцінювати числом операцій пересилання "регістр-регістр", що можуть бути виконані протягом однієї секунди. У МК із CISC-процесором час виконання операції "регістр-регістр" складає від 1 до 3 циклів, що, здавалося б, поступається продуктивності МК із RISC-процесором. Однак прагнення до скорочення формату команд при збереженні ортогональності системи команд RISC-процесора приводить до змушеного обмеження кількості доступних в одній команді регістрів. Так, наприклад, системою команд МК PIC16 передбачена можливість пересилання результату операції тільки в один із двох регістрів - регістр-джерело операнда f або робочий регістр W. Таким чином, операція пересилання вмісту одного з доступних регістрів в іншій (не джерело операнда і не робочий) зажадає використання двох команд. Така необхідність часто виникає при пересиланні вмісту одного з регістрів загального призначення в один з портів МК. У той же час, у системі команд більшості CISC-процесорів присутні команди пересилання вмісту РОН в один з портів вводу/виводу. Тобто більш складна система команд іноді дозволяє реалізувати більш ефективний спосіб виконання операції [5,215].

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

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

З погляду організації процесів вибірки і виконання команд в сучасних 8-розрядних МК застосовується одна з двох уже згадуваних архітектур МШС: фон-нейманівська (принстонська) або гарвардська[3,231].

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

Рис. 1.2 Структура МШС із фон-нейманівською архітектурою

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

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

Рис. 1.3 Структура МШС із гарвардською архітектурою

Гарвардська архітектура майже не використовувалася до кінця 70-х років, доки виробники МК не зрозуміли, що вона дає певні переваги виробникам автономних систем управління [7,122].

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

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

Більшість виробників сучасних 8-розрядних МК використовують гарвардську архітектуру. Однак гарвардська архітектура є недостатньо гнучкою для реалізації деяких програмних процедур. Тому порівняння МК, виконаних за різними архітектурами, варто проводити стосовно до конкретної задач і[9,233].

1.2 Система команд процесора МК

Так само, як і в будь-якій мікропроцесорній системі, набір команд процесора МК містить у собі чотири основні групи команд:

· команди пересилання даних;

· арифметичні команди;

· логічні команди;

· команди переходів.

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

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

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

1.3 Схема синхронізації МК

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

1.4 Пам'ять програм і даних МК

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

1.4.1 Пам'ять програм

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

1. ПЗП масочного типу - mask-ROM. Вміст комірок ПЗП цього типу заноситься при її виготовленні за допомогою масок і не може бути з часом заміненим або допрограмованим. Тому МК із таким типом пам'яті програм варто використовувати тільки після досить тривалої дослідної експлуатації. Основним недоліком даної пам'яті є необхідність значних витрат на створення нового комплекту фотошаблонів і їхнє впровадження у виробництво. Зазвичай такий процес займає 2-3 місяці і є економічно вигідним тільки при випуску десятків тисяч приладів. ПЗП масочного типу забезпечують високу надійність збереження інформації з причини програмування в заводських умовах з наступним контролем результату.

2. ПЗП, програмовані користувачем, з ультрафіолетовим стиранням - EPROM (Erasable Programmable ROM). ПЗП даного типу програмуються електричними сигналами і стираються за допомогою ультрафіолетового опромінення. Комірка пам'яті EPROM являє собою МОН-транзистор з "плаваючим" затвором, заряд на який переноситься з керуючого затвора при подачі відповідних електричних сигналів. Для стирання вмісту комірки вона опромінюється ультрафіолетовим світлом, яке надає зарядові на затворі транзистора енергію, яка достатня для подолання потенційного бар'єра і стікання на підкладку. Цей процес може займати від декількох секунд до декількох хвилин. МК із EPROM допускають багаторазове програмування і випускаються в керамічному корпусі з кварцовим віконцем для доступу ультрафіолетового світла. Такий корпус коштує досить дорого, що значно збільшує вартість МК. Для зменшення вартості МК із EPROM його укладають у корпус без віконця (версія EPROM з однократним програмуванням)[2,188].

3. ПЗП, однократно програмовані користувачем, - OTPROM (One-Time Programmable ROM). Являють собою версію EPROM, виконану в корпусі без віконця для зменшення вартості МК на його основі. Скорочення вартості при використанні таких корпусів настільки значне, що останнім часом ці версії EPROM часто використовують замість масочних ПЗП.

4. ПЗП, програмовані користувачем, з електричним стиранням - EEPROM (Electrically Erasable Programmable ROM). ПЗП даного типу можна вважати новим поколінням EPROM, у яких стирання комірок пам'яті відбувається також електричними сигналами за рахунок використання тунельних механізмів. Застосування EEPROM дозволяє стирати і програмувати МК, не знімаючи його з плати. Таким чином можна проводити налагодження і модернізацію програмного забезпечення. Це дає величезний виграш на початкових стадіях розробки мікроконтролерних систем або в процесі їх вивчення, коли багато часу іде на пошук причин непрацездатності системи і виконання циклів стирання-програмування пам'яті програм. За ціною EEPROM займають середнє місце між OTPROM і EPROM. Технологія програмування пам'яті EEPROM допускає побайтове стирання і програмування комірок. Незважаючи на очевидні переваги EEPROM, тільки в рідких моделях МК така пам'ять використовується для збереження програм. Це пов'язано з тим, що, по-перше, EEPROM мають обмежений об'єм пам'яті. По-друге, майже одночасно з EEPROM з'явилися Flash-ПЗП, що при подібних споживчих характеристиках мають меншу вартість.

5. ПЗП з електричним стиранням типу Flash - Flash-ROM. Функціонально Flash-пам'ять мало відрізняється від EEPROM. Основна відмінність полягає в способі стирання записаної інформації. У пам'яті EEPROM стирання відбувається окремо для кожного комірки, а в Flash-пам'яті стирати можна тільки цілими блоками. Якщо необхідно змінити вміст однієї комірки Flash-пам'яті, буде потрібно перепрограмувати весь блок. Спрощення декодувальних схем у порівнянні з EEPROM привело до того, що МК із Flash-пам'яттю стають конкурентноздатними по відношенню не тільки до МК з однократно програмованими ПЗП, але і з масочними ПЗП також.

1.4.2 Пам'ять даних

Пам'ять даних МК виконується, як правило, на основі статичного ОЗП. Термін "статичне" означає, що вміст комірок ОЗП зберігається при зниженні тактової частоти МК до як завгодно малих значень (з метою зниження енергоспоживання). Більшість МК мають такий параметр, як "напруга збереження інформації" - USTANDBY. При зниженні напруги живлення нижче мінімально допустимого рівня UDDMIN, але вище рівня USTANDBY робота програми МК виконуватися не буде, але інформація в ОЗП зберігається. При відновленні напруги живлення можна буде проініціалізувати МК і продовжити виконання програми без утрати даних. Рівень напруги збереження складає зазвичай близько 1 В, що дозволяє в разі потреби перевести МК на живлення від автономного джерела (батареї) і зберегти в цьому режимі дані ОЗП[9,185].

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

1.4.3 Регістри МК

Як і всі МШС, МК мають набір регістрів, що використовуються для управління його ресурсами. У число цих регістрів входять звичайно регістри процесора (акумулятор, регістри стану, індексні регістри), регістри управління (регістри управління перериваннями, таймером), регістри, що забезпечують ввід/вивід даних (регістри даних портів, регістри управління паралельним, послідовним або аналоговим вводом/виводом). Звертання до цих регістрів може відбуватися по-різному.

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

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

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

1.4.4 Стек МК

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

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

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

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

1.4.5 Зовнішня пам'ять

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

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

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

1.5 Порти вводу/виводу

мікроконтролер ядро програмування

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

У залежності від реалізованих функцій розрізняють наступні типи паралельних портів:

· однонапрямлені порти, призначені тільки для вводу або тільки для виводу інформації;

· двонапрямлені порти, напрямок передачі яких (ввід або вивід) визначається в процесі ініціалізації МК;

· порти з альтернативною функцією (мультиплексовані порти). Окремі лінії цих портів використовуються спільно з вмонтованими периферійними пристроями МК, такими як таймери, АЦП, контролери послідовних інтерфейсів;

· порти з програмно керованою схемотехнікою вхідного/вихідного буфера.

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

· режим простого програмного вводу/виводу;

· режим вводу/виводу зі стробом;

· режим вводу/виводу з повним набором сигналів підтвердження обміну.

Типова схема двонапрямленого порту вводу/виводу МК наведена на рис. 1.4.

Рис. 1.4 Типова схема двонапрямленого порту вводу/виводу МК

1.6 Таймери і процесори подій

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

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

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

Більшість задач управління, які реалізуються за допомогою МК, вимагають виконання їх у реальному часі. Під цим розуміється здатність системи одержувати інформацію про стан керованого об'єкта, виконувати необхідні розрахункові процедури і видавати керуючі сигнали протягом інтервалу часу, достатнього для бажаної зміни стану об'єкта [15,66].

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

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

Модуль таймера 8-розрядного МК являє собою 8-ми або 16-розрядний лічильник зі схемою управління. Схемотехнікою МК звичайно передбачається можливість використання таймера в режимі лічильника зовнішніх подій, тому його часто називають таймером/лічильником. Структура типового 16-розрядного таймера/лічильника в складі МК наведена на рис. 1.5.

Рис. 1.5 Структура модуля таймера/лічильника

У пам'яті МК 16-розрядний лічильник відображається двома регістрами: TH - старший байт лічильника, TL - молодший байт. Регістри доступні для читання і для запису. Напрямок відліку - тільки прямий, тобто при надходженні вхідних імпульсів уміст лічильника інкрементується. У залежності від настроювання лічильник може використовувати одне з джерел вхідних сигналів:

· імпульсну послідовність з виходу керованого дільника частоти fBUS;

· сигнали зовнішніх подій, що надходять на вхід TOCKI контролера.

У першому випадку говорять, що лічильник працює в режимі таймера, у другому - у режимі лічильника подій. При переповненні лічильника встановлюється в "одиницю" тригер переповнення TF, що генерує запит на переривання, якщо переривання від таймера дозволені. Пуск і зупинка таймера можуть здійснюватися тільки під управлінням програми. Програмним способом можна також установити старший і молодший біти лічильника в довільний стан або прочитати поточний код лічильника [13,99].

Розглянутий "класичний" модуль таймера/лічильника широко застосовується в різних моделях простих МК. Він може використовуватися для виміру часових інтервалів і формування послідовності імпульсів. Основними недоліками "класичного" таймера/лічильника є:

· втрати часу на виконання команд пуску і зупинки таймера, що створює помилки при вимірюванні часових інтервалів і обмежує мінімальну тривалість вимірюваних інтервалів часу одиницями мс;

· складності при формуванні часових інтервалів відмінних від періоду повного коефіцієнта відліку;

· неможливість одночасного обслуговування (вимірювання або формування імпульсного сигналу) відразу декількох каналів.

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

Однак ці удосконалення не усувають головного недоліку модуля "класичного" таймера - одноканального режиму роботи. Удосконалювання підсистеми реального часу МК ведеться за наступними напрямками:

· збільшення кількості модулів таймерів/лічильників. Цей шлях характерний для фірм, що випускають МК зі структурою MCS-51, а також для МК компаній Mitsubishi і Hitachi;

· модифікація структури модуля таймера/лічильника, при якій збільшення кількості каналів досягається не за рахунок збільшення кількості лічильників, а за рахунок уведення додаткових апаратних засобів вхідного захоплення (input capture - IC) і вихідного порівняння (output compare - OC). Такий підхід використовується, зокрема, у МК компанії Motorola.

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

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

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

· позитивний (передній) фронт сигналу;

· негативний (задній) фронт сигналу;

· будь-яка зміна логічного рівня сигналу.

Вибір типу події захоплення встановлюється в процесі ініціалізації таймера і може неодноразово змінюватися в ході виконання програми. Кожна подія захоплення приводить до установки в "1" тригера вхідного захоплення і появі на його виході прапора (ознаки) вхідного захоплення ICF. Стан тригера вхідного захоплення може бути зчитаний програмно, а якщо переривання за подією захоплення дозволені - формується запит на переривання INT IC.

Використання режиму вхідного захоплення дозволяє виключити помилки вимірювання вхідного інтервалу часу, пов'язані з часом переходу до підпрограми обробки переривання, тому що копіювання поточного стану лічильника здійснюється апаратними, а не програмними засобами. Однак час переходу на підпрограму обробки переривання накладає обмеження на тривалість вимірюваного інтервалу часу, тому що передбачається, що друга подія захоплення відбудеться пізніше, ніж код першої події буде зчитаний МК[5,86].

Структура апаратних засобів каналу вихідного порівняння наведена на рис. 1.7.

Цифровий компаратор безупинно порівнює поточний код лічильника таймера з кодом, що записаний у 16-розрядному регістрі вихідного порівняння. У момент рівності кодів на одному з виходів МК (Pxj на рис. 4.7) установлюється заданий рівень логічного сигналу. Зазвичай передбачено три типи зміни сигналу на виході Pxj у момент події вихідного порівняння:

· установка високого логічного рівня;

· установка низького логічного рівня;

· інвертування сигналу на виході.

При настанні події порівняння встановлюються в "1" тригер вихідного порівняння і відповідна йому ознака (прапорець) вихідного порівняння OCF. Аналогічно режиму вхідного захоплення стан тригера вихідного порівняння може бути зчитаний програмно, а якщо переривання за подією порівняння дозволені - формується запит на переривання INT OC.

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

Рис. 1.7 Структурна схема каналу вихідного порівняння таймера

Модулі удосконаленого таймера використовуються в складі МК у різних модифікаціях. При цьому кількість каналів вхідного захоплення і вихідного порівняння в модулі може бути різною. Так, у МК сімейства HC05 фірми Motorola типовими рішеннями є модулі 1IC+1OC або 2IC+2OC, а модуль таймера в складі МК тільки один. В ряді модулів канали можуть бути довільно набудовані на функцію вхідного захоплення або вихідного порівняння за допомогою ініціалізації. Лічильник модуля удосконаленого таймера може не мати функції програмної зупинки. У цьому випадку стан лічильника не можна синхронізувати з яким-небудь моментом роботи МК, і такий лічильник характеризується як такий, що вільно рахує (free counter).

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

· недостатня кількість каналів захоплення і порівняння, що належать одному лічильнику часової бази. Це не дозволяє сформувати синхронізовані між собою багатоканальні імпульсні послідовності;

· однозначно визначена конфігурація каналу (або захоплення або порівняння) часто не задовольняє потреби розв'язуваної задачі;

· формування сигналів за методом широтно-імпульсної модуляції (ШІМ) вимагає програмної підтримки, що знижує максимально досяжну частоту вихідного сигналу[16,109].

Тому наступним етапом розвитку модулів підсистеми реального часу МК стали модулі процесорів подій. Уперше модулі процесорів подій були використані компанією Intel у МК сімейства 8x51Fx. Цей модуль одержав назву програмованого лічильного масиву (Programmable Counter Array - PCA).

РСА забезпечує більш широкі можливості роботи в реальному масштабі часу й у меншій мірі витрачає ресурси центрального процесора, ніж стандартний і удосконалений таймер/лічильник. До переваг РСА також можна віднести більш просте програмування і більш високу точність. Приміром, РСА може забезпечити краще часову роздільну здатність, ніж таймери 0, 1 і 2 МК сімейства MCS-51, тому що лічильник РСА здатний працювати з тактовою частотою, утроє більшою, ніж у цих таймерів. РСА також може виконувати багато задач, виконання яких з використанням таймерів вимагає додаткових апаратних витрат (наприклад, визначення фазового зсуву між імпульсами чи генерація ШІМ-сигналу). РСА складається з 16-бітного таймера-лічильника і п'яти 16-бітних модулів порівняння-замикання, як показано на Рис. 1.8.

Таймер-лічильник РСА використовується як базовий таймер для функціонування всіх п'яти модулів порівняння-замикання. Вхід таймера-лічильника РСА може бути запрограмований на рахунок сигналів від наступних джерел:

· вихід дільника на 12 тактового генератора МК;

· вихід дільника на 4 тактові генератори МК;

· сигнал переповнення таймера 0;

· зовнішній вхідний сигнал на виводі ЕСI (P1.2).

Рис. 1.8 Структура процесора подій МК сімейства Intel 8x51Fx

Будь-який з модулів порівняння-замикання може бути запрограмований для роботи в наступних режимах:

· замикання за фронтом і/або спадом імпульсу на вході CEXi;

· програмованого таймера;

· високошвидкісного виходу;

· широтно-імпульсного модулятора.

Модуль 4 може бути також запрограмований як сторожовий таймер (Watchdog Timer - WDT).

Режим замикання за імпульсом на вході МК еквівалентний режимові вхідного захоплення (IC) удосконаленого таймера. Режими програмованого таймера і високошвидкісного виходу близькі за своїми функціональними можливостями до режиму вихідного порівняння (OC).

У режимі ШІМ на відповідному виводі МК формується послідовність імпульсів з періодом, рівним періодові базового таймера/лічильника PCA. Значення 8-розрядного коду, записане в молодший байт регістра-замка відповідного модуля задає скважність сформованого сигналу. При зміні коду від 0 до 255 скважність змінюється від 100% до 0,4%.

Режим ШІМ дуже простий з погляду програмного обслуговування. Якщо зміни скважності не передбачається, то досить один раз занести відповідний код у регістр даних модуля, проініціалізувати режим ШІМ, і імпульсна послідовність буде відтворюватися з заданими параметрами без втручання програми[14,209].

Призначення й особливості роботи сторожового таймера будуть розглянуті далі окремо.

При роботі модуля порівняння-замикання в режимі замикання, програмованого таймера або високошвидкісного виходу модуль може сформувати сигнал переривання. Сигнали від усіх п'яти модулів порівняння-замикання і сигнал переповнення таймера РСА поділяють один вектор переривання. Іншими словами, якщо переривання дозволені, то і сигнал переповнення таймера PCA і сигнал від кожного з модулів викликають ту саму підпрограму переривань. Вона повинна сама ідентифікувати джерело, яке її викликало.

Для роботи з зовнішніми пристроями таймер-лічильник РСА і модулі порівняння-замикання використовують виводи P1 порта МК. Якщо який-небудь вивід порта не використовується при роботі РСА, або РСА не задіяний, порт може застосовуватися стандартним способом.

Реалізований у 8x51FX PCA виявився настільки вдалим, що архітектура даних МК стала промисловим стандартом де-факто, а сам PCA багаторазово відтворювався в різних модифікаціях мікроконтролерів різних фірм.

Тенденція розвитку підсистеми реального часу сучасних МК знаходить своє відображення в збільшенні числа каналів процесорів подій і розширенні їхніх функціональних можливостей[8,200].

1.7 Модуль переривань МК

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

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

Джерелами внутрішніх запитів переривань можуть служити наступні події:

· переповнення таймерів/лічильників;

· сигнали від каналів вхідного захоплення і вихідного порівняння таймерів/лічильників або від процесора подій;

· готовність пам'яті EEPROM;

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

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

Питання про пріоритети при одночасному надходженні декількох запитів на переривання вирішується в різних МК по-різному. Є МК з однорівневою системою пріоритетів (усі запити рівноцінні), багаторівневою системою з фіксованими пріоритетами і багаторівневою програмованою системою пріоритетів [9,255].

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

1.8 Мінімізація енергоспоживання в системах на основі МК

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

- активний режим (Run mode) - основний режим роботи МК. У цьому режимі МК виконує робочу програму, і всі його ресурси доступні. Споживана потужність має максимальне значення PRUN. Більшість сучасних МК виконані за КМОН-технологією, тому потужність споживання в активному режимі сильно залежить від тактової частоти;

- режим очікування (Wait mode, Idle mode або Halt mode). У цьому режимі припиняє роботу центральний процесор, але продовжують функціонувати периферійні модулі, які контролюють стан об'єкта управління. При необхідності сигнали від периферійних модулів переводять МК в активний режим, і робоча програма формує необхідні керуючі сигнали. Переведення МК із режиму очікування в робочий режим здійснюється за перериваннями від зовнішніх джерел або периферійних модулів, або при ініціалізації МК. В режимі очікування потужність споживання МК PWAIT знижується в порівнянні з активним режимом у 5...10 раз;

- режим зупинки (Stop mode, Sleep mode або Power Down mode). У цьому режимі припиняє роботу як центральний процесор, так і більшість периферійних модулів. Перехід МК зі стану зупинки в робочий режим можливий, як правило, тільки за перериваннями від зовнішніх джерел або після подачі сигналу ініціалізації. У режимі зупинки потужність споживання МК PSTOP знижується в порівнянні з активним режимом приблизно на три порядки і складає одиниці мікроват[12,212].

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

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

У залежності від діапазону напруг живлення усі МК можна розділити на три основні групи:

1. МК із напругою живлення 5,0 В±10%. Ці МК призначені, як правило, для роботи в складі пристроїв з живленням від промислової або побутової мережі, мають розвинуті функціональні можливості і високий рівень енергоспоживання.

2. МК із розширеним діапазоном напруг живлення: від 2,0...3,0 В до 5,0-7,0 В. МК даної групи можуть працювати в складі пристроїв як з мережевим, так і з автономним живленням.

3. МК зі зниженою напругою живлення: від 1,8 до 3 В. Ці МК призначені для роботи в пристроях з автономним живленням і забезпечують заощадливу витрату енергії елементів живлення[10,101].

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

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

У більшості сучасних МК використовується статична КМОН-технологія, тому вони здатні працювати при яких завгодно низьких тактових частотах аж до нульових. У довідникових даних при цьому вказується, що мінімальна частота тактування дорівнює dc (direct current). Це означає, що можливо використання МК у покроковому режимі, наприклад, для налагодження. Потужність споживання МК при низьких частотах тактування зазвичай висвітлює значення струму споживання при fOSC = 32768 Гц (частота кварцового резонатора).

1.9 Тактові генератори МК

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

Типова схема підключення кварцового або керамічного резонатора наведена на Рис. 1.9.

Рис. 1.9 Тактування МК з використанням кварцового або керамічного резонаторів (а) і з використанням RC-ланки (б)

Кварцовий або керамічний резонатор Q підключається до виводів XTAL1 і XTAL2, які зазвичай це вхід і вихід інвертуючого підсилювача. Номінали конденсаторів C1 і C2 визначаються виробником МК для конкретної частоти резонатора. Іноді потрібно увімкнути резистор порядку декількох мегаом між виводами XTAL1 і XTAL2 для стабільної роботи генератора.

Використання кварцового резонатора дозволяє забезпечити високу точність і стабільність тактової частоти (розкид частот кварцового резонатора зазвичай складає менше 0,01%). Такий рівень точності потрібний для забезпечення точного ходу годинника реального часу або організації інтерфейсу з іншими пристроями. Основними недоліками кварцового резонатора є його низька механічна міцність (висока крихкість) і відносно висока вартість[2,254].

При менш жорстких вимогах до стабільності тактової частоти можливе використання більш стійких до ударного навантаження керамічних резонаторів. Багато керамічних резонаторів мають вмонтовані конденсатори, що дозволяє зменшити кількість зовнішніх елементів, що підключаються, від трьох до одного. Керамічні резонатори мають розкид частот порядку декількох десятих часток відсотка (звичайно близько 0,5%).


Подобные документы

  • Аналіз роботи обчислювальних пристроїв, побудованих за RISC-архітектурою. Центральний процесор і внутрішня пам'ять мікроконтролерів AVR компанії Atmel. Принцип побудови AVR-контролера ATtiny2313: складові частини; програмування пам'ятi мовою Асемблер.

    курсовая работа [1,1 M], добавлен 27.07.2015

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

    курсовая работа [1,8 M], добавлен 23.04.2014

  • Короткий опис мікроконтролера ATmega6450, його особливості та опис виводів. Розробка принципової схеми стенду. Написання програми на мові СІ при використанні програмного середовища CodeVisionAVR. Перепрограмування мікроконтролера ATmega6450 сімейства AVR.

    курсовая работа [491,2 K], добавлен 15.05.2013

  • Огляд засобів створення програмного забезпечення сучасних мікроконтролерів. Аналіз методів та налаштувань контролерів. Засоби генерації коду налаштувань. Детальний опис розробки програми генератора налаштувань ядра Cortex M4 та методики її тестування.

    курсовая работа [1,3 M], добавлен 20.05.2015

  • Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.

    курсовая работа [502,5 K], добавлен 01.04.2016

  • Сутність і структурні елементи бінарного дерева, характеристика методів його обходу (в прямому, симетричному та зворотному порядку). Вибір мови програмування, середовища розробки та технічних засобів. Структура даних і модулів системи, порядок її роботи.

    дипломная работа [1,4 M], добавлен 12.07.2013

  • Мoвa прoгрaмувaння як систeма пoзначень, що служить для точного опису програм або алгоритмів для ЕOM. Вимоги до мов програмування, класифікація за їх особливостям. Загальна характеристика найбільш поширених мов програмування: Сі, Паскаль, Delphi, Бейсік.

    реферат [24,4 K], добавлен 10.11.2012

  • Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.

    курсовая работа [437,9 K], добавлен 24.01.2011

  • Характеристика методів та етапів створення простих програм на мові програмування С++. Особливості структури та порядку запуску програми. Функції вводу і виводу та маніпулятори мови С++. Робота з одновимірними масивами. Символьна інформація та рядки.

    дипломная работа [91,2 K], добавлен 19.06.2010

  • Особливості редагування за допомогою текстового редактора NotePad вхідного файлу. C++ як універсальна мова програмування, знайомство с функціями. Характеристика графічних засобів мови С. Аналіз основних понять об’єктно-орієнтованого програмування.

    курсовая работа [123,3 K], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.