На головну

Апаратні засоби вимірювання часу

  1. I. Засоби, що діють на холінергічні синапси
  2. II. Засоби, що діють на адренергічні синапси
  3. II. Кутові і лінійні вимірювання.
  4. III.1.3) Засоби доведення кримінального обвинувачення.
  5. Quot; Кругова "або циклічна лінія часу
  6. V. Оціночні кошти для поточного контролю успішності, проміжної атестації за підсумками освоєння дисципліни і навчально-методичне забезпечення самостійної роботи студентів
  7. V. Розвиток уявлень про матерію, простір, час і рух

У IBM PC / AT є апаратні засоби для вимірювання часу. Трехканал'-ний лічильник-таймер, програмно сумісний з 18254 (в XT - 8253), виконує наступні функції:

¦ канал 0: - генерація апаратних переривань (IRQO) кожні 54,936 мс (частота 18,206 Гц), що викликають інкремент системного таймера (Лічильника в осередку 40: 006Е BIOS Data Area);

¦ канал 1 - генерація запитів на регенерацію пам'яті;

¦ канал 2 - генерація звукових сигналів або вимір часу.

Внутрішні лічильники мікросхеми мають розрядність 16 біт, але спілкування з ними можливо лише 8-бітними операціями. При цьому можна задавати значення тільки молодшого байта лічильника (LSB), тільки старшого (MSB) або обох (LSB / MSB), причому спочатку передається молодший, а потім старший байт. Програмування мікросхеми здійснюється записом байт в керуючий регістр окремо для кожного каналу. Призначення регістрів лічильників-таймерів приведено в табл. 12.5. Вхідна частота для всіх каналів 1,19318 МГц. Штатно всі канали працюють в режимі генерації імпульсів. Рахунок для каналів 0 і 1 дозволений постійно. У каналі 2 використовується керуючий вхід GATE, що дозволяє рахунок, який управляється бітом О (T2G, R / W) системного порту AT (061h). Вихідний сигнал каналу 2 може бути програмно лічений (Т20, біт 5 того ж порту). При використанні каналу 2 для вимірювання часу необхідно відключити формування звуку (обнулила біт SPK, R / W, біт 1 порту 061h).

Таблиця 12, .5.Регістри лічильників-таймерів Порт, R / W Призначення

 040 RW Лічильник 0 - системний годинник. Режим 011, LSB / MSB, Binary, константа лічильника

дорівнює 0 (відповідає коефіцієнту ділення 65 536)

041 RW Лічильник 1 - регенерація пам'яті. Режим 010, LSB, Binary, константа лічильника

дорівнює 12h (18)

042 RW Лічильник 2 - генератор звуку, вимір часу. Вхід GATE від біта 0 порту

У 8255 (061). Режим 011, LSB / MSB, Binary, значення лічильника визначає висоту тону


12.6. Апаратні засоби вимірювання часу ____________________________ 477

Порт, R / W Призначення _____________________________________________________________

043 W Керуючий регістр. Біти 7,6 - вибір лічильника 0,1,2. Біти 5,4 - режим

, Звернення: 00 - засувка поточного значення; 01 - LSB - тільки молодший байт; 10 - MSB - тільки старший байт; 11 - LSB / MSB - спочатку молодший, потім старший байти. Біти 3-1 - режим лічильника: 000 - переривання по лічильнику; 001 - чекає мультивибратор (одновібратор, у 8254 дещо відрізняється від 8253); х10 - генератор коротких імпульсів заданої частоти; х11 - генератор меандру; 100 - лічильник подій з дозволом; 101 -счетчіксобитій з перезапуском. Біт 0 -0 = Bin (двійковий рахунок), 1 = BCD - (двійковій-десятковий рахунок)

Годинник-колендар' CMOS RTC є частиною комбінованої мікросхеми МС146818 на батарейках, використовуваної в IBM PC / AT для зберігання ряду апаратних налаштувань. Годинники синхронізуються від власного генератора (32,768 кГц), вони містять:

¦ годинник-календар (рік, місяць, число, година, хвилина, секунда);

¦ будильник, який подає сигнал в призначений час, хвилину і секунду;

¦ генератор меандру, що дозволяє формувати запити переривань з заданий
 ної частотою (як правило, 1024 Гц).

CMOS RTC є джерелом апаратних переривань (IRQ8). Переривання можуть виникати від будильника, генератора меандру і після зміни часу в годинах. Окремі джерела переривання ідентифікуються читанням осередку ОСЬ і вирішуються записом в осередок OBh.

Доступ до осередків CMOS RTC здійснюється через порти введення-виведення 070h (індекс комірки) і 071h (дані). Зауважимо, що біт 7 порту 70h використовується і для блокування NMI (див. П. 12.4), так що діапазон адрес пам'яті CMOS обмежений межами 0-7Fh. Оскільки ця пам'ять має швидкодію порядку одиниць мікросекунд, між командами запису адреси і читання-запису даних необхідна програмна затримка. Під час зміни стану годин дані, що зчитуються з осередків 0-9, можуть виявитися некоректними. Ознакою цієї ситуації є одиничне значення біта 7 осередку OAh. Для визначення моменту закінчення зміни стану годин можна користуватися і дозволом відповідного джерела переривання. Призначення осередків CMOS RTC, що відносяться до таймерної частини, наведено в табл. 12.6 (повне визначення осередків см. В [1]).

Таблиця 12.6.Призначення осередків таймерної частини CMOS RTC індекс Призначення

 00h-09h, 32h Осередки РТС в BCD-форматі: 00 - секунди; 01 - секунди будильника;

(37 в PS / 2) 02 - хвилини; 03 - хвилини будильника; 04 - годинник; 05 - годинник будильника; 06 - день тижня; 07 - день місяця; 08 - місяць; 09 - рік (2 молодші цифри); 32h - вік-1 (2 старші цифри року); 37h - вік-1 (2 старші цифри року) в PS / 2

продовження А


478______ Глава 12. Архітектурні компоненти IBM PC-сумісного комп'ютера

Таблиця 12.6(Продовження) індекс Призначення

 OAh RTC Status Register А (реєстр статусу А): біт 7 - оновлення часу

(Про - готовий до читання); біти [6: 4] - дільник частоти (для кварцу на 32,768 кГц - 010); біти [3: 0] - 0110 - вихідна частота меандру 1024 Гц

OBh PTC Status Register В (Реєстр статусу В): Біт 7 - зупинка годин

(Про - нормальний хід); біт 6 - дозвіл періодичних переривань (О - заборонено); біт 5 - дозвіл переривання від будильника (О - заборонено); біт 4 - дозвіл переривання по закінченні зміни часу (0 - заборонено); біт 3 (див. також регістр OAh) - дозвіл вихідного меандру (0 - заборонено); біт 2 - формат BCD / BIN (0 - BCD); біт 1 - 12/24-годинний режим (1 - 24-годинний); біт 0 - зимовий / літній час (О - перемикання заборонено)

OCh RTC Status Register С (регістр статусу С): читання прапорів ідентифікаторів

переривання: біт 7 - IRQF (загальний запит переривання); біт 6 - PF (періодичні переривання); біт 5 - AF (переривання від будильника); біт 4 - UF (переривання після закінчення зміни часу); біти [3: 0] - зарезервовані

ODh RTC Status Register D (реєстр статусу D): біт 7 - харчування (1 - норма,

0 - разрядбатареі); біти [6: 0] -зарезервіровани

 Апаратні таймери мають підтримку функціями BIOS (докладніше див. [1,8,9]). сервіси BIOS Int I Ah дозволяють зчитувати і модифікувати значення системного таймера (осередки 40: 006Eh в BIOS Data Area), а також дати, часу і будильника CMOS RTC.

функції BIOS Int 15 h дозволяють за допомогою CMOS RTC вводити затримку або запускати таймер установки прапора (через заданий час встановити біт 7 зазначеної комірки пам'яті). Час задається в мікросекундах, але мінімальна витримка залежить від продуктивності ПК (досяжні одиниці мілісекунд), максимальна витримка - близько 70 годин.

Починаючи з процесорів Pentium, з'явилася можливість вимірювання часу з точністю до такту ядра процесора. Для цього процесори мають внутрішній 64-бітний лічильник TSC (Time Stamp Counter), обнуляє по апаратному скиданню (сигналом RESET *). Розрядність дозволяє вважати без переповнення протягом декількох століть. Для доступу до лічильника є спеціальна інструкція RDTSC, правда, установкою прапора TSD в регістрі CR4 (процесора) ОС може зробити її привілейованої (доступною тільки на нульовому рівні привілеїв). У цьому випадку додаток, що виконується на рівні 3, може аварійно завершуватися щодо відмови виконання інструкції. ОС може і дозволити звернення до цього регістру, але «підсовуючи» програмі угодне їй значення часу. Зауважимо, що з-за внутрішнього множення частоти в процесорі результат читання лічильника може відставати від реального часу на число, що досягає коефіцієнта множення частоти. Правда, така точність нікому й не потрібна (вона загубиться в вимірюють програмах).


12.7. Способи запуску програм _____________________________________ 479



переривання | Способи запуску програм

Простір вводу-виводу | призначення | апаратні переривання | Спільне використання переривань | Прямий доступ до пам'яті - DMA | Контролер прямого доступу 8237А | Процесори х86 | Можливості адресації пам'яті процесорами різних поколінь | Проблеми сторінкової переадресації | Інструкції введення-виведення |

© um.co.ua - учбові матеріали та реферати