Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пос. МПТ (2.04.12).pdf
Скачиваний:
404
Добавлен:
22.03.2015
Размер:
10.95 Mб
Скачать

Отметим, что сам тестовый символ не теряется. Он будет принят и помещен в буфер.

Факт определения скорости можно отследить через соответствующие прерывания или путем опроса флагов в регистре U0IIR. В случае неудачи можно повторить процедуру или установить какую-либо скорость по умолчанию.

1.20 Часы реального времени

1.20.1 Основные возможности часов реального времени

Часы реального времени предназначены для фиксации времени и даты. Часы состоят из 15-разрадяного счетчика-делителя, предназначенного для получения частоты 1 Гц, и восьми счетчиков времени и даты. Имеется возможность формирования запросов прерывания по инкременту любого из счетчиков и совпадению текущего времени с установкой «будильника». Например, каждую минуту или в определенное время каждый понедельник.

Тактирование часов реального времени осуществляется либо от собственного тактового генератора с кварцем 32768 Гц, либо от основного тактового генератора (частота ).

Отметим, что часы реального времени LPC2148 используют упрощенный алгоритм определения високосного года. Високосный год определяется по равенству нулю двух младших двоичных разрядов года. При этом каждый 4-й год считается високосным. В то время как по григорианскому календарю каждый 100-ый год не високосный, хотя и делится на 4, но каждый 400-ый — високосный, хотя делится на 100. Впервые проблема даст о себе знать лишь в 2100 году.

Соответствие дня недели (DOW) и дня в году (DOY) текущей дате не контролируется. Например, можно установить дату 1 января 2010 г., при этом сделав это число понедельником (хотя, на самом деле, пятница) и сотым днем в году.

1.20.2 Управляющие регистры

Схема управляющих регистров показана на рисунке 1.20.1.

Регистры SEC, MIN, HOUR, DOW, DOM, MONTH, YEAR, DOY

содержат текущее время и дату. Назначение каждого из них и диапазоны возможных значений приведены в таблице 1.20.1.

Регистры CTIME0–CTIME2 содержат текущее время, упакованное в 96-разрядный формат. Расшифровка формата (назначение разрядов) приведено в таблице 1.20.1 Эта группа регистров позволяет считать время всего за три операции, но не доступна для записи.

Регистры ALSEC, ALMIN, ALHOUR, ALDOW, ALDOM, ALMONTH, ALYEAR, ALDOY аналогичны регистрам времени. Содержат установку «будильника». Совпадение всех или некоторых регистров времени и «будильника» может вызвать прерывание (см. регистр AMR).

90

91

ILR – флаги запросов прерываний

 

 

 

 

 

 

 

 

CCR – управление часами

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

8

7

 

4

3

2

1

 

0

 

11

 

 

8

7

5

4

 

 

3

 

 

2

1

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RT

TC

 

 

 

 

 

 

 

CLK

 

CTTEST

TC

 

LK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

T C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

RC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALF

 

CIF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RS

 

EN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«Будильник»

 

 

 

 

 

Инкремент

 

 

 

 

 

 

 

 

 

 

 

Тест

 

 

 

 

Вкл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Источник тактирования

Сброс

 

 

 

 

 

 

 

 

 

 

AMR – управление запросами прерываний по «будильнику»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

24

23

 

 

 

 

 

 

16

15

 

 

 

 

 

8

 

 

7

 

 

6

5

 

 

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

A

ON

AM

 

AMR W

AM OM

A

AMR

A

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MR

R

MR

R

Y

 

 

R

R

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

YEA

 

M

DO

 

DO

D

HOU

MIN

SE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Год

 

 

 

Месяц

 

 

 

Д. нед.

 

 

Часы

 

 

Сек.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

День в году

Число

Минуты

 

 

CIIR – управление запросами прерываний по инкременту счетчиков

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

24

23

 

 

 

 

 

 

16

15

 

 

 

 

 

8

 

 

7

 

 

6

5

 

 

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IM

R

IM

IM

 

IM W

IM M

IM R

IM N

IM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

YEA

 

MON

DOY

 

D

DO

HOU

MI

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

 

 

 

EC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Год

 

 

 

Месяц

 

 

 

Д. нед.

 

 

Часы

 

 

Сек.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

День в году

Число

Минуты

 

 

CTIME0 – упакованное время и дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

28

27

26

24

23

 

21

20

16

15

14

13

 

 

 

8

 

 

7

 

 

6

5

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

DOW

 

 

 

 

 

 

 

HOUR

 

 

 

 

MIN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SEC

 

 

 

 

 

 

 

День недели (0–6)

 

 

 

 

 

 

 

Часы (0–23)

 

 

 

 

Минуты (0–59)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Секунды (059)

 

 

 

CTIME1 – упакованное время и дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

28

27

 

24

23

 

 

 

 

 

 

16

15

 

 

12

11

 

8

 

 

7

 

 

6

5

 

 

4

 

 

 

 

 

 

0

 

 

 

 

 

 

 

YEAR

 

 

 

 

 

 

 

 

MONTH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DOM

 

 

 

 

 

 

 

 

 

 

Год (0–4095)

 

 

 

 

 

 

 

Месяц (1–12)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число месяца (0–31)

 

 

CTIME2 – упакованное время и дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

24

23

 

 

 

 

 

 

16

15

 

 

12

11

 

8

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

YEAR

День в году (0–366)

Рисунок 1.20.1 – Схема регистров управления часами реального времени

Таблица 1.20.1 – Основные регистры-счетчики часов реального времени

Счетчики

Регистры

Объединенные

 

Диапазон

времени

регистры

Назначение

возможных

будильника

и даты

Регистр

Биты

 

значений

SEC

ALSEC

 

0–5

Секунды

0–59

MIN

ALMIN

CTIME0

8–13

Минуты

0–59

HOUR

ALHOUR

16–20

Часы

0–23

DOW

ALDOW

 

24–26

День недели

0–6

 

 

 

 

 

1–28, 1–29, 1–30 или

DOM

ALDOM

 

0–4

Число

1–31 в зависимости

 

месяца

от месяца и

 

 

CTIME1

 

 

 

 

 

високосного года

 

 

 

 

 

MONTH

ALMONTH

 

8–11

Месяц

1–12

YEAR

ALYEAR

 

16–27

Год

0–4095

DOY

ALDOY

CTIME2

0–11

День в году

1–365 или 1–366 для

високосного года

 

 

 

 

 

Регистр CCR управляет счетчиком часов реального времени.

Бит 0 (CLKEN). Единица разрешает работу часов, ноль — запрещает.

Бит 1 (CTCRST). Запись единицы сбрасывает в ноль счетчикделитель. Сброс действует до тех пор, пока этот бит не будет очищен.

Бит 2–3 (CTTEST). Биты должны быть сброшены в ноль.

Бит 4 (CLKSRC). Если бит равен единице, источником тактового сигнала для часов реального времени служит отдельный генератор с частотой 32768 Гц. Сброс в ноль приводит к тактированию сигналом с предваритель-

ного делителя, который в свою очередь тактируется сигналом . Регистр CTCR — 15-разрядный счетчик-делитель часов реального

времени. Входная частота счетчика 32768 Гц, выходная — 1 Гц. Выход счетчика подключен к входу счетчика секунд.

Регистр ILR содержит флаги прерываний от часов реального време-

ни.

Бит 0 (RTCCIF). Равенство единице свидетельствует о прерывании по инкременту одного из счетчиков времени. Запись единицы приводит к сбросу соответствующего флага прерывания (см. также регистр CIIR).

Бит 1 (RTCALF). Равенство единице свидетельствует о прерывании по «будильнику». Запись единицы приводит к сбросу флага прерывания (см. также регистр CIIR).

Регистр CIIR управляет запросами прерывания по инкременту каждого из счетчиков часов реального времени. В зависимости от битов, установленных в единицу, прерывания могут запрашиваться по инкременту секунд (IMSEC), минут (IMMIN), часов (IMHOUR), числа месяца (IMDOM), дня недели (IMDOW), числа года (IMDOY), месяца (IMMON) или года

(IMYEAR).

92