Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 53
Текст из файла (страница 53)
Бит ЕС в регистре 1Е разрешает прерывания от РСА. Захват события па входе, совпадение значения на выходе, переполнение таймера- 1<аждый модуль может быть индивидуально запрограммирован на выпол- нение захвата входного значения, сравнения со значением на выходе или на режим широтно-импульсной модуляции (ШИМ).
Модуль 4 имеет только один режим — сторожевого таймера У!ГОТ. 272 МИКРОКОНТРОЛЛЕРЫ.' АРХИТЕКТУРА ЛРОГРАММИРОЕАНИ ИНТЕРФЕЙС счетчика устанавливают флаги в регистре ССО)К!. Если бит ЕСР разрешения прерывания от РСА установлен, то установка флага СР приводит к генерации запроса прерывания от РСА. Установка флага сравнения-захвата ССРх формирует запрос прерывания при установленном бите разрешения ЕССРх в соответствующем регистре ССАРМх.
3.3.1. Таймер-счетчик Пара регистров СН/С!. работает как 16-разрядный таймер-счетчик. Выбранный вход наращивает регистр младшего байта С1.. Через два перехода синхросигнала после переполнения СЕ наращивается регистр СН старшего байта. При переполнении СН устанавливается флаг СР регистра ССОХ и, если установлен бит ЕСР регистра СМО0, формируется запрос прерывания. Биты СР81 и СРЯО регистра СМО!) выбирают один из следующих четырех сигналов в качестве входного для таймера-счетчика: Ровс/12.
Сигнал активен в такте 55Р2 каждого цикла обмена. При Гозс 16 МГц таймер-счетчик наращивается каждые 750 нс; Ровс/4. Сигнал активен в тактах 51Р2, ЗЗР2 и 55Р2 каждого цикла; Переполнение Таймера О. Регистр С!. наращивается в такте 55Р2 каждого цикла обмена, если Таймер 0 переполнен. Это режим работы РСА с программируемой частотой на входе; Внешний сигнал на линии Р1.2/ЕС1.
Центральный процессор проверяет вход ЕС! в тактах 51Р2, ЯЗР2 и 55Р2 каждого цикла обмена. Если на линии ЕС! имел место переход А1» — »О», регистр С1 наращивается. Максимальная частота переключений на входе ЕС1 может быть Еозс/8. Установка бита управления работой (СВ в регистре ССО!Т!) включает таймер-счетчик РСА, если на выходе схемы И-НЕ (рис. 3.12) установлено значение «1». Таймер-счетчик РСА продолжает работать в пассивном режиме, если не установлен бит С!П!.
регистра СМОП. Центральный процессор всегда может прочесть содержимое регистров СН и С1.. Запись в зги регистры во время счета (когда бнт установлен СВ) запрещена. 3.6.2. Модули сравнения-захвата Каждый модуль вклточает пару регистров ССАРхН/ССАРхЦ 16-разрядный компаратор, логические вентили и селекторы сигналов. В регистрах запоминается время или значение счетчика, при котором внешнее событие произошло (режим захвата) или должно произойти действие (режим сравнения). В режиме Ш ИМ регистр младшего байта управляет шириной выходного сигнала.
ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ЕЕ! 273 Каждый модуль может быть независимо запрограммирован на работу в од- ном из следутощих режимов: + 16-разрядный режим захвата по положительному фронту, отрицательно- му фронту или по обоим фронтам; + режимы сравнения: 16-разрядный программируемый таймер, 16-разрядный скоростной вывод, 16-разрядный сторожевой таймер (только модуль 4), 8-разрядный ШИМ регулятор; + нет операции. Режим работы определяется комбинацией битов в регистре режима ССАРМх: ССАРМх — ЕСОМх САРРх САР!А!х МАТх ТООх Р%Мх ЕССРх Функция Имя Номер бита бита — ССАМРх.7 Зарезервирован. ЕСОМх ССАМРх.б ЕСОМх - 1 разрешает выполнение функции сравнения.
САРРх ССАМРх.б САРРх = 1 разрешает сравнение по положительному фронту. САР!А!х ССАМРхА САР!А!х = 1 разрешает сравнение по отрицательному фронту. МАТх ССАМРх.З При МАТх - 1 равенство значений таймера-счетчика и регистра модуля устанавливает соответствующий флаг ССРх. ТОСх ССАМРх.2 При ТОСх - 1 равенство значений таймера-счетчика и регистра модуля переключает уровень сигнала на соответствующем выходе СЕХх. РЧРМх ССАМРх.! Бит включения режима широтно-импульсной модуляции. При РИМх - 1 модуль работает в режиме Ш ИМ, модулированный сигнал выдается на выход СЕХх. ЕССРх ССАМРх.О Бит разрешения прерываний по флагу ССГх регистра ССО!А!.
При ЕССГх -! прерывания разрешены. МИКРОКОИТРОЛЛЕРЫ: АРХИТЕКТУРА ЛРОГРАММИРОЕАНИ ИНТЕРФЕЙС 274 Возможные следующие комбинации: МАТЕ ЕССРх Р%МЕ САРРЕ САРХх ЕСОМЕ Функция модуля Фиксация значения по положительному т нт навходеСЕХх Фиксация значения по отрицательному т > н иа входе СЕХх Фиксация значения по изменению значения иа входе С ЕХх 16- аз ядныйтаймет Ско твой вывод Широтно-импуль- сный модулято Сто ожевой тайме т Нет опе тнпл Другие комбинации запрещены. Для работы модулей сравнения-захвата необходима работа таймера-счетчика РСА. Он включается-выключается в соответствии со значением бита СЕ регистра ССОХ. Для запрещения работы лтобого модуля его следует перевести п режим енет операции».
При наличии события (захвата, срабатывание таймера, скоростной вывод) устанавливается флаг ССРх регистра С СОХ и формируется запрос прерывания от РСА (если врегистре ССАРМх установлен бит разрешения). Централный процессор всегда может прочитать или записать информацию в регистры ССАРхН и ССАРх1.. 3.5.3. Режим фиксации Этот режим дает возможность измерять длительность импульсов, циклов, разность фаэ по калсдому из пяти входов (рис. 3.13). Линии СЕХО-СЕХ4 проверяются'на положительный или отрицательный перепад сигнала. Когда модуль фиксирует наличие перехода, он запоминает значение таймера- счетчика на этот момент в регистрах ССАРхН/ССАРх1.
и устанавливает флаг ССГх регистра ССОХ. Разрешение составляет один период синхронизации таймера-счетчика. Если соответствутощий бит разрешения ЕССГх регистра ССАРМх установ- лен, блок РСА посылает соответствующий запрос прерывания. Поскольку аппаратно при прерывании флаг события не очищается, пользователь должен это сделать программно. При следующем событии на этом ГЛАВА е. мнкРоеонтРоллеРМ семейстВА мсе-ге1 Рис.
3.13. Блок РСА в режиме фиксации же модуле значение таймера-счетчика в регистрах перезаписывается. Для сохранения записанного (захваченного) значения таймера-счетчика его следует в процессе обработки прерывания сохранить в ОЗУ, пока не произошло следующее событие. 3.3.4. Режнмы сравнения Функция сравнения обеспечивает четыре режима: режим 16-разрядного таймера, режим скоростного вывода, режим сторожевого таймера, режим ШИМ. В первых трех режимах модуль постоянно сравнивает содержимое таймера-счетчика со значением, загруженным предварительно в его пару регистров ССАРхН/ССАРхЬ. В режиме ШИМ модуль постоянно сравнивает содержимое младшего регистра таймера-счетчика СЬ со значением в его регистре ССАРхЬ.
Сравнение производится три раза за цикл обмена, т.е. с наибольшей возможной частотой (Розе/4). Функция сравнения для конкретного модуля выбирается установкой бита ЕСОМх в регистре ССАРМх. Для использования модулей в режимах сравнения следует выполнить следующие шаги: + выбрать режим работы модуля; + выбрать входной сигнал для таймера-счетчика; + загрузить значение эталона в пару регистров модуля; + установить бит управления запуском таймера-счетчика; + после прерывания очистить флаг события.
Режим лрограмгяируемого 1бразрядногс вгаймера. В этом режиме сравнивается текущее значение таймера-счетчика и предварительно загруженная в пару регистров ССАРхН/ССАРхЬ величина. При совпадении устанавли- МИКРОКОНТРОЛЛЕРЫ: АРХИТЕОУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 276 вается флаг события ССГх регистра ССОГХ. Пользователь должен программно сбросить этот флаг при обработке прерывания.
При обслуживании прерывания можно загрузить в регистры ССАРхН/ССАРхЕ новое значение. В процессе загрузки регистров рекомендуется вначале записывать данные в ССАРх1., а затем в ССАРхН. При записи в регистр младшего байта очищается бит ЕСОМх запрещая выполнять сравнение, а при записи в регистр старшего байта этот бит устанавливается, вновь разрешая сравнения. Это защищает от ложных срабатываний. Рнс. 3. 14. Блок РСА в режиме 16-разрядного таймера н скоростного вывода Режим скоросглиого вывода. В этом режиме совпадение значений таймера-счетчика и величины, загруженной в регистры ССАРхН/ССАРхЕ вызывает смену сигнала на выходе СЕХх и установку флага ССГх. Это обеспечивает более высокую точность, чем при программном переключении сигнала, т.к.
переключение осуществляется до обслуживания запроса прерывания. Таким образом, интервал времени, связанный с обслуживанием прерывания, не вклинивается в диаграмму формирования выходного сигнала. Программно задавая уровень сигнала на выходе СЕХх пользователь задает тип перепада: «0»-«1», или «1»-«0». Флаг ССРх при обработке прерывания должен сбрасываться программно. Если в процедуре прерывания в регистры ССАРхН/ССАРхЕ новое значение не заносилось, то следующее совпадение произойдет через полный цикл таймера-счетчика. В процессе загрузки следует придерживаться методики, изложенной при описании предыдущего режима.
ГЛАВА Э МНЕРОКОНТРСЛЛЕРЫ СЕМЕЯСТВА МС5-25! 277 Режим сторожевого таймера. Кроме 14-разрядного аппаратного сторожевого таймера и блок РСА представляет возможность организовать на основе модуля 4 16-разрядный сторожевой таймер с программируемой частотой. В этом режиме при совпадении числа в таймере-счетчика с данными, занесенными предварительно в регистры, осуществляется сброс и инициализация мтикроконтроллера.
Модуль 4 один из всех имеет режим сторожевого таймера. Чтобы перевести модуль 4 в режим сторожевого таймера, нужно установить биты ЕСОМ4 и МАТ4 регистра ССАРМ4, а также бит %12Т регистра СМ 012. Необходимо, также, выбрать нужный вход для таймера-счетчика с помощью битов СРВО,СР61 регистра СМ012. Далее следует загрузить 16- разрядное число для сравнения в регистры ССАР4Н/ССАР41.
и 16-разрядное начальное значение в таймер-счетчик СН/С1. (можно использовать значение ООООН по сбросу). Разность между этими числами, умноженная на частоту входных импульсов РСА, определяет интервал времени, на который взведен сторожевой таймер. Для запуска сторожевого таймера РСА нужно установить бит СК регистра ССО!А!. Чтобы предотвратить сброс от сторожевого таймера РСА, имеется три возможности: + периодическти менять сравниваемое число в ССАР4Н/ССАР41. так, чтобы совпадения не произошло; е периодически менять значения в таймере-счетчике так, чтобы совпадения не произошло; е очищать бит Ж12ТЕ до совпадения, а затем вновь устанавливать его.