Микропроцессоры и микроконтроллеры

 
 
 
«Maybe 'just one little global variable' isn't too unmanageable, but that style leads to code that is useless except to its original programmer»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципи роботи мікропроцесорів :: Реалізація функцій часу

Реалізація функцій часу

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

rn

Таймер - це апаратний блок або мікросхема, виконана на основі лічильно регістру з Передвстановлення ( згадати матеріал дисципліни «Комп'ютерна схемотехніка» ).

rn

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

rn

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

rn

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

rn

Узагальнена структура таймера показана на мал. 7.3.

rn

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

rn

Тіповая структура таймера

rn

Рис. 7.3. Типова структура таймера

rn

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

rn

За механізмом реалізації рахунку таймери бувають:

rn

- сумуються з виконанням операції , де i, i-1 - моменти часу, що відповідають поступлению чергового імпульсу;

rn

- віднімаються з виконанням операції

rn

Як правило, таймери мають можливість програмної установки на різні режими роботи (вибір конфігурації лічильних регістрів), а саме:

rn

- різну розрядність (8,16). визначає максимальний інтервал рахунку (тобто реалізації або вимірювання тривалості): ;
де , р - розрядність лічильно регістру;

rn

- режим рахунку з попереднім розподілом частоти;

rn

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

rn

- режим генерації меандра на виході OUT.

rn

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

rn

Вибір і завдання стартового числа необхідні для реалізації інтервалів часу необхідної тривалості .

rn

Для таймерів, що працюють в режимі віднімання, ;

rn

Для таймерів, що працюють в режимі підсумовування, , де  - максимальне можливе вміст лічильно регістра.

rn

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

rn

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