Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Електричний інтерфейс МК51 і фізичний адресний простір
Додаток 1. Структура й принципи програмування базового однокристального мікроконтролера MCS-51. Функціональні можливості базової моделі сімейства MCS-51 Обчислювальне ядро базової моделі сімейства MCS-51 лежить в основі великої кількості доволі різноманітних мікроконтролерів різних виробників. Далі для стислості базову модель сімейства будемо позначати як МК51. До складу мікроконтролера МК51 входять: процесор розрядністю 8 біт; генератор тактових імпульсів (ГТІ); схеми керування й синхронізації; ПЗП — так називана резидентна пам'ять програм (РПП); ОЗП — резидентна пам'ять даних (РПД); таймери-лічильники; схеми вводу-виводу (паралельний і послідовний інтерфейси); блок обробки переривань. Мікросхема потребує живлення напругою +5В±10% від джерела потужністю Р = 1, 5 Вт, може використовуватися в діапазоні температур від -40 до +100° С. МК51 працює на тактовій частоті до 24 Мгц, має вбудовані ОЗП, ЕППЗП. Загальні характеристики для всього сімейства МК51: - 16-розрядний лічильник команд PC (адресація до 64Кб пам'яті програм); - 16-розрядний регістр-вказівник даних DPTR; - 32 двонапрямлені лінії вводу-виводу, об'єднані в чотири порти вводу-виводу; - два 16-розрядних таймери-лічильники; - синхронно-асинхронний приймач-передавач послідовного зв'язку із програмно регульованою швидкістю передачі; - система обслуговування переривань від п'яти джерел із дворівневою апаратно-програмною шкалою пріоритетів; - внутрішній ГТІ; - рівень вхідних і вихідних сигналів, що відповідає рівням ТТЛ. Система команд складається з 111 базових команд. Припустимі пряма, непряма, регістрова й бітова форми адресації. У системі команд МК51 44% – однобайтові команди, 41% – двохбайтові, інші – трьохбайтові. Половина команд виконується за один машинний цикл (МЦ), що по тривалості рівний 1 мкс при тактовій частоті 12 мГц. Електричний інтерфейс МК51 і фізичний адресний простір Мікросхему МК51 випускають у корпусі DIP-40. Призначення виводів наведене в табл.Д1.1. Виводи мікросхеми можуть бути об'єднані в такі групи: • чотири порти вводу-виводу P0...P3 по вісім ліній; • чотири виводи для сигналів керування МК-системою; • два виводи для підключення кварцового резонатора; • два виводи для підключення джерела живлення (+5В, " загальний"). Таблиця Д1.1. Призначення виводів мікроконтролера МК51
Система команд МК51 орієнтована, насамперед, на реалізацію алгоритмів аналізу бітової інформації й керування технологічним устаткуванням, хоча це не заважає використовувати МК у складі ієрархічних комп'ютерних систем керування складними об'єктами. Існує можливість значно підвищити обчислювальні ресурси МК-системи завдяки підключенню до контролера зовнішніх мікросхем ПЗП й ОЗП загальним обсягом до 128Кб. Так реалізується зовнішня пам'ять програм (ЗПП) і зовнішня пам'ять даних (ЗПД). До МК-системи також можна підключити велику кількість (до 64Кб) зовнішніх периферійних мікросхем для забезпечення зв'язку із широкою номенклатурою джерел інформації й об’єктів керування. Фізичний адресний простір складається із чотирьох областей: - внутрішній ПЗП (ЕППЗП) для програм і констант обсягом 4Кб (може бути інший об’єм залежно від конкретної моделі МК) (позначення по тексту - РПП - " резидентна пам'ять програм"); - внутрішня пам'ять даних – 128 байт ОЗП й 20 регістрів спеціальних функцій (РСФ); позначення по тексту - " РПД" (" резидентна пам'ять даних"); - зовнішній ПЗП для розміщення більших програм і масивів констант - реалізується на мікросхемах ПЗП, зовнішніх відносно МК, може мати обсяг до 64Кб; позначення по тексту - " ЗПП" (" зовнішня пам'ять програм"); - зовнішній ОЗП для розміщення масивів даних – реалізується на мікросхемах ОЗП, зовнішніх відносно МК, може мати обсяг 64Кб; позначення по тексту - " ЗПД" (" зовнішня пам'ять даних"). Сигнал #PSEN використовують для визначення області зовнішньої пам'яті (ЗП), до якої МК звертається в цей момент: #PSEN=0 (активний рівень) під час читання чергового байта команди із ЗПП. За допомогою сигналу ЕА виконується вибір джерела кодів команд, тобто перемикання між РПП і ЗПП. Сигнал ALE (активний рівень " 1") визначає моменти часу, у які на лініях порту Р0 є присутнім молодший байт адреси комірки ЗП. Окремий доступ до РПД і ЗПД забезпечується різною формою адресації даних у командах МК51. Внутрішня структура МК51 Основні функціональні вузли й інформаційні зв'язки на кристалі МК51 показані на рис.Д1.1. Каналом передачі інформації усередині кристала є двонапрямлена восьмибітна магістраль, що зв'язує практично всі вузли МК51: АЛП, резидентну пам'ять, блок регістрів спеціальних функцій, пристрій керування і порти вводу-виводу. Виключення становлять лінії передачі адреси зовнішньої пам'яті безпосередньо від PC й DPTR на порти Р0 і Р2 і сигнали керування. Всі операції, у тому числі обчислення адреси пам'яті, виконуються в АЛП, що є восьмибітним пристроєм паралельного типу й виконує такі групи операцій: арифметичні (+, -, *,:), логічні (AND, OR, NOT, XOR), зсуву, скидання, установлення. Програмно-недоступні регістри використовуються для тимчасового збереження операндів. Найважливіша особливість АЛП – можливість роботи з окремими програмно-доступними бітами в ОЗП та блоці РСФ. Це дії скидання й установки біта, інверсії й логічних операцій. Рис. Д1.1. Внутрішня структура МК51
АЛП оперує чотирма типами інформації: булевим – 1 біт; цифровим – 4 біти; байтовим - 8 біт; адресним - 16 біт. Логічна організація пам'яті в МК51 Вбудований процесор МК51 взаємодіє з декількома областями пам'яті, що відрізняються по функціональних ознаках, механізмам адресації і сигналам керування. Функціонально пам'ять розділена на пам'ять програм (ПП) і пам'ять даних (ПД), по розташуванню щодо кристала МК – на внутрішню (резидентну) і зовнішню (інші мікросхеми). Об'єднання цих характеристик дає чотири фізично різних адресних простори - РПП (4К), РПД (128 байтів ОЗП й 20 спеціальних регістрів), ЗПП – до 64Кб і ЗПД – до 64Кб. До адресного простору ОЗП прилягає блок регістрів спеціальних функцій (арифметичні регістри, регістри-покажчики, регістри таймерів 0 і 1, схеми обробки переривань і т.д.). РСФ, представлені в кількості 20 восьмибіних регістрів, інші адреси в діапазоні 80h...FFh недоступні. Пам'ять програм (РПП і ЗПП) Залежно від технологічних принципів виготовлення РПП розрізняється по способу програмування. Для моделі АТ89с51 вона реалізована у вигляді електрично перепрограмованого (Flash) ПЗП обсягом 4Кб. При подачі сигналу ЕА=1 забезпечується вибірка команд із РПП по адресах 0000...0FFFh. При такій установці ЕА перехід із РПП на ЗПП здійснюється автоматично, якщо (PC)> 0FFFh. При подачі сигналу ЕА=0 коди команд вибираються тільки із ЗПП по адресах 0000...FFFFh у повному обсязі 64Кб. Час вибірки із РПП і ЗПП однаковий. Резидентна пам'ять даних РПД є найбільш гнучким адресним простором, що дозволяє реалізувати режими прямої, регістрової, непрямої й бітової адресації. РПД складається з таких областей: 1. ОЗП обсягом 128 байтів (регістри загального призначення РЗП) – адреси 00...7Fh; 2. Блок РСФ – містить 20 однобайтових регістрів, розміщених по адресах, кратним 8, у діапазоні 80...FFh. Інші адреси із цієї області недоступні. Внутрішній ОЗП допускає пряму і непряму адресацію, а банки робочих регістрів, які входять у нього, – також і регістрову адресацію. Розташування різних областей у РПД показано на рис.Д1.2. Рис. Д1.2. Структура адресації РПД
Внутрішній ОЗП (адреси 00...7Fh) складається з таких областей: 1. Чотири банки робочих регістрів по вісім байтів у кожному. У процесі роботи МК51 один з банків регістрів вважається активним. Вибір активного банку здійснюється програмним шляхом за допомогою встановлення двох бітів у регістрі прапорів. При цьому регістри активного банку стають доступними при використанні регістрової адресації із символічними іменами R0...R7. Із цими іменами працюють спеціальні короткі команди, які використовують даний тип адресації. Інші (неактивні) банки адресуються як звичайні комірки ОЗП. Таким чином, у МК51 реалізований " плаваючий" блок РЗП. Регістри R0 й R1 можуть використовуватися для непрямої адресації кожної з 128 комірок внутрішнього ОЗП. 2. Блок комірок ОЗП з бітовою адресацією. Ці 16 байтів по адресах 20h...2Fh допускають також пряму адресацію окремих бітів з адресами 00H...7FH, тобто всього 128 бітів. Для роботи з бітами існують спеціальні команди, тому переплутування адрес не виникає. 3. Блок комірок ОЗП без особливостей. Всі три області допускають пряму й непряму адресацію байтів через регістри R0 й R1 активного банку. Організація стека Стек у МК51 може займати будь-які послідовно розташовані байти в ОЗП РПД. Призначення стека таке ж, як і в інших мікропроцесорах. Для адресації комірок, які виділені під стек, використовують восьмирозрядний регістр SP. Теоретична глибина стека - 127 байтів, оскільки в діапазоні 80...FFh розміщають РСФ і недоступні адреси. Стек звичайно розміщають в області ОЗП, починаючи з адреси 40h і вище. При включенні живлення або подачі сигналу Reset, в SP автоматично завантажується код 07h. Особливість полягає в тому, що в МК51 стек росте в бік збільшення адрес, тобто при виконанні команд PUSH і CALL вміст SP збільшується, а при POP і RET – зменшується. Шляхом запису в SP значення від 0 до 127 можна розмістити стек у будь-якій області в межах ОЗП РПД. Блок регістрів спеціальних функцій (РСФ) РСФ також відносяться до РПД і розташовані по адресах у діапазоні адрес 80h...FFh. Одинадцять із 20 регістрів спеціальних функцій мають бітову адресацію. Рис. Д1.3. Структура РСФ
У мікроконтролері реалізовані наступні РСФ: - арифметичні: акумулятор (АСС або А), регістр множення В, регістр стану програми PSW; - вказівні: SP і DPTR, що складається з пари DPH, DPL; - регістри-фіксатори портів вводу-виводу Р0, Р1, Р2, Р3; - регістри керування системою переривань IP, IE; - регістри керування й настроювання таймерів-лічильників TCON, TMOD; - лічильники-регістри таймерів TH0, TL0, TH1, TL1; - регістри керування послідовним портом SBUF, SCON; - регістр керування потужністю PCON. До регістрів СФ можна звертатися як до звичайних комірок ОЗП з бітовою адресацією, і в той же час вони забезпечують роботу багатьох вузлів МК, встановлюють режими їхньої роботи. Так, настроювання різних периферійних пристроїв МК51 на певні режими роботи реалізуються як запис у відповідні комірки пам'яті РСФ потрібних кодів або шляхом установлення відповідних бітів із прямою адресацією. Крім того, біти регістрів СФ мають зарезервовані символічні імена. Акумулятор і слово стану програми (PSW) МК51 має акумуляторно-орієнтовану структуру. Але існує ряд операцій (пересилання, INC, DEC, деякі перевірки), що виконуються без акумулятора. Акумулятор - це регістр із бітовою адресацією, що істотно полегшує аналіз даних з бітовою структурою інформації. Акумулятор допускає два способи адресації: - регістрову, якщо посилання на нього поміщається в коді операції (як «А»); - пряму, шляхом зазначення прямої адреси (0Е0h) або символічного імені " АСС" в адресній частині команди. Регістр PSW виконує функцію регістра ознак, які формуються за результатами дій в АЛП, а також служить для керування вибором активного банку регістрів. PSW - регістр із бітовою адресацією, що полегшує аналіз ознак та їхню установку. Окремі біти PSW мають символічні імена, але до них можна звернутися й через ім'я регістра із зазначенням номера біта: PSW.7, PSW.5. Короткі відомості про призначення окремих розрядів даного регістра представлені в табл.Д1.2. Таблиця Д1.2. Призначення розрядів регістра PSW
Вказівний регістр DPTR DPTR – двобайтовий регістр-вказівник даних – є базовим регістром для непрямої адресації при звертанні до зовнішньої пам'яті. Оскільки в МК51 відсутні засоби прямої адресації зовнішньої пам'яті, DPTR – це єдиний засіб доступу до комірок зовнішньої пам'яті. DPTR може функціонувати як два незалежних регістри: DPH й DPL. Робота блоку керування і синхронізації Кварцовий резонатор, що підключається до зовнішніх виводів Х1 й X2 (Рис. Д1.5.), керує роботою внутрішнього генератора (Рис. Д1.1.), що формує внутрішні сигнали синхронізації. Пристрій керування МК51 на основі сигналів синхронізації формує машинний цикл фіксованої тривалості, що дорівнює 12 періодам резонатора або шести станам первинного автомата керування (ПАК) S1...S6. Кожен стан ПАК містить у собі дві фази Р1 і Р2 сигналів резонатора. Співвідношення сигналів синхронізації й станів ПАК показане на Рис. Д1.4. Так, весь машинний цикл складається з 12 фаз, починаючи з фази S1Р1 і закінчуючи фазою S6P2. При частоті резонатора 12 Мгц машинний цикл триває 1 мкс. У фазі Р1 виконується операція в АЛП, у фазі Р2 здійснюється міжрегістрова передача. Нагадаємо, що в АЛП виконуються не тільки операції, задані безпосередньо в команді, але й всі проміжні дії, пов'язані з обчисленням адрес команд і операндів. Сигнал ALE формується два рази за машинний цикл у фазах S1P2-S2P1 й S4P2-S5P1 незалежно від типу команди й використовується для керування процесом звертання до зовнішньої пам'яті (ЗПП і ЗПД). Сигнал ALE, таким чином, відіграє роль зовнішнього синхросигналу для інших ВІС, підключених до МК51.
|