Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическиое пособие_10.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.01 Mб
Скачать

2.3. Тактовый генератор

Для процессора и всех периферийных узлов необходимо тактировать их работу. С этой целью во всех процессорах имеется устройство, называемое тактовым генератором. Как правило, на вход тактового генератора подключается кварцевый генератор, который обеспечивает необходимую стабильность частоты. В данном процессоре входная частота выбирается равной, 32,768кГц (выбор частоты обосновывается в разделе 2.13.) и определяется кварцевым резонатором, подключённым к генератору блока Real Time Clock. В тактовом генераторе имеются специальные один умножитель и два делителя частоты, которые позволяют из входной частоты на выходе получить частоту до 120мГц с высокой точностью. Конструкция тактового генератора допускает тактирование от внешнего сигнала, что бывает необходимо для синхронной работы нескольких устройств.

Отдельный тактовый генератор предназначен для блока USB.

Выбор тактовой частоты очень важный момент. С одной стороны высокая частота обеспечивает быстродействие, но при этом резко возрастает энергопотребление, что очень важно для мобильных устройств. Тактовая частота также определяет частотные настройки последовательных портов ввода/вывода, таймеров и т.д. Для снижения потребления предусматривается отключение тактовых импульсов от блоков процессора, когда они не используются. Это осуществляется установкой логической единицы в соответствующий бит регистров Peripheral Clock Gating Configuration Register (PCGCR1 и PCGCR2).

2.4. Прерывания и таблица векторов прерывания

Во всех процессорах, для реакции на какие-то события в реальном масштабе времени применяется механизм прерываний. В данном процессоре реализовано 32-а события источников прерывания. Эти прерывания собраны в таблице векторов прерывания (spruh87c.pdf стр.86). Каждому прерыванию в таблице выделен соответствующий номер прерывания, адрес в памяти (вектор), по которому находится программа обработки (interrupt service routine - ISR) этого прерывания и уровень приоритета.

Управление прерываниями производится через регистр флагов прерываний (interrupt flag register IFR0,1) и регистр разрешения прерываний (interrupt enable register IER0,1). Установка флага прерывания происходит автоматически при появлении прерывания и является инициатором перехода к обработчику прерывания.

В качестве примера того, что может служить источником прерываний, можно привести переполнение таймера, окончание передачи данных по последовательным портам, заполнение данными выделенной памяти при DMA и т.д.

Внешние прерывания INT0 и INT1 вызываются переходом сигнала с высокого уровня в низкий, на соответствующих ножках процессора.

Для трёх таймеров процессора выделено одно прерывание. При входе в обработчик прерывания, флаг автоматически сбрасывается. Какой из таймеров вызвал прерывание можно определить во вторичном регистре TIAFR. Каждый флаг в регистре TIAFR должен быть сброшен в ISR путём записи 1-цы.

Тридцать два цифровых входа/выхода процессора (GPIO) могут быть сконфигурированы, как источники прерывания. Они все сконцентрированы в одном векторе и могут быть разрешены одним битом (bit5) регистра IER1. Разрешение каждого в отдельности прерывания, устанавливается во вторичных регистрах IOINTEN1 и IOINTEN2 (GPIO Interrupt Enable Registers). В обработчике прерывания необходимо организовать проверку вторичных регистров IOINTFLG1 и IOINTFLG2 для выявление того номера GPIO, который стал причиной прерывания. Бит в IFR1 сбрасывается автоматически, а в IOINTFLG1,2 должен быть сброшен программой в ISR.

Аналогично для DMA выделен один вектор прерывания, которое разрешает одним битом (bit8) регистра IER0 шестнадцать источников прерываний всего блока DMA. Вторичный регистр флагов DMAIFR определяет эти источники.