Мікроконтролери Z86 фірми ZILOG

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Мікроконтролери сімейства Z86 фірми ZILOG

ВСТУП

Пристрої передачі та обробки інформації є тими "цеглою", з яких будуються складні інформаційно-керуючі системи, такі як, наприклад, цифрові мережі зв'язку з інтеграцією служб-ISDN [1]. Проектування таких пристроїв представляє складне технічне завдання, оскільки до них пред'являється ряд серйозних технічних вимог в частині:

- Складних протоколів обміну даними;

- Високих швидкостей передачі;

- Складних алгоритмів обробки;

- Високої точності;

- Аналого-цифрових функцій;

- Надійності та достовірності;

- Стійкості до впливу дестабілізуючих чинників;

- Конструктивних параметрів (габаритні розміри, маса);

- Енергоспоживання.

Вирішальну роль на технічні характеристики пристроїв передачі та обробки інформації надає використовувана елементна база. Найбільш підходяща елементна база для побудови таких пристроїв-це однокристальні мікроконтролери (МК). Такі прилади поставляються на світовий ринок усіма провідними виробниками мікропроцесорів: Intel, Motorola, Texas Instruments, Microchip Technology, Zilog та ін Особливий інтерес для даного класу пристроїв представляють малогабаритні МК з мікропотужні споживанням. Серед них можна виділити МК PIC 16CXX фірми Microchip Technology [2] і Z8 фірми Zilog [3,4]. Якщо PIC-контролери відносяться до процесорів з так званою скороченою системою команд (Reduced Instruction Set Command-RISC), то Z8-це процесори з комплексною системою команд (Complex Instruction Set Command-CISC). Перевагою останніх є більш високий рівень команд, що робить програмний код більш ефективним у сенсі часу виконання та обсягу займаної пам'яті і спрощує програмування на мові асемблера. Це дозволяє рекомендувати MK сімейства Z8 для використання в практиці проектування пристроїв передачі та обробки інформації.

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

1. Однокристальні мікроконтролери сімейства Z8

1.1. Опис сімейства Z8

Серед новітніх моделей МК сімейства Z8 слід виділити ряд малопотребляющіх МК, виконаних за КМОН технології, основні параметри яких наведені в табл.1.1. Позначення МК складається з префікса фірми-Z, номери сімейства -86, літери виконання і номера моделі.

Таблиця 1.1

Малопотребляющіе мікроконтролери сімейства Z8

Позначення

Мікросхеми

ПЗУ

Байт

ОЗУ

байт

Введення / Висновок

Біт

Частота

МГц (max)

Корпус

к-сть вив.

Z86x02

512

61

14

8

18

Z86x03

512

61

14

8

18

Z86x04

1K

125

14

12

18

Z86x06

1K

125

14

12

18

Z86x08

2K

125

14

12

18

Z86x31

2K

125

24

16

28

Z86x30

4K

237

24

16

28

Z86x40 *

4K

236

32

16

40/44

Примітка: x - літера виконання, С, Е або L.

* - Є можливість підключення зовнішніх ПЗУ і ОЗУ об'ємом по 60К байт.

МК, в позначення яких входить літера "C", мають ПЗУ з масковим програмуванням. Літера "E" у позначенні вказує на варіант з однократно електрично програмованим ПЗУ. Літера "L" відповідає варіантам з масковим ПЗУ і зниженою напругою живлення. Перші використовують для випуску серійних виробів (5000 і більше штук), другі-для досвідчених, одиничних і дрібносерійних виробів, треті-для серійних пристроїв з автономним живленням від пари сухих гальванічних елементів або акумуляторів.

Фірма-виробник поставляє спеціальне недороге устаткування у вигляді апаратно-програмних крос-засобів, орієнтованих на ПЕОМ IBM PC, для розробки виробів на базі МК, куди входить і програматор для однократно програмувальних МК (наприклад, внутрішньосхемного емулятор-програматор Z86CCP01ZEM з програмним забезпеченням).

Всі МК [4,5] мають 5-6-і рівневий контролер переривань, один або два таймери / лічильника і два аналогових компаратора. Останні дозволяють вирішувати питання порівняння рівнів напруги, детектування короткозамкнутого стану датчиків, аналого-цифрового перетворення без використання додаткових компонентів. Крім того, модель 06 має вбудований послідовний інтерфейс.

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

Розробники МК передбачили в них цілий ряд апаратних функцій, які забезпечують надійність роботи в умовах дії перешкод і дестабілізуючих чинників: автоматичне скидання при включенні живлення (Power-On Reset), сторожовий таймер (Watch-Dog Timer), захист від зниження напруги живлення (Low- Voltage Protection), захист ОЗУ (RAM Protect).

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

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

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

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

МК працюють в широкому діапазоні живлячої напруги:

3 -5,5 По-для масочного виконання; 4,5 -5,5 По-для однократно програмованого і 2 -3,9 По-для виконання зі зниженим годує напругою. Споживана потужність у стандартному режимі на максимальній допустимій частоті становить 30 -60 мВт.

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

Оригінальна схема вбудованого генератора синхронізації дозволяє використовувати в якості времязадающих елементів кварцові і керамічні резонатори, LC і RC-ланцюга. Можлива і синхронізація від зовнішнього джерела. Функціонування МК забезпечується в широкому діапазоні робочих частот від 10 кГц до максимальної (див. табл.1.1). Причому, чим нижче частота, тим менше споживаний струм від джерела живлення. Наприклад, для версії "C" більшості МК на частоті 32 кГц гарантується споживаний струм 8 мкА.

Для застосувань з високими вимогами до електромагнітної сумісності МК Z8 можуть бути переведені в малошумливий режим (Low Noise). У цьому режимі кілька погіршується здатність навантаження портів виведення і збільшується час перехідних процесів, однак значно знижується рівень електромагнітного випромінювання. Частота зовнішнього кварцового резонатора при цьому обмежується величиною 4 МГц.

Виробник гарантує надійну роботу МК при температурі навколишнього середовища від 0 до 70 градусів Цельсія для стандартного виконання і від -40 до 105 градусів для виконання з розширеним температурним діапазоном (Extended Temperature). В останньому виконанні поставляються всі МК з літерою "C" і моделі 02, 04, 08, 30, 31 і 40 з літерою "E".

І, нарешті, для виключення можливості копіювання програми МК конкурентами передбачений, біт захисту ПЗУ (ROM Protect). У більш ранніх версіях МК установка біта захисту забороняла команди завантаження з ПЗУ (LDC і LDCI), що одночасно змушувало програміста відмовлятися від використання досить ефективних алгоритмів, заснованих на перегляді таблиць. В останніх версіях МК доступ до ПЗУ блокується установкою біта захисту без заборони зазначених команд і яких-небудь алгоритмічних обмежень.

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

1.2.1. Структурна схема мікроконтролерів

На рис.1.1 наведена узагальнена структурна схема МК, а в табл. 1.2 вказані набори варіативних елементів структури для кожної моделі.

Рис. 1.1 Узагальнена структурна схема мікроконтролерів Z8

Мікроконтролери Z86 фірми ZILOG

Відповідно до структури МК, рис.1.1, операційне пристрій представлений арифметико-логічним вузлом (АЛП) і прапоровим регістром. Пристрій управління МК містить лічильник команд PC (Program Counter) і вузол синхронізації та управління з сторожовим таймером і схемою автоскиданням. Система пам'яті МК представлена ​​постійним запам'ятовуючим пристроєм (ПЗП) для зберігання програм і оперативною пам'яттю для даних і стека, виконаної у вигляді реєстрового файлу. Для скорочення розміру поля адреси реєстрового файлу він поділений на робочі групи. Номер активної групи задається спеціальним покажчиком регістрів RP (Register Poitner). Модель 40 має можливість розширення об'єму пам'яті до 64 Кбайт шляхом підключення зовнішньої пам'яті програм і даних.

Таблиця 1.2

Параметри структури рис.1.1 для моделей мікроконтролерів Z8

Модель

Вузли

Висновки

T0

T1

SPI

Управління

Порт P0

76543210

Порт P1

Порт P3

76543210

02

-

*

-

-

***

-

***

03

-

*

-

-

-

-

******

04

*

*

-

-

***

-

***

06

*

*

*

-

-

-

******

08

*

*

-

-

***

-

***

31

*

*

-

-

********

-

********

30

*

*

-

-

********

-

********

40

*

*

-

*

********

*

********

Пристрій вводу / виводу МК представлено 4 програмованими портами. Крім того, на кристалі МК виконано ряд периферійних пристроїв: 1 - таймера / лічильника, пристрій управління переривань, 2 аналогових компаратора і послідовний інтерфейс SPI (Serial Peripheral Interface). Призначення висновків мікроконтролера зрозуміло з рис.1 за винятком висновків вузла синхронізації і управління, функції яких пояснені нижче:

XTAL-висновки для підключення кварцового або керамічного резонатора, LC-або RC-ланцюга;

/ AS-вихід стробі адреси (Address Strobe);

/ DS-вихід стробі даних (Data Strobe);

R / / W-сигнал "Читання / / Запис" (Read / / Write);

/ RESET-вхід скидання.

Примітка. Тут і далі для сигналів з низьким активним рівнем використовуються два еквівалентних позначення, наприклад:

__

AS або / AS.

Фізичне наявність певних вузлів і висновків у різних моделях МК зазначено в табл.1.2 знаком "*".

1.2.2. Адресний простір мікроконтролерів

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

1.2.2.1. Адресний простір реєстрового файлу

Регістровий файл складається із стандартного реєстрового файлу (СРФ), наявного у всіх моделях МК, і розширеного реєстрового файлу (РРФ), частково використовується в деяких моделях МК для управління додатковими функціями.

Структура реєстрового файлу показана на рис 1.2.

СРФ складається з 256 восьмібітних регістрів з шестнадцатерічнимі адресами від 00H до FFH (тут і далі H-суфікс шістнадцятковій системи числення). Адресний простір СРФ розділене на 16 робочих груп регістрів по 16 регістрів в кожній. Робоча група 0 містить регістри з адресами від 00H до 0FH, група 1-регістри з адресами від 10H до 1FH і т.д. Отже, правомірно вважати, що перша шістнадцяткова цифра адреси відповідає номеру робочої групи регістрів, а друга-номеру регістра. На рис.1.2 виділені робочі групи регістрів СРФ із зазначенням адреси нульового регістру кожної групи в шістнадцятковій системі числення.

Робоча група регістрів 0-особлива, вона може заміщатися групами регістрів з РРФ. РРФ містить 16 розширених груп регістрів по 16 регістрів в кожній. На рис.1.2 вказані номери розширених реєстрових груп. Слід зазначити, що робоча група 0 СРФ збігається з розширеною групою 0 РРФ.

Спеціальний регістр RP (Register Pointer-Покажчик регістрів), розміщений в СРФ за адресою FDH (253), містить два четирехбітних покажчика, що визначають поточні номери робочої (старша тетрада) і розширеною (молодша тетрада) реєстрових груп. Перезавантаженням регістру RP можна оперативно змінювати обрані групи регістрів. Старша цифра зазначеного в команді завантаження шістнадцяткового числа буде визначати номер робочої групи, а молодша-номер розширеної групи регістрів.

Доступ до регістрів може здійснюватися як за допомогою повного восьмибітової адреси, так і за допомогою короткого четирехбітного адреси. В останньому випадку адреса визначає номер регістра в поточній робочій групі. Якщо поточна робоча група -0, то буде обраний відповідний регістр з поточної розширеної групи. У разі використання восьмибітової адреси 0XH (де X-будь-яка шістнадцяткова цифра) вибирається регістр X поточної розширеної реєстрової групи, а адреси 1XH-FXH відповідають регістрам СРФ. В останньому випадку виключення становить робоча група регістрів E (адреси E0H-EFH), до якої не можна звертатися за допомогою восьмибітової адреси, тому що байтовий формат EXH зарезервований розробниками МК для команд з укороченим адресою.

Різні моделі МК мають різні набори фізично доступних реєстрових груп. Для СРФ ці набори показані на рис.1.2 столбиковой діаграмою. Розширена група регістрів 0 (вона ж-робоча група регістрів 0) є у всіх моделях МК. Розширена група регістрів C є тільки в моделі 06, а розширена група регістрів F мається на моделях 03,06,30,31,40. Незадіяні регістри розширених груп 1-F зарезервовані розробниками МК для подальших застосувань.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.2 Структура реєстрового файлу

Частина регістрів СРФ має спеціальне призначення (керуючі та периферійні регістри), інша частина-регістри загального призначення-РОН (General Purpose Register-GPR). Останні і утворюють оперативне запам'ятовуючий пристрій (ОЗП) МК. Регістри спеціального призначення зосереджені в робочій групі F і в розширеній / робочої групи 0. Всі задіяні регістри розширених груп мають спеціальне призначення. На рис. 1.2 праворуч показані всі регістри спеціального призначення. Для кожного регістру вказані шістнадцятковий адресу та ідентифікатор, який представляє абревіатуру призначення регістра. У табл. 1.3 наведено повний перелік цих регістрів з зазначенням ідентифікатора, призначення на англійській і російській мовах і характеру операцій доступу (R-читання, W-запис).

Таблиця 1.3

Регістри спеціального призначення

Ідентифікатор

Призначення

Доступ

Англійська

Російський

SPL

Stack Pointer Low Byte

Покажчик стека - мол. байт

R / W

SPH

Stack Pointer High Byte

Покажчик стека - ст. байт

R / W

RP

Register Pointer

Покажчик регістрів

R / W

FLAGS

Program Control Flags

Регістр прапорів

R / W

IMR

Interrupt Mask Register

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

R / W

IRQ

Interrupt Request Register

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

R / W

IRP

Interrupt Priority Register

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

W

P01M

Port 0-1 Mode Register

Регістр режиму портів 0-1

W

P3M

Port 3 Mode Register

Регістр режиму порту 3

W

P2M

Port 2 Mode Register

Регістр режиму порту 2

W

PRE0

TO Prescaler

Предделителя ТО

W

TO

Timer / Counter TO

Таймер / Лічильник ТО

R / W

PRE1

T1 Prescaler

Предделителя Т1

W

T1

Timer / Counter T1

Таймер / Лічильник Т1

R / W

TMR

Timer Mode Register

Регістр режимів таймерів

R / W

WDTMR

Watch Dog Timer Mode Register

Регістр режиму сторожового таймера

W

SMR

Stop-Mode Recovery Register

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

W *

PCON

Port Control Register

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

W

SCON

SPI Control Register

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

R / W

RxBUF

SPI Receive Buffer

Прийомний буфер послідовного інтерфейсу

R / W

SCOMP

SPI Compare Register

Регістр порівняння послідовного інтерфейсу

R / W

P3

Port 3

Порт 3

R / W

P2

Port 2

Порт 2

R / W

P1

Port 1

Порт 1

R / W

P0

Port 0

Порт 0

R / W

* Біт 7 регістра SMR - тільки для читання.

Набори регістрів спеціального призначення для різних моделей МК приведені в табл.1.4.

Таблиця 1.4

Набори регістрів спеціального призначення

Ім'я Регістру

Модель МК

02

03

04

06

08

31

30

40

SPL

+

+

+

+

+

+

+

+

SPH

*

*

*

*

*

*

*

+

RP

+

+

+

+

+

+

+

+

FLAGS

+

+

+

+

+

+

+

+

IMR

+

+

+

+

+

+

+

+

IRQ

+

+

+

+

+

+

+

+

IPR

+

+

+

+

+

+

+

+

P01M

+

+

+

+

+

+

+

+

P3M

+

+

+

+

+

+

+

+

P2M

+

+

+

+

+

+

+

+

PRE0

-

-

+

+

+

+

+

+

T0

-

-

+

+

+

+

+

+

PRE1

+

+

+

+

+

+

+

+

T1

+

+

+

+

+

+

+

+

TMR

+

+

+

+

+

+

+

+

WDTMR

-

+

-

+

-

+

+

+

SMR

-

+

-

+

-

+

+

+

PCON

-

+

-

+

-

+

+

+

SCON

-

-

-

+

-

-

-

-

RxBUF

-

-

-

+

-

-

-

-

SCOMP

-

-

-

+

-

-

-

-

P3

+

+

+

+

+

+

+

+

P2

+

+

+

+

+

+

+

+

P1

-

-

-

-

-

-

-

+

P0

+

-

+

-

+

+

+

+

Примітки: 1.Наличие регістру відзначено знаком "+".

2.Регістр SPH у всіх моделях, окрім 40, використовується як

регістр загального призначення GPR (відмічено знаком "*").

При програмуванні МК слід враховувати спосіб доступу до регістрів. Читання регістрів, призначених тільки для запису, буде давати результат FFH. Тому використання цих реєстрів в командах, де вони зчитуються (наприклад, в логічних командах OR і AND), буде давати неправильний результат. Коли лінії портів 0 і 1 визначені як виходи адреси, вони набувають статусу регістрів тільки для запису. І, нарешті, регістр WDTMR повинен бути записаний протягом перших 64 тактів синхронізації після скидання.

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

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

Функція захисту ОЗУ полягає в тому, що старша частина адресного простору від 80H до EFH (виключаючи керуючу групу регістрів) може бути захищена від читання і запису. Біт захисту ОЗУ програмується одночасно з ПЗУ (масочном або електрично). Якщо цей біт запрограмований, то функція захисту управляється програмно бітом D6 регістру IMR. Логічна 1 включає функцію захисту, логічний 0-відключає. Цю функцію мають тільки моделі МК 30 і 40.

1.2.2.2. Адресний простір пам'яті

Адресний простір пам'яті складається з адресного простору пам'яті програм та адресного простору пам'яті даних. Пам'ять програм складається з внутрішнього ПЗУ і зовнішньої пам'яті. Пам'ять даних також є зовнішньою. Структура адресного простору пам'яті МК показана на рис.1.3. Доступність фрагментів адресного простору для різних моделей МК показана на малюнку столбиковой діаграмою.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.3 Структура пам'яті

Внутрішнє ПЗУ мають всі розглянуті моделі МК. Моделі з літерами C і L мають масочном ПЗУ, а моделі з літерою E-одноразово-програмований (One Time Programmable-OTP) ПЗУ. Розмір внутрішнього ПЗУ становить до різних моделей МК від 512 байт до 4 Кбайт. Перші 12 байт зарезервовані для векторів переривань (див. рис.1.3). Ці осередки мають 6 шестнадцатібітних векторів переривань, які відповідають 6 можливим запитам переривання: IRQ0-IRQ5 (Interrupt Request). Починаючи з клітинки 12 (0CH) розміщується програма.

Модель 40 має можливість підключення зовнішньої пам'яті програм обсягом до 60 Кбайт. Таке підключення можливо з використанням мультиплексний ліній адреси / даних (AD7-AD0) порту 1 і адресних ліній (A15-A8) порту 0. Максимальний адресу зовнішньої пам'яті програм -65535 (FFFFH). Цей інтерфейс зовнішньої пам'яті підтримується керуючими лініями / AS, / DS і R / / W. Доступ до пам'яті програм (у тому числі і до зовнішньої) здійснюється за допомогою програмного лічильника для зчитування команд, а також командами завантаження констант LDC і LDCI.

Модель 40 також має можливість додатково адресувати до 60 Кбайт зовнішньої пам'яті даних з адресами від 4096 (1000H) до 65535 (FFFFH) шляхом програмування виходу порту 3 P34 на видачу сигналу / DM (Data Memory), що дозволяє апаратно розділити адресні простору зовнішньої пам'яті програм і зовнішньої пам'яті даних. Звернення до зовнішньої пам'яті даних здійснюється спеціальними командами завантаження LDE і LDEI, при виконанні яких сигнал / DM буде мати активний низький рівень.

У МК передбачений спеціальний біт захисту ПЗУ (ROM Protect), який програмується одночасно з внутрішньою пам'яттю програм. Сутність захисту ПЗУ полягає в запобіганні "дампінгу" вмісту ПЗУ. Ця функція в більш ранніх версіях МК реалізована шляхом заборони команд LDC, LDCI, LDE і LDEI. При такому підході захищена програма не могла використовувати ці команди, що не дозволяло програмісту реалізовувати ефективні алгоритми з переглядом таблиць. В останніх версіях МК використання функції захисту ПЗУ ніяких обмежень на програмування не накладає.

1.2.2.3. Стек

Стек МК Z8 може розташовуватися у внутрішньому ОЗП або в зовнішній пам'яті даних. Розміщення стека програмується шляхом запису біта D2 в регістр режиму портів 0 і 1-P01M. Запис 0 в цей біт задає зовнішній стек, 1-внутрішній. Такий вибір можливий тільки для моделі 40, що має інтерфейс зовнішньої пам'яті, для інших моделей біт D2 повинен бути встановлений в 1.

Розташування верхівки стека задається шестнадцатібітних покажчиком стека, розміщеним в регістрах SPH і SPL стандартного реєстрового файлу. Для всіх моделей, окрім моделі 40, досить восьмибітової покажчика стека (тому що обсяг внутрішнього ОЗУ не перевищує 256 байт), і він розміщується в регістрі SPL. Регістр SPH з адресою FEH використовується при цьому як регістр загального призначення GPR. Покажчик стека декрементируется перед операцією завантаження і инкрементируется після операції вилучення. Його вміст-це завжди адресу верхівки стека.

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

1.2.3. Синхронізація

Узагальнена структурна схема синхронізації МК показана на рис 1.4.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.4 Структурна схема синхронізації

Схема складається з генератора, що задає, розрахованого на підключення зовнішньої времязадающей ланцюга або зовнішнього джерела синхронізації, дільника частоти на 2 і дільника частоти на 16 (останній в моделях 02, 03, 04, 08 відсутній). До вхідних контактів XTAL1 і XTAL2 (eXternal crysTAL) підключається времязадающих ланцюг, змушує генератор формувати синхроімпульси з частотою XTAL. З виходу синхронизирующей схеми знімаються імпульси внутрішньої системної синхронізації SCLK (System CLocK) і синхронізації таймерів TCLK (Timer CLocK). Призначення дільника на 2-формування сигналу, а подільник на 16 призначений для зменшення робочої частоти синхронізації і, відповідно, споживаного струму, особливо в резервних режимах HALT і STOP.

Управління частотою в різних моделях МК здійснюється двома способами. У моделях 02, 04, 08 управління зводиться тільки до перекладу схеми в малошумливий режим шляхом програмування (масочном або електрично) біта малошумящего режиму Noise "(див. верхню частину рис.1.4.). При цьому генератор, що задає переводиться в малошумлячий режим і відключається дільник на 2. Максимальна частота роботи генератора в цьому режимі обмежується 4 МГц і дещо знижується здатність навантаження.

У моделях 03, 06, 30, 31 і 40 управління схемою синхронізації здійснюється шляхом запису керуючої інформації в регістри PCON та SMR в процесі виконання прикладної програми МК (див. нижню частину рис 1.4). Біт D7 регістру PCON управляє режимом задає генератора, а біти D1 та D0 регістру SMR-дільниками на 2 і на 16 відповідно. Логіка керування показана на схемі.

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

Мікроконтролери Z86 фірми ZILOG

Рис. 1.5 Схема генератора, що задає

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

Цим умовам задовольняють схеми времязадающих ланцюгів, показані на рис.1.6. Генератор може працювати з кварцовим або керамічним резонатором, LC-ланцюгом, RC-ланцюгом і зовнішнім генератором. Робота генератора з RC-ланцюгом вимагає певної реконфігурації внутрішньої схеми, що досягається програмуванням (масочном або електрично) спеціального біта RC. Таку можливість мають моделі 03, 06, 30, 31, 40. Що стосується моделей 02, 04, 08, то можливість запуску від RC - ланцюга мають тільки самі останні версії цих моделей. Сталий збудження генератора можливо на частотах від 10 КГц до максимальної (див. табл.1.1.).

Мікроконтролери Z86 фірми ZILOG

Рис. 1.6 времязадающих ланцюга генератора

1.2.4. Скидання і сторожовий таймер

Функція скидання (Reset) необхідна для ініціалізації найважливіших елементів МК: схеми керування і синхронізації, програмного лічильника (він встановлюється в стан 000СН), керуючих регістрів і портів (для визначення їх стану після скидання для різних моделей МК, див. додаток 1).

Функція скидання активується в наступних випадках:

- При подачі низького рівня на вхід / RESET (тільки для моделі 40);

- При включенні харчування VСС;

- При переповненні сторожового таймера WDT;

- При відновленні з режиму STOP.

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

Функція скидання використовується також для захисту пам'яті МК від падіння напруги живлення. Це забезпечується включенням функції скидання при падінні напруги живлення VСС нижче порога захисту VLV (Low Voltage)-2-.6 В. Якщо рівень напруги не знизиться нижче рівня працездатності КМОП-логіки VCMOS (1.2 В), то можливе збереження вмісту пам'яті МК і продовження нормальної роботи після відновлення VСС і автоскиданням. Це дозволяє захистити МК від короткочасних "провалів" живлячої напруги.

Поки скидання активний, на вихід / AS подаються імпульси внутрішньої синхронізації, вихід / DS має низький потенціал, R / / W-високий.

Узагальнена структурна схема скидання і сторожового таймера показана на рис. 1.7.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.7. Схема скидання / сторожового таймера

Схема містить генератор сигналу внутрішнього скидання, синхронизируемое імпульсами основного генератора XTAL. Цей генератор забезпечує мінімальну тривалість сигналу скидання 18 періодів TpC частоти XTAL. Запуск генератора здійснюється через фільтр тривалості в 4 TpC. Інакше кажучи, якщо тривалість запускає сигналу буде менше 4 TpC, то скидання не відбудеться. Якщо запускає сигнал довше 18 TpC, то з вас буде утримуватися на час цього сигналу плюс 18 TpC.

Об'єднання сигналів запуску скидання здійснюється за схемою "монтажне АБО", тому до зовнішнього висновку МК / RESET (тільки для моделі 40) можна підключати схеми з вихідними каскадами з відкритим стоком. Для скидання МК за допомогою кнопки SB "Скидання" слід застосовувати зовнішню RC-ланцюг, показану на тому ж малюнку. Для можливості використання RC-ланцюга вхід запуску доповнено тригером Шмітта.

Таймер автоскиданням POR (Power-On Reset) і сторожовий таймер WDT (Watch-Dog Timer) виконані у вигляді перерахункових ланцюга, яка, в загальному випадку, синхронізується від додаткового RC-генератора GRC або від основного генератора XTAL. Таймер POR має для всіх моделей постійний час, а таймер WDT-програмований (за винятком моделей 02, 03, 04 і 08).

Запуск таймера автоскиданням POR здійснюється у таких випадках:

- Якщо рівень VСС піднімається вище рівня VLV;

- Якщо стає активним сигнал відновлення з режиму STOP;

- Якщо має місце закінчення рахунку сторожового таймера WDT.

У першому випадку сигнал запуску виробляється спеціальним компаратором А. У другому випадку паразитні сплески сигналу джерела придушуються фільтром 12 нс.

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

При відновленні з режиму STOP в разі застосування LCілі RC-времязадающих ланцюгів основного генератора (див. п.1.2.3) немає необхідності витримувати затримку автоскиданням, тому що ці конфігурації генератора мають малий час встановлення. Для скорочення затримки відновлення з режиму STOP в цьому випадку сигнал від джерела може бути поданий безпосередньо на вхід запуску генератора сигналу скидання. При цьому необхідно, щоб сигнал від джерела відновлення мав тривалість не менше 4 TpC.

У МК, що мають розширену групу регістрів F (моделі 03, 06, 30, 31, 40), управління схемою скидання / сторожового таймера здійснюється за допомогою регістрів режиму сторожового таймера WDTMR (Watch-Dog Timer Mode Register) і режиму відновлення з режиму STOP- SMR (STOP-Mode Recovery Register). Логіка управління зрозуміла з рисунка. Слід зазначити, що оскільки генератор основний синхронізації вимикається в режимі STOP, перш ніж перейти в цей режим необхідно, щоб біт D4 WDTMR був встановлений у стан 0. Необхідно пам'ятати, що регістр WDTMR доступний для запису тільки протягом перших 64 тактів (128 TpC) процесора після скидання, викликаного будь-яким джерелом. Призначення розрядів регістра WDTMR повністю показано на рис. 1.8.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.8. Регістр WDTMR

Запуск і оновлення сторожового таймера здійснюється спеціальною командою WDT в робочому режимі виконання програми RUN. Після однократного виконання цієї команди сторожовий таймер постійно дозволений. Тому програма МК повинна передбачати періодичне повторення (з періодом, меншим від встановленого часу сторожового таймера) команди WDT. Це повинно бути забезпечено програмістом. У цьому випадку, при нормальній роботі процесора сторожовий таймер буде періодично перезапускатися і не досягне стану закінчення рахунку. При "зависанні" процесора сторожовий таймер досягає стану закінчення рахунку, що викликає запуск автоскиданням МК і виконання програми з початку. Робота WDT в режимах HALT і STOP дозволяється шляхом програмування відповідних бітів D2 і D3 регістру WDTMR. У цьому випадку, при переході у відповідний режим, WDT продовжує свою роботу.

У моделі 03 сторожовий таймер має фіксовану затримку 15 мс (при синхронізації від GRC) або 512TpC (при синхронізації від XTAL), а стан бітів D1 та D0 регістру WDTMR повинно бути 01.

У моделях 02, 04, 08 регістри WDTMR та SMR відсутні, тому схема має фіксовану конфігурацію (відповідає зображеним на ріс.1.7 положенням перемикачів). Дозвіл роботи сторожового таймера в режимі HALT здійснюється виконанням спеціальної команди WDH (виконується до переходу в режим HALT). У режимі STOP в цих МК робота сторожового таймера заборонена.

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

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

1.2.5. Порти введення / виводу

МК Z8 має до 32 ліній введення / виводу, згрупованих у чотири восьмібітних порту Р0, Р1, Р2, Р3 (фізична наявність відповідних висновків портів для кожної моделі МК зазначено в табл.1.2). Порти розміщені в адресному просторі реєстрового файлу за адресами відповідно 00H, 01H, 02H, 03H.

Порти Р0, Р1 і Р2 побудовані за типовою структурі, показаної на рис. 1.9. Кожен порт має вхідний і вихідний регістри, вхідний і вихідний буфери. Вихідні буфери-двотактні, однак, можуть програмуватися як схеми з відкритим стоком (Open Drain). Крім того, вихідні буфери можуть бути переведені в малошумливий режим.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.9. Структурна схема портів P0, P1 і P2

Робота ліній портів може програмуватися на введення або виведення: Р0-потетрадно, Р1-побайтно (тобто цілком), а Р2-побітно (див. табл. На рис. 1.9). Порти можуть працювати в режимі синхронного програмного обміну, в режимі обміну з квітірованіем, в режимі стробований введення / виводу.

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

Режим обміну з квітірованіем або "рукостисканням" (Handshake) полягає в тому, що МК і зовнішній пристрій обмінюються сигналами (квитанціями) ГОТОВНІСТЬ до обміну-RDY (Ready) і ДІЙСНОСТІ ДАНИХ -/DAV (Data is Available). Введення і виведення з квітірованіем докладно пояснюються тимчасовими діаграмами, ріс.1.10 та 1.11.

Стан 1.

Сигнал RDY має високий рівень, що вказує MK прийняти дані.

Стан 2.

Зовнішній пристрій поміщає дані на висновки порту і активізує сигнал / DAV. Це призводить до фіксації даних у вхідному регістрі порту МК і генерування запиту переривання.

Стан 3.

МК переводить вихід RDY в низький стан, сигналізуючи зовнішнього пристрою, що дані зафіксовані.

Стан 4.

Зовнішній пристрій повертає лінію / DAV у високе стан після отримання низького рівня сигналу RDY.

Стан 5.

МК повинен зреагувати на запит переривання і прочитати вміст порту для завершення послідовності квитування. На лінії RDY встановлюється високий рівень тоді і тільки тоді, коли порт вже прочитаний і / DAV має високий рівень. Це возврощаются інтерфейс в його початкове значення.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.10. Введення з квітірованіем

Стан 1.

Вхід RDY має високий рівень, що вказує на готовність зовнішнього пристрою до прийому даних.

Стан 2.

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

Стан 3.

Зовнішній пристрій робить рівень сигналу RDY низьким після фіксації даних. Низький рівень RDY викликає генерування запиту переривання. МК може вже записати нові дані у відповідь на низький рівень DRY, проте ці дані не виводяться до стану 5.

Стан 4.

Рівень виходу / DAV МК стає найвищим у відповідь на перехід виходу RDY в стан низького рівня.

Стан 5.

Рівень виходу / DAV залишається високим, зовнішній пристрій може встановити високий рівень RDY, що повертає інтерфейс в його початковий стан.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.11. Висновок з квітірованіем

Для прийому та передачі сигналів квитування використовуються відповідні лінії вводу / виводу порту Р3 (див. табл. На рис.1.9). Вибір напрямку обміну з квітірованіем здійснюється у відповідності з напрямком, запрограмованим для старшої тетради порту Р0 і для старшого біта порту Р2.

Режим стробований вводу / виводу реалізується як окремий випадок обміну з квітірованіем за схемою рис. 1.12.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.12. Стробований введення / висновок

а) виведення, б) введення.

Додатково до основних функцій порти P0 і P1 можуть використовуватися для інтерфейсу зовнішньої пам'яті (Р0-старші розряди адреси A8 ... A15, P1-мультиплексована шина адреси / даних AD0 ... AD7), а порт P2-для послідовного інтерфейсу SPI в моделі 06 (P20-вхід DI, P27-вихід D0).

Схемотехніка портів P0, P1, P2 пояснюється рис. 1.13. Двотактний буферний вихідний підсилювач виконаний на комплементарних МОП-транзисторах VT1 і VT2. Відключення транзистора VT1 переводить буферний підсилювач в конфігурацію з відкритим стоком. Вхідний буфер містить автофіксатор і тригер Шмітта, який забезпечує формування вхідного сигналу.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.13. Схемотехніка вхідного і вихідного буферів

Автофіксатор призначений для фіксації потенціалу незадіяного входу на рівні допустимих КМОП потенціалів, близьких до потенціалом шини харчування VCC або загальної шини GND. Цим виключається перехід пари вхідних транзисторів в активний режим та різке зростання споживаного струму. Автофіксатор представляє собою бістабільні клітинку (тригер), виконану на двох замкнутих у кільце інверторах, керовану по виходу. Шунтуючі опір автофіксатора-не менше 500 кОм. У ряді випадків, коли входи задіяні, шунтуючі дію автофіксатора небажано. Тому в деяких модифікаціях МК передбачений спеціальний біт відключення автофіксаторов (Z86C30/31/40).

Порт Р3-особливий. Перші чотири його лінії P30 ... P33 призначені для введення, другі-P34 ... P37-для виводу. Структурна схема порту і таблиця призначення його висновків у різних режимах наведено на рис. 1.14. Незалежно від обраного режиму з входами порту P3 пов'язані відповідні запити переривання, зазначені в таблиці. Фізичне наявність висновків порту P3 для різних моделей МК див табл. 1.2.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.14. Структурна схема порту P3

Висновок P3

Аналоговий режим

Квитирование

SPI

Таймери

Зовнішня пам'ять

Переривання

P30

IRQ3

P31

AN1

/ DAV2/RDY2

TIN

IRQ2

P32

AN2

/ DAV0/RDY0

IRQ0

P33

REF

/ DAV1/RDY1

IRQ1

P34

AN1-OUT

RDY1/DAV1

SK

/ DM

P35

AN2-OUT *

RDY0/DAV0

/ SS

P36

RDY2/DAV2

TOUT

P37

AN2-OUT

Примітка: * тільки для моделей 03 і 06.

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

Схемотехніка порту P3 ілюструється рис. 1.15. Додатковою особливістю МК є наявність двох вбудованих аналогових компараторів AN1 і AN2, що дозволяють вирішувати питання порівняння аналогових сигналів, квантування сигналів, аналого-цифрового перетворення. Входи і виходи порту P3 використовуються для обслуговування аналогової схеми. Переключення входів в аналоговий режим здійснюється бітом D1 регістра режиму порту 3 PЗM, а виходів-бітом D0 регістру управління портами PCON. Входи P31 і P32 використовуються відповідно для неінвертірующего входів компараторів, а вхід P33 є входом опорного напруги REF, спільного для AN1 і AN2.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.15. Схемотехніка порту P3

Управління роботою портів реалізується шляхом запису інформації в керуючі регістри: регістр режимів портів P0 і P1-P01M, регістр режиму порту P2-P2M, регістр режиму порту P3-P3M. Всі ці регістри знаходяться в робочій групі F стандартного РФ. У моделях 03, 06, 30, 31 і 40, крім того, для управління режимами роботи вихідних буферів портів (режим "відкритий сток" і малошумлячий режим) задіяний регістр управління портами PCON, розташований в розширеній групі регістрів F. Всі ці регістри призначені тільки для запису. Результат читання цих регістрів буде дорівнює FFH.

Призначення розрядів цих регістрів та їх стан після скидання МК для різних моделей МК пояснюється рис. 1.16 -1.19.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.16. Регістр режимів портів P0 і P1

Мікроконтролери Z86 фірми ZILOG

Рис. 1.17. Регістр режиму порту P2

Мікроконтролери Z86 фірми ZILOG

Рис. 1.18. Регістр режиму порту P3

Мікроконтролери Z86 фірми ZILOG

Рис. 1.19. Регістр управління портами PCON

Розробляючи прикладну програму МК, необхідно передбачати в ній процедуру ініціалізації портів введення / виведення до виконання операцій обміну даними з зовнішніми пристроями.

1.2.6. Таймери / лічильники

МК Z8 може мати до двох таймерів / лічильників, залежно від моделі (див. табл.1.2). Кожен з 8-бітних таймерів / лічильників Т0 і Т1 забезпечений 6-бітним предделителя PRE0 і PRE1 (ріс.1.20). Робота таймерів / лічильників відбувається незалежно від роботи процесора, що звільняє його від виконання критичних тимчасових операцій, таких як рахунок подій, вимірювання часових інтервалів, генерування імпульсів заданої тривалості і т.п.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.20. Структурна схема таймерів / лічильників

Кожен з таймерів / лічильників може працювати в однопрохідному або циклічному режимах. У першому випадку, при досягненні таймером / лічильником кінця рахунку, рахунок припиняється, у другому-початкове значення перезавантажується і рахунок продовжується. При управлінні від внутрішньої синхронізації TCLK (TCLK = XTAL / 2 в основному режимі роботи генератора), її частота додатково ділиться на 4. Цей дільник разом з 6-бітним предделителя і 8-бітним таймером / лічильником утворюють синхронну 16-бітну ланцюг. Таймер / лічильник T1 може також управлятися з зовнішнього входу TIN, в якості якого використовується висновок Р31. Виходи таймерів / лічильників і вихід внутрішньої синхронізації можуть бути за допомогою програми скоммутирован на вихід TOUT, в якості якого використовується висновок Р36. Управління роботою таймерів / лічильників здійснюється за допомогою регістра режимів таймерів TMR. Регістри таймерів / лічильників T0 і T1, предделителя PRE0 і PRE1, а також регістр TMR розміщені в адресному просторі СРФ, робоча група F (див. рис.1.2). Тому для управління і контролю за роботою таймерів / лічильників ніяких спеціальних команд не потрібно. Кожен з предделителя PRE0 (F5H) і PRE1 (F3H) складається з 8-бітного регістру початкового значення та 6-бітного віднімаючий лічильника (див. ріс.1.20). Регістри предделителя призначені тільки для запису, крім початкового значення містять керуючі біти. Призначення розрядів цих регістрів, їх стан після скидання і в процесі роботи пояснюється ріс.1.21 і ріс.1.22. Спроба читання цих регістрів дає результат FF. Початкове значення предделителя може бути в діапазоні від 1 до 64 (01H ,..., 3FH, 00H).

Кожен з таймерів / лічильників (див. ріс.1.20) T0 (F4H) іT1 (F2H) складається з 8-бітного віднімаючий лічильника, регістра початкового значення (тільки для запису) і регістра поточного значення (тільки для читання). Початкова та поточне значення можуть бути в діапазоні від 1 до 256 (01H ,..., FFH, 00H). Після скидання стан регістрів T0 і T1-невизначене.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.21. Регістр предделителя PRE0

Мікроконтролери Z86 фірми ZILOG

Рис. 1.22. Регістр предделителя PRE1

Регістр TMR містить групи бітів, керуючі завантаженням початкових значень, пуском / остановом таймерів, режимом входу TIN і режимом виходу TOUT. Призначення розрядів регістра TMR, стан їх після скидання і допустимі стану в процесі роботи для різних моделей МК показані на ріс.1.23.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.23. Регістр режимів таймерів TMR

Установка біта завантаження (D0 для T0 і D2 для T1) викликає пересилання початкового значення з регістрів початкового значення відповідного предделителя і таймера в віднімаючий лічильники. Після завантаження ці керуючі біти скидаються. Нове значення може бути додано в віднімаючий лічильники в будь-який час. Якщо лічильники були запущені, то рахунок буде тривати з нового значення.

Таймери / лічильники зберігають свій стан, поки біт дозволу рахунку (див. ріс.1.23) дорівнює 0. Для запуску таймерів / лічильників відповідний біт дозволу рахунку (D1 для T0 і D3 для T1) повинен бути встановлений в 1. Перший декремент буде мати місце через 4 періоди внутрішньої синхронізації після установки програмою біта дозволу рахунку або в наступному періоді зовнішньої синхронізації (з входу TIN).

Біти завантаження і дозволи можуть бути встановлені одночасно. Наприклад, з використанням команди

OR TMR, # 03H

можна завантажити та запустити таймер / лічильник T0.

1.2.7. Переривання

МК Z8 підтримують 6-рівневу схему пріоритетних переривань від різних джерел. Набір зовнішніх джерел переривання пов'язаний зі входами порту Р3 і ініціює запити переривання IRQ0 ,..., IRQ3 (див. табл. На ріс.1.14). До внутрішніх джерел належать таймери / лічильники T0, T1 і послідовний інтерфейс SPI. Їм відповідають запити переривання IRQ4, IRQ5. Узагальнена структурна схема організації переривань і таблиця відповідності джерел показані на ріс.1.24. Слід зазначити, що крім апаратної встановлення будь-якої із запитів може бути встановлений програмним шляхом.

Апаратні джерела переривань

Мікроконтролери Z86 фірми ZILOG

Запит переривання

Модель МК

02

03

06

04, 08

30, 31, 40

IRQ0

P32 f

P32 s

P32 s

P32 f

P32 s

IRQ1

P33 f

P33 f

P33 f

P33 f

P33 f

IRQ2

P31 f

P31 s

P31 s

P31 f

P31 s

IRQ3

P32 f

SPI

P32 r

P30 f

IRQ4

T0

T0

T0

IRQ5

T1

T1

T1

T1

T1

Рис. 1.24. Структурна схема організації переривань

Схема управління переривань включає три керівників регістра: регістр запитів переривання IRQ, регістр маски переривання IMR і регістр пріоритетів переривання IPR. Всі регістри розміщені в СРФ, робоча група F. Кожен зовнішній сигнал встановлює в 1 відповідний біт запиту в регістрі IRQ (ріс.1.25) при появі фронту сигналу, зазначеного в таблиці на ріс.1.24. У моделях 03, 06, 30, 31 і 40 фронт сигналу, що встановлює запити IRQ0 і IRQ2, програмується шляхом запису інформації в два старших біти регістра IRQ. Запити переривань від таймерів / лічильників встановлюються при досягненні ними кінця рахунки, а запит від SPI-по завершенні прийому символу.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.25. Регістр запитів переривання IRQ

Регістр маски переривань IMR (ріс.1.26) дозволяє маскувати як кожне переривання IRQ5-IRQ0 окремо (біти D5-D0), так і всі переривання глобально (біт D7). Останній біт встановлюється і скидається особливими командами дозволу і заборони переривань EI і DI. Він автоматично скидається при виклику підпрограми обслуговування переривання і автоматично встановлюється при виконанні команди повернення з підпрограми обслуговування переривання IRET. Слід зазначити, що перед зміною вмісту IMR або IPR біт D7 регістру IMR повинен бути скинутий.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.26. Регістр маски переривань IMR

Регістр пріоритету переривань IPR (ріс.1.27) дозволяє встановлювати будь-яке співвідношення пріоритетів як між групами переривань А, В, С, так і між окремими запитами переривань всередині групи. У кожну групу включено по два запити.

МК Z8 підтримує як процес векторних переривань, так і процес Поллінг.

Мікроконтролери Z86 фірми ZILOG

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

У разі векторного процесу кожен рівень переривання має власний вектор-адреса підпрограми обслуговування цього рівня переривання. Вектори переривань розміщені в початковій зоні ПЗУ (див. рис. 1.3). Ініціалізація процесу векторного переривання відбувається, якщо переривання глобально дозволені і є хоча б один незамаскованими запит переривання. Якщо таких запитів декілька, то обирається вектор переривання з найвищим пріоритетом. Далі реалізується наступна послідовність дій:

- Завантажується в стек молодший байт PC;

- Завантажується в стек старший байт PC;

-Завантажується в стек регістр прапорів FLAGS;

- Читається старший байт вектора;

- Читається молодший байт вектора;

-Вектор завантажується в PC.

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

1.3. Система команд мікроконтролерів Z8

Математичні можливості МК характеризуються системою команд. У МК використаний двохадресна принцип побудови команд, що дозволяє скоротити кількість необхідних пересилань операндів. Перший операнд після виконання команди стає результатом і називається операндом-одержувачем (Destination Operand), а другий-зберігає своє значення і називається операндом-джерелом (Source Operand). Перший в описі системи команд позначений абревіатурою dst, а другий-src.

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

1.3.1. Способи адресації операндів

У МК Z8 використано шість основних способів адресації операндів:

- Реєстрова (Register);

- Непряма регістрова (Indirect Register);

- Індексний (Indexed);

- Пряма (Direct);

- Відносна (Relative);

- Безпосередня (Immediate).

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

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

Слід зазначити, що адреси типу R, RR, IR, IRR припускають використання як повного 8-бітного адреси регістра, так і скороченого 4-бітного. В останньому випадку адреса розміщується в молодшій тетраде адресного байта, а у старшій тетраде вказується код 1110B (EH):

E

Dst / src

Тому звернення до регістрів робочої групи E СРФ можливо тільки за допомогою робочої реєстрової адресації (див. п.п.1.2.2.1).

Таблиця 1.7. Способи адресації операндів

Спосіб

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

Операнд

Діапазон

Рис.

r

Робоча регістрова (РР)

Rn

n = 0 ,..., 15

1.35

R

Реєстрова або РР

Reg

Rn

00H-FFH

n = 0 ,..., 15

1.36

1.35

RR

Реєстрова пари або PP пари (парне вирівнювання)

Reg

RRp

00H-FEH

p = 0 ,..., 14

1.38

1.37

Ir

Непряма РР

@ Rn

n = 0 ,..., 15

1.39

IR

Непряма реєстрова або непряма РР

@ Reg

@ Rn

00H-FFH

n = 0 ,..., 15

1.40

1.39

Irr

Непряма через РР пару

@ RRp

p = 0 ,..., 14

1.41

IRR

Непряма через реєстрову пару або РР пару

@ Reg

@ RRp

00H-FEH

p = 0 ,..., 14

1.42

1.41

X

Індексна

Reg (Rn)

00H-FFH

1.43

DA

Пряма

Addrs

0H-FFFFH

1.44

RA

Відносна

Addr

-128 - +127

1.45

IM

Безпосередня

# Data

00H-FFH

1.46

1.3.2. Прапори процесора

Прапоровим регістр FLAGS (FCH) містить інформацію про поточний стан процесора. Прапори та їх розташування в регістрі наведені на ріс.1.47. Стан прапорцевих регістру після скидання є невизначеним.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.47. Регістр прапорів FLAGS

Прапоровим регістр FLAGS містить 6 прапорів стану, інформація в яких встановлюється в результаті роботи процесора. Чотири прапора (C, V, Z, S) використовуються командами умовного переходу. Два прапори (H і D) використовуються командою десяткової корекції. Решта два біти можуть бути використані як прапори користувача (F1 і F2). Нижче детально розглянуто призначення кожного з основних прапорів МК Z8.

1.3.2.1. Прапор переносу C (Carry Flag)

Прапор переносу встановлюється в 1, якщо в результаті арифметичної операції генерується "перенесення з" або "позику в" старший сьомий біт результату. В іншому випадку прапор З очищається в 0.

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

Команди можуть встановлювати, скидати або інвертувати (доповнювати) прапор переносу.

1.3.2.2. Прапор нуля Z (Zero Flag)

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

Якщо результат команди перевірки біта в регістрі дорівнює 00Н, 0то прапор нуля встановлюється в 1, в іншому випадку - очищається в 0.

Якщо результат виконання команди циклічного або арифметичного зсуву дорівнює 00Н, прапор Z встановлюється в 1, інакше-скидається в 0.

1.3.2.3. Прапор знака S (Sign Flag)

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

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

1.3.2.4. Прапор переповнення V (Overflow Flag)

Для знакових арифметичних операцій, операцій циклічного і арифметичного зрушень прапор переповнення V встановлюється в 1, якщо результат більше максимально можливого позитивного числа (+127) або менше мінімально можливого негативного числа (-128), представленого 8-бітним додатковим кодом. Прапор V встановлюється в 0, якщо переповнення відсутня. У результаті порозрядних логічних операцій прапор V завжди скидається в 0.

1.3.2.5. Прапор десяткової корекції D (Decimal Adjust Flag)

Прапор десяткової корекції D використовується для двійково-десяткового арифметики BCD (Binary Coded Decimal). Оскільки алгоритм десяткової корекції різний для додавання і віднімання, цей прапор зберігає інформацію про останню виконаної команді, для наступної команди десяткової корекції DA. Після виконання операціівичітанія прапор D встановлюється в 1, а після операції додавання-очищається в 0.

1.3.2.6. Прапор полупереноса H (Half Carry Flag)

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

Значення всіх прапорів змінюються командою IRET при відновленні з стека стану прапорцевих регістру. Команди WDH і WDT встановлюють прапори Z, S і V в невизначений стан. Команда SWAP встановлює в невизначений стан прапори C і V.

1.3.3. Набір команд

Команди мікроконтролерів Z8 функціонально можуть бути розділені на вісім груп:

- Команди завантаження;

- Арифметичні команди;

- Логічні команди;

- Команди управління програмою;

- Команди маніпуляції бітами;

- Команди пересилки блоків;

- Команди зрушень;

- Команди управління процесором.

1.3.3.1. Опис системи команд

У табл.1.8 наведено короткий опис системи команд мікроконтролерів, причому для кожної команди дано мнемонічне позначення, прийняте в мові асемблера, вказано склад операндів і сенс команди англійською мовою (для розуміння походження мнемоніки як абревіатури) і російською мовою. Абревіатура "сс" в колонці операндів команд управління програмою означає код умови (condition), а абревіатура "r" - будь-який регістр з робочої групи (register).

Таблиця 1.8. Короткий опис системи команд мікроконтролера Z8

Мнемоніка

Операнди

Найменування команди

Англійська мова

Російська мова

КОМАНДИ ЗАВАНТАЖЕННЯ

CLR

LD

LDC

LDE

POP

PUSH

dst

dst, src

dst, src

dst, src

dst

src

Clear

Load

Load Constant

Load External Data

Pop

Push

Очистити

Завантажити

Завантажити константу

Завантажити зовнішні дані

Витягти з стека

Завантажити в стек

Арифметичні КОМАНДИ

ADC

ADD

CP

DA

DEC

DECW

INC

INCW

SBC

SUB

dst, src

dst, src

dst, src

dst

dst

dst

dst

dst

dst, src

dst, src

Add with Carry

Add

Compare

Decimal Adjust

Decrement

Decrement Word

Increment

Increment Word

Subtract with Carry

Subtract

Зняти з перенесенням

Скласти

Порівняти

Десяткова корекція

Декремент

Декремент слова

Інкремент

Інкремент слова

Відняти з заемом

Відняти

ЛОГІЧНІ КОМАНДИ

AND

COM

OR

XOR

dst, src

dst

dst, src

dst, src

Logical AND

Complement

Logical OR

Logical EXCLUSIVE OR

Логічне І

Доповнення (НЕ)

Логічне АБО

Виключне АБО

КОМАНДИ УПРАВЛІННЯ ПРОГРАМОЮ

CALL

DJNZ

IRET

JP

JR

RET

dst

r, dst

cc, dst

cc, dst

Call Procedure

Decrement and Jump

Non Zero

Interrupt Return

Jump

Jump Relative

Return

Виклик підпрограми

Декремент і перехід,

якщо не нуль

Повернення з переривання

Перехід

Перехід відносний

Повернення з підпрограми

КОМАНДИ МАНІПУЛЯЦІЇ бітами

TCM

TM

AND

OR

XOR

dst, src

dst, src

dst, src

dst, src

dst, src

Test Complement

Under Mask

Test Under Mask

Bit Clear

Bit Set

Bit Complement

Перевірити доповнення

з маскою

Перевірити з маскою

Очистити біти

Встановити біти

Доповнити біти

КОМАНДИ ПЕРЕСИЛКИ БЛОКІВ

LDCI

LDEI

dst, src

dst, src

Load Constant

Autoincrement

Load External Data

Autoincrement

Завантажити константу

з автоінкрементом

Завантажити зовнішні дані

з автоінкрементом

КОМАНДИ ЗРУШЕННЯ

RL

RLC

RR

RRC

SRA

SWAP

dst

dst

dst

dst

dst

dst

Rotate Left

Rotate Left

Through Carry

Rotate Right

Rotate Right

Through Carry

Shift Right Arithmetic

Swap Nibbles

Циклічний вліво

Циклічний вліво

через перенесення

Циклічний вправо

Циклічний вправо

через перенесення

Арифметичний вправо

Свопінг полубайта

КОМАНДИ УПРАВЛІННЯ ПРОЦЕСОРОМ

CCF

DI

EI

HALT

NOP

RCF

SCF

SRP

STOP

WDH

WDT

src

Complement Carry Flag Disable Interrupts

Enable Interrupts

Halt

No Operation

Reset Carry Flag

Set Carry Flag

Set Register

Pointer

Stop

WDT Enable During

HALT

WDT Enable or Refresh

Доповнити прапор переносу

Заборонити переривання

Дозволити переривання

Перехід в режим HALT

Ні операції

Скинути прапор переносу

Встановити прапор переносу

Встановити покажчик

регістрів

Перехід в режим STOP

Дозвіл сторожового

таймера в режимі HALT

Дозвіл або переза-

пись сторожового таймера

1.3.3.2. Умови розгалуження програми

Команди переходів JP та JR забезпечують галуження програми за різними умовами. В якості умов використовуються стану прапорів C, Z, S і V, а також їх логічні функції. Набір допустимих для мови асемблера умов із зазначенням мнемонічного позначення (cc), значення, що відповідає стану прапорів і шістнадцяткового коду умови наведено в табл.1.9. Набір умов передбачає розгалуження за станам окремих прапорів, а також по всіх можливих співвідношень між цілими числами із знаком і між беззнаковими цілими числами.

Таблиця 1.9. Мнемоніка умов (cc) і цифра КОП (c)

cc

Значення

Стан прапорів

c

F

Завжди помилково

-

0

Завжди істинно

-

8

C

Є перенесення

C = 1

7

NC

Ні перенесення

C = 0

F

Z

Є нуль

Z = 1

6

NZ

Ні нуля

Z = 0

E

PL

Позитивно

S = 0

D

MI

Негативно

S = 1

5

OV

Переповнення

V = 1

4

NOV

Ні переповнення

V = 0

C

EQ

Так само

Z = 1

6

NE

Не дорівнює

Z = 0

E

GE

Більше або дорівнює

(S xor V) = 0

9

LT

Менше

(S xor V) = 1

1

GT

Більше

(Z or (S xor V)) = 0

A

LE

Менше або дорівнює

(Z or (S xor V)) = 1

2

UGE

Б / з більше або дорівнює

C = 0

F

ULT

Б / з менше

C = 1

7

UGT

Б / з більше

(C = 0 and Z = 0) = 1

B

ULE

Б / з менше або дорівнює

(C or Z) = 1

3

1.4. Конструктивне виконання мікроконтролерів Z8

Мікроконтролери широкого застосування Z8 випускаються в різному конструктивному виконанні. Найбільш дешевим і зручним для більшості застосувань є корпус типу DIP (Dual In Line Package). Схема розташування висновків МК для корпусів цього типу показана на ріс.1.48.

Більшість моделей МК має також варіант виконання в корпусі типу SOIC (Smal Outline Package), призначеному для монтажу на поверхню. Модель 40 випускається також і в квадратних 44 вивідних корпусах типу PLCC (Plastic Chip Carrier) і QFP (Quad Flat Pack). Моделі МК 30, 31, і 40 з можливістю багаторазового перепрограмування виробляються в корпусах типу CerDIP Window Lid, що мають кварцове вікно для оптичного стирання.

Повне позначення мікросхеми, крім шифру, зазначеного в табл.1.1, містить додатково дві цифри, що відповідають максимальній частоті в мегагерцах, три букви і необов'язковий буквено-цифровий код партії. Перша буква означає тип корпусу (P-пластмасовий DIP, S-SOIC тощо), друга-температурний діапазон (S-стандартний: 0-700C, E-розширений: -40-1050C), третя-характеризує захисну оболонку від впливу навколишнього середовища (C - стандартна пластмасова, E-стандартна герметична).

Наприклад, повне позначення МК Z86E02 може бути наступним:

Z86E0208PSC.

Мікроконтролери Z86 фірми ZILOG

Рис. 1.48. Розташування висновків мікроконтролерів Z8

Для більш повної інформації слід звернутися до фірмових довідників [4,5].

ВИСНОВОК

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

Розглянутими мікроконтролерами номенклатура продуктів фірми для пристроїв передачі та обробки інформації не обмежується. Фірма Zilog виробляє велику різноманітність мікроконтролерів Z8, мікроконтролерів для цифрового телебачення, для телефонних автовідповідачів, цифрових сигнальних процесорів, контролерів для периферійних пристроїв і зовнішньої пам'яті персональних комп'ютерів, аудіо і мультимедіа приладів, спеціальних мікропроцесорів для систем зв'язку [7].

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
141.3кб. | скачати


Схожі роботи:
Мікроконтролери CISC архітектури
Мікроконтролери RISC архітектури
Мікроконтролери для початківців І не тільки
8-розрядні КМОП RISC мікроконтролери з внутрішньосистемної програмованим Flash ПЗУ
Фірмовий стиль як засіб формування сприятливого іміджу фірми на прикладі туристської фірми
Маркетига фірми
Маркетинг фірми
Реорганізація фірми
Імідж фірми
© Усі права захищені
написати до нас