5. Мікроконтролери
Вид материала | Документы |
СодержаниеZ — ознака нуля (Z=l Запитання. Завдання |
5. Мікроконтролери
Загальні відомості про контролери
Крім МП, розглянутих вище, велике значення має інший напрям мікропроцесорної техніки — вбудовані мікроконтролери (embedded microcontrollers). Це однокристальні системи, орієнтовані на виконання, в першу чергу, функцій керування різними пристроями. Звідси й назва — «мікроконтролери». Використовуються вони досить широко в різних сферах — від сучасної побутової техніки (холодильники, пральні машини, кухонні комбайни та ін.) до найскладніших систем керування технологічними процесами і робототехнічними комплексами. Кількість мікроконтролерів, що випускаються на сьогодні, майже в 10 разів перевищує кількість традиційних МП.
Сучасний мікроконтролер є складною цифровою системою, розміщеною на кристалі, до складу якої входять 8-, 16- чи 32-розрядний процесор, внутрішня пам'ять програми (десятки кілобайтів), широкий набір інтерфейсних і периферійних пристроїв, зокрема портів вводу/виводу, таймерів, аналого-цифрових перетворювачів та ін.
Піонером у галузі розробки мікроконтролерів є корпорація Intel. У 1976 p. вона випустила перший універсальний 8-розрядний мікроконтролер 8048. Нині Intel виробляє кілька сімейств мікроконтролерів: MCS-51/151, MCS-251, MCS-96/196/296, які мають понад 100 моделей. Вони дають змогу задовольняти попит широкого кола виробників різноманітної електронної апаратури.
За функціональними можливостями та технічними характеристиками мікроконтролери орієнтовані переважно на реалізацію керування різними приладами та пристроями. Їх використовують як складові пристрої систем керування технологічними процесами, інформаційно-вимірювальних та контрольно-діагностичних систем. Широкі функціональні можливості, високі технічні параметри, відносно низька, вартість контролерів задовольняють вимоги численних споживачів — розробників різноманітної електронної апаратури. Виробництво і використання мікроконтролерів швидко зростає. Так, за останні п'ять років їх випуск у світі збільшився приблизно в три рази і наблизився до рівня 2 млрд штук на рік.
Мікроконтролери сімейства MCS-96
Сімейство цих 16-розрядних мікроконтролерів випускається фірмою Intel з 1984 р. Перши моделі (8X95, 96, 97, 98ВВН) виготовляли за nMOН-технологією, а в 1986 р. розпочався випуск мікроконтролерів за кМОН-технологією, яка домінує в їх виробництві й нині. Кількість моделей мікроконтролерів сімейства MCS-96 - понад 50. В цьому сімействі можна виділити три основні гілки кМОН мікроконтролерів, кожна з яких має свою оригінальну архітектуру.
Представниками першої гілки є мікроконтролери 8XC196KB/KC/KD. Вони використовують прийом і видачу керуючих сигналів у реальному масштабі часу за допомогою спеціалізованого блока швидкого вводу/виводу HSIO (High Speed Input/Output).
До другої гілки належать мікроконтролери 8XC196KR/ /KT/KQ/JR/JQ/NP/NT/NU/CA/CB. У них для обробки керуючих сигналів у реальному масштабі часу використовується спеціальний процесор подій ЕРА (Event Processor Array).
Третю гілку становлять мікроконтролери 8ХС196МС/ /MD/MH. Вони здебільшого ідентичні мікроконтролерам другої гілки, але містять додаткові блоки, що забезпечують генерацію трифазних імпульсних сигналів для керування електродвигунами. Такі спеціалізовані мікроконтролери орієнтовані на застосування в системах керування електроприводом.
Моделі мікроконтролерів випускають переважно трьох модифікацій, які різняться реалізацією ПЗП, значенням цифри X. У першій модифікації (Х=0) немає ПЗП. Друга модифікація (Х=3) містить внутрішній ПЗП ємністю від 4 до 32 Кбайт. Програмується і записується ПЗП за допомогою фотошаблона в процесі виготовлення мікро-контролера. Третя модифікація (Х=7) містить внутрішню пам'ять, яка однократно програмується користувачем (ОТР ROM) за допомогою програмувача.
Мікроконтролери мають внутрішній ПЗП ємністю до 56 Кбайт, внутрішній регістровій ОЗП даних ємністю до 1,5 Кбайт. Деякі моделі мають ще додатково внутрішній ОЗП команд ємністю до 512 байт. Загальна ємність пам'яті, що може адресуватися, становить 64 Кбайт або 1 Мбайт. Більшість моделей мають внутрішній 8- або 10-розрядний АЦП з аналоговими входами в кількості від 4 до 14. Всі мікроконтролери містять також по два 16-розрядних лічильники-таймери. Вони забезпечують обробку в реальному масштабі часу сигналів, що надходять на входи мікро-контролера, і формують необхідні вихідні сигнали за допомогою спеціалізованих блоків HSIO або процесорів подій ЕРА, які мають від 8 до 20 таких входів/виходів. До складу мікроконтролерів входять також 3-4 порти паралельного введення/виведення даних і 1—2 послідовних двонапрямлених порти обміну.
Виготовляються мікроконтролери за кМОН-технологією, яка забезпечує їх функціонування з максимальною тактовою частотою від 16 до 50 МГц. Споживана потужність не перевищує 500 мВт на максимальній частоті.
Мікроконтролери сімейства MCS-96 мають ідентичну архітектуру. Їх відмінності зводяться до різного типу та ємності пам'яті й реалізації периферійних пристроїв. Різні моделі контролерів використовують одне і те саме процесорне ядро і відповідно систему команд та способи адресації.
Найперспективнішими на даний час вважають мікроконтролери 8XC196NP/NU. Їх процесорне ядро передбачає використання користувачем ємності пам'яті, що адресується, 1 Мбайт, внутрішнього ПЗП до 4 Кбайт і набору периферійних пристроїв: таймерів, процесора подій, ШІМ, універсального послідовного порта. Ці моделі широко застосовуються завдяки своїй низькій вартості, досить широкому набору виконуваних функцій, які можуть доповнюватись відповідно до вимог користувачів шляхом підключення зовнішніх пристроїв.
Модель 8XC196NU має порівняно з 8XC196NP удвічі вищу швидкодію за таких самих функціональних можливостей. Така швидкодія є максимальною для мікроконтролерів сімейства MCS-96.
Структура мікроконтролера 8XC196NP
Мікроконтролер 8XC196NP містить центральний процесор, блок регістрів ємністю 1 Кбайт, блок керування пам'яттю (БКП), який здійснює вибір команд із зовнішньої чи внутрішньої пам'яті, організовує 4-байтну чергу команд (ЧК) і забезпечує звернення до зовнішньої пам'яті даних. Внутрішня пам'ять команд наявна тільки в моделі 8XC196NP і реалізована у вигляді розміщеного на кристалі ПЗП ємністю 4 Кбайт.
Мікроконтролер має 20 адресних ліній А0-А19 і може адресувати пам'ять ємністю до 1 Мбайт. Під час ініціалізації задається максимальна ємність пам'яті, що адресується (1 Мбайт чи 64 Кбайт). Ці режими мають відповідну назву — режим 1М чи режим 64К. Режим 64К обмежує ємність пам'яті, що адресується, 64 Кбайтами і забезпечує програмну ємність з більш ранніми моделями сімейства MCS-196. Передбачена можливість обміну 16- і 8-розрядними даними.
Мікроконтролер розміщується в 100-вивідному корпусі типу QFP чи SQFP.
Мікроконтролер має чотири 8-розрядні порти Р1,..., Р4 для зв'язку із зовнішніми пристроями. Порт Р4 має виводи тільки від 4 молодших розрядів. Старші розряди Р4 зарезервовані для наступних моделей сімейства. Тому Р4 використовується як 4-розрядний порт. Розряди адресних ліній А19, ..., А16, якщо вони не використовуються для адресації зовнішньої пам'яті, можуть бути застосовані для двостороннього обміну інформацією із зовнішніми пристроями. В цьому випадку до даних виводів може бути підключений 4-розрядний двонапрямлений порт EPORT, окремі виводи якого програмують на введення чи виведення інформації.
Виводи порта Р1 можуть бути використані для виконання спеціальних функцій, зокрема для подачі тактових (T1CLK, T2CLK) і керуючих (T1DIR, T2DIR) сигналів для таймерів 1, 2, а також введення/виведення сигналів ЕРА3 - ЕРА0, які керують функціонуванням процесора подій (ПРП).
Зовнішні запити на переривання надходять на входи EXTINT0 і EXTINT1 порта Р2 та на два входи EXTINT2, EXTINT3 порта РЗ. Ці запити разом із внутрішніми обробляються контролером переривань (КПеР) згідно з їх пріоритетом. У структурі мікроконтролера є також спеціалізований блок обслуговування переривань — периферійний сервер (ПСР), який виконує спеціальні види обслуговування: пересилання окремих слів чи цілих блоків, формування імпульсних сигналів заданої частоти і тривалості на виводах ЕРА0, ..., ЕРА3. Виводи порта Р2 можуть використовуватися також для послідовних введення (RXD) і виведення (TXD) даних через блок послідовного обміну (БПО), а також для обміну сигналами, які забезпечують захоплення магістралі іншими пристроями (HOLD, HOLDA, BREQ), і видачі синхроімпульсів (CLK OUT).
Виводи порта РЗ використовуються для виведення сигналів дозволу вибірки CS0,..., CS5, які надходять з БКП і дають змогу мікроконтролеру звертатися до кількох типів зовнішньої пам'яті, які відрізняються ємністю, швидкодією, розрядністю, режимом звернення.
Три виводи порта Р4 використовують як виходи ШІМ, що забезпечує формування послідовності імпульсів заданої частоти і тривалості.
Блок регістрів містить 1К 8-розрядних регістрів, вміст яких може вибиратися у вигляді байта, 16- чи 32-розрядного слова. Блок поділений на молодший і старший регістрові файли, які містять відповідно 256 і 768 регістрів. Звернення до регістрів молодшого файла здійснюється за допомогою прямої адресації з відповідним адресним байтом команди. При цьому 232 регістри молодшого файла використовуються як регістри загального призначення (РЗП), а 24 регістри — як регістри спеціального призначення (РСП). Вони застосовуються для зберігання масок переривання, констант 0000Н і 0FFFFH та деякої службової інформації.
Усі регістри старшого файла використовуються як РЗП. Звернення до них здійснюється за допомогою непрямої адресації чи шляхом перенесення групи регістрів (кадру) із старшого файла в адресний простір («вікно») молодшого файла.
Структурну схему мікроконтролерів 8XC196NP наведено нижче (схема 43).
Схема 43. Структурна схема мікроконтролерів 8XC196NP
Процесорний блок мікроконтролера містить регістровий арифметико-логічний пристрій (АЛП) і мікропрограмний пристрій керування (МППК). АЛП виконує операції над двома операндами, які надходять з 16-розрядних робочих регістрів РР1 і РР2. Для виконання операцій зміщень, множення і ділення використовуються 32-роз-рядні операнди. Тому регістр РР1 складається з двох 16-розрядних частин, які містять старші (РР1Н) і молодші (PP1L) слова. Регістр РР1 містить однорозрядні зсувачі, за допомогою яких виконуються операції множення, ділення, нормалізації і зсувів. АЛП здійснює також формування адрес операндів даних при використанні індексної та автоінкрементної адресації й команд за умовних і безумовних переходів, викликах підпрограм.
В АЛП введено регістри, які виробляють числові константи 1 і 2. Вони використовуються як операнди при операціях інкременту та декременту, а також для формування масок, які виділяють певний біт операнда, при виконанні команд тестування бітів. Номер біта, що тестується, задається трирозрядним полем команди, яке вводиться в регістр номера біта і визначає вид маски, що формується.
Програмний лічильник складається з основного 16-розрядного лічильника (РЛ) і 8-розрядного додаткового лічильника (ЕРЛ). Останній розширює можливу ємність пам'яті, що адресується, до 16 Мбайт. У контролерах з підключеними 20 розрядами адреси можлива ємність пам'яті, яка використовується, 1 Мбайт для режиму 1М і 64 Кбайт для режиму 64К.
Структурну схему процесорного блока мікроконтролерів 8XC196NP наведено нижче (схема 44).
Схема 44. Структурна схема процесорного блока мікро контролерів 8XC196NP
Процесорний блок починає роботу з вибору МППК коду чергової команди з ЧК в регістр команд. Відповідно до цього коду МППК виробляє послідовність мікрокоманд, які надходять у різні вузли і блоки мікроконтролера та ініціюють виконання відповідної операції. При здійсненні операції зсувів використовується лічильник, що задає число розрядів зсуву. Він завантажується вмістом регістра, заданого в команді, чи певним байтом команди.
Виконання команд залежить від вмісту регістра станів, розряди якого містять значення ознак, що встановлюються за результатами попередніх операцій, а також дозволяють чи забороняють обслуговування переривань.
Вміст регістра станів утворює 8-розрядне слово стану програми (PSW) наведене на схемі 45.
-
7
6
5
4
3
2
1
0
Z
N
V
VT
С
PSE
І
ST
Схема 45. Слово стану програми, PSW
- ST — ознака втрати точності; ST=1, якщо при операціях зміщення вправо втрачається молодший розряд операнда, що висувається;
- І — ознака дозволу обслуговування всіх маскованих переривань при I=1 (значення встановлюється командою ЕІ, I=0 — командою DI);
- PSE — ознака дозволу обслуговування переривань за допомогою ПСР при PSE=1 (PSE=1 встановлюється командою EPTS, PSE=0 — командою DPTS);
- С — ознака перенесення, встановлюється за результатами арифметичних операцій і зсувів;
- VT — ознака «пастка», встановлюється в разі переповнення розрядної сітки аналогічно ознаці V, але скидається тільки при виконанні команд CLRVT, JVT, JNVT;
- N — ознака знака (N=1, якщо результатом операції є від'ємне число, N=0 — якщо результатом операції є додатне число);
- Z — ознака нуля (Z=l, якщо результатом операції є нуль, Z=0 — якщо результат операції не дорівнює нулю).
Мікроконтролер може працювати із зниженим енергоспоживанням. Для цього передбачені режими «холостого» ходу і відключення живлення.
Передбачений також режим повного відключення мікроконтролера від зовнішніх ліній зв'язку. При цьому всі лінії, крім ліній синхронізації, живлення і «землі», переводяться у відключений (високоімпедансний) стан. Цей режим використовується для підключення схемного емулятора в процесі налагодження мікропроцесорної системи, а також при тестуванні друкованої плати, на якій розміщено мікроконтролер, чи інших мікросхем, розташованих на цій платі.
Для синхронізації мікроконтролера є можливість використовувати зовнішнє джерело тактових імпульсів чи внутрішній генератор, який функціонує при підключенні кварцового резонатора.
Мікроконтролери сімейства MCS-51/151
Сімейство мікроконтролерів на сьогодні є, по суті, одним із стандартів на світовому ринку 8-розрядних мікроконтролерів. Воно нараховує майже півсотні мікроконтролерів. Збільшення його зумовлене успіхами мікроелектронної технології. Перший мікроконтролер 8051АН був розроблений на основі nMOS-технології. CHMOS-технологія дала змогу зменшити потужність, що розсіюється, при звичайній роботі мікроконтролерів і ввести особливі режими, які додатково знижують енергоспоживання. З'явилися контролери типу 80L52/54/58 зі зниженою напругою живлення.
Група контролерів 80C51FA/FB/FC пов'язана з введенням в архітектуру сімейства модуля РСА (programmable counter array) і сторожового таймера (watchdog timer, WDT). Модуль РСА призначений для виконання різних операцій обчислення і визначення тривалості інтервалів часу, в тому числі при широтно-імпульсній модуляції. Сторожовий таймер забезпечує перезавантаження процесора в разі зависань. «Старші» мікроконтролери (80C51GB) мають вбудований 8-розрядний АЦП та шість паралельних портів. Кардинальне збільшення продуктивності 8-розрядних мікроконтролерів було досягнуто фірмою Intel за рахунок розробки сімейств MCS-151 і MCS-251.
Внутрішня структура мікроконтролера 8051АН, що є вихідною для сімейства MCS-51, містить такий набір функціональних модулів:
- 8-розрядний АЛП з апаратною реалізацією операцій типу множення;
- внутрішню пам'ять програм ємністю 4 Кбайт і ОЗП даних ємністю 128 байт;
- чотири універсальних програмованих паралельних 8-розрядних порти вводу/виводу з можливістю реалізації певних альтернативних функцій;
- два 16-розрядних програмованих лічильники-таймери;
- дуплексний послідовний порт.
Ці апаратні пристрої та сукупність функцій, що реалізуються мікроконтролерами сімейства 8051, є ефективним засобом збирання, обробки інформації і керування об'єктами. Структура мікроконтролерів має напівзакритий характер. Аналогом мікросхеми 8051АН є мікросхема К1816ВЕ51.
Мікроконтролери сімейства 8051 побудовані на основі гарвардської архітектури. Пам'ять програм і пам'ять даних розділені, й кожна з них має ємність 64 Кбайт.
Мікроконтролери сімейства MCS-251
Архітектура цих мікроконтролерів є вдосконаленою архітектурою MCS-51. В її основу покладено систему команд попереднього сімейства і набір блоків вводу/виводу, зокрема три таймери-лічильники, послідовний порт, блок РСА і сторожовий таймер. Збільшення продуктивності досягається за рахунок введення нових команд, збільшення адресного простору, використання механізму конвеєризації в центральному процесорі, стиснення циклів обміну по магістралі.
Центральний процесор мікроконтролерів MCS-251 побудований на основі конвеєра команд і регістрового файла. Це дає змогу виконувати декілька команд за один машинний такт, тоді як процесор мікроконтролера 8XC51FX виконує одну команду за шість тактів. Система команд процесора контролерів MCS-251 доповнена інструкціями, які оперують 16- і 32-розрядними операндами.
Найважливішими особливостями архітектури мікроконтролерів MCS-251 є:
- конвеєр команд і регістровий файл;
- розширений набір команд;
- внутрішній ОЗП ємністю до 1 Кбайт;
- стек до 64 Кбайт;
- можливості порядкової вибірки команд, введення стану очікування на магістралі, формування 17-розрядної адреси;
- внутрішня пам'ять з однократним записом розміром до 16 Кбайт;
- три 16-розрядних таймери-лічильники;
- програмований послідовний порт;
9) блок РСА з п'ятьма модулями порівняння-захоплення;
10) виділений сторожовий таймер.
Мікроконтролери типу 8XC251SB побудовані на статичній схемотехніці, що дає їм можливість працювати з частотою синхронізації від 0 Гц.
Перші мікроконтролери сімейства MCS-251 сумісні з мікроконтролерами 8XC51FX. Це дає змогу нарощувати продуктивність систем на основі MCS-51 простою заміною ВІС мікроконтролера в сокеті.
Основу структури сімейства мікроконтролерів MCS-251 становить ядро (core). Воно визначає найважливіші параметри архітектури, зокрема набір команд, тактові частоти процесора, механізми конвеєризації та переривань. Ядро є спільною частиною для всіх мікроконтролерів цього сімейства. Відмінність між окремими типами мікроконтролерів сімейства полягає в різному складі внутрішніх блоків інтерфейсу, ємності внутрішньої пам'яті програм, функціях окремих ліній вводу/виводу. Ядро архітектури MCS-251 містить центральний процесор, блок синхронізації, блок обробки переривань, інтерфейс внутрішньої магістралі та інтерфейс локальної шини, який обслуговує внутрішні блоки вводу/виводу.
Крім ядра мікроконтролери містять внутрішні блоки вводу/виводу, інтерфейс магістралі та внутрішню пам'ять. Внутрішні блоки вводу/виводу призначені для виконання типових функцій інтерфейсу із зовнішніми пристроями. Вони містять сторожовий таймер, три таймери-лічильники, блок РСА та послідовний порт.
Лінії вводу/виводу мікроконтролерів 8XC251SB об'єднані в чотири 8-розрядних порти загального призначення. Кожна лінія має засувку. Апаратні драйвери виконують альтернативні функції, які залежать від режиму роботи і номера лінії. Ці мікроконтролери мають маскований ПЗП ємністю 16 Кбайт, на кристалі міститься реп-рограмований ЗП тієї самої ємності. Великий розмір цих матриць дає можливість у багатьох випадках відмовитися від використання зовнішньої пам'яті програм.
Запитання. Завдання
- Що становить собою сучасний мікроконтролер?
- Де використовують мікроконтролери?
- Дайте загальну характеристику мікроконтролерів сімейства MCS-96.
- Опишіть структуру мікроконтролера 8XC196NP.
- Дайте загальну характеристику процесорного блока мікроконтролерів типу 8XC196NR
- Опишіть вміст регістра станів PSW контролера 8XC196NP.
- У чому сутність режиму повного відключення мікроконтролера від зовнішніх ліній зв'язку?
- Дайте загальну характеристику мікроконтролерів сімейства MCS-51/151.
- З яких функціональних модулів складається мікроконтролер 8051АН?
- Який тип архітектури покладено в основу побудови мікроконтролерів сімейства 8051, в чому її сутність?
- Дайте загальну характеристику мікроконтролерів сімейства MCS-251.
- Які особливості архітектури притаманні мікроконтролерам MCS-251?
13. Охарактеризуйте структуру мікроконтролерів сімейства MCS-251.
14. Назвіть особливості побудови ліній вводу/виводу мікроконтролерів 8XC251SB.