Програмування mcs 51. Мікроконтролери MCS-51. Структурна схема, АЛУ, пам'ять даних. Акумулятор та регістри загального призначення

22.04.2021 Безпека

В даний час різними фірмами випускається безліч модифікацій та аналогів цього сімейства, як фірмою Intel, так і іншими виробниками, тактова частота та обсяг пам'яті зросли в десятки разів і продовжують підвищуватися. Доповнюється і набір вбудованих у БІС модулів, у велику кількість сучасних моделей вбудований рези- дентний швидкодіючий АЦП, що має до 12, а зараз може бути й більше розрядів. Але в основі сімейства МСS51 БІС 8051, 80С51, 8751, 87С51, 8031, 80С31 фірми Intel, перші зразки яких були випущені в 1980 році.

Мікроконтролери сімейства MCS51 виконані за високоякісною n-МОП технологією (серія 8ХХХ, аналог - серія 1816 в Росії та Білорусії) та k-МОП технології (серія 8ХСХХ, аналог - серія 1830). Другий символ, наступний за 8, означає: 0 – РПЗУ на кристалі немає, 7 – РПЗУ об'ємом 4К з ультрафіолетовим стиранням. Третій символ: 3 – ПЗУ накристаленет, 5 – якщо нетРПЗУ, то на кристалі масочне ПЗУ.

І так 80С51 - БІС за k-МОП технології з масковим ПЗУ на кристалі, 8031 ​​- БІС n-МОП без пам'яті програм (ПЗУ, РПЗУ) на кристалі, 8751 - БІС n-МОП з резидентним (розміщеним на кристалі) РПЗУ з ультрафіолетовим стиранням. Ми далі і розглядатимемо БІС 8751, роблячи, якщо потрібно застереження про відмінності інших схем, наводячи ті параметри, які були опубліковані для перших серійних БІС. Додаткову інформацію про всі сучасні модифікації Ви, при необхідності, можете знайти у фірмових довідниках та технічній документації.

А. Загальні характеристики та призначення висновків

Основу сімейства MCS51 складає п'ять модифікацій МК (мають ідентичні основні характеристики), основна відмінність між якими полягає у реалізації пам'яті програм та потужності споживання (див. таблицю 3.1). Мікроконтолер восьмирозрядний, тобто. має команди обробки восьмирозрядних слів, має Гарвардську архітектуру, тактова частота у базових зразків сімейства складає 12 МГц.

Таблиця 3.1.

Мікро-схеми

Внутрішня пам'ять програм, байт

Тип пам'яті програм

Внутрішня пам'ять даних, байт

Тактова частота, МГц

Струм споживання, мА

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

ріодичного підстроювання.

МК 8031 ​​та 80С31 не містять вбудованої пам'яті програм. Вони, як і описані раніше модифікації, можуть використовувати до 64 Кбайт зовнішньої пам'яті програм і ефективно використовуватися в системах, що вимагають істотно більшого за обсягом (ніж 4 Кбайт на кристалі) ПЗП пам'яті програм.

Кожен МК сімейства містить резидентну пам'ять даних ємністю 128 байт із можливістю розширення загального обсягу оперативної пам'яті даних до 64 Кбайт за рахунок використання зовнішніх ІС ОЗП.

    центральний восьмирозрядний процесор;

    пам'ять програм обсягом 4 Кбайт (тільки 8751 та 87С51);

    пам'ять даних обсягом 128 байт;

    чотири восьмирозрядні програмовані порти вводу-виводу;

    два 16-бітових багаторежимних таймера/лічильника;

    систему автовекторних переривань з п'ятьма векторами та двома програмно керованими рівнями пріоритетів;

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

    генератор тактовий.

Система команд МК містить 111 базових команд з форматом 1, 2, або 3 байти. Мікроконтролер має:

    32 регістри загального призначенняРОН, організованих як чотири банки по вісім регістрів з іменами R0… R7, вибір того чи іншого банку визначається програмою шляхом встановлення відповідних біт у регістрі стану програми PSW;

    128 програмно-керованих прапорів (бітовий процесор, див. далі);

    набір регістрів спеціальних функцій, керуючих елементами МК. Існують такі режими роботи мікроконтролера:

1). Загальне скидання. 2).Нормальне функціонування. 3).Режим зниженого енергоспоживання та режимхолостого ходу. 4). Режим програмування резидентного РПЗП, якщо воно є.

Ми тут основну увагу приділимо першим двом режимам роботи, докладний опис складу роботи МК у всіх режимах наведено в додатку П1.

РОН та зона бітового процесора розташовані в адресному просторі резиден- тної ОЗП з адресами від 0 до 80h.

У верхній зоні адрес резидентної оперативної пам'яті розташовані регістри спеціальних функцій (SFR, Special Function Registers). Їх призначення наведено у табл. 3.2.

Таблиця 3.2.

Позначення

Найменування

Акумулятор

Реєстр В

Реєстр стану програми

Покажчик стека

Покажчик даних. 2 байти:

Молодший байт

Старший байт

Реєстр пріоритетів переривань

Реєстр дозволу переривань

Реєстр режимів таймера/лічильника

Реєстр керування таймера/лічильника

Таймер/лічильник 0. Старший байт

Таймер/лічильник 0. Молодший байт

Таймер/лічильник 1. Старший байт

Таймер/лічильник 1. Молодший байт

Управління послідовним портом

Буфер послідовного порту

Управління споживанням

* - регістри, що допускають побітову адресацію

Стисло розглянемо функції регістрів SFR, наведених у таблиці 3.2.

Акумулятор АCC - Регістр акумулятора. Команди, призначені для роботи.

ти з акумулятором, використовують мнемоніку "А", наприклад, MOV А, Р2 . Мнемоніка "АСС" використовується, наприклад, при побітовій адресації акумулятора. Так, символічне ім'я п'ятого біта акумулятора при використанні асемблера А5М51 буде наступним: АСС. 5. .

Реєстр У . Використовується під час операцій множення та поділу. Для інших інструкцій регістр може розглядатися як додатковий надоперативний регістр.

Реєстр стану програми PSW містить інформацію про стан програми та встановлюється частково автоматично за результатом виконаної операції, частково користувачем. Позначення та призначення розрядів регістру наведено відповідно у таблицях 3.3 та 3.4.

Таблиця 3.3.

Позначення

Таблиця 3.4.

Позначення

Призначення бітів

Доступ до бити

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

Апаратно чи програмно

Прапор додаткового перенесення. Апаратно встановлюється/скидається під час виконання інструкцій додавання або віднімання для вказівки перенесення або позики в біті 3 при утворенні молодшого напівбайта результату (D0-D3).

Апаратно чи програмно

Прапор 0. Прапор, який визначається користувачем.

Програмно

Програмно

Вказівник банку робочих регістрів

Програмно

Банк 0 з адресами (00Н - 07Н) Банк 1 з адресами (08Н - 0FН) Банк 2 з адресами (10Н - 17Н) Банк 3 з адресами (18Н - 1FН)

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

Апаратно чи програмно

Резервний. Містить тригер, доступний за записом та читанням, який можна використовувати

Біт парності. Апаратно скидається або встановлюється в кожному циклі інструкцій для вказівки парної чи непарної кількості розрядів акумулятора, що перебувають у стані "1".

Апаратно чи програмно

Покажчик стека - 8-бітовий регістр, вміст якого інкрементується перед записом даних у стек при виконанні команд PUSH та CALL. При початковому скиданні покажчик стека встановлюється 07Н, а область стека в ОЗУ даних починається з адреси 08Н. При необхідності шляхом перевизначення покажчика стека область стека може бути розташована в будь-якому місці внутрішнього пам'яті даних мікроконтролери.

Покажчик даних DPTR складається з старшого байта (DPH) та молодшого байта

(DPL). Містить 16-бітову адресу при зверненні до зовнішньої пам'яті. Може використовувати-

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

Порт0 - ПортЗ. Окремими бітами регістрів спеціальних функцій Р0, Р1, Р2, РЗ є біти - "засувки" висновків портів Р0, Р1, Р2, РЗ.

Буфер послідовного порту SBUF являє собою два окремі реєстри: буфер передавача і буфер приймача. Коли дані записуються в SBUF, вони надходять у буфер передавача, причому запис байта SBUF автоматично ініціює його передачу через послідовний порт. Коли дані читаються із SBUF, вони вибираються з буфера приймача.

Реєстри таймер. Реєстрові пари (ТН0, ТL0) і (ТН1, TL1) утворюють 16-

бітові рахункові регістри відповідно таймера/лічильника 0 та таймера/лічильника 1.

Реєстри управління. Регістри спеціальних функцій IР, IЕ, ТМOD, ТСОN, SCON і РСОN містять біти управління та біти стану системи переривань, тай-

заходів/лічильників та послідовного порту. Вони будуть детально розглянуті далі.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 EA

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

МК при функціонуванні забезпечує:

    мінімальний час виконання команд додавання-1 мкс;

    апаратне множення та поділ з мінімальним часом виконання - 4 мкс.

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

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

Найважливішою та відмінною рисою архітектури сімейства MCS51 є те, що АЛУ може поряд з виконанням операцій над 8-розрядними типами даних маніпулювати однорозрядними даними. Окремі програмно-доступні біти можуть бути встановлені, скинуті або замінені їх доповненням, можуть пересилатися, перевірятися та

Рис.3.2. Зовнішні висновки

мікроконтролера

використовуватись у логічних обчисленнях. Тоді як підтримка простих типів даних (при сущ-

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

Схемотехнічне зображення мікроконтролера представлено на рис. 3.2. У базовому варіанті він упакований у 40-вивідний DIP корпус. Розглянемо призначення висновків.

Почнемо з висновків харчування «0 В» і «5 В» , За якими він отримує основне харчування. Струм споживання наведено в табл. 3.1.

Висновок «RST» - Скидання мікроконтролера. При подачі цього висновку активного високого рівня запускається режим спільного скидання та МК робить такі дії:

Встановлює лічильник команд PC та всі регістри спеціальних функцій, крім засувок портів Р0-РЗ, покажчика стека SP та регістра SBUF, в нуль;

    покажчик стека приймає значення, що дорівнює 07Н;

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

    вибирає БАНК 0 ОЗУ, готує порти Р0-РЗ для прийому даних та визна-

поділяє висновки ALE та РМЕ як входи для зовнішньої синхронізації;

      у регістрах спеціальних функцій PCON, IP та IE резервні біти набувають випадкових значень, а всі інші біти скидаються в нуль;

      у регістрі SBUF встановлюються випадкові значення.

      встановлює фіксатори-засувки портів Р0-РЗ "1".

Стан регістрів мікроконтролера після скидання наведено в таблиці 3.5.

Таблиця 3.5.

Інформація

Невизначена

0ХХХ0000В для k-MOП 0XXXXXXXB для n-МОП

Висновок RST має й альтернативну функцію. Через нього подається резервне харчування для збереження постійним вмісту ОЗУ мікроконтролера при знятті основного.

Висновки BQ1, BQ2 призначені для підключення кварцового резонатора, що визначає тактову частоту роботи МК.

Висновок ЕА` (E xternal A dress зовнішній адреса) - призначений для активізації режиму читання керуючих кодів з зовнішньої пам'ятіпрограм, при подачі цього висновку активного низького рівня. Висновок має і альтернативне призначення (функцію). На нього подається напруга програмування РПЗУ як програмування.

Висновок PME (P rogram M emory E nable Розширення пам'яті програм) - призначений для керування циклом читання з пам'яті програм і автоматично активізується МК у кожному машинному циклі.

Висновок ALE (A dress L ength E nable Розширення молодшого адреси) стробує виведення молодшої частини адреси по порту Р0. Висновок використовується і при програмуванні РПЗУ, при цьому на нього подається стробуючій процес програмування імпульс.

МК містить чотири групи портів: Р0, Р1, Р2 і Р3. Це 40-виводів мікроконтролера, що залишилися. Ці порти можуть служити для побитного введення - виведення інформації, але крім цього кожен з них має свою спеціалізацію. Узагальнена функціональна схема порту представлена ​​на рис. 3.3. Порт містить вихідні ключі на польових транзисторах, підключені до виводу, перемикач функцій, клямку на D-тригері та логіку управління. У засувку по внутрішній шині МК може бути записана одиниця або нуль. Ця інформація через перемикач функцій надходить на вихідні ключі та виведення МК. У стані одиниці обидва транзистори N і N1 закриті, але відкрито N2. У стані нуля N відкриває-

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

бути попередньо записано

Від внутрішньо-

Управління Засувка

Перемикач функцій

Vcc

Вихідні

одиниця. При активізації лінії «читання засувки» на виході осередку «І», до якої підключена ця лінія

ній шини МК D Q

Запис у клямку C Q

Читання засувки

Виведення порту

ється стан засувки, що надходить на внутрішню шину МК, при активізації

"Читання виведення" - стан зовнішнього виведення порту.

Порт Р0 - Універсальний двонаправлений порт

введення-виведення. За цим портом

закріплено функцію організації зовнішніх шин адрес і

Рис. 3.3. Функціональна схема порту мікроконтролера

даних для розширення пам'яті програм та пам'яті даних

мікроконтролера. Коли йде звернення до зовнішньої пам'яті програм або виконується команда звернення зовнішньої пам'яті даних, на висновках порту встановлюється молодша частина адреси (А0…А7), яка стробується високим рівнем виведення ALE. Потім, при запису в пам'ять даних, інформація, що записується з внутрішньої шини МК надходить на висновки порту Р0. В операціях читання, навпаки, інформація з висновків порту надходить на внутрішню шину. Особливістю порту Р0 є відсутність «підтягуючого» транзистора N2, що забезпечує подачу живлення на висновок. При записі в клямку порту одиниці він просто переводиться у високоімпедансний стан, що необхідно для нормальної роботи шини даних. При необхідності запитувати через виведення будь-які зовнішні пристрої слід передбачати зовнішні резистори від ланцюгів живлення на виведення порту.

Порт Р1 – універсальний двонаправлений порт введення-виведення без альтернативних функцій.

Порт Р2 – універсальний двонаправлений портвводу-виводу, який як альтернативна функція здійснює видачу старшої частини адреси (А8…А15) при зверненні до зовнішньої пам'яті.

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

Р3.0 RxD (R ead e X ternal D ate, читати зовнішні дані) – вхід вбудованого послідовного приймача.

Р3.1 ТxD (T ype e X ternal D ate, передавати зовнішні дані) – вихід вбудованого послідовного приймач-передавача.

Р3.2 INT0` (INT errupt, переривання) – вхід зовнішнього переривання 0.

Р3.3 INT1` - Вхід зовнішнього переривання 1.

Р3.4 С/T0 - Вхід нульового вбудованого таймера/лічильника.

Р3.5 С/T1 - Вхід першого вбудованого таймера/лічильника.

Р3.6 WR` (W rite, писати) – виведення управління циклом запису у пам'яті даних.

Р3.7 RD` (R ead, читати) – виведення керування циклом читання з пам'яті даних.

Висновки порту Р1, Р2 і Р3 здатні в одиниці видавати струмоколо 0.2мА і приймати в нулі струм 3 мА, висновки порту Р0 потужніші і здатні в одиниці видавати струм близько 0.8мА і приймати в нулі струм 5 мА. Коротку інформацію про призначення висновків мікроконтролера наведено в таблиці 3.6.

Таблиця 3.6.

Позначення

Призначення висновку

8-розрядний двонаправлений порт Р1. Вхід адреси А0-А7 під час перевірки внутрішнього ПЗУ (РПЗУ)

Вхід вихід

Сигнал загального скидання. Виведення резервного живлення ОЗП від зовнішнього джерела (для 1816)

8-розрядний двонаправлений порт P3 з додатковими функціями

Вхід вихід

Послідовні дані приймача - RхD

Послідовні дані передавача - ТхD

Вхід зовнішнього переривання 0- INТ0`

Вхід зовнішнього переривання 1-INT1`

Вхід таймера/лічильника 0: - Т0

Вхід таймера/лічильника 1: - Т1

Вихід стробуючого сигналу під час запису у зовнішню пам'ять даних: - WR`

Вихід стробуючого сигналу під час читання із зовнішньої пам'яті даних – RD`

Висновки для підключення кварцового резонатора.

вихід вхід

Загальний висновок

8-розрядний двонаправлений порт Р2. Вихід адреси А8-А15 у режимі роботи із зовнішньою пам'яттю. У режимі перевірки внутрішнього ПЗУ висновки Р2.0 – Р2.6 використовуються як вхід адреси А8-А14. Висновок Р2.7 - дозвіл на читання ПЗУ.

Вхід вихід

Дозвіл програмної пам'яті

Вихідний сигнал дозволу фіксації адреси. Під час програмування РПЗУ сигнал: PROG

Вхід вихід

Блокування роботи із внутрішньою пам'яттю. При програмуванні РПЗП подається сигнал UРR

Вхід вихід

8-розрядний двонаправлений порт Р0. Шина адреси/даних г роботи із зовнішньою пам'яттю. Вихід даних D7-D0 у режимі перевірки внутрішнього ПЗП (РПЗП).

Вхід вихід

Виведення живлення від джерела напруги +5В

Базова версія 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 дозволяють виконувати як завдання керування різними пристроями, і реалізовувати окремі вузли аналогової схеми. Усі мікросхеми цього сімейства працюють з однією і тією ж системою команд MCS-51, більшість з них виконується в однакових корпусах з цоколівкою, що збігається(Нумерація ніжок для корпусу). Це дозволяє використовувати для розробленого пристрою мікросхеми різних фірм- Maxim, Atmel, NXP і т.д. (catalog..php?page=components_list&id=39">пн.м. Пошук за параметрами) без переробки принципової схемипристрої та програми.

Малюнок 1. Структурна схема контролера I8751

Структурна схема контролера представлена ​​малюнку 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, а біти керування споживанням електроенергією відсутні.

Арифметико-логічний пристрій (ALU)являє собою паралельний восьмирозрядний пристрій, що забезпечує виконання арифметичних та логічних операцій. АЛУ складається з:

  • - регістрів акумулятора, регістрів тимчасового зберігання TMP1 та TMP2,
  • - ПЗУ констант,
  • - суматора,
  • - додаткового регістру (реєстру В),
  • - акумулятора (ACC),
  • - Регістру стану програм (PSW).

Реєстр акумуляторі регістри тимчасового зберігання- восьмирозрядні регістри, призначені для приймання та зберігання операндів на час виконання операцій над ними. Ці регістри програмно недоступні.

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

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

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

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

Блок послідовного інтерфейсу та переривань (ПІП)призначений для організації введення-виведення послідовних потоків інформації та організації системи переривання програм. До складу блоку входять:

  1. - буфер ПІП,
  2. - логіка управління,
  3. - Регістр управління,
  4. - буфер передавача,
  5. - буфер приймача,
  6. - приймач послідовного порту,
  7. - Регістр пріоритетів переривань,
  8. - Регістр дозволу переривань,
  9. - логіка обробки прапорів переривань та схема вироблення вектора.

Лічильник команд (Program Counter)призначений для формування поточної 16-розрядної адреси внутрішньої пам'яті програм та 8/16-розрядної адреси зовнішньої пам'яті програм. До складу лічильника команд входять 16-розрядні буфер РС, регістр РС та схема інкременту (збільшення вмісту на 1).

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

Порти P0, P1, P2, P3є квазідвунаправленими портами введення - виведення і призначені для забезпечення обміну інформацією ОЕОМ із зовнішніми пристроями, утворюючи 32 лінії введення-виведення.

Влаштування таймерівУ базових моделях сімейства є два програмованих 16-бітових таймера/лічильника (T/C0 і T/C1), які можуть бути використані як таймери, так і як лічильники зовнішніх подій

Регістр стану програми (PSW)призначений для зберігання інформації про стан АЛП під час виконання програми.

Пам'ять програм (EPROM)призначена для зберігання програм і являє собою постійний пристрій (ПЗУ). У різних мікросхемах застосовуються маскові ПЗП, що стираються ультрафіолетовим випромінюванням або FLASHПЗП.

Реєстр покажчика даних (DPTR)призначений для зберігання 16-розрядної адреси зовнішньої пам'яті даних або програм.

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



У витоків виробництва мікроконтролерів стоїть фірма Intel із сімействами восьмирозрядних мікроконтролерів 8048 і 8051. Архітектура MCS-51 отримала свою назву від першого представника цього сімейства - мікроконтролера 8051, випущеного 1980 року на базі технології HMOS. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої чи внутрішньої програмної пам'яті та прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку. З погляду технології мікроконтролер 8051 був для свого часу дуже складним виробом - у кристалі було використано 128 тис. транзисторів, що в 4 рази перевищувало кількість транзисторів у 16-розрядному мікропроцесорі 8086.

Основними елементами базової архітектури є:
- 8-розрядне АЛП на основі акумуляторної архітектури;
- 4 банки регістрів, по 8 у кожному;
- Вбудована пам'ять програм 4Кбайт;
- внутрішнє ОЗП 128 байт;
- Бульовий процесор
-2 шістнадцятирозрядні таймери;
- Контролер послідовного каналу (UART);
- контролер обробки переривань із двома рівнями пріоритетів;
- чотири 8-розрядні порти вводу/виводу, два з яких використовуються як шина адреси/даних для доступу до зовнішньої пам'яті програм і даних;
- Вбудований тактовий генератор.

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

Наступним важливим кроком у розвитку MCS-51 став переклад технології виготовлення на CHMOS. Це дозволило реалізувати режими Idle і Power Down, що дозволили різко знизити енергоспоживання кристала і відкрили дорогу до застосування мікроконтролера в енергозалежних програмах, наприклад, в автономних приладах з батарейним живленням.

І останнім важливим етапом розвитку цього напрямку фірмою Intel у рамках 8-бітної архітектури став випуск мікроконтролерів 8xC51FA/FB/FC, які для стислості часто позначаються як 8xC51FX. Головною відмінністю цієї групи кристалів є наявність у них масиву програмованих лічильників (PCA). Структурна схема PCA представлена ​​рис.2.

До складу PCA входять:

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

16-бітна вибірка значення таймера за позитивним фронтом зовнішнього сигналу;
16-бітна вибірка значення таймера за негативним фронтом зовнішнього сигналу;
16-бітна вибірка значення таймера по будь-якому фронту зовнішнього сигналу;
16-бітний програмний таймер;
16-бітове пристрій швидкісного виведення (HSO);
8-бітний ШІМ

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

Спочатку найбільш "вузькими" місцями архітектури MCS-51 були 8-розрядне АЛУ на базі акумулятора та відносно повільне виконання інструкцій (для виконання найшвидших інструкцій потрібно 12 періодів тактової частоти). Це обмежувало застосування мікроконтролерів сімейства у додатках, що вимагають підвищеної швидкодії та складних обчислень (16- та 32-бітових). Нагальним стало питання принципової модернізації старої архітектури. Проблема модернізації ускладнювалася тим, що до початку 90-х років вже було створено масу напрацювань у галузі програмного та апаратного забезпечення, і одним із основних завдань розробки нової архітектури була реалізація апаратної та програмної сумісності зі старими розробками на базі MCS-51. Для вирішення цього завдання було створено спільну групу з фахівців компаній Intel та Philips. В результаті в 1995 р. з'явилося 2 істотно відмінні сімейства: MCS-251/151 у Intel і 51XA у Philips (на останньому ми зупинимося нижче).

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

24-розрядний лінійний адресний простір, що забезпечує адресацію до 16M пам'яті(Микроконтролери сімейства MCS-251, що випускаються, мають адресний простір пам'яті об'ємом 256К);
Система команд мікроконтролерів сімейства MCS-251 містить усі 111 команд, що входять до системи команд мікроконтролерів сімейства MCS-51 ("старі" команди), і, крім того, до неї входять 157 "нових" команд. Коди деяких нових команд мають формат 4 байти.
Перед використанням мікроконтролера його потрібно налаштувати, тобто. за допомогою програматора "пропалити" конфігураційні байти, що визначають, який із наборів інструкцій стане активним після включення живлення. Якщо встановити набір інструкцій MCS-51, тоді MSC-251 буде сумісний з MCS-51 на рівні двійкового коду. Такий режим називається Binary Mode. Однак розширені вказівки в цьому режимі також доступні через "кватирку" - зарезервований код інструкції 0A5h. Звісно, ​​довжина кожної розширеної інструкції збільшується у разі на 1 байт. Якщо спочатку встановити набір розширених інструкцій, то цьому випадку програми, написані для MCS-51 вимагатимуть перекомпіляції на крос-засобах для MCS-51, т.к. тепер вже стандартні інструкції будуть доступні через ту ж "кватирку" 0A5h і довжина їх також збільшиться на 1 байт. Такий режим називається Source Mode. Він дозволяє з максимальною ефективністю використовувати розширені інструкції та досягти найбільшої швидкодії, але потребує переробки програмного забезпечення.
реєстрова архітектура, що допускає звернення до регістрів як до байтів, слів та подвійних слів;
сторінковий режим адресації для прискорення вибірки інструкцій із зовнішньої програмної пам'яті;
черга інструкцій;
розширений набір команд, що включає 16-бітові арифметичні та логічні інструкції;
розширений адресний простір стеку до 64К;
виконання найшвидшої інструкції за 2 такти;
сумісність лише на рівні двійкового коду з програмами для MCS-51.

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

Окрім самої Intel мікроконтролери MCS-251 за її ліцензією випускає компанія Temic Semiconductors.

Універсальна послідовна шина (Universal Serial Bus або USB) поширює технологію Plug-and-Play на зовнішні пристрої вводу/виводу, які застосовуються на сучасних високопродуктивних персональних комп'ютерах.

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

Основні характеристики продукту

Повна сумісність зі "Специфікацією Universal Serial Bus 1.0"
Вбудований USB transceiver Serial Bus Interface Engine (SIE)
Чотири черги FIFO для передачі
Три 16-байтні черги FIFO
Чотири черги FIFO для прийому
Три 16-байтні черги FIFO
Одна настроювана черга FIFO (до 1024 байт)
Автоматичне керування прийомом/передачею у чергах FIFO
Операції зупинки/відновлення
Три вектори переривання шини USB
Цикл блокування фази
Швидкості передачі даних: 12 Мбіт/сек та 1,5 Мбіт/сек
Режим із уповільненим циклом
Зовнішній адресний простір ємністю 256 Кбайт
Енергозберігаючі режими: очікування та відключення живлення
Параметри, що задаються користувачем
Очікування в реальному часі
1 Кбайт оперативної пам'ятіна кристалі
Чотири порти введення/виводу
Програмований масив лічильників (PCA)
Стандартний (MCS 51) мікроконтролер UART
Апаратний сторожовий таймер
Три 16-розрядні таймери/лічильники з гнучкими можливостями
Сумісність з набором команд мікроконтролерів архітектури MCS 51 та MCS 251
Архітектура мікроконтролера MCS 251, заснована на регістрах
Робоча частота 6 або 12 МГц

Контролер 8x930Hx має додаткові характеристики:

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

Чотири різні режими передачі даних USB забезпечуються спільною роботою трьох елементів: Хост, Концентратор, Функціональний пристрій. Хост контролює передачу по шині змістовної та керуючої інформації. Функціональні устрою розширюють хост-системи. Сюди включаються типові види роботи з комп'ютером: введення з клавіатури або джойстика, виведення на монітор; а також більш складні види діяльності, такі як цифрова телефонія та передача зображень. Для управління функціональними пристроями спроектовано мікроконтролер Intel 8x930Ax. Нарешті, концентратори являють собою точку розширення USB, за допомогою якої забезпечується доступ до інших функціональних пристроїв. Мікроконтролер Intel 8x930Hx, у якому поєднані функції керування функціональним пристроєм та концентратором USB, є першим серійним концентратором USB, призначеним для сучасних периферійних пристроїв PC.

Концентратори USB відіграють істотну роль у розширенні світу користувачів PC. З появою периферійних пристроїв - клавіатур, моніторів, принтерів та інших - з вбудованими концентраторами, підключити або відключити новий пристрій так само просто, як вставити вилку в розетку. Новий рівеньпродуктивності та розширені способи з'єднання USBможуть призвести до появи пристроїв для робочих та розважальних програм нового покоління. Дні вбудованих карт, конфліктів IRQ та сплутаних клубків проводів вважаються.

Кабель шини USB складається всього з чотирьох проводів: Vbus, D+, D- та GND – чим досягається спрощення та одноманітність з'єднання. Цією ж метою є єдиний стандартний конектор для підключення периферійних пристроїв до шини USB. Дані по-різному передаються кабелями D+ і D-: або на повній швидкості 12 Мбіт/сек, або на низькій швидкості 1,5 Мбіт/сек. Приймач вбудований в кристал, тому необхідність у зовнішніх електронних ланцюгах відсутня. Виняток становить термінальний навантажувальний резистор на обох лініях D+ і D-, який необхідний визначення типу пристрою: високошвидкісне чи низкоскоростное.

Огляд сімейства
Сімейство Intel 8x930 складається із двох однокристальних контролерів.

Контролер Intel 8x930Ax є 8-розрядним пристроєм, який заснований на архітектурі мікроконтолера MCS 251 і призначений для роботи з периферійними пристроями, що підключаються до шині USB. З іншого боку, в 8x930Hx використано те саме ядро ​​мікроконтролера MCS 251 плюс розширені можливості вбудованого концентратора шини USB. Застосування архітектури MCS 251 в обох контролерах USB шини дає наступні переваги:

Висока продуктивність
Застосування змішаних типів пам'яті та адресації
Низьке енергоспоживання
Низький рівень шуму
Ефективна підтримка мов високого рівня
Розширений набір команд
Вбудовані можливості

В якості команд для 8x930Ax можна використовувати інструкції з набору для мікроконтролера MCS 51, так і з набору для мікроконтролера MCS 251. Такий підхід зберігає інвестиції користувачів в програмне забезпечення і вичавлює максимум продуктивності з додатків.

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

Контролери сімейства 8x930Ax оснащені 1 Кбайт пам'яті та можуть бути використані у варіантах без постійної пам'яті або з постійною пам'яттю ємністю 8 або 16 Кбайт. Вони можуть адресувати до 256 Кбайт зовнішньої пам'яті для розміщення команд та даних та 40 байт регістрів загального призначення, які розташовуються в центральному процесорі як регістровий файл. Залежно від використовуваної комбінації в регістровому файлі можуть розташовуватися 16 байтових регістрів, 16 двобайтових регістрів і 10 чотирибайтових регістрів.

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

Обидва контролери 8x930 оснащені вісьмома чергами FIFO для підтримки внутрішніх пристроїввисновку: чотири черги для передачі та чотири черги для прийому. Чотири черги FIFO для прийому/передачі підтримують чотири кінцеві функціональні пристрої (від 0 до 3). Черга 0 складається з 16 байт і призначена для передачі інформації, що управляє. Черга 1 відноситься до категорії настроюваних користувачем і має ємність до 1024 байт. Черги 2 і 3 складаються з 16 байт кожна і можуть використовуватися передачі інформації в імпульсному, ізохронному і режимі передачі масивів. У разі використання контролера 8x930Hx зазначені черги посилюються парою черг FIFO для вхідних пристроїв. Ці черги у контролері 8x930Hx підтримуються додатковим повторювачем, який відповідає за повторну передачу потоків даних, що генеруються вихідними пристроями.

Огляд архітектури
Конструкційно реалізацію USBу мікроконтролерах 8x930Ax і 8x930Hx можна розділити на чотири блоки: черги FIFO, блок інтерфейсу з функціональними пристроями, блок інтерфейсу з послідовною шиною та приймач-передавач. Контролер 8x930Hx має довгострокові блоки для керування функціями концентратора: блок інтерфейсу з концентратором та повторювач.

Черги FIFO для прийому та передачі на обох контролерах є кільцевими. Черги підтримують до двох окремих наборів даних змінного розміру та містять регістри лічильника байтів, що показують кількість байтів у наборах даних. Черги мають прапорці, що показують заповненість або порожнечу черги, а також здатні повторювати прийом або передачу поточного набору даних. Блок інтерфейсу з функціональними пристроями (ІФУ) розподіляє передані або прийняті дані USB відповідно до типу передачі та стану черг. Крім того, блок ІФУ стежить за станом транзакції, керує чергами FIFO, за допомогою запиту на переривання повідомляє про настання подій, що управляють центральному процесору 8x930.

Блок інтерфейсу із послідовною шиною реалізує протокол передачі USB: послідовно впорядковує пакети, здійснює генерацію та розпізнавання сигналу, генерацію та перевірку контрольних сум, кодування/декодування даних за методом NRZI, побітове заповнення, генерацію та розпізнавання ідентифікатора пакета (PID).

Інтегрований приймач-передавач на мікроконтролерах USB узгоджений з простим чотири-жильним інтерфейсом, визначеним специфікацією USB 1.0. Сімейство контролерів 8x930 має три переривання, пов'язані з USB. Вони відбуваються при кожному старті кадру, закінченні прийому/передачі даних на кінцеві функціональні пристрої, у разі глобального зупинення або відновлення роботи. У концентраторі 8x930Hx блок інтерфейсу з концентратором служить для керування та стеження за станом з'єднання з вихідними портами. Повторювач відповідає за поширення сигналів портів USB, що підвищують і знижують.

Архітектура мікроконтролерів

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

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

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

· Ознайомлення з типами даних;

· Вивчення формату машинних команд;

· З'ясування організації обробки переривань.

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

MCS-51 виконаний за Гарвардською архітектурою, де адресні простори пам'яті програм та даних розділені.

Структурна схема контролера представлена ​​на рис.2.3 і складається з наступних основних функціональних вузлів: блоку управління, арифметико-логічного пристрою, блоку таймерів/лічильників, послідовного інтерфейсу та переривань, програмного лічильника (лічильника команд), пам'яті даних та пам'яті програм.

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

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


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

Вхідні та вихідні сигнали блоку управління та синхронізації:

1 PSEN- Роздільна здатність програмної пам'яті;

2 ALE- Вихідний сигнал дозволу фіксації адреси;

3 PROG- Сигнал програмування;

4 EA– блокування роботи із внутрішньою пам'яттю;

5 VPP- Напруга програмування;

6 RST- Сигнал загального скидання.

Пристрій формування часових інтервалів необхідний для синхронізації послідовності станів ЦП, що утворюють машинний цикл, а також правильної роботивсіх внутрішніх засувок та вихідних буферів портів. Машинний цикл складається з шести послідовних станів (States) від S1 до S6, кожен з яких, у свою чергу, поділяється на дві фази:

фазу 1 (Phase 1 - P1) та фазу 2 (Phase 2 - P2). Таким чином, машинний цикл може бути визначений як послідовність часових інтервалів S1P1, S1P2, S2P1, ..., S6P2. Тривалість фази дорівнює періоду прямування тактових імпульсів, тому машинний цикл займає 12 тактових періодів.

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

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

Рис. 2.3. Структурна схема однокристального мікроконтролера Intel 8051

(родина MCS-51)

Арифметико-логічний пристрій(ALU) являє собою паралельний восьмирозрядний пристрій, що забезпечує виконання арифметичних та логічних операцій. АЛУ складається з:

  • регістрів тимчасового зберігання -TMP1 і TMP2,
  • ПЗУ констант,
  • суматора,
  • додаткового регістру - регістра,
  • акумулятора - ACC,
  • регістру слова стану програм (регістр прапорів) - PSW.

Регістри тимчасового зберігання TMP1, TMP2- восьмирозрядні регістри, призначені для приймання та зберігання операндів на час виконання операцій над ними. Ці регістри програмно недоступні.

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

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

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

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

Регістр стану програм PSW (Programm Status Word)призначений для зберігання слова стану команд, що виконуються. При виконанні багатьох команд ALU формується ряд ознак операції (прапорів), які фіксуються в регістрі слова стану програми (PSW). У табл. 1 наводиться перелік прапорів PSW, даються їх символічні імена та описуються умови формування.

Блок переривань та послідовного інтерфейсу - UART (Universal Asynchronous Receiver/Transmitter)призначений для організації введення - виведення послідовних потоків інформації та організації системи переривання програм.

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

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