69376

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

Лекция

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

Схема інкременту призначена: для збільшення на 1 у кожному машинному циклі вмісту регістрів T C0 T C1 для яких встановлений режим таймера і дозволена лічба; для збільшення на 1 вмісту регістрів T C0 T C1 для яких встановлений режим лічильника зовнішніх подій дозволена...

Украинкский

2014-10-04

996 KB

2 чел.

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

Тема 3.1 Модуль таймерів/лічильників

леКЦІЯ 5 Архітектура модуля таймерів/лічильників

 


  1.  Способи формування інтервалів часу ТА лічба зовнішніх подій у мікропроцесорних системах та їх порівняльна характеристика

Існують наступні способи формування часових інтервалів (часових затримок, одиночних імпульсів, послідовностей імпульсів і т.ін.) у мікропроцесорних системах (МПС):

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

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

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

Апаратно-програмний спосіб реалізується застосуванням таймерів, що програмуються.

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

Мікроконтролер типу МК-51 містить два і більше внутрішніх 16-розрядних програмувальних таймери.

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

  1.  місце та склад модуля у структурі мікроконтролера

Таймери-лічильники  Т/Л (Timer/Counter – T/C)  призначені для лічби зовнішніх подій, для одержання програмно керованих часових затримок і виконання функцій мікроконтрлера, які задають часові інтервали.

До складу модуля Т/Л входять (рисунок 1):

  •  два 16-розрядних регістри Т/Л0 і Т/Л1;
  •  восьмирозрядний регістр режимів Т/Л (TMOD);
  •  восьмирозрядний регістр керування-статусу (TCON);
  •  схема інкременту;
  •  схема фіксації Т0, Т1;
  •  схема керування прапорцями;
  •  логіка керування Т/Л.

Два 16-розрядні регістри T/C0 і T/C1 виконують функцію зберігання вмісту лічби. Кожний із них складається з пари восьмирозрядних регістрів, відповідно ТН0, TL0 і ТН1, TL1. Причому регістри ТН0, ТН1 – старші, а регістри TL0, TL1 – молодші 8 розрядів. Кожний із восьмирозрядних регістрів має свою адресу і може бути використаний як регістр загального призначення (РЗП), якщо Т/Л не використовуються (біт TR0 для T/C0 і біт T/C1 для Т/Л1 у регістрі керування TCON дорівнюють "0").

Код величини початкової лічби заноситься в регістри T/C програмно. В процесі лічби вміст регістрів T/C інкрементується. Ознакою закінчення лічби, як правило, являється переповнення регістра T/C, тобто перехід його вмісту зі стану "всі одиниці" у стан "усі нулі". Всі регістри ТН0, ТН1, TL0, TL1 доступні за читанням, і, при необхідності, контроль досягнення необхідної величини лічби може виконуватися програмно.

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

Керуючі регістри TMOD і TCON будуть розглянуті нижче в окремому розділі 3.

Схема інкременту призначена:

  •  для збільшення на 1 у кожному машинному циклі вмісту регістрів T/C0, T/C1, для яких встановлений режим таймера і дозволена лічба;
  •  для збільшення на 1 вмісту регістрів T/C0, T/C1, для яких встановлений режим лічильника зовнішніх подій, дозволена лічба і на відповідному вході МК (Т0 для T/C0 і Т1 для T/C1) зафіксований лічильний імпульс.

Схема фіксації Т0, Т1 являє собою два тригери. У кожному машинному циклі в момент S5 P2 в них запам'ятовується інформація з виводів МК Т0, Т1.

Схема керування прапорцями виробляє і знімає прапорці переповнення T/C.

Логіка керування Т/С синхронізує роботу регістрів T/C0 і T/C1 відповідно до запрограмованих режимів роботи і синхронізує роботу блоку T/C з роботою МК.

Більш докладно режими роботи й особливості застосування таймерів/лічильників розглянуто нижче.

  1.  програмування модуля T/C

Для програмування модуля Т/Л призначені

  •  восьмирозрядний регістр режимів Т/Л (TMOD);
  •  чотири старших біти восьмирозрядного регістра керування-статусу (TCON);

Регістр режимів Т/Л (TMOD) призначений для прийому і збереження коду, що визначає:

  •  один із 4-х можливих режимів роботи кожного Т/Л;
  •  роботу в якості таймерів або лічильників;
  •  керування Т/Л від зовнішнього виводу.

Позначення розрядів регістра TMOD наведене в таблиці 1, а призначення розрядів – у таблиці 2.

Таблиця 1 – Позначення розрядів регістра TMOD

Біти

7

6

5

4

3

2

1

0

Позн.

GATE1

M1.1

М0.1

GATE0

М1.0

М0.0

Таблиця 2 – Призначення розрядів регістра TMOD

Біти

Найменув.

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

Примітка

0-1

4-5

М0-М1

Визначають один із 4-х режимів роботи, окремо для Т/Л1 і Т/Л0.

Усі біти встановлюються програмно;

біти 0-3 визначають режим роботи Т/Л0,

біти 4-7 визначають режим роботи Т/Л1.

М1

М0

Режим

0

0

0

0

1

1

1

0

2

1

1

3

2, 6

С/0

С/1

Визначають роботу в якості:

С/Т0, С/Т1 = 0 – таймера

С/Т0, С/Т1 = 1 – лічильника

3, 7

GATE

Дозволяє керувати таймером від зовнішнього виводу ( - для Т/Л0,  - для Т/Л1).

GATE = 0 – керування заборонено

GATE = 1 – керування дозволено

При роботі в якості таймера вміст регістра T/C інкрементується в кожному машинному циклі, тобто Т/Л являється лічильником машинних циклів МК. Оскільки машинний цикл складається з 12 періодів частоти синхронізації МК fBQ, то частота лічби в даному випадку дорівнює fBQ/12.

При роботі Т/Л в якості лічильника зовнішніх подій вміст регістра Т/Л інкрементується у відповідь на перехід із стану "лог. 1" у стан "лог. 0" сигналу на лічильному вході МК (вивід Т0 для Т/Л0 і вивід Т1 для Т/Л1). Лічильні входи апаратно перевіряються у фазі S5 P2 кожного машинного циклу.

Коли перевірки показують високий рівень на лічильному вході в одному машинному циклі і низький рівень в іншому машинному циклі, регістр T/C інкрементується. Нове (інкрементоване) значення заноситься в регістр T/C у фазі S3 P1 машинного циклу, що безпосередньо іде за тим, у якому був виявлений перехід із стану "лог. 1" у стан "лог. 0" на лічильному вході МК. Оскільки для розпізнавання такого переходу потрібно два машинних цикли (24 періоди частоти синхронізації МК fBQ), то максимальна частота лічби Т/Л в режимі лічильника дорівнює fBQ/24.

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

Регістр керування-статусу (TCON) призначений для прийому і збереження коду керуючого слова. Позначення розрядів регістра TCON наведене в таблиці 3, а призначення розрядів – у таблиці 4.

Таблиця 3 – Позначення розрядів регістра TCON

Біти

7

6

5

4

3

2

1

0

Позначення

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Таблиця 4 – Призначення розрядів регістра TCON

Біти

Найменув.

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

Примітка

6

4

TR1

TR0

Біти включення Т/Л, окремо для Т/Л0 і Т/Л1.

TR = 0 – вимкнений,

TR = 1 – увімкнений.

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

7

5

TF1

TF0

Прапорці переповнення Т/Л.

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

2

0

IT1

IT0

Біти, що визначають вид переривання за входами INT1, INT0.

IT = 0 – переривання за

рівнем (низьким),

IT = 1 – переривання за фронтом (перехід із "1" в "0")

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

3

1

IE1

IE0

Прапорці запиту зовнішніх переривань за входами INT1, INT0.

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

Біти 4, 5 відносяться до Т/Л0; біти 6, 7 – до Т/Л1.

Біти 0, 1 визначають зовнішні переривання за входом INT0, біти 2, 3 – за входом INT1.

Прапорці переповнення TF0 і TF1 встановлюються апаратно при переповненні відповідних Т/Л (перехід Т/Л із стану "всі одиниці" у стан "всі нулі"). Якщо при цьому переривання від відповідного Т/Л дозволено, то встановлення прапорця TF викликає переривання. Прапорці TF0 і TF1 скидаються апаратно при передачі керування програмі обробки відповідного переривання.

Прапорці TF0 і TF1 програмно доступні і можуть бути встановлені/скинуті програмою. Використовуючи цей механізм, переривання по TF0 і TF1 можуть бути викликані (встановлення TF) і скасовані (скидання TF) програмою.

Біти 0…3 регістра TCON використовуються при програмуванні системи переривань мікроконтролера і до програмування модуля таймерів/лічильників не мають відношення.

  1.  РОБОТА т/л ЗА СТРУКТУРНОЮ СХЕМОЮ
    1.  Загальна характеристика

Мікроконтролер містить два 16-розрядних таймери/лічильники зовнішніх подій Т/С, які програмуються та позначаються Т/С0 і Т/С1. Таймери-лічильники можуть програмуватися на режим таймера або лічильника зовнішніх подій. В режимі таймера вміст Т/С інкрементується в кожному машинному циклі, тобто з інтервалом , де  – період частоти зовнішнього кварцового резонатора. В режимі лічильника зовнішніх подій Т/С інкрементуються під дією переходу з рівня “лог. 1” на рівень “лог. 0” зовнішнього сигналу на входах Т0, Т1 (лінії Р3.4, Р3.5). Для розпізнавання перепаду з 1 в 0 потрібно не менше двох машинних циклів. У фазі S5 P2 першого МЦ на вході Ti (і = 0, 1) фіксується значення “лог. 1”. У фазі S5 P2 наступного МЦ розпізнається нульове значення сигналу на вході Ti (тобто виявляється перепад із 1 в 0). У черговому МЦ здійснюється інкремент вмісту Т/С.

Таким чином, мінімальний період і максимальна частота проходження імпульсів на вході Ti, які ідентифікують появу зовнішніх подій, визначаються з виразів:

 (1)

Для того, щоб при визначенні перепаду з 1 у 0 значення “лог. 1” і “лог. 0” на вході Ti були зафіксовані, тривалість імпульсів і пауз повинні відповідати співвідношенням:

 (2)

Логічно кожен Т/С розбивається на 2 частини по 8 біт, які позначаються TH0, TL0 для T/C0 і TH1, TL1 для T/C1. Останні можна використовувати як 8-розрядні регістри загального призначення, якщо попередньо зупинити Т/С, скинувши біти TR0 = TR1 = 0 у регістрі РУСТ (TCON).

Початкові значення  в регістри THi, TLi (i = 0, 1) при програмуванні Т/С записуються довільно.

Керувати лічбою (дозволяти/забороняти) можна програмно та апаратно.

Регістри THi і TLi програмно доступні за записом та зчитуванням.

При переповненні Т/С в процесі лічби встановлюються прапорці TFi (i = 0, 1) в регістрі РКСТ (TCON), які можуть викликати переривання основної програми або опитуватись програмно.

Для програмування і керування роботою Т/С призначені два регістри: TMOD і TCON. Позначення і призначення їхніх окремих розрядів наведені в таблицях 1…4.

  1.  Робота Т/Л у різних режимах

Таймери/лічильники можуть працювати в одному із 4-х режимів роботи: 0, 1, 2 і 3.

Режим 0. Встановлення бітів М0 = 0, М1 = 0 в регістрі TMOD налаштовує обидва таймери на роботу в режимі 0. Спрощена структура Т/С в цьому режимі наведена на рисунку 2.

Рисунок 2  Спрощена структурна схема і-го (і = 0, 1) таймера/лічильника в режимі 0

Кожен Т/Л працює як 13-розрядний лічильник. П’ять молодших розрядів виконують функцію попереднього дільника вхідної частоти на . Значущими в цьому режимі є 5 молодших розрядів регістрів TLi і 8 розрядів THi. Обидва Т/Л можуть працювати як таймери або лічильники зовнішніх подій в залежності від значення розрядів C/Ti в регістрі TMOD.

Існують такі можливості зупинки (заборони) і включення (дозволу) лічби:

Програмно:

  •  скидання/установка бітів TRi в TCON при GATEi = 0 або INTi = 1 забороняє/дозволяє лічбу;
  •  установка/скидання біта GATEi в регістрі TMOD при TRi = 1 і INTi = 0 забороняє/дозволяє лічбу.

Апаратно: нульовий/одиничний сигнал на вході INTi при GATEi = 1 і TRi = 1 забороняє/дозволяє лічбу.

В обох випадках (при програмному та апаратному керуванні) при зупинці в T/Ci зберігається поточне значення, а після увімкнення лічбу продовжується з цього ж значення, якщо під час зупинки T/Ci не перезавантажувався програмно.

Використання T/Ci для вимірювання тривалості одиничного імпульсу  на вході INTi. Програмно встановлюється TRi = 1, GATEi = 1, C/Ti = 0. Забороняється переривання від надходження активного логічного нульового сигналу на вході INTi. Завантажується в T/Ci початкове значення . До надходження імпульсу на вході INTi зберігається значення “лог. 0” і T/Ci зупинений (лічба заборонена).

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

При переповненні T/Ci (перехід вмісту регістра T/C із стану “всі одиниці” у стан “всі нулі”) встановлюються прапорці TFi в регістрі TCON.

На виході першого T/C в момент переповнення формується короткий імпульс, який поступає в блок синхронізації послідовного інтерфейсу (УАПП).

Режим 1. Встановлення бітів М0 = 1, М1 = 0 в регістрі TMOD налаштовує обидва таймери на роботу в режимі 1. Спрощена структура T/Ci у цьому режимі наведена в [].

Кожен T/Ci працює як 16-розрядний лічильник. Решта (програмування, робота і застосування T/Ci) відбувається аналогічно режиму 0.

Режим 2. Встановлення бітів М0 = 0, М1 = 1 в регістрі TMOD визначає роботу T/Ci у режимі 2. Спрощена структура T/C1 у цьому режимі наведена на рисунку 3.

Кожен T/Ci може працювати як 8-розрядний таймер/лічильник, який автоматично перезавантажується. У якості лічильника використовується регістр TLi, а THi містить програмно встановлене початкове значення з якого ведеться лічба. При кожному черговому переповненні TLi встановлюється прапорець переповнення TFi і автоматично початкове значення перезавантажується з THi в TLi.

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

Рисунок 3  Спрощена структурна схема таймера/лічильника 1 в режимі 2

Режим 3. Встановлення бітів М0 = 1, М1 = 1 визначає режим 3. Спрощена структура T/C0 у цьому режимі показана на рисунку 4.

Режим 3 має ряд особливостей. Якщо в цьому режимі запрограмувати обидва таймери, то T/C1 зупиняється, а T/C0 працює як два незалежних 8-розрядних регістри TH0 і TL0.

Пристрій на основі регістра TL0 може працювати в режимі таймера і в режимі лічильника зовнішніх подій. За ним зберігаються усі біти керування T/C0, він реагує на сигнали на входах T0 і INT0. При переповненні TL0 встановлюється прапорець TF0.

Пристрій на основі регістра TH0 може працювати тільки в режимі таймера. Для керування він використовує частину бітів, що керують роботою T/C1, який у режимі 3 зупинений. TR1 керує вмиканням/вимиканням TH0. При переповненні TH0 встановлюється прапорець TF1.

Рисунок 4  Спрощена структурна схема таймера/лічильника 0 в режимі 3

Друга особливість режиму 3 полягає в тому, що T/C0 може програмуватися в режим 3, а T/C1 – в режим 0, 1 чи 2. Оскільки біт TR1 керує роботою TH0, то T/C1 у режимах 0, 1, 2 при GATE1 = 0 завжди включений, а при GATE1 = 1 – виключений. Прапорець переповнення TF1 використовується TH0, тому при переповненні в режимах 0 і 1 T/C1 обнуляється, а в режимі 2  перезавантажується, не встановлюючи прапорець переповнення. Інші керуючі біти і сигнали T/C1 використовуються аналогічно режимам 0, 1 та 2.

T/C1 апаратно пов’язаний з блоком синхронізації послідовного інтерфейсу. При роботі в режимах 0, 1, 2 при переповненні T/C1 завжди формує тактовий імпульс, який надходить в інтерфейс. Тому режим 3 для T/C0 зручно застосовувати коли:

  •  потрібна робота двох 8-розрядних таймерів (TH0, TL0) і формування тактових імпульсів для послідовного інтерфейсу (T/C1 у режимі 2);
  •  потрібна робота 8-розрядного таймера (TH0), 8-розрядного лічильника зовнішніх подій (TL0) і формування синхроімпульсів для послідовного порту (T/C1 в режимі 2).


КОНТРОЛЬНІ ЗАПИТАННЯ

  1.  Охарактеризуйте способи формування часових інтервалів у МПС
  2.  Опишіть за структурною схемою складові модуля Т/Л
  3.  Якою є роль регістрів TMOD і TCON у програмуванні МК-51?
  4.  Скільки МЦ потрібно для розпізнавання переходу 1 в 0? Чому?
  5.  Дайте характеристику кожному з режимів роботи Т/Л

ЛІТЕРАТУРА


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

1 РОЗВИТОК АРХІТЕКТУРИ МОДУЛЯ ТАЙМЕРІВ / ЛІЧИЛЬНИКІВ У СУЧАСНИХ МІКРОКОНТРОЛЕРАХ СІМЕЙСТВА МК-51   

1.1 Загальна інформація

В будь-якому мікроконтролері сімейства МК-51 наявні як мінімум по 2 таймери/лічильники. Їх характеристики та програмування були розглянуті вище у основній частині лекції. Тепер ознайомимось із подальшим розвитком модуля таймерів/лічильників у сучасних МК сімейства МК-51.

У сучасних мікроконтролерів третім таймером-лічильником є таймер 2, який буде розглянуто нижче. Також новими для мікроконтролерів є модуль РСА (Programmable Counter Array), вартовий таймер (Watchdog Timer) і апаратний вартовий таймер (HWDT або WDTA). В таблиці 1 наведені лише декілька мікроконтролерів сімейства Atmel. Повну інформацію можна подивитися в самостійній роботі до першої лекції.

Таблиця 1 - Таймери/лічильники загального призначення деяких МК виробництва Аtmel 

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

AT89LV51

AT89C52

AT89C51RC

AT89C51SND2

AT89C5131

AT89C5122

Таймер/лічильник Т0 (8-розрядний)

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

Таймер/лічильник Т1 (16-розрядний)

Таймер/лічильник Т2 (16-розрядний)

-

-

-

PCA

-

-

-

-

WDT

-

-

-

-

WDTA

-

-

-

-

-

1.2 Таймер 2

1.2.1 Загальна характеристика

Таймер 2 апаратно представляє собою додатковий пристрій, який включено в клони мікроконтролера 8052 та сучасних модифікацій МК-51. Таймер 2 має цілий ряд особливостей і додаткових можливостей в порівнянні з таймерами 0 і 1 в класичних мікроконтролерах 8051. Таймер 2 програмується групою спеціальних регістрів:

  •  Т2СОN – регістр керування і контролю. Регістр може адресуватися побітово;
  •  RCAP2H – старший байт, вміст якого використовується при роботі в режимі автоперезавантаження;
  •  RCAP2L – молодший байт, вміст якого використовується при роботі в режимі автоперезавантаження;
  •  TH1 – старший байт таймера 2;
  •  TL1 – молодший байт таймера 2.

Таймер 2, як і таймери 0 та 1, може працювати в якості 16-розрядного таймера, в режимі автоперевантаження, в режимі генератора синхронізації при послідовному обміні даними, а також має додатковий режим, який називається режимом захоплення (capture mode). Для керування таймером 2 слугує регістр спеціальних функцій Т2СОN, позначення бітів якого проілюстровано на рисунку 1.

Рисунок 1 – Регістр Т2СОN

Призначення бітів регістра Т2СОN наступні:

  •  TF2 – установка цих бітів свідчить про переповнення таймера 2. Якщо дозволені переривання від таймера 2, то установка цього біта визиває переривання;
  •  EXF2 – встановлюється при виникненні переповнення, чи, якщо сигнал на виводі T2EX (P1.1) переходить із високого в низький рівень (перепад 1-0). Перепад сигналу фіксується тільки при встановленні біта EXEN2;
  •  RCLK – якщо даний біт встановлений, то таймер 2 використовується в якості генератора синхронізації послідовного порту при прийомі даних. Якщо біт дорівнює 0, то для синхронізації використовується таймер 1;
  •  TCLK – якщо даний біт встановлений, то таймер 2 використовується в якості генератора синхронізації послідовного порту при передачі даних. Якщо біт дорівнює 0, то для синхронізації використовується таймер 1;
  •  EXEN2 – при встановленні біта перепад сигналу із високого в низький рівень на виводі T2EX (P1.1) ініціює режим захоплення, або викликає перезапуск таймера 2;
  •  TR2 – установка цього біту в одиничний стан викликає запуск таймера 2. Уставка в 0 зупиняє роботу таймера 2;
  •  С/Т2 – якщо даний біт скинутий, то таймер 2 функціонує в режимі інтервального таймера. Якщо даний біт встановлений, то таймер 2 інкрементується кожний раз при перепаді 1-0 на виводі Т2 (Р1.0);
  •  СР/RL2 – при скинутому біті переповнення таймера 2 виникає при роботі в режимі автоперевантаження або при перепаді 1-0 на виводі T2EX (біт EXEN2 повинен бути встановлений). Якщо даний біт встановлений, то таймер 2 працює в режимі захоплення при виникненні перепаду 1-0 на виведенні T2EX (біт EXEN2 повинен бути встановлений).

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

Таблиця 2 – Режими роботи таймера/лічильника 2

RCLK і TCLK

CP/RL2

TR2

Режим

0 і 0

0

1

16-бітний таймер-лічильник із перезавантаженням

0 і 0

1

1

16-бітний таймер/лічильник із захопленням інформації


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

Хоча б один установлений в 1

Будь-яке

1

Генератор синхронізації для  прийомо-передавача послідовного порта

Будь-яке

Будь-яке

0

Відключений

1.2.2 Режим автоперезавантаження

Якщо таймер 2 працює в режимі 16-бітного таймера/лічильника з автоперезавантаженням, то він може бути налаштований на підрахунок вгору або вниз (збільшення або зменшення вмісту регістрів TL2, TH2). Цей режим визивається установкою в 1 біта DCEN (Down Counter Enable), розташованого в T2MOD (таблиця 3). При скиданні біт DCEN встановлюється в 0, так що таймер 2 по замовченню рахує вгору. Коли DCEN встановлений, таймер 2 може рахувати вгору або вниз в залежності від значення на виводі Р1.1.

Таблиця 3 – Регістр режиму таймера 2 T2MOD

Адреса

Ім’я

Функція

T2MOD.7

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

T2MOD.6

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

T2MOD.5

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

T2MOD.4

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

T2MOD.3

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

T2MOD.2

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

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

T2MOD.1

T2OE

При уставленні біта на виводі Р1.1 формується послідовність прямокутних імпульсів зі шпаруватістю 2

T2MOD.0

DCEN

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

Біти регістра T2MOD не адресуються безпосередньо командами роботи з бітами. При скиданні мікроконтроллера T2MOD.0 і T2MOD.1 встановлюється в 0, значення решти біт не визначено

 1.2.3 Режим захоплення таймера 2

Це новий режим роботи, який може використовуватися при функціонуванні таймера 2. Суть його в тому, що при встановленні прапорця EXEN2 регістра T2CON таймер може реагувати на перепад 1-0 на виводі T2EX (P1.1). У момент фіксації перепаду поточні значення регістрів TH2 і TL2 запам'ятовуються в регістрах RCAP2H і RCAP2L відповідно. У цей же момент установлюються прапорець EXF2, що викликає переривання таймера 2. Слід мати на увазі, що навіть при встановленому режимі захоплення встановлення прапорця TF2, що сигналізує про переповнення таймера, також викликає переривання. У таких випадках програмний код обробника переривання таймера 2 повинен враховувати обидві можливі причини виникнення переривання і обробляти їх відповідним чином. Режим дуже ефективний при вимірах часових параметрів вхідних сигналів. При цьому прапорець EXF2, так само як і TF2, повинен скидатися програмно.

1.3 Таймер/лічильник РСА (Programmable Counter Array )

РСА має 16-бітний таймер/лічильник, який складається із регістрів СН і CL (відповідно старший і молодший байти). Ці регістри можуть бути прочитані і записані в будь-який час. Читання повного 16-бітного значення таймера/лічильника РСА (далі будемо називати Т/Л РСА) потребує використання одного із РСА-модулів в режимі захоплення.

Таблиця 4 – Зв’язок модулів РСА і зовнішніх виводів мікроконтролерів

Модулі РСА

Зовнішній вивід

16-бітний лічильник

Р1.2/ECI

16-бітний модуль 0

P1.3/CEX0

16-бітний модуль 1

P1.3/CEX1

16-бітний модуль 2

P1.3/CEX2

16-бітний модуль 3

P1.3/CEX3

16-бітний модуль 4

P1.3/CEX4

Рисунок 2 – спрощена структура 16-бітного таймера/лічильника РСА

Користувач може вибирати чотири варіанти вхідних сигналів Т/Л РСА:

  1.  Частота тактового генератора, розділена на 12. При цьому таймер РСА інкрементується один раз в кожному машинному циклі. Якщо тактова частота дорівнює 16 МГц - таймер інкрементується кожні 750 нс;
  2.  Частота тактового генератора, розділена на 4.

Т/Л РСА інкрементується тричі в кожному машинному циклі, тобто кожні 250 нс при тактовій частоті генератора 16 МГц;

  1.  Переповнення таймера/лічильника 0 (Т/С0).

Т/Л РСА інкрементується кожний раз, коли приходить переповнення Т/С0. Цей режим дає можливість програмно задавати частоту вхідного сигналу Т/Л РСА;

  1.  Вхідний сигнал на лінії Р1.2. Т/Л РСА інкрементується з  кожним переходом із 1 в 0 на вході ЕСІ (вивід Р1.2 мікроконтролера). Максимально допустима частота сигналу на цьому вході – частота тактового генератора, розділеного на 8.

Вибір вхідного сигналу здійснюється бітами СРS0 і CPS1 в регістрі CMOD. В цьому регістрі також знаходиться біт ECF, котрий дозволяє переривання при переповненні Т/Л РСА. Крім того, встановлення в 1 біту CIDL дає можливість виключати Т/Л РСА в режимі Idle, що дає зниження енергоживлення в згаданому режимі на 30%. В таблиці 5 приведені імена і призначення бітів регістру CMOD.

Таблиця 5 – Регістр режиму таймера/лічильника РСА-CMOD

Символ

Позиція

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

CIDL

CMOD.7

Встановлення цього біта в 1 завершує лічбу Т/Л РСА в режимі Idle. При нульовому значенні CIDL лічба в режимі Idle не завершується

WDTE

CMOD.6

Біт керування вартовим таймером. Установлення його в 1 дозволяє функціонування вартового таймера, встановлення в 0 - забороняє

-

CMOD.5

Зарезервовано для подальшого використання

-

CMOD.4

Зарезервовано для подальшого використання

-

CMOD.3

Зарезервовано для подальшого використання

CPS1

CMOD.2

Вибір джерела тактування РСА, старший біт (Рисунок 2)

CPS0

CMOD.1

Вибір джерела тактування РСА, молодший біт (Рисунок 2).

ECF

CMOD.0

Біт дозволу переривання, по переповненню таймера/лічильника РСА. При ECF=1 дозволено встановлення біта CF регістра CCON, при ECF=0 – заборонено.

Адреса регістра CMOD – 0D9H, значення при скиданні – 00ххх000b

Ще два біти, що наведені у структурі таймера/лічильнику РСА (Рисунок 2), знаходяться в регістрі CCON (опис наведено у таблиці 6). Біт CF встановлюється апаратно при переповненні таймера/лічильника. Установка або скидання біта CR відповідно вмикає або вимикає лічильник.

Таблиця 6 – Регістр керування PCA CCON

Символ

Позиція

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

CF

CMOD.7

Прапор переповнення лічильника РСА. Встановлюється апаратно і викликає переривання при ECF=1. Може бути встановлений також і програмно. Скидається тільки програмний шляхом

CR

CMOD.6

Біт управління ввімкненням лічильника РСА. Встановлення його в 1 дозволяє функціонування лічильника, встановлення в 0 - забороняє

-

CMOD.5

Зарезервовано для подальшого використання.

CCF4

CMOD.4

Прапорець переривання модуля 4 РСА. Встановлюється апаратно при рівност і фіксації значення. Очищується програмно

CCF3

CMOD.3

Прапорець переповнення модуля 3 РСА

CCF2

CMOD.2

Прапорець переповнення модуля 2 РСА

CCF1

CMOD.1

Прапорець переповнення модуля 1 РСА

CCF0

CMOD.0

Прапорець переповнення модуля 0 РСА

Адреса регістра CMOD – 0D9H, значення при скиданні – 00х00000b

1.3.1 Модуль порівняння/захоплення

Кожній із п’яти модулів порівняння/захоплення може функціонувати в шести різних режимах:

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

Додатково модуль 4 може використовуватися як вартовий таймер. Кожний модуль може бути запрограмований на виконання будь-якої із функцій незалежно від інших.

Кожний із модулів має регістр CCAPMn (n=0…4), за допомогою якого відбувається вибір режиму його функціонування. Біт ECCFn в цьому регістрі дозволяє переривання від модуля РСА, якщо його прапорець переривання (ССFn) був встановлений. Ці прапорці (CCF0…CCF4) знаходяться в регістрі CCON і встановлюються при описаних нижче умовах функціонування модуля в режим захоплення, програмованого таймера або в режим високошвидкісного виходу.

Таблиця 7 – Регістр модуля порівняння-защіпки n: CCAPMn

Символ

Позиція

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

-

CCAPMn.7

Зарезервовано для подальшого використання

ECOMn

CCAPMn.6

Прапорець  дозволу компаратора РСА (функція порівняння)

CAPPn

CCAPMn.5

Біт дозволу порівняння за додатнім фронтом (перепад з 0 в 1)

CAPNn

CCAPMn.4

Біт дозволу порівняння за спадом

MATn

CCAPMn.3

При встановлені цього біта в 1 при рівності лічильника РСА і відповідного регістра порівняння/защіпки встановлюється прапорець переривання ССF

TOGn

CCAPMn.2

При встановленні цього біта в 1 при рівності лічильника РСА і відповідного регістра порівняння/защіпки змінюється рівень (з 0 на 1 або навпаки) на відповідному виводі СЕХn

PWMn

CCAPMn.1

При встановленні цього біта на виводі СЕХn видається широтно-імпульсно-модульований сигнал (ШІМ- сигнал)

ECCFn

CCAPMn.0

Дозвіл переривання за встановленням прапорця CCF

Адреса регістра з 0DAH (CCAPM0) по 0DEH (CCAPM4), значення при скиданні – x0000000b

Крім того, кожний модуль має пару власних 8-бітних регістрів порівняння/защіпки (CCAPnH i CCAPnL). В цих регістрах запам’ятовуються покази таймера РСА в момент приходу зовнішнього сигналу на захоплення інформації або містяться дані для порівняння з показами таймера/лічильника. В ШІМ-режимі старший байт CCAPnH керує шпаруватістю вихідних імпульсів.

1.3.2 Режим захоплення РСА

Здійснювати захоплення інформації можна як додатнім, так і від’ємним перепадом вхідного імпульсу, що робить РСА доволі гнучким інструментом для вимірювання періоду слідування сигналів, ширини імпульсу, шпарування і фазових затримок між імпульсами, які приходять за п’ятьма вхідними ланцюгами. Встановлення бітів CAPPn або CAPN в регістрі CCAPMn вибирає, яким перепадом буде відбуватися засування інформації – фронтом або спадом імпульсу в модулі n.

Рисунок 3 – Спрощена структура модуля захоплення

Керування захопленням інформації відбувається імпульсами на зовнішніх виводах CEХ0-CEX4 (Таблиця 4). Коли надійно виділено перепади сигналу (фронт або спад), відбувається апаратне завантаження 16-бітного значення лічильника РСА (СН, CL) в регістри CCAPnH, CCAPnL відповідного модуля/защіпки. Результуючі значення цих регістрів відображають значення лічильника РСА  в момент виділення перепаду сигналу на зовнішньому виводі CEXn.

При захоплені встановлюється в одиницю зв’язаний з відповідним модулем прапорець CCFn в регістрі CCON. Якщо при цьому встановлений прапорець ECCFn в регістрі CCAPMn, то формується виклик переривання від РСА (відповідно, якщо воно не замасковано). Так як апаратно цей прапорець не скидається після того, як підпрограма обробки переривання викликана, його потрібно скинути програмним шляхом в ході виконання цієї підпрограми.

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

Час, необхідний для вищезгаданих дій, обмежено тактовою частотою мікроконтролера. Запам’ятовування двох 8-бітних регістрів і скидання прапорця вимагає 9 машинних циклів (сюди входять і виклик переривання програми). Таким чином, для тактової частоти 12 МГц засування не може бути частіше, ніж один раз в 10 мкс.

1.3.3 Режим програмованого таймера (Рисунок 4)

В більшості застосувань програмований таймер використовується для виклику переривання програми, яка повинна виконуватися з постійним заданим інтервалом. Користувач здійснює попереднє заванатаження 16-бітного значення в CCAPnH, CCAPnL. В режимі, коли на вхід модуля поданий сигнал з частотою, рівною частоті задаючого генератора, поділеною на 4, порівняння виконується тричі протягом кожного машинного циклу. Для дозволу порівняння необхідно встановити в 1 біт ECOMn з регістра CCAPMn (Таблиця 7).

Рисунок 4 – Спрощена структура таймера РСА в режимі програмованого таймера

Для функціонування модуля в згаданому режимі також необхідно встановити в 1 біт MATn в CCAPMn. Коли наступає збіг інформації в CCAPnH, CCAPnL з вмістом CH, CL, виробляється сигнал збігу і встановлюється прапорець CCFn. Якщо при цьому встановлений біт ECCFn, то буде викликана підпрограма переривання (відповідно, якщо переривання в РСА не заборонено). Прапорець CCFn повинен бути скинутий програмно до того, як відбудеться новий збіг інформації в таймері і регістрах модуля порівняння/захоплення. Якщо підпрограма передавання заносить нове значення в CCAPnH, CCAPnL, прапорець ECOMn автоматично скидається, як тільки інформація заноситься в CCAPnL. Запис CCAPnH знову встановлює цей біт в 1, дозволяючи, таким чином, роботу компаратора. За цією причиною користувацька програма повинна спочатку заносити інформацію в CCAPnL, а потім в CCAPnH, а не навпаки, щоб виключити виклик переривання в той момент, коли нове значення інформації остаточно не занесене в CCAPnL та CCAPnH.

1.3.4 Режим високошвидкісного виходу (рисунок 5)

В режимі високошвидкісного виходу відбувається перемикання виводу CEXn з 1 в 0 і навпаки в момент збігу інформації в регістрах таймера РСА СН і CL і в регістрах модуля порівняння/захоплення CCAPnH, CCAPnL. При реалізації цього режиму вивід CEXn встановлюється в 0 або в 1. Користувач обирає, яким перепадом на ньому буде супроводжуватися рівність інформації в СН, CL з CCAPnH, CCAPnL. Крім перепаду на виводі CEXn, користувач може також визивати підпрограму переривання для виконання певних функцій мікроконтролера при вищезгаданому збігу значень в регістрах. З цією ціллю повинен бути встановлений прапор ECCFn і дозволено переривання від РСА.

Рисунок 5 – Спрощена структура таймера РСА в режимі високошвидкісного виходу

В цьому режимі можливе більш точне фіксування рівності інформації в таймері РСА і в модулі порівняння/захоплення, ніж при програмному керуванні зовнішнім виводом в ході виконання підпрограми переривання, яка визначає факт збігу інформації. Іншими словами, в цьому режимі на роботу не впливає швидкість відпрацювання підпрограми переривання. Ця підпрограма потрібна в тому випадку, коли користувач хоче поміняти інформацію в CCAPnH, CCAPnL.    Якщо цю інформацію не міняти, то наступний сигнал з’явиться тільки тоді, коли таймер РСА дорахує до свого максимуму і почне лічення спочатку. При частоті сигналу 16МГц частота повторення сигналів в режимі швидкого відгуку дорівнює 30,5Гц.

1.3.5 Режим вартового таймера (Рисунок 6)

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

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

В цьому режим в той момент, коли вміст таймера РСА дорівнює значенню в CСAP4H, CCAP4L, генерується внутрішній сигнал скидання. Для задання цього режиму потрібно встановити в 1 біт WDTE в регістрі CMOD. При цьому модуль 4 порівняння/захоплення повинен бути сконфігурований або на функціонування в режимі програмованого таймера, або в режимі високошвидкісного виходу.

Рисунок 6 – Спрощена структура таймера РСА в режимі вартового таймера

Скидання при працюючому вартовому таймері не відбувається в наступних трьох випадках:

  •  при періодичній зміні значень в регістрах ССАР4Н, ССАР4L таким чином, щоб знову записані значення до нового запису не могли співпасти з СН, CL;
  •  при періодичній зміні СН, CL з тим же результатом;
  •  при встановлені в 0 біта WDTE перед скиданням і повторним встановленням його в 1 після того, як значення СН, CL стали дорівнювати значення в регістрах ССАР4Н, ССАР4L.

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

1.3.6 Режим широтно-імпульсного модулятора (Рисунок 7)

Будь-який із п’яти модулів РСА може бути запрограмований в режим ШІМ. Вихід ШІМ може бути використаний для перетворення цифрових даних в аналоговий сигнал з мінімальними апаратними витратами. Частота модуляції залежить від швидкості лічення таймера РСА. З 16-ти мегагерцовим кварцовим резонатором максимальна частота сигналу ШІМ не перевищує 15,6 кГц.

Для роботи в режимі ШІМ біти ECOMn i PWMn в регістрі CCAPMn повинні бути встановлені. РСА виробляє 8-бітний ШІМ-сигнал шляхом порівняння вмісту CCAPnL i CL. Якщо CL< CCAPnL, то на зовнішньому виводі відповідного модуля порівняння/захоплення буде сигнал з нульовим рівнем, якщо CL>CCAPnL, то з одиничним.

Значення, записане в CCAPnL, задає шпаруватість вихідного сигналу. Для зміни значення CCAPnL без збоїв користувач повинен попередньо занести потрібне значення в CCAPnН. Це значення апаратно заноситься в CCAPnL в момент, коли CL міняє своє значення з FFH на 0, що відповідає початку нового циклу формування вихідного сигналу.

В CCAPnН можна занести будь-яке ціле число від 0 до 255, при цьому коефіцієнт заповнення змінюється від 100 до 0,4 %. Коефіцієнт заповнення: розраховується за формулою:       де tімп – тривалість вихідного імпульсу; Т – період слідування вихідних імпульсів.

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

CCAPnН=256(1 - Кзап)

де CCAPnН – найближче ціле число до значення в правій частині виразу, сквапність представляє собою величину в діапазоні від 0 до 1.

Рисунок 7 – Спрощена структура таймера РСА в режим ШІМ

На рисунку 8 наведені залежності сигналів на виході мікроконтролера при роботі РСА в режимі ШІМ і при різних значеннях інформації в CCAPnН.

Рисунок 8 – Форми вихідного ШІМ-сигналу

В мікроконтроллерів сімейства Silicon Labs також присутній режим широтно-імпульсної модуляції. Він реалізований аналогічно.

1.4 Вартовий таймер

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

Розглянемо роботу вартого таймера на прикладі мікроконтролера ADuC824. Призначення вартового таймера полягає в тому, щоб виробити скидання пристрою або його переривання, якщо ADuC824 входить в стан помилки в рамках відповідного інтервалу часу, можливо, через помилку програмування або дії електричної або радіочастотної завади. Робота таймера може бути заборонена шляхом скидання біта WDE (дозвіл вартового таймера) в регістрі керування таймером (WDCON). В дозволеному стані схема таймера виробляє системне скидання або переривання (в залежності від значення біта WDIR), якщо програма користувача не перевстановила біт вартового таймеру (WDE) протягом визначеного часового інтервалу. Вартовий таймер представляє собою 16-бітний лічильник, який тактується частотою 32,768КГц. Часовий інтервал контролю може змінюватися за допомогою бітів PRE0…PRE3 в регістрі WDCON. Функціями керування і стану вартового таймера можна керувати за допомогою регістра керування таймером (WDCON). Програмне забезпечення користувача тільки тоді може записувати в WDCON SFR, якщо розпочата здвоєна послідовність запису в WDWR, як показано нижче.

PAGE   \* MERGEFORMAT 38


 

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

64980. О хазара-монголах 47.5 KB
  Мусульманские страны привыкли называть монголов и тюрков «степными». Первые степные люди – тюрки в 900 г. н.э. приняв ислам и завоевав нынешние Иран, Ирак, некоторые земли Афганистана и России, обосновались на турецких землях и стали называться сельджуками.
64981. Чингисхан – человек- легенда. Размышления к 850 летнему юбилею 69 KB
  За право считать Чингисхана своим сегодня борются все русские китайцы монголы татары казахи киргизы узбеки якуты и даже украинские евреи. Все западные гороскопы Чингисхана являются полным бредом не выдерживающим элементарной исторической критики чего стоит дата на 18.
64982. Монгольский Митраизм 196 KB
  800 лет назад, в начале XIII века, мир стал свидетелем рождения первой мировой Супердержавы, равной которой не было ни в Древнем Мире, ни в Средневековье, ни в последующие эпохи, державы перевернувшей мировую историю и представления людей об окружающем их мире...
64983. Дневники монголоведа 1.36 MB
  Научное и просветительское внимание Ковалевского к памятникам письменности, предметам материальной культуры, культовой атрибутики народов Центральной Азии нашло научно-исследовательское продолжение у ученых и просветителей XX в.
64984. Об устройстве войска улуса Хулагу 261 KB
  Таков кратко очерк образования государства Хулагуидов. Не правда ли очень похоже на историю Улуса Джучи? Даже в деталях. В последующем Ильханы не расширяли свои территории, а старались удержать завоёванное. Основным внешним врагом оставался Египет. Многочисленные родственники из улусов Джучи и Джагатая тоже были не прочь урвать кусочек пожирнее.
64986. МОНГОЛЬСКАЯ МОНЕТНО-ВЕСОВАЯ СИСТЕМА И РАЦИО В СРЕДНЕЙ АЗИИ XIII ВЕКА 65.5 KB
  Решению данной проблемы и посвящено настоящее сообщение. Существенную помощь в ее рассмотрении оказал анализ монет клада XIII в. из Отрара, опубликованного К.М. Байпаковым и В.Н. Настичем. В этой работе проанализированы только метрологические характеристики монет Алмалыка.
64987. ОЧЕРКИ ПО НУМИЗМАТИКЕ МОНГОЛЬСКИХ ГОСУДАРСТВ XIII – XIV ВЕКОВ 81.5 KB
  В работе представлена и использована методика анализа метрологических характеристик монет приведено каталожное описание большого числа памятников нумизматики монгольского времени с уточненной атрибуцией. Особое внимание уделено проблеме общности истоков и динамики развития монетных систем и денежного обращения в...
64988. Монгольская концепция родства как фактор отношений с русскими князьями: социальные практики и культурный контекст 269 KB
  Любую социокультурную систему можно рассматривать с двух противоположных методологических позиций. Одна из них умышленно дистанцируется от своего объекта изучения, рассматривает его как бы извне, путём последовательных абстракций или дедуктивных умозаключений пытаясь поместить его в рамки общей концептуальной схемы...