69379

Організація пам’яті Мікроконтролерів родини МК-51

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Місце модуля пам’яті у структурі мікроконтролера Призначення та місце модуля пам’яті у мікропроцесорних системах При вивченні модульної структури мікропроцесорної системи МПС відзначалося що одним з основних її модулів є...

Украинкский

2014-10-04

999.5 KB

4 чел.

РОЗДІЛ 3 ОСОБЛИВОСТІ АРХІТЕКТУРИ ОКРЕМИХ ФУНКЦІОНАЛЬНИХ МОДУЛІВ МІКРОКОНТРОЛЕРА

Тема 3.4 Організація пам’яті

леКЦІЯ 8 Організація пам’яті Мікроконтролерів родини МК-51


  1.   місце модуля пам’яті у структурі мікроконтролера
  2.  Призначення та місце модуля пам’яті у мікропроцесорних системах

При вивченні модульної структури мікропроцесорної системи (МПС) відзначалося, що одним з основних її модулів є пам'ять (рисунок 1). У пам'яті, яку також називають запам'ятовуючим пристроєм (ЗП), зберігаються програми та дані, що використовуються для керування роботою МПС.

Рисунок 1 - Модульна структура МПС

Пам'ять поділяється на:

  •  оперативний запам'ятовуючий пристрій (ОЗП);
  •  постійний запам'ятовуючий пристрій (ПЗП).

Керуючі програми повинні розміщуватися в енергонезалежному ПЗП, щоб зберігатися при вимиканні живлення, тому його іноді називають пам'яттю програм. В ОЗП зберігаються дані, що приймають участь у виконанні операцій, тому його називають пам'яттю даних. Такий поділ є дуже умовним, тому що в процесі роботи системи (великої, складної) в ОЗП із зовнішнього носія інформації може завантажуватися керуюча програма.

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

  1.  Поняття: основна, зовнішня та резидентна пам’ять; пам’ять з довільним та послідовним доступом; енергозалежна та енергонезалежна пам’ять; статична та динамічна пам’ять; оперативний (ОЗП) та постійний (ПЗП) запам’ятовуючий пристрої

Пам'ять часто розділяють на основну (внутрішню для МПС) і зовнішню (для МПС). Кожен МП або МК може адресувати деяке число комірок пам'яті, що утворюють єдиний адресний простір цього МП і МПС, реалізованої на основі даного МП-ра або МК-ра. Цей простір (ці комірки пам'яті) утворює основну (внутрішню) пам'ять МПС. Будь-яку комірку основної (внутрішньої) пам'яті можна адресувати в конкретній системі для читання або для запису інформації (наприклад, якщо США має n = 16, то основна пам'ять МП-ра має 216 = 65536 комірок).

Зовнішню пам'ять МПС утворюють пристрої тривалого збереження інформації, наприклад: магнітні стрічки, диски, дискети і т.ін.

Основна (внутрішня) пам'ять виконується, як правило, на напівпровідникових ВІС, яку і будемо розглядати в даному розділі.

Основна пам'ять МП-в і МК-в у свою чергу поділяється на: внутрішню (резидентну) пам'ять (РП) і зовнішню пам'ять (ЗП) по відношенню до МП-ра або МК-ра.

Наприклад, внутрішню пам'ять восьми і шістнадцятирозрядних процесорів утворюють регістри загального призначення (РЗП), що є надоперативним ОЗП (НОЗП), тому що характеризуються мінімальним часом доступу.

До складу МК-в крім РЗП входить ОЗП невеликого обсягу (резидентна пам’ять даних – РПД), наприклад, 128 байт (МК-р АТ89С51). Крім ОЗП деякі МК-ри мають резидентну (внутрішню) пам'ять програм (РПП), наприклад, обсягом 4 Кбайт (МК-р АТ89С51).

Крім наявності РПД і РПП МК-ри можуть адресувати зовнішню основну пам'ять програм (ЗПП) і зовнішню основну пам'ять даних (ЗПД). Наприклад, в МК-рі типу МК-51 АТ89С51 сумарний обсяг пам'яті програм (РПП і ЗПП) складає 64 Кбайт, сумарний обсяг пам'яті даних (РПД і ЗПД) дорівнює 128 байт + 64 Кбайт. При цьому РПП і ЗПП фізично розділені, а логічно сполучені. РПД і ЗПД розділені логічно і фізично.

У залежності від способу звертання до окремих комірок пам'яті розрізняють:

  •  пам'ять з довільним доступом;
  •  пам'ять з послідовним доступом.

При довільному доступі (вибірці) допускається будь-який порядок надходження адрес, що лежать в адресному просторі даного процесора.

При адресації комірок пам'яті другого типу зміна адрес можлива тільки у визначеному порядку  зростання чи зменшення адрес. Прикладом такого доступу є запис і читання інформації на магнітну стрічку. Очевидно, що основна пам'ять МПС є ЗП із довільним доступом.

В залежності від того, як впливає наявність джерела живлення на збереження інформації, пам’ять поділяється на:

  •  енергозалежну;
  •  енергонезалежну.

В енергозалежній пам’яті дані при відсутності живлення руйнуються, а в енергонезалежній – ні. Прикладом енергозалежної пам’яті являється статичний оперативний запам’ятовуючий пристрій (SRAM), а прикладом енернонезалежної – FLASH та EEPROM пам’ять.

Основна пам'ять МПС будується, як правило, на МОН (КМОН) транзисторах і поділяється на статичну і динамічну.

ОЗП динамічного типу часто виконуються на МОН (КМОН)-транзисторах. Особливістю цих транзисторів є дуже високий вхідний опір, що дозволяє використовувати як елемент пам'яті конденсатор, функції якого виконує вхідна паразитна ємність МОН-транзистора. В результаті виходить так звана динамічна пам'ять.

У статичних ОЗП кожен елемент пам'яті, об’ємом 1 біт, являє собою симетричний тригер, складений із двох логічних схем з перехресними зв'язками (рисунок 2). Кожен тригер зберігає один біт інформації. Тригери мають роздільні входи для установки їх у 0 чи 1, а також вентилі для з'єднання їх з лініями шини даних. Запам'ятовуючі елементи на поверхні напівпровідникового кристала великої інтегральної схеми (ВІС) пам'яті з'єднуються необхідним чином для утворення байта, слова і т.д.

Зазвичай, один тригер складається із шести МОН-транзисторів. Збережена інформація визначається станами транзисторів VT1 і VT2: коли один з них у провідному стані, то інший виключений, і навпаки. Стану, коли VT2 проводить струм, а VT1 закритий, умовно присвоюється значення 1, протилежний стан вважається нульовим. Транзистори VT3 і VT4 виконують функції навантажувальних резисторів для VT1, VT2, а VT5 і VT6 діють як керуючі вентилі доступу до комірки пам'яті.

Рисунок 2 – Комірка статичної пам'яті

При звертанні до пам'яті, спочатку вибирається елемент за допомогою завдання високого рівня напруги на лінії вибору  CS. Транзистори VT5 і VT6 включаються, і лінія P1 підключається до затвору VT2, а лінія P2 – до затвору VT1. Для запису в цей елемент одиниці на лінії P1 встановлюється високий рівень, а на лінії P2 задається 0. При цьому VT2 відкривається, а VT1 закривається. При записі нуля значення на лініях P1 і P2 змінюються на протилежні. У будь-якому випадку подальші стани VT1 та VT2 не змінюються до наступної операції запису.

Зчитування здійснюється подачею напруги з дешифратора на лінію вибору  CS: стан VT2 передається на лінію "Скидання", а стан VT1 – на лінію "Встановлення".

У зв'язку з необхідністю регенерації, динамічна пам'ять набагато повільніша, ніж статична. Але при великих обсягах ОЗП вигідніше використовувати саме динамічну пам'ять, тому що щільність упакування значно вище, а питома вартість збереження, енергоспоживання і тепловиділення істотно нижча, ніж у статичній пам'яті. Тому в сучасних ПК ОЗП побудований саме на динамічній пам'яті. Статична пам'ять застосовується для побудови "кешу" (cache). Він є додатковим і швидкодіючим сховищем копій блоків інформації основної пам'яті, до яких, ймовірно, найближчим часом буде звертання. Кеш прозорий для програміста, він не являє собою додаткової області, що адресується.

В мікропроцесорних системах головним чином використовуються статичні ОЗП та EEPROM-пам’ять даних.

  1.  Основні характеристики пам’яті: об’єм, розрядність, швидкодія, енергоспоживання, габарити, вартість, технологія виготовлення та програмування

Основними характеристиками (параметрами) пам’яті є:

  •  об’єм;
  •  розрядність;
  •  швидкодія;
  •  потужність, що споживається;
  •  габарити;
  •  вартість;
  •  технологія виготовлення та програмування.

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

Розрізняють час доступу при читанні та записі. Час, необхідний для виведення інформації з пам'яті на шину даних після одержання адреси потрібної комірки, називається часом доступу при читанні. Час доступу при записі – час, необхідний для запису даних в область, що адресується. Час доступу сучасних напівпровідникових ВІС ЗП складає одиниці-десятки наносекунд.

  1.  Призначення та організація стека

Стеком називається спеціальна область пам'яті (ОЗП), що головним чином створюється і використовується при організації і виконанні підпрограм. Стек в МПС поділяється на:

  •  апаратний;
  •  програмний.

Наявність виду стека залежить від типу МП-ра або МК-ра. В МПС, в яких стек реалізований апаратно, відсутні команди запису в стек або читання зі стека (PUSH/POP) і стек використовується тільки для зберігання адрес повернення із підпрограм. Більшість МПС мають програмний стек, який виконує функцію апаратного стека, а також є можливість виконувати зі стеком командами PUSH/POP. Для адресації комірок стека МП-ри та МК-ри містять спеціальні регістри-покажчики стека (SP). До виконання команди роботи зі стеком SP – адресує "верхівку" стека – останню комірку стекової пам'яті, у яку записана інформація, або першу вільну комірку пам’яті (залежить від типу МП-ра або МК-ра). Для запису даних у стек існує команда з мнемонікою PUSH, а для читання – РОР. Механізм виконання цих команд в "інтелоподібних" МП дуже схожий. По-перше, стек заповнюється в бік менших адрес; по-друге, обмін зі стеком відбувається словами (2 байти), причому при записі спочатку записується старший байт слова, а потім – молодший, а при читанні – навпаки; по-третє, виконується правило обміну зі стеком: першим увійшов (записався) у стек – останнім вийшов (був прочитаний) зі стека, тобто стек типу FILO ("first in last out").

Виконання команд PUSH і РОР в МК-рах типу МК-51 відрізняється від описаного: по-перше, стек заповнюється в бік зростання адреси, по-друге, обмін зі стеком відбувається байтами. Принцип "першим увійшов, останнім вийшов" зберігається.

У 8-розрядних МП-х для стека виділяється спеціальна частина загального адресного простору способом "карти пам'яті". У 16-розрядних МП для стека використовується окремий сегмент, максимальний обсяг якого складає 64 байта. У 8-розрядних МК-в, наприклад, АТ89С51, стек розташовується всередині резидентної пам'яті даних, обсяг якої складає 128 байт.

  1.  Місце модуля пам’яті у структурі мікроконтролера типу МК51

Мікроконтролери родини МК-51, наприклад AT89C51, включає два види пам’яті (рисунок 3):

  •  резидентну пам'ять даних (РПД);
  •  резидентну пам'ять програм (РПП).

Рисунок 3 – Структурна схема МК АТ89С51

  1.  Резидентна пам'ять даних

Резидентна пам'ять даних (РПД) призначена для прийому, збереження і видачі інформації, яка використовується в процесі виконання програми. Пам'ять даних ділиться на внутрішню (резидентну) – РПД, і зовнішню – ЗПД. До складу вузла РПД входить статичний оперативний запам’ятовуючий пристрій (СОЗП  SRAM) ємністю 128 байт і дешифратор адреси. Керують роботою РПД два регістри: РА (RAR) – регістр адреси; РПС (SP) – покажчик стека.

Регістр адреси СОЗП (РА) призначений для прийому і збереження адреси комірки пам'яті, яка обирається за допомогою дешифратора і може містити як біт, так і байт інформації.

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

РПС (SP) регістр-покажчик стека  являє собою 8-розрядний регістр, призначений для прийому і збереження адреси комірки стека. При виконанні команд LCALL, ACALL вміст покажчика стека збільшується на 2. При виконанні команд RET, RETI вміст покажчика стека зменшується на 2. При виконанні команди PUSH direct вміст покажчика стека збільшується на 1. При виконанні команди POP direct вміст покажчика стека зменшується на 1. Після скидання в покажчику стека встановлюється адреса 07Н, що відповідає початку стека з адресою 08Н.

Більш докладно організація пам'яті даних мікропроцесорних систем, що використовують дану МК, розглянута в окремому розділі.

  1.  Резидентна пам'ять програм

Пам'ять програм (ПП) призначена для збереження програм і має окремий від пам'яті даних адресний простір об'ємом до 64 Кбайт, причому, для мікросхеми АТ89С51 частина пам'яті програм з адресами 0000Н-0FFFH розташована на кристалі МК. Резидентна пам'ять програм, що розташована на кристалі (РПП), складається з 12-розрядного дешифратора та FLASH-ПЗП ємністю 4Кх8 біт для мікросхеми АТ89С51. Запис програм у ПП відбувається під час розробки системи.

Якщо на вивід МК ВРПП (DEMA) подається напруга живлення UСС (логічна 1), то звернення до зовнішньої пам'яті програм відбувається автоматично при видачі лічильником команд адреси, яка перевищує 0FFFH. Якщо адреса знаходиться в межах 0000Н-0FFFH, звернення відбувається до пам'яті програм, розташованої на кристалі (резидентної пам'яті програм).

Якщо на вивід МК ВРПП подається сигнал "лог. 0", то внутрішня пам'ять програм відключається, і, починаючи з адреси 0000Н, всі звернення виконуються до зовнішньої пам'яті програм.

Для формування поточної 16-розрядної адреси пам'яті програм служить лічильник команд (програмний лічильник) – ЛК (РС). 12 молодших розрядів цього регістра використовуються при адресації комірок РПП об'ємом 212 = 4 Кбайт.

Більш докладно організація пам'яті програм мікропроцесорних систем, що використовують даний МК, розглядається у розділі 2.


  1.  організація памяті типового мікроконтролера РОДИНИ МК-51
  2.  Загальні відомості

Усі МК-ри родини МК-51 мають декілька адресованих просторів пам’яті, які функціонально і логічно розділені за рахунок різниці в механізмах адресації і сигналах керування записом і зчитуванням:

  •  пам’ять програм;
  •  внутрішня пам’ять даних;
  •  зовнішня пам’ять даних.

Структура адресного простору МК-ра, наприклад, AT89C51, показана на рисунку 4. Зліва наводяться адреси відповідних областей пам’яті.

Рисунок 4 – Простір пам’яті МК-ра

  1.  Пам'ять програм

Пам’ять програм (ПП) має 16-бітову адресну шину і доступна тільки для зчитування. МК-р не має команд і сигналів керування, призначених для запису в пам’ять програм. Пам’ять програм має байтову організацію і загальний об’єм до 64 Кбайт. МК-р АТ89С51 має розташовану на кристалі внутрішню пам’ять програм ємністю 4 Кбайт, яка може бути розширена до 64 Кбайт за рахунок підключення мікросхем зовнішньої пам’яті програм. Внутрішня пам’ять програм являє собою ПЗП, який формується при виготовленні МК-ра.

З точки зору програміста може бути використаний тільки один вид пам’яті програм об’ємом 64 Кбайти. Той факт, що в ряді МК-в він утворюється комбінацією масивів, які знаходяться на кристалі і поза у співвідношенні 4 К/60 К для програміста невідчутний, тому що МК-р автоматично вибирає байт із відповідного масиву згідно з його адресою.

Сигналом, який стробує вибірку і введення байту із зовнішньої пам’яті програм у МК-р є сигнал "дозвіл ЗПП"   (). Для МК-ра, що містить внутрішню пам’ять програм,  формується тільки в тому випадку, якщо адреса в лічильнику команд перевищує максимальну адресу внутрішньої пам’яті програм 0FFFH (тобто для вибірок із внутрішньої пам’яті програм не формується ).

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

МК-ри родини МК-51 мають зовнішній вивід "відключення РПП"  ВРПП (DEMA), за допомогою якого можна заборонити роботу внутрішньої пам’яті програм, для чого необхідно подати на вивід DEMA сигнал "лог. 0". При цьому внутрішня пам’ять програм відключається і, починаючи з нульової адреси, всі звернення відбуваються до зовнішньої пам’яті програм із формуванням сигналу. У випадку, якщо DEMA = 1, працюють як внутрішня (резидентна), так і зовнішня пам’ять програм.

Для МК-в, що не мають внутрішньої (резидентної) пам’яті програм, для нормальної роботи завжди необхідно задавати DEMA = 0.

Таким чином, доступ до зовнішньої пам’яті програм здійснюється в двох випадках:

  •  при дії сигналу DEMA = 0 незалежно від адреси звернення;
  •  у будь-якому іншому випадку, якщо програмний лічильник (PC) містить число, більше ніж 0FFFH.

При вибірці з зовнішньої пам’яті програм завжди використовується 16-бітова адреса, молодший байт якої видається через порт Р0, а старший байт – через порт Р2 МК-ра. Байт із зовнішньої пам’яті програм вводиться в МК-р через порт Р0, який у цьому випадку використовується як шина адреси/даних у режимі мультиплексування.

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

Рисунок 5  Молодші адреси пам’яті програм

  1.  Пам'ять даних

Пам’ять даних МК-ра поділяється на:

  •  внутрішню (резидентну) пам’ять даних ;
  •  зовнішню пам’ять даних (ЗПД).

Внутрішня пам’ять даних МК-ра складається з двох областей: 128 байт статичної оперативної пам’яті (РПД) з адресами 0-7FH і області регістрів спеціальних функцій, які задаються адресами 80Н-FFH. Розподіл простору внутрішньої пам’яті даних показано на рисунку 6.

Рисунок 6  Адресний простір внутрішньої статичної пам’яті даних (SRAM) та регістрів спеціальних функцій (РСФ)

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

На рисунку 7 наведено розподіл адресного простору РПД і область бітів, що адресуються прямо.

Рисунок 7 – Розподіл адресного простору РПД і область бітів, що адресуються прямо

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

Регістри спеціальних функцій (SFR, SPECIAL FUNCTION REGISTERS) із вказанням їхніх адрес наведені в таблиці 1.

Таблиця 1 – Регістри спеціальних функцій

Позначення

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

Адреса

*   ACC

Акумулятор

0E0H

*   B

Регістр В

0F0H

*   PSW

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

0D0H

SP

Регістр-покажчик стеку

81H

DPTR

Регістр-покажчик даних (2 байти):

DPL

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

82H

DPH

Старший байт

83Н

*   P0

Порт 0

80H

*   P1

Порт 1

90H

*   P2

Порт 2

0A0H

*   P3

Порт 3

0B0H

*   IP

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

0B8H

*   IE

Регістр дозволу (масок) переривань

0A8H

TMOD

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

89H

*   TCON

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

88H

TH0

Таймер/лічильник 0 (старший байт)

8CH

TL0

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

8AH

TH1

Таймер/лічильник 1 (старший байт)

8DH

TL1

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

8BH

*   SCON

Регістр керування послідовним портом

98H

SBUF

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

99H

PCON

Регістр керування енергоспоживанням

87H

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

Нижче коротко описуються функції регістрів, наведених у таблиці 1.

Акумулятор А. ACC  один з найважливіших регістрів мікроконтролера. Команди, які призначені для роботи з акумулятором, використовують його ім'я "А", наприклад, MOV A, P2. Ім'я "АСС" використовується, приміром, при побітовій адресації акумулятора. Так, наприклад, символічне ім’я п’ятого біта акумулятора при використанні мови асемблера ASM51 буде таким: АСС.5.

Регістр В. Використовується під час операцій множення та ділення. Для інших команд регістр В може розглядатись як додатковий регістр внутрішньої надоперативної пам’яті (НОЗП).

Регістр стану програми PSW. Регістр PSW містить інформацію про стан програми. Формат регістра PSW (слова стану програми – ССП) наведений у таблиці 2.

Таблиця 2 – Формат регістра ССП

Позиція

Символ

Ім’я та призначення

PSW.7

C

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

PSW.6

AC

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


Продовження таблиці 2

PSW.5

F0

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

PSW.4

RS1

Вибір банку регістрів. Встановлюється та скидається програмою для вибору робочого банку регістрів (див. рисунок 7).

PSW.3

RS0

PSW.2

OV

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

PSW.1

-

Не використовується.

PSW.0

P

Прапорець пріоритету. Встановлюється і скидається апаратно в кожному циклі команди та фіксує непарне/парне (1/0) число одиничних біт в акумуляторі, тобто виконує контроль за парністю.

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

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

Порт 0 – Порт 3. Регістрами спеціальних функцій P0, P1, P2, P3 є регістри-"защіпки" відповідно портів P0, P1, P2, P3.

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

Регістри таймерів. Регістрові пари (TH0, TL0) та (TH1, TL1) утворюють 16-бітові регістри-лічильники відповідно таймера/лічильника0 і таймера/лічильника1.

Регістри керування. Регістри спеціальних функцій IP, IЕ, TMOD, TCON, SCON і PCON містять біти керування та біти стану системи переривань, таймерів/лічильників, послідовного порту, схеми керування споживанням енергії від джерела живлення.

Всі 21 РСФ допускають пряму байтову адресацію, а 11 РСФ, які у таблиці 1 відмічені зірочками, допускають також пряму бітову адресацію (рисунок 8).

Всі комірки внутрішньої пам’яті даних (РПД) можуть адресуватись з використанням прямого і непрямого методів адресації (режими адресації описані в лекції 3). Крім того, внутрішній СОЗП (SRAM) даних має такі особливості (рисунок 7).

Молодші 32 байти внутрішнього статичного ОЗП (СОЗП) даних згруповані в 4 банки по 8 регістрів у кожному (БАНК0-БАНК3). Команди програми можуть звертатися до регістрів, використовуючи їх імена R0-R7. Два біти регістра PSW (покажчики банку робочих регістрів RS0 і RS1) визначають банки, із регістрами яких проводяться маніпуляції. Наявність такого механізму роботи з комірками СОЗП дозволяє заощаджувати пам’ять програм, тому що команди, які оперують із регістрами R0-R7, коротші за команди, що використовують пряму адресацію.

Рисунок 8 – Адреси бітів регістрів спеціальних функцій

Наступні 16 байт, які розташовані після двох банків регістрів внутрішнього ОЗП даних (адреси 20Н-2FH) утворюють область комірок, до яких можлива побітова адресація. Набір команд МК-ра родини МК-51 містить значну кількість інструкцій, які дозволяють працювати з окремими бітами, використовуючи при цьому пряму адресацію. 128 біт, що складають вказану область внутрішнього ОЗП даних, мають адреси 00Н7FH і призначені для роботи з такими інструкціями. Бітова адресація ОЗП показана на рисунку 9, де в квадратах, що символізують біти, зазначені їхні адреси.

Рисунок 9  Організація побітової адресації ОЗП

Звернення до внутрішнього СОЗП даних завжди здійснюється з використанням 8-розрядної адреси. При вмиканні живлення вміст СОЗП буде мати випадкове значення.

Зовнішня пам’ять даних формується додатковими мікросхемами пам’яті, що підключаються до МК-ра, і може мати ємність до 64 Кбайт. Простори внутрішньої та зовнішньої пам’яті даних не перетинаються, тому що доступ до них здійснюється за допомогою різних команд. Для роботи з зовнішньою пам’яттю даних існують спеціальні команди MOVX, які не впливають на внутрішню пам’ять даних МК-ра. Таким чином, у системі можуть одночасно бути присутні внутрішня пам'ять даних з адресами 00H–FFH і зовнішня пам’ять даних з адресами 0000Н-FFFFH. Звернення до комірок зовнішньої пам’яті даних здійснюється тільки з використанням непрямої адресації за допомогою регістрів R0 і R1 активного банка регістрів внутрішнього СОЗП (команди типу MOVX  @Ri) або за допомогою регістра спеціальних функцій DPTR (команди типу MOVX  @DPTR). Відповідно, в першому випадку буде формуватися 8розрядна, а в другому випадку 16-розрядна адреси зовнішньої пам’яті даних.

При зверненнях до зовнішньої пам’яті даних адреса виводиться через порт Р0 (молодший байт) і порт Р2 (старший байт) МК-ра. Обмін байтом даних (запис і зчитування) проводиться через порт Р0 МК-ра, тобто порт Р0 використовується як шина адреси/даних у режимі мультиплексування.

Зчитування даних із зовнішньої пам’яті даних у МК-р проводиться за допомогою керуючого вихідного сигналу , а запис даних із МК-ра у зовнішню пам’ять даних за допомогою керуючого вихідного сигналу .

Кожен тип зовнішньої пам’яті (пам’ять програм, пам’ять даних) може бути доданий незалежно від іншого і кожен з них використовує ті ж шини адреси/даних, але інші сигнали керування.

  1.  Приклади підключення до мікроконтролера AT89C51 ЗПД та ЗПП

На рисунках 10, 11 наведені функціональні електричні схеми підключення до МК-ра AT89C51 відповідно ЗПД об’ємом 2 Кбайт (мікросхема К537РУ8) та ЗПП об’ємом 8 Кбайт (мікросхема К573РФ6).

Рисунок 10 – Підключення ЗПД (2 Кбайт) до МК-51

Рисунок 11 – Підключення ЗПП (8 Кбайт) до МК-51

Буферний регістр адреси, БРА, (мікросхема КР580НР82) призначений для демультиплексування восьми ліній порту P0 мікроконтролера. Як зазначалося вище, при роботі з ЗПД або ЗПП спочатку через лінії порту P0 видається молодший байт адреси ЗПД або ЗПП. При цьому на лінії ALE мікроконтролера формується імпульс-строб, який надходить на вхід STB БРА та защіпає в ньому молодший байт адреси. При цьому лінії порту P0 звільняються для роботи із ЗПД (читання або запис даних) або ЗПП (читання байтів програми).

Оскільки об’єм ЗПД складає 2 Кбайт, а ЗПП – 8 Кбайт, то додаткові старші біти адреси: 3 для ЗПД та 5 для ЗПП постійно присутні на лініях P2.0…P2.4 протягом всього циклу взаємодії з ЗПД або ЗПП.

Вихідні буфери шини даних ЗПД та ЗПП (D0…D7) мають 3 стани: два активних – логічна 1 або логічний 0, та 3-й високоімпедансний стан. Для того, щоб перевести ці буфери у 3-й відключений від виходів стан, потрібно подати на вхід CS логічну 1. В активний стан виходи даних мікросхем переводяться:

  •  для ЗПД сигналом  (логічний нуль), який формується на виході P3.7 МК-ра при виконанні команд читання з ЗПД (при цьому CS = 0);
  •  для ЗПП сигналом  (логічний нуль), який формується на виході PME МК-ра при зверненні до ЗПП (при цьому CS = 0).

Тобто, щоб зробити мікросхеми ЗПД та ЗПП активними, потрібно подати на вхід CS логічний нуль.

На керуючий вхід  мікросхеми ЗПД подаються:

  •  сигнал  (логічний нуль), який формується на лінії P3.6 при виконанні команд запису даних у ЗПД;
  •  логічна одиниця, яка знімається з виходу P3.7 при відсутності запису даних у ЗПД.

САМОСТІЙНА РОБОТА СТУДЕНТІВ

  1.  ОСОБЛИВИЙ РЕЖИМ РОБОТИ ПАМ’ЯТІ МІКРОКОНТРОЛЕРА

Пам'ять програм МК-51 заповнюється один раз на етапі розробки МК – системи, і не може бути змінена в завершеній системі.

Тому розглянутий МК-51 не є машиною класичної «фон нейманівської» архітектури. МК містить пам'ять даних і пам'ять програм, які логічно (програмно) розділені. Отже, оперативна пам'ять даних (резидентна або зовнішня) не можуть бути використані для зберігання кодів програми, тому що вибірка команд в МК51 виконується тільки з пам'яті програм (внутрішньої і/або зовнішньої). Це пояснюється тим, що у більшості застосувань мікроконтролера потрібна наявність однієї незмінної прикладної програми, яка записується у ПЗП на етапі розроблення мікропроцесорної системи (МПС), а ОЗП використовується для тимчасового зберігання змінних.

Однак, на етапі розроблення і налагодження прикладних програм машина «фон нейманівського» типу виявляється дуже зручною, тому що дозволяє розробнику оперативно змінювати коди прикладної програми, розташованої в ОЗП.

Для цього МПС з мікроконтролером може бути модифікована з метою суміщення адресних просторів ЗПП і ЗПД шляхом використання зовнішньої логіки, як показано на рисунку 1. ЗПП і ЗПД об'єднані у загальному зовнішньому ОЗП, об'ємом 64 КБайт. Запис даних в ОЗП стробується сигналом , що формується на виході WR (P3.6) при виконанні команд запису в ЗПД.

Читання ОЗП стробується сигналом , який формується в одному з двох випадків:

  •  або при читанні ЗПД (супроводжується сигналом  (Р3.7) при виконанні команд читання ЗПД);
  •  або при читанні команд програми з ЗПП (супроводжується сигналом , що формується при зверненні до ЗПП).

Рисунок 1 – Суміщення адресних просторів ЗПД і ЗПП в єдиному зовнішньому ОЗП об'ємом 64 КБайт

Логічний елемент І (кон'юнктор) реалізує перемикальну функцію:

 (1)

де змінна А відповідає логічному сигналу на виводі RD (Р3.7), а змінна В – на виводі PSEN.

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

При використанні описаного особливого режиму роботи пам'яті варто враховувати, що в МК-рі на фізичному (апаратному) рівні використовується п'ять видів пам'яті: РПД, РПП, ЗПД, ЗПП і блок регістрів спеціальних функцій. Внаслідок цього, версія прикладної програми, що налагоджується у зовнішній суміщеній пам'яті програм і даних (у зовнішньому ОЗП), буде відрізнятися від остаточної версії робочої програми, яка завантажується в пам'ять програм.

Описаний спосіб організації керування зовнішньою пам'яттю може бути використаний у тих застосуваннях МК-51, де потрібні оперативне перезавантаження або модифікація прикладних програм за допомогою пристроїв введення/виведення (ПВВ) як в ЕОМ класичної архітектури.

  1.  ПРОГРАМУВАННЯ І ПЕРЕВІРКА ПАМ'ЯТІ ПРОГРАМ
  2.  Програмування та перевірка пам’яті програм з ультрафіолетовим стиранням
  3.  Програмування та перевірка пам’яті програм

Розглянемо особливості програмування пам’яті програм (ПП) з ультрафіолетовим стиранням, наприклад, для МК-ра і8751.

Програмування здійснюється на частоті задаючого генератора 46 МГц. Генератор необхідний для роботи внутрішньої шини МК-ра, по якій відбуваються пересилання адреси і даних у відповідні внутрішні регістри. В таблиці 1 наведені режими роботи МК при програмуванні і перевірці внутрішньої РПП.

Логічні рівні сигналів на виводах при програмуванні і перевірці внутрішньої РПП наведені в таблиці 1.

Таблиця 1 – Режими роботи при програмуванні і перевірці РПП

Режим

RST

PME

ALE

DEMA

P2.7

P2.6

P2.5

P2.4

Програмування

1

0

0*

UPR

1

0

X

X

Перевірка

1

0

1

1

0

0

X

X

Програмування біта захисту пам'яті

1

0

0*

UPR

1

1

X

X

Примітки:

«1» – рівень «лог. 1» на відповідному виводі МК-ра;

«0» – рівень «лог. 0» на відповідному виводі МК-ра;

«х» – довільний логічний рівень.;

UPR = +21 В ± 0,5 В;

* – подається імпульсом низького логічного рівня (ALE) тривалістю 50 мс ± 5 мс.

На рисунках 2, 3 показані схеми вмикання МК-ра при його роботі в режимах, які наведені у таблиці 1.

У режимі програмування адреса комірки РПП, в яку необхідно записати інформацію, подається на виводи портів Р1 і Р2: молодші розряди адреси А0…А7 подаються на виводи Р1.0...Р1.7, а старші розряди адреси А8…А11 – відповідно на виводи Р2.0...Р2.3.

Байт даних, який необхідно записати в комірку РПП, що адресується, подається на виводи порту Р0.

На інші виводи порту Р2, а також на виводи МК-ра RST,  і DEMA подаються сигнали з рівнями, які задані для режиму «Програмування» у таблиці 1. Програмування комірки РПП відбувається при подачі імпульсу низького рівня ALE тривалістю 50 мс ± 5 мс згідно з рисунком 2. DEMA утримується у стані «лог. 1» до подачі імпульсу ALE. Потім напруга на виводі DEMA підвищується до 21 В ± 0,5 В, подається імпульс ALE, і DEMA знову повертається до рівня «лог. 1».

Рисунок 2 – Прогярамування МК-ра і8751

Особливо необхідно підкреслити, що навіть короткочасне імпульсне перевищення напруги на виводі DEMA рівня 21,5 В може викликати незворотну відмову мікросхеми. Тому джерело програмованої напруги UPR повинне бути добре відрегульоване.

Рисунок 3 – Перевірка РПП

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

Адреса комірки пам'яті програм, вміст якої необхідно прочитати, подається на виводи портів Р1 і Р2 аналогічно режиму програмування. Інші виводи МК повинні підтримуватися у станах, наведених для режиму «Перевірка» у таблиці 1.

Вміст комірки пам'яті, що адресується, зчитується з виводів порту Р0 при подаванні низького логічного рівня на вивід Р2.7. При зчитуванні вивід Р2.7 може або постійно підтримуватися в стані «лог. 0», або використовуватись в якості строб-сигналу зчитування з активним низьким рівнем.

Для роботи в даному режимі необхідно використовувати «підтягуючі» резистори RС1…RС8, які включені між виводами порту Р0 і напругою живлення.

  1.  Програмування біта захисту пам’яті

Властивість захисту пам'яті полягає у наявності в складі РПП спеціального біта, який після програмування забороняє доступ до внутрішньої пам'яті програм будь-яким зовнішнім відносно МК пристроям.

Рисунок 4 – Програмування біта захисту пам’яті

Включення мікросхеми в режим програмування біта захисту пам'яті показано на рисунку 4. Процедура програмування в даному випадку аналогічна звичайному програмуванню РПП МК за винятком того, що вивід Р2.6 утримується в стані «лог. 1». Порти Р0, Р1 і виводи Р2.0 – Р2.3 можуть знаходитися в довільному стані. Інші виводи МК повинні утримуватися в станах, наведених у таблиці 1 для режиму «Програмування біта захисту пам'яті».

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

  1.  Стирання РПП

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

Рекомендується проводити стирання РПП ультрафіолетовим випромінюванням (довжина хвилі 2537 ангстрем) з інтегральною дозою як мінімум 15 Вт-сек/см2. При цьому для стирання необхідно помістити мікросхему під ультрафіолетову лампу з потоком 12000 мкВт/см2 на час 20-30 хвилин і на відстань біля 2,5 см від лампи до кварцового віконця мікросхеми. Після стирання всі комірки РПП знаходяться у стані «лог. 1».

  1.  Паралельне/послідовне програмування FLASH-пам’яті 

Розглянемо приклад програмування FLASH-пам’яті на основі мікроконтролера Aduc847. Aduc847 – мікроконтролер виробника Analog Devices, побудований на ядрі МК-51.

У нормальному режимі 62КБ Flash / EE пам'яті програм можна програмувати двома способами:

  •  послідовним програмуванням. У складі системи ADuC847 є стандартний послідовний порт (UART). Режим послідовного завантаження включається автоматично при подачі живлення або після виконання зовнішнього скидання, якщо контакт PSEN підключений через зовнішній резистор 1кОм до землі. Потрапивши в режим послідовного завантаження, мікроконвертер починає виконувати ПЗ (програмне забезпечення) з прихованої частини ПЗП. У цей час користувач може завантажувати свій код в масив пам'яті програм 62КБ. 
  •   паралельним програмуванням. Режим паралельного програмування повністю сумісний зі стандартними пристроями програматорів EEPROM або Flash-пам'яті від сторонніх виробників. Блок схема зовнішньої конфігурації контактів, необхідна для підтримки паралельного програмування, показана на рисунку 5. У цьому режимі порти P0 і P2 використовуються в якості зовнішньої інтерфейсної магістралі адреси, а порт Р3 - магістралі даних. Р1.0 використовується як строб дозволу запису даних. Порти Р1.1, Р1.2, Р1.3 і Р1.4 використовуються як порти загального призначення, які встановлюють пристрій у різні режими стирання та програмування під час виконання процесу паралельного програмування.

Рисунок 5 – Паралельне програмування Flash/EE пам’яті

Режим завантаження користувачем (ULOAD)

На рисунку 6 показано, що користувачеві для розміщення його прикладних програм доступний один блок Flash / EE пам'яті розміром 62КБ. У такому режимі роботи Flash / EE пам'ять являє собою ПЗП виконуваного коду, доступну лише для читання.

У режимі ULOAD (завантаження користувачем - ПЗ) Flash / EE пам'ять можна використовувати і для запису. Як показано на рисунку 7, в режимі ПЗ нижні 56КБ пам'яті програм можна використовувати для запису із ПЗ користувача. У режимі ПЗ, використовуючи будь-який протокол обміну, можна модифікувати програмний код користувача, розташований в цій області пам'яті. 

Рисунок 6 – Карта розподілу Flash/EE пам’яті програм в нормальному режимі роботи

Крім того, в режимі ПЗ в 56КБ Flash / EE пам'яті можна зберігати дані. Це особливо корисно в додатках, пов'язаних з реєстрацією даних, причому ADuC847 може надати для запису даних 60КБ Flash / EE пам'яті (оскільки існує ще 4КБ спеціальної  додаткової Flash / EE пам'яті даних).

Верхні 6КБ з 62КБ Flash / EE пам'яті програм програмуються тільки послідовно або паралельно. Це означає, що цей простір пам'яті може бути використано тільки як ПЗУ програм користувача. Тому цю область пам'яті неможливо довільно стерти або випадково перепрограмувати. З цієї причини в цій області пам'яті (6КБ) зазвичай розміщують початковий завантажувач. 

Рисунок 7 – Карта Flash/EE пам’яті в режимі завантаження ПЗ

У послідовному завантажувачі існує варіант запуску початкового завантажувача, який «визначається фразою»: «Після сигналу СКИДАННЯ завжди починати роботу з адреси Е000h». При завантаженні рекомендується користуватися початковим завантажувачем, оскільки при цьому гарантується, що з появою сигналу СКИДАННЯ завантаження завжди буде виконуватися коректно.

  1.  Програмування FLASH-пам’яті за допомогою інтерфейсу JTAG

Flash пам'ять програм різних мікроконтролерів також має різний об'єм і розташування, що також буде показано на відповідних картах пам'яті. Основна Flash пам'ять програм розташована з адреси 0x0000. Чиста Flash пам'ять (після стирання) містить код 0xFF у всіх байтах. При запису кожного байта, його стирання перед записом здійснюється автоматично. Очікування або визначення завершення операції запису / стирання також не потрібно. Пам'ять розрахована на як мінімум на 20000 циклів запису / стирання.

Взагалі кажучи, термін "програмна пам'ять" має на увазі пам'ять, доступну тільки для читання. Однак, ядро CIP-51 дозволяє і писати в цю пам'ять при установці біта PSCTL.0 (Program Store Write Enable Bit). Запис здійснюється інструкцією MOVX. Цей механізм дозволяє оновлювати програмний код і використовувати пам'ять програм для запису даних що рідко змінюються і різних налаштовуючих параметрів.

Програмування Flash пам'яті здійснюється через послідовний інтерфейс JTAG, керований утилітами програмування фірми Cygnal. Нагадаємо, що операція запису може тільки очистити будь-якоій біт, тобто записати логічний 0. Запис одиниці неможливий, тому відновлення одиниць можливо тільки операцією стирання. З цього випливає, що перш ніж записати новий байт в пам'ять, старий байт необхідно стерти. Flash пам'ять, як правило, має секторну організацію. Стирання проводиться по-секторно, при цьому всі байти сектора встановлюються в 0хFF. Природно, що при такій операції стирання, записувати також треба цілий сектор, що буває не дуже зручно.

Однак є й інший, більш зручний шлях. Якщо встановити PSEE (Program Store Erase Enable) біт (PSCTL.l) і PSWE біт (PSCTL.0) в логічну одиницю, то стає можливим використання інструкції MOVX для запису тільки одного байта (з попереднім автоматичним стиранням), а не цілого сектора. Наведемо типову послідовність алгоритму програмування. 

1. Дозволити операції запису / стирання пам'яті Flash в регістрі FLSCL установкою біта FLASCL.

2. Встановити біт PSEE (PSCTL.l) для дозволу стирання сектора Flash пам'яті.

3. Встановити біт PSWE (PSCTL.0) для дозволу операції запису в Flash.

4. Використовувати інструкцію MOVX для запису будь-якого байта за довільним адресою без стирання 512-байтного сектора.

5. Стерти біт PSEE для заборони стирання сектора Flash пам'яті.

6. Використовувати інструкцію MOVX для запису будь-якого байта по обраній адресі без стирання 512-байтного сектора. Повторювати цю операцію для будь-якої кількості байт від одного до цілого сектора.

7. Стерти біт PSWE для заборони операцій Flash запису.

Час запису / стирання автоматично контролюється апаратно на основі даних, встановлених у регістрі FLSCL (Flash Memory Timing Prescaler). Чотири біта регістра FLASCL визначають часовий інтервал операцій запису / стирання.

Ядро CIP-51 має багаторівневий захист Flash пам'яті. Біти PSCTL.0 (Program Store Write Enable) і PSCTL.l (Program Store Erase Enable) захищають Flash пам'ять від випадкової модифікації програмою. Ці біти повинні бути попередньо встановлені в 1 для того, щоб дозволити програмі модифіковані Flash пам'ять.

Є також кілька байтів захисту, кожен біт яких захищає блок пам'яті програм певного розміру від операцій читання, минаючи JTAG інтерфейс. Таким чином, одні біти захищають пам'ять від запису / стирання, інші - від читання. Блок Flash пам'яті, що містить байти захисту, дозволений для запису, але заборонений для стирання програмним забезпеченням.

Отже, байт FRLB (FLASH Read Lock Byte) містить біти захисту пам'яті від читання через JTAG інтерфейс. Логічний 0 у відповідному бите замикає відповідний блок пам'яті і робить його недоступним для читання через JTAG інтерфейс. Запис в біт логічної одиниці дозволяє читання відповідного блоку.

Байт FWELB (FLASH Write / Erase Lock Byte) містить біти захисту пам'яті від запису через JTAG інтерфейс. Логічний 0 блокує запис, логічна 1 - дозволяє запис.

Ще один тип захисту міститься в регістрі FLACL (FLASH Access Limit Register). Цей реєстр містить старший байт 16-бітного адресу, нижче якого програмне читання заборонено. Всі спроби читання цих байтів повертають код 0x00. Таким чином, можлива багатоступеневий захист пам'яті, оскільки блоки, що містять байти захисту можуть бути, в свою чергу замкнені. Повне стирання всього захисту можливо тільки при повному стиранні всієї програмної Flash пам'яті через JTAG програматор і неможливо з користувальницької програми. 

  1.  ПАМ’ЯТЬ ДАНИХ EEPROM У МІКРОКОНТРОЛЕРАХ РОДИНИ МК-51

EEPROM - (англ. Electrically Erasable Programmable Read-Only Memory, електрично стираємий перепрограмований ПЗП, ЕСППЗП). Пам'ять такого типу може стиратися і заповнюватися даними кілька десятків тисяч разів. Використовується в твердотільних накопичувачах. Однією з різновидів EEPROM є флеш-пам'ять.

Розглянемо EEPROM на базі мікроконтролера ADUC824.

ADUC824 має 640 байт EEPROM пам’яті. Вона знаходиться в своєму власному адресному просторі, не пересікаючись ні з адресним простором пам’яті програм, ні з простором пам’яті даних. Сказане означає, що доступ до EEPROM пам’яті відрізняється від доступу до регістрів, оперативної пам’яті і пам’яті програм. 

У мікроконтролера ADUC824  EEPROM пам’ять організована в вигляді 160 4-байтних сторінок. 

Інтерфейс в цій області пам’яті відбувається через SFR-регістри. Для збереження вмісту 4-байтної сторінки послідовного звернення використовується 4 регістри даних EDATA1…4. Для збереження 8-бітного адресу сторінки, до якого буде здійснено доступ, використовується регістр EADRL. ECON – 8-бітний регістр управління, в який можна записати одну з п’яти команд доступу до EEPROM даних, забезпечуючи виконання різних операцій  - читання, запису, стирання, верифікації.

  1.  РОЗВИТОК АРХІТЕКТУРИ МОДУЛЯ ПАМЯТІ МІКРОКОНТРОЛЕРІВ РОДИНИ МК-51

Від перших мікроконтролерів сімейства МК-51, модуль пам’яті потерпів багато змін. Починаючи від енергозалежної пам’яті SRAM i закінчуючи енергонезалежною FLASH і EEPROM пам’яттю, всі ці види були в свій час задіяні в архітектурі мікроконтролера. Змінювалися технології, змінювалися об’єми пам’яті які можна використовувати.

Статична оперативна пам'ять з довільним доступом (SRAM, static random access memory) - напівпровідникова оперативна пам'ять, в якій кожен двійковий або трійчастий розряд зберігається у схемі з позитивним зворотним зв'язком, що дозволяє підтримувати стан сигналу без постійної перезапису, необхідної в динамічної пам'яті (DRAM). Тим не менше, зберігати даних без перезапису SRAM може тільки поки є живлення, тобто SRAM залишається енергозалежним типом пам'яті. Довільний доступ (RAM - random access memory) - можливість вибирати для запису / читання будь-який з бітів (тритів) (частіше байтів (трайтів), залежить від особливостей конструкції), на відміну від пам'яті з послідовним доступом (SAM - sequental access memory).

Першою енергонезалежною пам'яттю була ROM (ПЗП) - Read Only Memory. З назви стає зрозуміло, що даний тип має єдиний цикл запису. Він здійснюється відразу при виробництві, шляхом нанесення алюмінієвих доріжок між осередками ROM літографічним способом. Наявність такої доріжки означає 1, відсутність 0.
На жаль, цей вид пам'яті не придбав велику популярність, оскільки процес виготовлення мікросхеми ROM займає тривалий час (від 4 до 8 тижнів). Але, як це не парадоксально, вартість пам'яті досить низька (природно, при великих обсягах виробництва).

Природньо, що ROM пам’яттю  справи не обмежилися. Виникла гостра необхідність у перезапису пам'яті, а кожного разу випускати ПЗУ з новими даними було дорого і нераціонально. Тому ROM змінила PROM (Programmable ROM). Мікросхему з такою пам'яттю можна було піддати повторному (правда, єдиному) перезапису (прожигу) за допомогою спеціального пристрою - програматор.

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

Як було сказано вище, ROM і PROM відносяться до виду неперезаписуваної енергонезалежної пам'яті. У 1971 році Intel випускає зовсім нову мікросхему пам'яті під абревіатурою EPROM (Erasable Programmable ROM). Таку мікросхему можна було піддавати неодноразовому перезапису шляхом опромінення мікросхеми рентгенівськими або ультрафіолетовими променями. Пам'ять, яка стирається ультрафіолетом, з'явилася трохи пізніше і носить абревіатуру UV-EPROM. У такій мікросхемі є невелике віконце з кварцовим склом. За ним знаходиться кристал, який опромінюється ультрафіолетом. Після стирання інформації це віконце заклеюють.

Частковий перезапис даних як і раніше залишається неможливим, тому що рентгенівські й ультрафіолетові промені змінюють всі біти стираємої області в положення 1. Повторний запис даних здійснюється також на программаторах (як в ROM і EROM).

Взагалі, EPROM була заснована на МОП (метал-оксид-напівпровідник) транзисторах. Запис даних у комірки такого транзистора проводився методом лавинної інжекції заряду (про методи запису буде сказано нижче). Цей метод давав змогу неодноразово перезаписувати дані пам'яті (хоча кількість циклів було обмеженим). Таким чином, разом з EPROM народжується покоління NVRWM, що розшифровується як NonVolatile Read-Write Memory. Але, незважаючи на абсолютно нову технологію, цей вид був витіснений з ринку іншими видами пам'яті.

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

Вартість EEPROM була високою. Це не дивно, так як технології виробництва такої пам'яті були дуже складними. На відміну від попереднього EPROM, збільшувалася кількість циклів перезапису інформації.

Нарешті в 1984 році компанія Toshiba розробляє принципово новий вид пам'яті під назвою Flash. Через чотири роки Intel випускає свій варіант Flash-пам'яті (тому іноді її створення незаслужено приписують цій компанії).

Але про все по порядку. Як було сказано, Flash-memorу була створена в 1984 році. Відразу після цього почався інтенсивний процес розвитку цього виду пам’яті, а на її попередницю урочисто забули (хоча EEPROM ще довгий час кермував на ринку). 

У самому простому випадку осередок Flash складається з одного польового транзистора. Елемент включає в себе спеціальну електрично-ізольовану область, звану "плаваючим затвором". Цей термін виник через те, що потенціал цієї області не є стабільним, що дозволяє накопичувати в ній електрони (саме тут і зберігається вся інформація пам'яті). Вище "плаваючого" знаходиться керуючий затвор, який є невід'ємною частиною при процесі запису / стирання даних пам'яті. Ця область безпосередньо з'єднана з лінією слів. Перпендикулярно цієї лінії розташовується лінія бітів, яка з'єднана зі стоком (при запису даних з цієї області транзистора з'являється потік електронів). Стік розділяється з витоком спеціальної підкладкою, яка не проводить електричний струм.

Запис даних в Flash відбувається методом інжекції "гарячих" електронів, а стирання - методом тунелювання Фаулера-Нордхейма.

  1.  Об’єми пам’яті в мікроконтролерах різних виробників

Таблиця 2 – об’єми пам’яті в мікроконтролерах   ATMEL

Тип

ПЗП, КБайт

ОПЗ, байт

AT89C51-12AC

4

128

AT89C51-20AC

4

128

AT89C52-12PI

8

256

AT89C52-16JI

8

256

AT89C1051-12PC

1

64

AT89C2051-12PC

2

128

AT89C55-12AC

20

256

AT89S53-16AA

12

256

AT89S8252-16AA

8

256+2048

Таблиця 3 – об’єми пам’яті в мікроконтролерах   Philips

Тип

ПЗП, КБайт

ОПЗ, байт

8xC51

4

128

8xC52

8

256

8xC54

16

256

8xC58

32

256

8xC51RA+

8

512

8xC51RB+

16

512

8xC51RC+

32

512

8xC51RD+

64

1024

8xC748

2

64

8xC750

1

64

Таблиця 4 – об’єми пам’яті в мікроконтролерах   Silicon Labs

Лінійка (мікроконтроллера)

ПЗП, КБайт

ОПЗ, байт

C8051F0xx

32

256,2.25К

C8051F018, C8051F019

16

1.25К

C8051F02x

64

4.25К

C8051F04x

64

4.352К

C8051F2xx

8

1.25К, 256

C8051F30x

8

256

C8051F12x

128

8.25К

C8051F06x

64

4.352К

Продовження таблиці 4

C8051F31x

16

1.28К

C8051F32x

16

2.3К

C8051F33x

8

768

PAGE   \* MERGEFORMAT 30


 

А также другие работы, которые могут Вас заинтересовать

60878. Лексика. Росіянізм, калька, покруч 95.5 KB
  Русизми це окремі російські слова найчастіше з українізованою вимовою наприклад: тормозити замість гальмувати порівняйте рос. Затребуваний і кальковані від нього слова: запитаний запотребуваний затребований восребуваний витребуваний.
60880. Опера М.И.Глинки Иван Сусанин 25.58 KB
  Семья Медичи славилась своим пристрастием к искусству, особенно любовью к театру и музыке, и все предвкушают, что на свадьбе смогут увидеть и услышать нечто совершенно необычное. Дворец уже полон гостей. Здесь собрался цвет итальянского искусства
60881. Общие методы решения уравнений 64.5 KB
  Цель урока: формировать способность к обобщению знаний учащихся о методах решения уравнений; способствовать дальнейшей отработке знаний и умений применять общие методы при решении уравнений.