Методи програмування PIC та AVR мікроконтролерів
Поняття про мікроконтролери, їх класифікація та структура. Структура процесорного ядра та функції основних модулів мікроконтролера. Основні особливості, будова, принцип дії, класифікація та порівняння методів програмування мікроконтролерів PIC і АVR.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 12.12.2013 |
Размер файла | 995,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3.4 Виконання команди
На рис.3.2. показано зіставлення кількості необхідних тактових імпульсів осцилятора для виконання двох послідовних команд процесорами 68НС05, 80С51, а також сімействами мікроконтролерів PIC та AYR.
Рис.3.2. Порівняння часу виконання команд різними процесами
У запам'ятовуючих пристроях, відповідних класичної концепції фон Неймана, дані і команди зберігаються в одній пам'яті. На противагу цьому, пам'ять по Гарвардській архітектурі, використовуваної в мікроконтролерах АVR складається з декількох компонентів. В даному випадку розділені пам'ять команд і пам'ять даних, тобто, звернення до команд здійснюється незалежно від доступу до даних [14,98].
У мікроконтролерах AVR окремі сегменти пам'яті влаштовані по-іншому також і фізично.
* Пам'ять програм реалізована на основі програмованої і електрично зтирається флеш-технології. У всіх мікроконтролерах AVR пам'ять 16 - розрядна (двухбайтовая), і завжди знаходиться "на кристалі". Розширення пам'яті програм за допомогою блоків EPROM або флеш неможливо.
* Внутрішня пам'ять для енергозалежних даних (тобто, даних, які будуть втрачені після відключення робочої напруги), являє собою статичну пам'ять RAM (SRAM). Перевага цього полягає:
* в тому, що відпадає всяка потреба у внутрішній регенерації як у випадку з деякими іншими процесорами, які використовують динамічну пам'ять. З цієї причини мікроконтролери AVR можуть працювати з тактами аж до 0 Гц. На додаток до цього, деякі мікроконтролери AVR для збільшення обсягу оброблюваних даних можуть працювати з підключеною зовнішньою пам'яттю SRAM. Для цього, однак, доводиться жертвувати дорогоцінними контактами введення / виводу портів А і С.
* Для даних, які повинні зберегтися після відключення робочої напруги, в розпорядженні є мікросхема EEPROM (Electrically EPROM - електрично стирані ППЗУ). В пам'ять EEPROM можна записувати дані під час нормального виконання програми. Для області EEPROM також немає обов'язкової необхідності в програмуючих пристроїв[6,258].
3.5 Область вводу / виводу
У мікроконтролерах AVR область введення / ведення від $ 20 до $ 5F. У мікроконтролерах AVR функції вводу / виводу для взаємодії зі зовнішнім світом застосовні не тільки для портів (від А до D), але також і для всіх регістрів стану і управління таких "вбудованих в кристал" периферійних функцій як таймер, пристрій UART, сторожовий таймер, доступ на запис і читання до пам'яті EEPROM, інтерфейс SPI і т.д.
3.6 Переривання і підпрограми
Техніка підпрограм і переривань у мікроконтролерах AVR може бути застосована звичайним чином. Перехід до частин програми, які в процесі її виконання обробляються багаторазово або повинні міститися окремо по причині структурування, здійснюється за допомогою команди call. Це - команда переходу, яка поміщає в стек наступну команду нормального виконання програми в якості адреси повернення. Після виконання підпрограми адресу вилучають із стека за допомогою команди ret, і програма продовжується.
Стек для адрес повернення перебуває в пам'яті SRAM. Виняток становить тільки мікроконтролер AT90S1200, який застосовує для цієї мети апаратний стек за принципом LIFO (Last In, First Out - "останнім увійшов, першим вийшов").
У прикладі на рис. 3.3 показник стека ініціалізується, починаючи з мітки Start, після чого слід мітка Саll1 першого виклику підпрограми UPI. В якості адреси повернення в стек міститься адреса наступної команди, тобто, $ 78А. Сама підпрограма UP1 в представленому прикладі не виконує ніяких дій, і відбувається негайне повернення до головної програми. Для цього зі стека витягується адресу, і виконання програми продовжується з команди Са112. З мітки Cal12 відбувається повторний виклик підпрограми UP1. У цьому випадку в стек міститься адреса повернення $ 78D.
Рис 3.3 Два виклику підпрограми
У правій частині рис. 3.3 показаний фрагмент статичної пам'яті БІАМ, відведеної для стека. Зазначено вміст стека перед виконанням першого і після виконання першого і другого викликів. У правій частині рис. 3.3 показаний фрагмент статичної пам'яті БІАМ, відведеної для стека. Зазначено вміст стека перед виконанням першого і після виконання першого і другого викликів. Підпрограми також можуть бути вкладеними (тобто, з підпрограми можна викликати іншу програму) [4,147].
Особливою формою підпрограм є підпрограми обробки переривань, за допомогою яких реалізовані заздалегідь не заплановані звернення з програм. Іншими словами, програма, що виконується асинхронно по відношенню до події, зухвалому переривання. Тут, наприклад, мова може йти про роботу таймера, прийомі байта через прийомопередавач і АVR або запиті на переривання від зовнішнього пристрою.
Залежно від побудови мікроконтролера, у розпорядженні базової серії АVR є до 12 векторів переривання (адрес входу).
Периферійні функції.
З точки зору апаратної частини, у мікроконтролерах АVR реалізовано безліч периферійних функцій. Так, наприклад, АТ9088515 володіє наступними особливостями:
· 32 програмувальні лінії введення /виведення;
· програмований пристрій;
· синхронний інтерфейс SPI;
· 8-розрядний таймер / лічильник;
· 16-розрядний таймер / лічильник з функціями порівняння та захоплення та можливістю реалізації двох виходів ШИМ (широтно-імпульсний модулятор);
· "Інтегрований сторожовий таймер;
· аналоговий компаратор.
3.7 Блок-схема мікроконтролерів AT90S1200 і AT90S8515
Архітектура сімейства мікроконтролерів AVR показана на прикладі її найбільш простого в даний час представника AT90S1200 (рис. 3.4) і самого продуктивного мікроконтролера AT90S8515 (рис. 3.5).
Два інших представники сімейства - мікроконтролери AT90S2313 і AT90S4414 - оптимізовані з точки зору розміру елементів і / або ціни і надають у розпорядження ту ж кількість функцій і модулів, що і мікроконтроллер AT90S8515.
3.8 Конструктивне виконання корпусів і розташування виводів
Розташування висновків чотирьох представників базової серії мікроконтролерів AVR показано на рис. 3.6 і рис. 3.7. Розглянемо призначення висновків докладніше.
VCC
Підведення напруги живлення
GND
заземлення
Port А (РА0. .. РА7)
Порт А являє собою двонаправлений порт вводу / виводу з пропускною здатністю 8 біт. Буфер виводу порту А в режимі прийому даних у стані приймати струм силою до 20 мА і, завдяки цьому, безпосередньо живити, наприклад, світлодіоди. Кожен висновок порту може бути налаштований індивідуально як вхід або вихід, а при виконанні функції введення до нього, при бажанні, можна підключати підтягує опір[10,123].
В якості особливої функції через порт А працює демультіплексірованная шина передачі даних і адрес, якщо до мікроконтролера AVR повинна бути підключена зовнішня пам'ять RAM.
Port В (РВ0. .. РВ7)
Порт В являє собою двонаправлений порт вводу / виводу (I / O) з пропускною здатністю 8 біт. Буфер виводу порту В у режимі прийому даних у стані приймати струм силою до 20 мА і, завдяки цьому, безпосередньо живити, наприклад, світлодіоди. Кожен висновок порту може бути налаштований індивідуально як вхід або вихід, а при виконанні функції введення до нього, при бажанні, можна підключати підтягує опір.
Альтернативно, через порт В можуть виконуватися також різні спеціальні функції (таймер, підключення входів аналогового компаратора, інтерфейс 8Р1).
Рис.3.4 Блок-схема мікроконтролерів AT90S1200
Рис. 3.5 Блок-схема мікроконтролерів AT90S8515
Рис. 3.6 Розміщення виводів мікроконтролерів
Рис.3.7 Конструктивне виконання корпусів і розташування виводів і AT90S4414 і AT90S8515
Port С (РС0. .. РС7)
Порт С являє собою двонаправлений порт вводу / виводу (I / O) з пропускною здатністю 8 біт. Буфер виводу порту С в режимі прийому даних у стані приймати струм силою до 20 мА і, завдяки цьому, безпосередньо живити, наприклад, світлодіоди. Кожен висновок порту може бути налаштований індивідуально як вхід або вихід, а при виконанні функції введення до нього, при бажанні, можна підключати опір.
В якості особливої функції через порт С виводиться старший байт адресної шини, якщо до мікроконтролера AVR повинна бути підключена зовнішня пам'ять RAM.
Port D (PDO. .. PD7)
Порт D являє собою двонаправлений поріг введення / виведення з пропускною здатністю 8 біт. Буфер виводу порту D в режимі прийому даних у стані прийому струм силою до 20 мА І, завдякі цьому, безпосередньо живить, наприклад, світлодіоді. Коженов висновок порту може бути налаштований індівідуально Як вхід або вихід, а при виконанні функції введення до нього, при бажанні, можна підключати опір[15,148].
Альтернативно, через порт D можуть виконуватися також різні додаткові функції (наприклад, надходження запитів на переривання, передача вихідних даних таймера, інтерфейс з пристроєм UART).
RESET
Висновок для подачі сигналу скидання. Рівень балка 0 на цьому виводі на протязі мінімум двох циклів системного такту Ф при активному осцилляторі переводить мікроконтроллер в початковий стан.
ICP
Висновок функції "Захоплення" (Capture) інтегрованого таймера / лічильника Т / С 1.
ОС1В
Висновок функції "Порівняння" (Compare) інтегрованого таймера / лічильника Т/С1.
ALE
Висновок для подачі імпульсу при записі молодшого адресного байта з демультиплексованої шини даних / адреси через порт А в зовнішній фіксуючий регістр, коли до мікроконтролера AVR підключена зовнішня пам'ять RAM (див. рис. 3.6, рис. 3.7 і рис. 3.8). Байт даних передається на другому кроці звертання до пам'яті RAM через порт А.
XTAL1
Вхід інтегрованого осциллятора для вироблення такту системної синхронізації Ф і, рівним чином, вхід для зовнішнього тактового сигналу, якщо внутрішній осцилятор не застосовується[13,165].
XTAL2
Вихід інтегрованого осциллятора для вироблення такту системної синхронізації Ф.
3.9 Програмування для AVR на мові високого рівня Сi++
У зв'язку з тим, що мікроконтролери AVR були повністю новою розробкою, і відпала необхідність враховувати сумісність із якими-небудь попередниками, з'явилася можливість скористатися найсучаснішими досягненнями. Так, наприклад, із самого початку в проектування і розробку структур мікроконтролерів AVR були залучені фахівці високого рівня - перш за все, на мові програмування Сi++. У результаті була отримана архітектура процесора, спеціально розрахована на складання програм на мові Сi++.
Нижче на прикладі двох коротких фрагментів програм показано, як ефективно елементи мови Сi++ можуть бути перетворені в коди асемблера для мікроконтролерів AVR.
У першому прикладі показана типова операція з покажчиком в тому вигляді, в якому вона дуже часто зустрічається в мові програмування Сi++.
У другому прикладі ni і п2 - цілі числа типу Long Integer, тобто, обидва мають довжину 4 байти. ПЗ - це цілочисельна змінна довжиною 2 байти. Значення ni, п2 і ПЗ визначені усередині підпрограми як локальні змінні.
У коді, створеному на асемблері, число ni розміщується в регістрах г 3-г 0, п2 - в регістрах г 7 - г 4, а ПЗ - в регістрах г 17-р 16.
Крім того, у другому прикладі показано, що відсутні в наборі AVR-команд команди addi (add immediate - "додати безпосереднє значення") і ici (add immediate with carry - "додати безпосереднє значення з урахуванням перенесення") для обчислення виразу ПЗ 5 можуть бути замінені відніманням другого компонента з 5[11,254].
4. Стендові випробування для порівняння мікроконтролерів AVR з головними конкурентами
Те, що застосування мови високого рівня С при складанні програм для AVR дає в результаті надзвичайно стислий код на асемблері (а значить, і машинний код), доводять також і стендові випробування базової серії мікроконтролерів AVR. При цьому результати зіставлялися з головними конкурентами (80С51, 68НС11, 80196 ...), а критерієм для оцінки був обсяг коду, згенерованого для виконання однієї і тієї ж задачі різними процесорами. Дані по порівняльним випробуванням мікроконтролерів сімейства AVR з поширеними на ринку 8 - і 16-розрядними мікроконтролера, надані компанією Atmel. Під час випробувань вирішувалися дев'ять поширених практичних завдань з різних областей застосування процесорів. Для отримання порівнянних результатів випробувань, програма для всіх процесорів була написана на мові високого рівня С.
Для трансляції коду майже у всіх випадках був застосований компілятор фірми 1AR Systems Ltd (на момент проведення випробувань компілятора цієї фірми не існувало тільки для процесора ARM7/ARM Thumb). Завдяки цьому, результати випробувань залежали не від можливостей оптимізації різних виготовлювачів компіляторів, а в значній мірі від архітектурних відмінностей процесорів. Тим часом вже з'явилися більш нові варіанти деяких компіляторів, внаслідок чого представлені тут результати могли б виглядати ще краще. Це відноситься також і до компілятору AVR-С, який є відносно "молодим" і з появою кожної нової версії помітно поліпшується в плані створення результуючого коду.
Само собою зрозуміло, стендові випробування цього виду можна назвати об'єктивними тільки умовно, і тому їх наочність обмежена, оскільки кожен процесор має свої особливі сильні і слабкі сторони.
Ефективність коду мікроконтролера сильно залежить від постановки задачі - немає ніяких універсальних "кращих мікроконтролерів" для всіх випадків застосування.
За допомогою стендових випробувань (як і з допомогою статистики) можна довести майже все, що завгодно, оскільки кожний мікроконтролер має свої "сильні сторони", і якщо його сконструювати для особливих випадків реалізації цих специфічних сильних сторін, то він може стати "ефективним з точки зору коду ".
Таким чином, на підставі цього зіставлення я не буду оголошувати мікроконтролери AVR найкращими з наявних на ринку. Мета даних випробувань - показати, що архітектура окремих представників сімейства AVR найвищою мірою оптимізована з точки зору обсягу програмного коду.
5. Результати
У семи з дев'яти тестів мікроконтролер АVR був серед трьох кращих і, як показує загальна оцінка, він різко відрізняється в кращу сторону від всіх протестованих контролерів.
На рис. 4.1 представлені результати окремих тестів, підсумовані і нормалізовані на основі результатів мікроконтролера AVR. Наприклад, для ARM7 обсяг коду вийшов в середньому в півтора рази більше, ніж для AVR.
Рис.4.1 Сумарний результат
Провідним виробником З-компіляторів можна вважати компанію IAR Systems Ltd. За їх прекрасні "ноу-хау" в області компіляторів дійсно варто заплатити високу ціну. На ринку вже існують набагато більш дешеві С-компілятори SmallC AVR (природно, при обмеженій продуктивності), вартість яких нижче 50 доларів США.
Також для розв'язання задач діагностування можна використати мікроконтролер . Є два основних типи : PIC-контролери і мікроконтролери AVR. Але мікроконтролери AVR мають ряд переваг в порівнянні з PIC. Перш за все , мікроконтролери AVR мають досконалішу архітектуру і можуть виконувати команди в кожному такті ( відміну від PIC, яким для виконання команди потрібно чотири такти ). Тому при тій же тактовій частоті мікроконтролери AVR працюють в 4 рази швидше . Крім того , вони мають 32 робочих регістра ( відміну від одного єдиного ,наявного в PIC) і майже в 3 рази більше команд. Завдяки цьому програми для AVR практично завжди будуть коротші за аналогічні програми для PIC. Всі мікроконтролери AVR мають FLASH-пам'яті програм , що дозволяє здійснювати їх багатократне перепрограмування.
Висновок
Отже, серед численних технічних пристроїв особливе місце займають так звані мікроконтролери, які дуже поширені в наш час. Мікроконтролери можна зустріти у величезній кількості сучасних промислових та побутових приладів: верстатах, автомобілях, телефонах, телевізорах, холодильниках, пральних машинах ... і навіть кавоварках. Основною особливістю сучасного етапу розвитку мікропроцесорних систем (МПС) є завершення переходу від систем, виконаних на основі декількох великих ІС, до однокристальних мікроконтролерів (МК), які поєднують в одному кристалі всі основні елементи МШС: центральний процесор (ЦП), постійний запам'ятовуючий пристрій (ПЗП), оперативний запам'ятовуючий пристрій (ОЗП), порти вводу/виводи, таймери.
В даній роботі ми розглянули що таке мікроконтролер,структуру та їх класифікацію. Метою даної роботи є розглянути будову,принцип дії та класифікацію найпоширеніших мікроконтролерів PIC та AVR. Розглянути принцип роботи та різні методи програмування мікроконтролерів PIC та AVR, найбільш поширених у використанні. Порівняли швидкодію роботи різних типів мікроконтролерів, результати яких було побудовані у вигляді графіка. Було проведено дев'ять тестів, з яких було визначено трійку кращих мікроконтролерів. AVR мікроконтролер у семи з дев'яти тестів по результатам увійшов у трійку кращих. Але мікроконтролери AVR мають ряд переваг в порівнянні з PIC. Перш за все, мікроконтролери AVR мають досконалішу архітектуру і можуть виконувати команди в кожному такті ( відміну від PIC, яким для виконання команди потрібно чотири такти ). Тому при тій же тактовій частоті мікроконтролери AVR працюють в 4 рази швидше. Це показано на рис.4.2.
Роблячи висновок з даної роботи, можна сказати що розглянуті два типи мікроконтролери мають свої переваги та недоліки,але визначити кращого з них не можливо.
Вони використовуються для керування електронними пристроями. По суті, це -- однокристальний комп'ютер, здатний виконувати прості завдання. Використання однієї мікросхеми значно знижує розміри, енергоспоживання і вартість пристроїв, побудованих на базі мікроконтролерів.
Використана література
1. Бродин В.Б., Калінін А.В. Системи на мікроконтролерах і БІС програмованої логіки. Бродин В.Б., Калінін А.В. - М .: ЕКОМ, 2002. - ISBN 5-7163-0089-8
2. Жан М. Раба, Ананта Чандракасан, Борівож Николич. Цифрові інтегральні схеми. Методологія проектування = Digital Integrated Circuits. - 2-е изд. Жан М. Раба, Ананта Чандракасан, Борівож Николич. - М .: Вільямс, 2007. - ISBN 0-13-090996-3
3. Мікушіних А. Цікаво про мікроконтролерах. Мікушіних А. - М .: БХВ-Петербург, 2006. - ISBN 5-94157-571-8
4. Новиков Ю.В., Скоробогатов П.К. Основи мікропроцесорної техніки. Курс лекцій. Новиков Ю.В., Скоробогатов П.К. - М .: Інтернет-університет інформаційних технологій, 2003. - ISBN 5-7163-0089-8
5. Фрунзе А.В. Мікроконтролери? Це ж просто!. Фрунзе А.В. - М .: ТОВ "ВД СКІМ", 2002. - Т. 1. - ISBN 5-94929-002-X
6. Фрунзе А.В. Мікроконтролери? Це ж просто!. Фрунзе А.В - М .: ТОВ "ВД СКІМ", 2002. - Т. 2. - ISBN 5-94929-003-8
7. Фрунзе А.В. Мікроконтролери? Це ж просто!. Фрунзе А.В - М .: ТОВ "ВД СКІМ", 2003. - Т. 3. - ISBN 5-94929-003-7
8. Редькин П.П. Микроконтроллеры Atmel архетиктуры AVR32 семейства AT32UC3. Руководство пользователя Техносфера. Редькин П.П. -М: ТОВ "ВД СКІМ", 2010, 784 с.
9. Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR
Наука и техника. Белов А.В. -М: ТОВ "ВД СКІМ", 2008, 544 с
10. Мортон Д. Микроконтроллеры AVR. Мортон Д. Вводный курс Додэка - XXI, 2006,528 c.
11. Трамперт В. AVR- RISC микроконтроллеры. Трамперт В. М: МК-Пресс, 2006,523 c.
12. Трамперт В. Измерение, управление и регулирование с помощью AVR микроконтроллеров Додэка. Трамперт В. - XXI, 2006,365 c.
13. Кениг М. Полное руководство по PIC микроконтроллерам МК. Кениг М. - Пресс, 2007,489 c.
14. Евстифеев А.В. Микроконтроллеры AVR семейства Mega Додэка. Евстифеев А.В. - XX, 2007,547 c.
15. Заец Н.И. Радиолюбительские конструкции на PIC. - микроконтроллерах. Заец Н.И. -М: Книга 4 МК-Пресс, 2008,456 c.
16. Кравченко А.В. 10 практических устройств на AVR-микроконтроллерах. Кравченко А.В. - М: Книга 2 МК-Пресс, 2009, 320 с.
Размещено на Allbest.ru
Подобные документы
Аналіз роботи обчислювальних пристроїв, побудованих за 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