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

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


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

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

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

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

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