Мікроконтролери MCS-51: програмна модель, структура, команди. Мікроконтролери сімейства mcs51 Основні характеристики продукту

Мікроконтролери MCS-51: програмна модель, структура, команди. Мікроконтролери сімейства mcs51 Основні характеристики продукту

Базова версія MCS–51 Коротка інформація. Сучасні 8-розрядні мікроконтролери (МК) мають такі ресурси управління в режимі реального часу, для отримання яких раніше використовувалися дорогі багатокристальні компонування у вигляді окремих плат мікроЕОМ, а саме:

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

● включають всі пристрої (процесор, ПЗУ, ОЗУ, порти вводу–вывода, систему переривань, засоби обробки бітової інформації та інших.), необхідні реалізації мікропроцесорної системи управління мінімальної конфігурації. У 70-ті роки минулого століття фірмою Intelрозроблено та освоєно промисловий випуск сімейства 8-розрядних мікроконтролерів MCS-48, об'єднаних рядом загальних ознак (розрядністю, системою команд, набором основних функціональних блоків та ін.). Базова версія цього сімейства включає:

● 8-розрядний процесор;

● внутрішню пам'ять програм (1/2/4К байт);

● внутрішню пам'ять даних (64/128/256 байт);

● до 27 внутрішніх та 16 зовнішніх ліній введення-виводу;

● один 8-розрядний таймер-лічильник;

● однорівневу систему переривань із двома джерелами запитів. У 1980 р. тією ж фірмою було розроблено нове сімейство восьмирозрядних мікроконтролерів MCS-51, яке сумісне з архітектурою сімейства MCS-48, але має ширші можливості.

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

Для сімейства MCS–51 розроблено різні засоби підготовки програм (компілятори, апаратно–програмні емулятори та ін.) та є велика кількість бібліотек стандартних підпрограм. До складу сімейства входять різноманітні модифікації мікросхем (версії кристалів) мікроконтролерів. У статтях цього розділу досить докладно розглядається базова версія мікроконтролерів сімейства MCS-51 (мікросхема 8051 відповідає вітчизняний аналог КP1816ВЕ51), найбільш проста в структурно-функціональному плані і з погляду розуміння.

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

● 8-розрядний центральний процесор ЦП, що складається з АЛУ, пристрої керування УУта формувача адреси ФА;

● масочне ПЗУ ємністю 4К байта для зберігання програм;

● ОЗУ ємністю 128 байт для зберігання даних;

● чотири програмовані порти Р0–Р3 для введення–виведення інформації;

● блок послідовного інтерфейсу БПІ для обміну інформацією із зовнішніми пристроями по двопровідній лінії;

● блок таймерів/лічильників БТ/С для підтримки режиму реального часу;

● блок переривань БП для організації переривань виконуваних програм. Ці засоби утворюють резидентнучастину мікроконтролера, розміщену безпосередньо на кристалі. До складу МК входить велика кількість регістрів, які віднесені до окремих функціональних блоків та на схемі не показані.

На схемі також не показані кола управління. Двосторонній обмін інформацією між блоками здійснюється за внутрішньою 8-розрядною шині данихШД-8.

За внутрішньою 16-розрядною шині адресиША–16 сформована в ЦП адреса виводиться в ПЗП (12 розрядів адреси) та в ОЗП (8 молодших розрядів).

При використанні зовнішньої пам'яті порт Р0 виводяться 8 молодших розрядів адреси і порт P2 - 3 чи 8 старших розрядів.

Для логічного розширення інтерфейсу використовують суміщення функцій ліній портів. Як приклад на рис. 7.1.1 пунктиром показано лінії порту Р3, що виконують альтернативніфункції передачі сигналів, що керують, про призначення яких буде сказано нижче. Для створення внутрішнього тактового генератора до висновків мікросхеми МК підключаються кварцовий резонатор та два конденсатори (рис. 7.1.1). Замість внутрішнього тактового генератора для синхронізації можна використовувати зовнішнє джерело коливань. Умовне графічне позначення мікросхеми МК наведено на рис. 7.1.2, позначення та призначення висновків - у табл. 7.1.1. Розглянемо функціональні блоки МК та принцип їх роботи. Арифметично-логічне пристрій. Арифметично-логічний пристрій призначений для виконання арифметичних (включаючи множення та розподіл) та логічних операцій над восьмирозрядними операндами, А також операцій логічного зсуву, обнулення, установки та ін. Структурна схема АЛУ наведена на рис. 7.1.3.

До складу АЛУ входять

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

акумулятор A,забезпечує функції основного арифметичного регістру;

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

регістри(програмно недоступні) тимчасового зберіганняРВХ1, РВХ2, призначені для приймання та зберігання операндів на час виконання операції;

● ПЗУ константПЗУК, що зберігає коригуючий код для двійково-десяткового подання даних, код маски при бітових операціях та код констант;

регістр слова стану програми PSW, що фіксує стан АЛП після виконаної операції. У табл. 7.1.2 наведено відомості про призначення бітів окремих розрядів регістру PSW. Пристрій керування. Пристрій керування (УУ) центрального процесора призначенодля координації спільної роботи всіх вузлів МК за допомогою синхроімпульсів, що виробляються, і керуючих сигналів. До його складу входять (рис. 7.1.4):

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

Кожен машинний цикл має шість станів S1–S6, A кожен стан включає в себе дві фази P1, P2, тривалість яких становить період коливань тактового генератора T0SC.

Тривалість машинного циклу дорівнює 12T 0SC. Усі машинні цикли однакові, починаються із фази S1P1 і закінчуються фазою S6P2.

Крім синхроімпульсів пристрій синхронізації в кожному машинному циклі формує два (іноді один) сигналу стробування молодшого байта адреси ALE у вигляді позитивного імпульсу у фазах S1P2-S2P1 та S4P2-S5P1. Тимчасові діаграми на рис. 7.1.5 ілюструють організацію машинних циклів;

● регістр команд РК, дешифратор командДК і ПЛМ, що дозволяють у кожному машинному циклі сформувати набір мікрооперацій відповідно до мікропрограми виконуваної команди;

● логіка введення-виведення ЛВВ для прийому та видачі сигналів, що забезпечують обмін інформацією МК із зовнішніми пристроями через порти Р0-Р3;

● регістр PCON, що має єдиний задіяний біт SMOD у позиції PCON.7 для подвоєння швидкості передачі через послідовний порт. Інші біти зарезервовані для подальшого використання.
Формувач адреси. Формувач адреси (ФА), або лічильник команд РС, призначенийдля формування поточної 16-розрядної адреси програмної пам'яті та 8/16-розрядної адреси зовнішньої пам'яті даних. До його складу входять (рис. 7.1.6):

● 16-розрядний буферБ, здійснює зв'язок між 8-розрядною шиною даних ШД і 16-розрядною внутрішньою шиною (ВШ) формувача адреси;

● схема інкременту СІ для збільшення значення поточної адреси пам'яті програм на одиницю;

● регістр для зберігання поточної адреси команд РТА, що надходить із СІ;

● регістр покажчика даних DPTR , що складається з двох 8-розрядних регістрів DPH і DPL. Він служить для зберігання 16-розрядної адреси зовнішньої пам'яті даних і може бути використаний як два незалежні програмно доступні РОН;

● регістр формувача адреси РФА для зберігання виконавчої 16-розрядної адреси пам'яті програм або 8/16-розрядної адреси зовнішньої пам'яті даних. Цей регістр використовується для передачі даних через порт Р0 в зовнішні пристрої під час виконання команд MOVX @Rm, A і MOVX @DPRT, A.

Пам'ять даних. Пам'ять даних призначенадля прийому, зберігання та видачі інформації, що використовується у процесі виконання програми. Внутрішня (резидентна) пам'ять (рис. 7.1.7) даних складається з ОЗП ємністю 128 байт, покажчика стека SP, регістра адресиОЗУ РА та дешифратораДш. Покажчик стека SP являє собою 8-розрядний регістр, призначений для прийому та зберігання адреси комірки стека, до якої було останнє звернення. Після скидання в покажчику стека встановлюється адреса 07Н, що відповідає початку стека з адресою 08Н. Регістр адреси РА спільно з дешифратором Дш дозволяє здійснити доступ до необхідної комірки пам'яті, що містить байт або біт інформації.

У МК передбачено можливість збільшення обсягу пам'яті даних до 64 Кбайт шляхом підключення зовнішніх пристроїв.Як приклад на рис. 7.1.8 показано сторінкову організацію зовнішньої пам'яті даних ВПД ємністю 2К байт з використанням команд типу MOVX @ Rm(m = 0; 1). При цьому порт Р0 працює як мультиплексована шина адресу/дані, три лінії порту P2 використовуються для адресації сторінки зовнішнього ОЗП, а решта п'яти ліній можуть бути задіяні як лінії введення-виведення.
На рис. 7.1.9 наведено часові діаграми циклів читання та запису при роботі МК із зовнішнім ОЗУ. На діаграмах зазначено:

● РСН – старший байт лічильника команд PC;

● DPL, DPH - молодший та старший байти регістру покажчика даних DPTR, який використовується як регістр для непрямої адресації в командах MOVX @DPTR,A та MOVX A,@DPTR;

● P2 SFR - засувки порту P2;

● Rm (m = 0, 1) - регістри, що використовуються в командах MOVX @Rm, A та MOVX A, @Rm як регістри непрямої адреси;

● Z – високоомний стан;

● D - період, протягом якого дані з порту Р0 вводяться в мікроконтролер. Пам'ять програм. Пам'ять програм призначена для зберігання програм, має свій (окремо від пам'яті даних) адресний простір і доступна лише читання. До її складу входить дешифратор Дш та ПЗП (рис. 7.1.10). Для адресації пам'яті програм використовується 16-розрядний лічильник РС, тому його максимальна ємність становить 64К байта. Внутрішня пам'ять програм складається з ПЗУ ємністю 4К байт та 12-розрядного дешифратора. Зовнішня пам'ять підключається за схемою рис. 7.1.11. Якщо на висновок EA МК подається 0 В (як показано на рис. 7.1.11), внутрішня пам'ять програм відключається. Усі звернення до пам'яті розпочинаються з адреси 0000h. При підключенні виведення ¯ЕА до джерела живлення звернення до внутрішньої пам'яті програм за адресами 0000h–FFFFh та до зовнішньої пам'яті програм за адресами 0FFFh–FFFFh відбувається автоматично.

Для читання зовнішньої пам'яті програм МК виробляється сигнал PSEN. При роботі з внутрішнім пам'яттю сигнал читання не використовується. При зверненнях до зовнішньої пам'яті програм завжди формується 16-розрядна адреса. Молодший байт адреси передається через порт Р0 у першій половині машинного циклу і фіксується по зрізу строба АLЕ у регістрі У другій половині циклу порт Р0 використовується для введення в МК байта даних із зовнішньої пам'яті.

Старший байт адреси передається через порт P2 протягом усього часу звернення до пам'яті.

Тимчасові діаграми циклів читання та запису під час роботи МК із зовнішнім ОЗУ наведено на рис. 7.1.12.
На діаграмах зазначено:

● PCL OUT – видача молодшого байта лічильника команд PC;

● РСН OUT – видача старшого байта лічильника команд PC;

● DPH - старший байт регістру покажчика даних DPTR, який використовується як регістр для непрямої адресації в командах MOVX @DPTR,A та MOVX A,@DPTR;

● P2 SFR - засувки порту P2;

● INS IN – введення байта інструкції (команди) з пам'яті програм;

● ADDR OUT - видача молодшого байта адреси зовнішньої пам'яті даних з регістрів Rm (m = 0, 1) або з регістра DPL (молодшого регістра DPTR). Порти введення-виводу. Призначення портів.Порти Р0, P1, P2, Р3 призначенідля обміну інформацією між МК та зовнішніми пристроями, A також для виконання наступних функцій:

● через порт Р0 виводиться молодший байт адреси А7…A0; виводиться з МК та вводиться в МК байт даних при роботі із зовнішньою пам'яттю програм та зовнішньою пам'яттю даних (з поділом у часі);

● через порт P2 виводиться старший байт адреси A15…А8 під час роботи із зовнішньою пам'яттю програм та зовнішньої пам'яттю даних (тільки під час використання команд MOVX A,@DPTR і MOVX @DPTR,A);

● лінії порту Р3 можуть бути задіяні на виконання альтернативних функцій, якщо фіксатор-засувку цієї лінії занесена 1, в іншому випадку на виведенні лінії фіксується 0. Альтернативні функції висновків порту P3 наведені в табл. 7.1.3.

Схемні особливості портів

На рис. 7.1.13 показані схеми для одного каналу кожного з портів МК, що включає:

● засувку для фіксації біта даних, що приймається;

● вихідний підсилювальний каскад(драйвер);

● вузол зв'язки звихідним каскадом (крім P2);

● ланцюг для передачі біта даних з боку виведення порту, що складається з буферів В2 та В3 (для порту Р4). Засувкою служить D-тригер, що тактується внутрішнім сигналом «Запис у клямку». Біт даних з прямого виходу D-тригера може бути прочитаний програмно через буфер В1 сигналом «Читання засувки» на лінію внутрішньої шини даних (ШД) МК.

Вихідний каскадпорту Р0 являє собою інвертор, особливості якого проявляються в тому, що транзистор навантаження VT2 відкривається тільки при зверненнях до зовнішньої пам'яті (при передачі через порт адреси і даних). У всіх інших режимах транзистор навантаження закритий. Тому для використання Р0 (рис. 7.1.13, а) як вихідний порт загального призначення до його висновків необхідно підключити зовнішні навантажувальні резистори. При записі 1 у клямку порту інверторний транзистор VT1 замикається і зовнішній висновок порту Р0.Х переводиться у високоомний стан. У цьому режимі виведення порту Р0.Х може бути входом. Якщо порт Р0 використовується як порт введення/виводу загального призначення, кожен із його висновків Р0.Х може незалежно від інших працювати як вхід або як вихід. Вихідні каскадипортів P1, P2, Р3 (рис. 7.1.13, б, в, г)виконані за схемами інверторів з внутрішнім резистором навантаження, в якості якого використаний транзистор VT2.

Для зменшення часу перемикання при переході виводів портів зі стану 0 до стану 1 паралельно транзистору навантаження VT2 введений додатковий транзистор VT3. Транзистор VT3 за допомогою елементів у ланцюгу затвора відмикається на час, що дорівнює двом періодам коливань задає кварцового генератора (протягом фаз S1P1, S2P2 машинного циклу). Вихідні каскадипортів Р0, P2 (рис. 7.1.13, A, в) за допомогою мультиплексора MX можуть бути підключені або до засувок, або до внутрішніх шин «Адреса/дані» і «Адреса». Вихідний каскад порту P1 (рис. 7.1.13, 6) постійно підключений до клямки.

Якщо висновок порту Р3 є виходом і його клямка містить 1, його вихідним каскадом управляє апаратно внутрішній сигнал «Альтернативна функція виходу», який би виконання відповідної альтернативної функції, тобто. на зовнішньому виведенні формується один із сигналів WR, RD або RxD. Якщо ж виведення порту задіяний на вхід, то альтернативний сигнал (TxD, INT0, INT1, Т0, Т1), що надходить на нього, передається на внутрішню лінію «Альтернативна функція входу».

Режим запису порту.

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

Режим читання порту

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

У другому випадку реалізується так званий режим "Читання-Модифікація-Запис", в якому команда зчитує сигнал стану засувки, при необхідності модифікує його і потім записує назад у клямку. Режим "Читання-Модифікація-Запис" реалізується при виконанні наступних команд: ANL, ORL, XRL, JBC; CPL; INC; DEC; DJNC; MOV PX, Y; CLR PX.Y; SETB PX,Y.

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

Архітектура сімейства MCS-51 значною мірою визначається її призначенням - побудова компактнихі дешевихцифрові пристрої. Усі функції мікроЕОМ реалізуються з допомогою єдиної мікросхеми. До складу сімейства MCS-51 входить ціла низка мікросхем від найпростіших мікроконтролерів до досить складних. Мікроконтролери сімейства MCS-51 дозволяють виконувати завдання управління різними пристроями, так і реалізовувати окремі вузли аналогової схеми. Усі мікросхеми цього сімейства працюють з однією і тією ж системою команд, більшість з них виконується в однакових корпусах з цоколівкою, що збігається(Нумерація ніжок для корпусу). Це дозволяє використовувати для розробленого пристрою мікросхеми різних фірм-виробників (таких як Intel, Dallas, Atmel, Philips тощо) без переробки принципової схеми пристрою та програми.

Малюнок 1. Структурна схема контролера К1830ВЕ751

Структурна схема контролера представлена ​​малюнку 1. і з наступних основних функціональних вузлів: блоку управління, арифметико-логического устрою, блоку таймерів/лічильників, блоку послідовного інтерфейсу і переривань, програмного лічильника, пам'яті даних, і пам'яті програм. Двосторонній обмін здійснюється за допомогою внутрішньої 8-розрядної магістралі даних. Розглянемо докладніше призначення кожного блоку. За такою схемою збудовано практично всі представники сімейства MCS-51. Різні мікросхеми цього сімейства відрізняються лише регістрами спеціального призначення (зокрема і кількістю портів). Система команд всіх контролерівсімейства MCS-51 містить 111 базових команд з форматом 1, 2 або 3 байти і не змінюється при переході від однієї мікросхеми до іншої. Це забезпечує чудову переносимість програм із однієї мікросхеми на іншу.

Блок управління та синхронізації

Блок управління та синхронізації (Timing and Control) призначений для вироблення синхронізуючих та керуючих сигналів, що забезпечують координацію спільної роботи блоків ОЕОМ у всіх допустимих режимах її роботи. До складу блоку управління входять:

  • пристрій формування часових інтервалів,
  • логіка введення-виведення,
  • регістр команд,
  • регістр управління споживанням електроенергії,
  • дешифратор команд, логіка управління ЕОМ.

Пристрій формування часових інтервалівпризначено для формування та видачі внутрішніх синхросигналів фаз, тактів та циклів. Кількість машинних циклів визначає тривалість виконання команд. Практично всі команди ОЕОМ виконуються за один або два машинні цикли, крім команд множення та поділу, тривалість виконання яких становить чотири машинні цикли. Позначимо частоту генератора, що задає через F р. Тоді тривалість машинного циклу дорівнює 12/F г або становить 12 періодів сигналу генератора, що задає. Логіка введення - виводу призначена для прийому та видачі сигналів, що забезпечують обмін інформацією із зовнішніми пристроями через порти введення виведення Р0-Р3.

Реєстр командпризначений для запису та зберігання 8-ми розрядного коду операції команди, що виконується. Код операції, за допомогою команд та логіки управління ЕОМ, перетворюється на мікропрограму виконання команди.

Реєстр керування споживанням (PCON) дозволяє зупиняти роботу мікроконтролера для зменшення споживання електроенергії та зменшення рівня перешкод від мікроконтролера. Ще більшого зменшення споживання електроенергії і зменшення перешкод можна досягти, зупинивши генератор мікроконтролера, що задає. Цього можна досягти за допомогою перемикання біт регістру керування споживанням PCON. Для варіанта виготовлення за технологією n-МОП (серія 1816 або іноземних мікросхем, у назві яких у середині відсутня буква "c") регістр керування споживанням PCON містить тільки один біт, що керує швидкістю передачі послідовного порту SMOD, а біти керування споживанням електроенергією відсутні.

Разом із статтею "Архітектура мікроконтролерів MCS-51" читають:


http://сайт/MCS51/tablms.php


http://сайт/MCS51/SysInstr.php


http://сайт/MCS51/port.php

Фірма Intel є родоначальницею архітектури сімейства MCS-51, яке отримало свою назву від першого представника цього сімейства - мікроконтролера 8051, випущеного в 1980 на базі технології n-МОП. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої чи внутрішньої програмної пам'яті та прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку. З точки зору технології мікроконтролер 8051 був для свого часу дуже складним виробом - в кристалі було використано 128 тис. транзисторів, що в 4 рази перевищувало кількість транзисторів у 16-розрядному мікропроцесорі 8086. Зазначений мікроконтролер залишається ядром сімейства MCS-51 і по 100%.

Основними елементами базової архітектури сімейства (архітектури мікроконтролера 8051) є:

8-розрядне АЛУ;

4 банки регістрів, по 8 у кожному;

Внутрішня (резидентна) пам'ять програм 4 Кбайт, що має тип ROM або EPROM (8751);

Внутрішня (резидентна) пам'ять даних 128 байт;

21 регістр спеціальних функцій;

Бульовий процесор;

Два 16-розрядні таймери/лічильники;

Контролер послідовного порту (UART);

Контролер обробки переривань із двома рівнями пріоритетів;

Чотири 8-розрядні порти вводу/виводу, два з яких використовуються як шина адреси/даних для доступу до зовнішньої пам'яті програм і даних;

Вбудований тактовий генератор.

Потім був випущений мікроконтролер 8052, який відрізнявся збільшеним обсягом резидентної пам'яті програм і даних, введеним третім таймером і розширеним контролером переривань.

p align="justify"> Наступним принциповим кроком у розвитку MCS-51 став переклад технології виготовлення на КМОП (модифікація 8xC51). Це дозволило реалізувати режими Idl (холостий хід) та Power Down (знижене споживання), що забезпечують різке зниження енергоспоживання кристала та відкрили дорогу до застосування мікроконтролера в енергозалежних додатках, наприклад, в автономних приладах з батарейним живленням.

І останнім важливим етапом розвитку МК 8051 фірмою Intel став випуск мікроконтролерів 8xC51FA/FB/FC та 8xC51RA/RB/RC, які для стислості часто позначаються як 8xC51Fx та 8xC51Rx. Головною відмінністю цієї групи кристалів є наявність у них спеціалізованого таймера/лічильника (РСА). Крім того, мікроконтролери 8xC51Rx додатково містять сторожовий таймер (WDT). Розглянемо архітектуру та функціональні можливості PCA докладніше.

До складу РСА входять:

16-розрядний таймер/лічильник;

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

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

16-бітова вибірка значення таймера за позитивним фронтом зовнішнього сигналу;

16-бітова вибірка значення таймера за негативним фронтом зовнішнього сигналу;

16-бітова вибірка значення таймера за будь-яким фронтом зовнішнього сигналу;

16-бітовий програмований таймер;

16-бітове пристрій швидкісного виведення;

8-бітовий ШІМ.

Виконання всіх перерахованих функцій відбувається у РСА на апаратному рівні і не завантажує центральний процесор. Зазначене дозволяє підвищити загальну пропускну здатність, підвищити точність вимірювань та обробки сигналів та знизити час реакції мікроконтролера на зовнішні події, що особливо важливо для систем реального часу. Реалізований у 8xC51Fx (8xC51Rx) РСА виявився настільки

Позначення

Макс. частота (МГц)

ROM/EPROM (байт)

лічильники

Вдалим, що архітектура цих мікроконтролерів стала промисловим стандартом, а сам РСА багаторазово відтворювався в різних модифікаціях МК 8051.

Деякі характеристики ряду мікроконтролерів MCS-51, що випускаються фірмою Intel, наведено у табл.1.1.

Спочатку найбільш "вузькими" місцями архітектури MCS-51 були 8-розрядне АЛУ на базі акумулятора і відносно повільне виконання команд (для виконання найшвидших команд потрібно 12 пе-

Таблиця 1.1

введення/виводу

АЦП, входи x розряди

периферія,

особливості

U піт. (В)

Низьковольтний варіант

4 рівні IRQ, clock out

4 рівні IRQ, clock out

Низьковольтний варіант 8xC51Fx

4 рівні IRQ, clock out

4 рівні IRQ, clock out

4 рівні IRQ, clock out

ріодів тактової частоти (частоти синхронізації МК). Це обмежувало застосування мікроконтролерів сімейства у додатках, що вимагають підвищеної швидкодії та складних обчислень (16- та 32-бітових). Нагальним стало питання принципової модернізації архітектури MCS-51. Проблема модернізації ускладнювалася тим, що до початку 90-х років вже було створено масу напрацювань у галузі програмного та апаратного забезпечення сімейства MCS-51, у зв'язку з чим одним із основних завдань проектування нової архітектури була реалізація апаратної та програмної сумісності з розробками на базі MCS -51.

Для вирішення зазначеного завдання було створено спільну групу з фахівців компаній Intel і Philips, але пізніше шляхи цих двох фірм розійшлися. У результаті в 1995 році з'явилося два істотно відмінні сімейства: MCS-251/151 у Intel і MCS-51XA у Philips (див. підрозділ 1.2).

Основні характеристики архітектури MCS-251:

24-розрядний лінійний адресний простір, що забезпечує адресацію до 16 Мбайт пам'яті;

Реєстрова архітектура, що допускає звернення до регістрів як до байтів, слів та подвійних слів;

Сторінковий режим адресації для прискорення вибірки команд із зовнішньої програмної пам'яті;

Черга інструкцій;

Розширений набір команд, що включає 16-бітові арифметичні та логічні операції;

Розширений адресний простір стеку (до 64 Кбайт);

Виконання найшвидшої команди за 2 такти.

Система команд MCS-251 включає два набори інструкцій – перший набір є копією системи команд MCS-51, а другий складається з розширених інструкцій, що реалізують переваги архітектури MCS-251. Перед використанням мікроконтролера його потрібно налаштувати, тобто. за допомогою програматора "пропалити" конфігураційні біти, що визначають, який із наборів інструкцій стане активним після включення живлення. Якщо встановити перший набір інструкцій, то в цьому випадку МК сімейства MCS-251 буде сумісний з MCS-51 лише на рівні двійкового коду. Такий режим називається Binary Mode. Якщо ж спочатку встановити набір розширених інструкцій (режим Source Mode), тоді програми, написані для MCS-51, вимагатимуть перекомпіляції на крос-засобах для MCS-251. Режим Source Mode дозволяє з максимальною ефективністю використовувати архітектуру MCS-251 та досягти найбільшої швидкодії.

Для користувачів, орієнтованих застосування мікроконтролерів MCS-251 як механічної заміни MCS-51, фірма Intel випускає мікроконтролери MCS-151, вже запрограмовані у стан Binary Mode.

Деякі характеристики ряду мікроконтролерів MCS-251/151 наведено у табл.1.1.

Нині Intel, спрямована ринку Pentium-процесорів, згортає виробництво кристалів MCS-51. В цілому для конкретного розробника це може залишитися і непоміченим, якщо він не використовує мікроконтролери 8xC51GB і 80C152Jx, які не мають своїх точних аналогів серед виробів інших фірм. Що ж до решти мікроконтролерів сімейства MCS-51, то всі вони багаторазово розтиражовані іншими компаніями.

Міністерство загальної та професійної освіти Російської Федерації Новосибірський Державний Технічний Університет В.М. Вепрік, В.А. Афанасьєв, А.І. Дружинін, А.А. Земсков, А.Р. Ісаєв, О.В. Малявко МІКРОКОНТРОЛЕРИ СІМЕЙСТВА MCS-51 Навчальний посібник з курсів "Мікропроцесорні системи" та "Проектування мікропроцесорних систем" для студентів старших курсів факультету автоматики та обчислювальної техніки всіх форм навчання Новосибірськ 1997 В.М. Вепрік, В.А. Афанасьєв, А.І. Дружинін, А.А. Земсков, А.Р. Ісаєв, О.В. Малявка. Мікроконтролери сімейства MCS-51: Навчальний посібник. - Новосибірськ. Пропонований до Вашої уваги навчальний посібник містить загальний опис архітектури, функціональних можливостей та системи команд сімейства однокристальних мікроконтролерів (Embedded Microcontrollers) MCS-51, вироблених фірмою INTEL. У другій частині посібника наводиться опис навчального мікропроцесорного контролера УМПК-51, запропонованого студентам як об'єкт дослідження під час виконання циклу лабораторних робіт. Матеріал посібника може використовуватися при курсовому та дипломному проектуванні, а також може бути корисним для інженерів – схемотехніків, які займаються розробкою та експлуатацією електронної апаратури. Автори висловлюють глибоку вдячність АТЗТ "Нові технології" - офіційному дистриб'ютору фірми INTEL за надання матеріалів, на основі яких виконано цю роботу. Табл.15, іл.25, список літ. 12 назв. Рецензенти: О.Д. Баран, Г.Г. Матушкін. Робота підготовлена ​​на кафедрі обчислювальної техніки Новосибірський державний технічний університет 2 ВСТУП. Сімейство 8-розрядних однокристальних мікроконтролерів MCS-51 з'явилося на світовому ринку на початку вісімдесятих років. Перші модифікації кристалів (близько 7) були виконані за високоякісною n-МОП (HMOS) технології та були функціонально завершеними однокристальними мікроЕОМ гарвардської архітектури, один з основних принципів якої полягає у логічному розділенні адресних просторів пам'яті програм та даних. З розвитком напівпровідникової технології наступні версії мікросхем MCS-51 стали виготовляти за більш досконалою та низькоспоживаючою КМОП (CHMOS) технологією (в активному режимі споживання кристалів було доведено до 10 50 мА). Система команд MCS-51, орієнтована на реалізацію різних цифрових алгоритмів управління, при збереженні певної зовнішньої схожості з системою команд попереднього сімейства MCS-48, якісно розширилася, в ній з'явилися принципові нововведення: бітово-орієнтовані операції та бітові поля, що адресуються в пам'яті даних. дало можливість говорити про реалізацію на кристалі бітового процесора; реалізовано виконання команд множення, поділу та віднімання; удосконалено роботу зі стеком; розширено групу команд передачі управління; Система команд стала виглядати симетричнішою, тобто менш залежною від пересилань даних через акумулятор. Функціональні можливості вбудованих периферійних пристроїв також розширилися за рахунок запровадження: двох 16-розрядних таймерів-лічильників; апаратного послідовного дуплексного порту; дворівневої системи переривань; чотирьох 8-бітових портів вводу-виводу. p align="justify"> Принципові зміни в структурі тимчасового циклу роботи процесора призвели до прискорення роботи із зовнішньою пам'яттю програм і даних, а також реакцій на зовнішні та внутрішні переривання. Сумарний розмір адресного простору зовнішньої пам'яті програм та даних збільшився до 128 Кбайт. 16-розрядні регістри лічильника команд (Program Counter) та покажчика даних (Data Pointer) дозволили безпосередньо звертатися до всього діапазону адрес, що дало розробникам можливість реалізації алгоритмів швидкої обробки великих масивів даних. Всі програмно-доступні вузли мікроконтролера були зведені в спеціальну область пам'яті даних (Special Function Register), що дозволило звертатися до них майже так само, як і до звичайних осередків резидентного ОЗУ. У пізніших модифікаціях кристалів удосконалення йшло шляхом нарощування додаткових функціональних можливостей зі збереженням повної програмної сумісності з ранніми версіями. Особливістю останніх модифікацій мікроконтролерів сімейства MCS-51 є: повністю статичний дизайн; 3- та 5-вольтові версії кристалів; широкий спектр вбудованих периферійних пристроїв; максимальна тактова частота – 24 мГц; для окремих груп кристалів – 33 мГц. В даний час до складу MCS-51 входить близько 60 версій кристалів, крім того, є і доступна докладна фірмова документація (на жаль, поки що мало перекладена російською мовою). Для підготовки математичного забезпечення мікроконтролерів MCS-51 використовуються в основному мови "ASM-51", "С", для яких існують ряд компіляторів, що досить добре зарекомендували себе, бібліотек стандартних підпрограм і програмних емуляторів, що виробляються різними зарубіжними та вітчизняними фірмами. 3 Незважаючи на достатню "древність" сімейства (понад 15 років) та появу на світовому ринку за останні роки однокристальних мікроконтролерів більшої продуктивності та вдосконаленої архітектури - MCS-51, MCS-251, MCS-96, контролери MCS-51 ще досить довго будуть широко використовуватись у порівняно простих вбудованих системах управління. 4 1. СИСТЕМА ОЗНАЧЕНЬ КОМПОНЕНТІВ ФІРМИ INTEL І ФУНКЦІОНАЛЬНИЙ СКЛАД СІМЕЙСТВА MCS-51 Для маркування мікросхем фірмою INTEL застосовується система позначень з декількох полів: 1 2 3 4 Х ХХ ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ температурний діапазон мікросхеми: А (Automotive) , автомобільне виконання для розширеного температурного діапазону (-40/+125 С) М (Military), виконання за військовими стандартами (-55/+125 С) Q або С (Commercial), "комерційний" температурний діапазон (0/+70 С ) з (160 8)-годинним динамічним термотренуванням; L або Е (Extended), "розширений" температурний діапазон (-40/+85 С) з (160 8)- годинним динамічним термотренуванням; Т (Extended), "розширений" температурний діапазон (-40/85 С) без термотренування; I (Industrial), виконання за промисловими стандартами. Друге поле містить одно-або дволітерний префікс, що вказує на варіант виконання корпусу мікросхеми (Package Type). Різних типів корпусів мікросхем на сьогоднішній день кілька десятків, тому як приклад наведемо лише деякі позначення: A Ceramic Pin Grid Array, (PGA); C Ceramic Dual In-Line Package (CDIP); K Ceramic Quad Flatpack Package (QFP); KD Plastic Quad Flatpack Package, Fine Pitch, Die Down, (PQFP); KU Plastic Quad Flatpack Package, Fine Pitch, Die Up, (PQFP); N Plastic Leaded Chip Carrier, (PLCC); P Plastic Dual In-Line Package (PDIP); SM Single In-Line Leadless Memory Module, (SIMM); U Plastic Dual In-Line Package, Shrink Dip, (PDIPS); Z Zigzag In-Line Package (ZIP). Третє поле може містити до 15 цифрових та буквених символів, що вказують на тип конкретного пристрою, розташованого на кристалі. Четверте поле може включати до шести цифрових та буквених символів, що відображають різні особливості та варіанти виконання мікросхем. Додаткову інформацію щодо типів корпусів та їх конструктивного виконання можна знайти в книзі: Packaging Order Number 240800. Що стосується описуваних мікроконтролерів сімейства MCS-51, перший символ третього поля традиційно (для фірми Intel) дорівнює "8". Другий символ третього поля зазвичай вказує на тип вбудованого ПЗП: 0 масочний ПЗП програм; кристал без ПЗП (для пізніх версій кристалів); 1 масочне ПЗП програм (Standard ROM Code, Firmware); 3 масочне ПЗП (для пізніх версій кристалів), (Customizable ROM Code); 7 УФРПЗУ або одноразово-програмоване ПЗП (EPROM or OTP ROM); 8 ЕСППЗУ (Flash - пам'ять на кристалі) Далі може бути буква, що вказує на технологічні особливості виготовлення: відсутність букви технологія HMOS, живлення 5В; З технологія СHMOS, живлення 5В; L технологія СHMOS, живлення 3В; 5 Наступними символами третього поля для мікроконтролерів сімейства MCS-51 є номери (наприклад, 31,32,51,54,58,152) та від однієї до чотирьох букв, що відображають функціональні особливості кристалів (наприклад, обсяг ПЗП, специфіку групи кристалів, наявність системи захисту пам'яті програм від несанкціонованого доступу, можливість використання досконалішого алгоритму програмування "Quick Pulse" тощо). В оригінальній технічній документації фірми Intel всі мікроконтролери сімейства MCS-51 скомпоновані за групами ("Product Line"), кожна з яких об'єднує найближчі за своїми функціональними можливостями та електричними параметрами версії кристалів. Оскільки найменування мікросхем однієї групи розрізняються незначно, то для позначення кожної окремої групи застосовується узагальнена символіка, утворена з маркування конкретних мікросхем, шляхом заміни символів, що розрізняються, на "Х". Таким чином, можна виділити такі групи мікроконтролерів. 1. Група 8Х5Х (8051 Product Line та 8052 Product Line): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 8752В. 2. Група 8ХС51 (80С51 Product Line): 80С31ВН, 80С51ВН, 87С51. 3. Група 8ХС5Х (8ХС52/54/58 Product Line): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Група 8ХС51FX (8XC51FA/FB/FC Product Line): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Група 8ХL5X (8XL52/54/58 Product Line): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Група 8XL51FX (8XL51FA/FB/FC Product Line): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Група 8ХС51RX (8XC51RA/RB/RC Product Line): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Група 8ХC51GB (8XC51GX Product Line): 80C51GB, 83C51GB, 87C51GB. 9. Група 8ХС152JX (8XC152 Product Line): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Група 8XC51SL (8XC51SL Product Line): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 85C5 83C51SL-AL, 87C51SL-AL. Перша група мікроконтролерів включає молодші моделі сімейства, виконані за n-МОП технології і не рекомендовані до використання в нових розробках, всі інші групи виконані за сучасною КМОП технології. Мікросхеми другої, третьої та четвертої груп є на сьогоднішній день класичними представниками сімейства MCS-51. У п'яту та шосту групи входять 3-вольтові версії кристалів (Low-Voltage). Кристали сьомої групи оснащені розширеним ОЗП (Expanded RAM), обсяг якого дорівнює 512 байт. Мікросхеми восьмої, дев'ятої та десятої груп є спеціалізованими по застосуванню мікроконтролери (Application Specific). Багато сучасних програм вимагають високопродуктивних керуючих мікроконтролерів, які використовують розширені можливості адресації, реєстрову архітектуру, великий обсяг внутрішнього ОЗП і стека, а також ефективно підтримують програмування мовою високого рівня. До таких мікроконтролерів відносяться мікроконтролери нової архітектури (New Architecture) сімейств MCS-5 і MCS-251, виробництво яких компанія Intel приступила в 1995 році. Функціональний склад та ключові особливості мікроконтролера MCS-51/MCS-251 наведено у додатку. 6 2. ОСНОВНІ ХАРАКТЕРИСТИКИ БАЗОВОЇ МОДЕЛІ СІМЕЙСТВА МІКРОКОНТРОЛЕРІВ MCS-51. Базовою моделлю сімейства мікроконтролерів MCS-51 та основою для всіх наступних модифікацій є мікроконтролер I-8051. Його основні характеристики: восьмирозрядний ЦП, оптимізований для реалізації функцій управління; вбудований тактовий генератор; адресний простір пам'яті програм – 64 К; адресний простір пам'яті даних – 64 К; внутрішня пам'ять програм – 4 К; внутрішня пам'ять даних – 128 байт; додаткові можливості для виконання операцій булевої алгебри (побітові операції); 32 двонаправлені та індивідуально адресовані лінії введення/виводу; 2 шістнадцятирозрядні багатофункціональні таймери/лічильники; повнодуплексний асинхронний приймач; векторна система переривань з двома рівнями пріоритету та шістьма джерелами подій. Структурну схему I-8051 показано на рис.1, призначення висновків мікросхеми - на рис.2. 128 bytes T/C 0 counter 4K ROM control RAM T/C 1 inputs CPU BUS 4 I/O Serial OSC control Ports Port P0 P1 P2 P3 T D R D Address/Data Рис.1. Структурна схема I-8051 Вся серія MCS-51 має гарвардську архітектуру, тобто окремі простори адреси пам'яті програм і даних. Організація пам'яті зображено на рис.3. Об'єм внутрішньої (резидентної) пам'яті програм (ROM, EPROM або OTP ROM), що розташовується на кристалі, залежно від типу мікросхеми може становити 0 (ROMless), 4К (базовий кристал), 8К, 16К або 32К. За потреби користувач може розширювати пам'ять програм встановленням зовнішнього ПЗП. Доступ до внутрішнього або зовнішнього ПЗП визначається значенням сигналу на виведенні ЕА (External Access): EA = Vcc (напруга живлення) – доступ до внутрішнього ПЗП; EA = Vss (потенціал землі) – доступ до зовнішнього ПЗУ. Для кристалів без ПЗП (ROMless) висновок ЕА має бути постійно підключений до Vss. Строб читання зовнішнього ПЗП - PS EN (Program Store Enable) генерується при зверненні до зовнішньої пам'яті програм і є неактивним під час звернення до ПЗП, розташованого на кристалі. 7 Область нижніх адрес пам'яті програм використовується системою переривань, архітектура мікросхеми 8051 забезпечує підтримку п'яти джерел переривань: двох зовнішніх переривань; двох переривань від таймерів; переривання від послідовного порту. P1.0 1 40 Vcc P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) RESET 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA/Vpp (TD) P3.1 11 30 ALE/ PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) Vss 20 21 P2.0 (A8) Рис.2. Призначення висновків I-8051 Пам'ять програм (Читання) Пам'ять даних (Читання/Запис) FFFFH Зовнішнє ПЗУ FFFFH Зовнішня @DPTR RD пам'ять PSEN WR даних @PC MOVC EA=0 Внутрішня пам'ять @DPTR даних @PC Зовнішнє Внутрішнє FFH upper 1 ПЗП 80H EA=0 0000H EA=1 lower 128 00H 0000H PSEN Рис.3. Організація пам'яті сімейства MCS-51 8 На рис.4 зображено карту нижньої області програмної пам'яті. ROM Пам'ять програм 0033Н 002BН Serial Port 0023Н Вектор Timer1 001BН переривань EINT1 0013Н Timer0 000BH EINT0 0003Н Стартова адреса 0000H (Reset) Рис.4. Програмна пам'ять Адреси векторів переривань розташовані з інтервалом 8 байт: - 0003Н зовнішнє переривання 0 (External Interrupt 0) - висновок IN T 0 ; - 000BН переривання від таймера 0 (прапором переповнення таймера - T F 0); - 0013Н зовнішнє переривання 1 (External Interrupt 1) - висновок IN T 1; - 001BH переривання від таймера 1 (прапором переповнення таймера - T F 1); - 0023H переривання від послідовного порту (Serial Interrupt = Receive Interrupt or Transmit Interrupt); і так далі. Пам'ять даних відокремлена від пам'яті програм. У цій галузі можлива адресація 64К зовнішньої ОЗП. При зверненні до зовнішньої пам'яті даних ЦП мікроконтролера генерує відповідні сигнали читання (RD) або запису (WR), взаємодія з внутрішньою пам'яттю даних здійснюється на командному рівні, при цьому сигнали RD і WR не виробляються. Зовнішня пам'ять програм і зовнішня пам'ять даних можуть комбінуватися шляхом поєднання сигналів R D і S EN за схемою "логічного І" для отримання строба зовнішньої пам'яті (програм/даних). Нижні 128 байт внутрішньої пам'яті даних (lower 128) присутні на всіх кристалах MCS-51 та показані на рис.5. Перші 32 байти є 4 банки (Register Bank) по 8 регістрів (R7...R0). Регістри R0 і R1 в будь-якому з банків можуть використовуватися як регістри непрямої адреси. Наступні за реєстровими банками 16 байт утворюють блок побитно-адресованого простору. Набір інструкцій MCS-51 містить широкий вибір операцій над бітами, а 128 біт в цьому блоці адресуються прямо і мають значення від 00Н до 7FH. Всі байти в нижній 128-байтній половині пам'яті можуть адресуватися як прямо, так і опосередковано. Верхня 128 байтна половина пам'яті ОЗП (upper 128) у мікросхемі I-8051 відсутня, але є у версіях кристалів з 256 байтами ОЗП. У цьому випадку область "Upper 128" доступна лише при непрямій адресації. Область SFR (Special Function Register) доступна лише за прямої адресації. Розміщення регістрів спеціальних функцій у просторі SFR показано на рис.6. Вони включають регістри портів, таймери, засоби управління периферією і так далі. 9 7FH Побайтно-адресована область ОЗУ 30H (direct, indirect) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 7H 10 20 H 0EH 0DH 0CH 0BH 0AH 09H 08H 20H 07H 06H 05H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP після RESET 00H RB0(R7+R0) Мал.5. Нижні 128 байт внутрішньої ОЗУ. побітова адресація 8 байт F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H OD TL0 TL1 TH0 TH1 8FH 80H P0 SP DPL DPH PCO 87H N 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F Мал.6. Розміщення регістрів спеціальних функцій у просторі SFR. Для 16 адрес у просторі SFR є можливість як байтової, так і бітової адресації. Для побітно-адресованих регістрів шістнадцяткова адреса закінчується на "0Н" або на "8Н". Бітові адреси у цій галузі мають значення від 80Н до FFH. Вся серія кристалів сімейства MCS-51 має базовий набір SFR, як і в мікросхемі I-8051, розташований за тими самими адресами. Однак у кристалах, що являють собою подальший розвиток сімейства в область SFR, додаються нові регістри для розширення 10

 

 

Це цікаво: