|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Формат регистра РТхPUE
Детальный формат всех регистров специальных функций портов ввода/вывода приведен ниже (рис. 2.1).
Рисунок 2.1 Регистры для обслуживания портов ввода/вывода МК МС68НС908GP32
3. МОДУЛЬ ТАЙМЕРА\СЧЕТЧИКА TIM08 Модуль TIM08, хотя и носит дословное название «модуль таймерного интерфейса», по сути, является одним из лучших процессоров событий в 8-разрядных МК. Модуль TIM08 состоит из 16-разрядного таймера-счетчика и некоторого количества связанных с ним полностью идентичных каналов захвата/сравнения. Каждый из каналов в процессе инициализации может быть настроен на один из пяти режимов работы: 1)входного захвата; 2)небуферированного выходного сравнения; 3)буферированного выходного сравнения; 4)небуферированной широтно-импульсной модуляции (ШИМ); 5)буферированной ШИМ. Каждый канал захвата/сравнения связан с одним из выводов МК. Функция входного или выходного сигнала модуля процессора событий является альтернативной функцией линий порта Port D. МК MC68HC908GP32 имеет в своем составе два модуля процессора событий - TIM1 и TIM2. Каждый из модулей имеет по два канала захвата/сравнения. Структурная схема модуля двухканального процессора событий представлена на рис. 3.1. Шестнадцатиразрядный таймер-счетчик служит временной базой для модулей захвата/сравнения. Он подсчитывает импульсы тактовой частоты, поступающие на его вход. Все интервалы времени, которые генерируются или измеряются МК, измеряются числом периодов этой тактовой частоты. В общем случае (модули TIM08 других МК семейства НС08) таймер-счетчик имеет два источника тактирования: 1)внутренний генератор, выполненный на основе программируемого делителя час 2) внешний генератор, подключаемый к выводу TxCLK МК. Выбор между внутренним и внешним генераторами, а также выбор коэффициента деления программируемого делителя частоты шины КТ|Мх определяется комбинацией битов PS2 - PS0 регистра управления таймера-счетчика TxSC. Коэффициент деления КТ|Мх может принимать семь различных значений: 1, 2, 4, 8, 16, 32, 64. Максимальная частота сигнала внешнего генератора, подключаемого ко входу TxCLK, составляет 4 МГц при условии, что МК работает на предельной частоте внутренней шины fBUS- 8 МГц. Процессоры событий TIM! и TIM2 в составе МК MC68HC908GP32 не имеют выводов T1CLK и T2CLK в перечне выводов корпуса и, следовательно, могут использовать для тактирования только встроенный генератор. Таймер-счетчик временной базы допускает программную установку периода работы. Если не предпринимать специальных действий при инициализации процессора событий, то коэффициент счета счетчика временной базы будет равен 216, т. е. счетчик проходит полный цикл от начального состояния кода $0000 до конечного состояния кода SFFFF. Если таймер-счетчик находится в состоянии $FFFF, то при поступлении на его вход очередного тактового импульса наступает переполнение таймера-счетчика. Счетчик переходит в состояние $0000, одновременно устанавливается флаг переполнения TOF. Переполнение счетчика не оказывает влияния на его работу: при поступлении следующих тактовых импульсов код в счетчике продолжает нарастать. Коэффициент счета таймера-счетчика может быть изменен посредством записи кода желаемого Ксч в двухбайтовый регистр периода TxMOD (TxMODH и TxMODL - старший и младший байты этого регистра, х - номер таймерного модуля, для TIM1 х = 1, для TIM2 х = 2). Вход сброса счетчика подключен к выходу цифрового компаратора (см. рис. 3.1), на один из входов которого поступает код текущего состояния таймера-счетчика, а на другой - код Ксч, записанный в регистре TxMOD. Если эти коды равны, то при поступлении следующего тактового импульса счетчик сбрасывается в «О», и флаг переполнения TOF устанавливается в «1». Диапазон допустимых значений Ксч составляет от 1 до (21б-1). Таким образом, дискретность регулирования периода таймера-счетчика, который в режиме ШИМ образует период ШИМ-сигнала, составляет 16 бит. Предусмотрена возможность пуска и останова таймера-счетчика под управлением программы (бит TSTOP в регистре управления таймером-счетчиком TxSC). Кроме того, счетчик и программируемый делитель частоты могут быть одновременно сброшены посредством установки в «1» бита TRST в регистре TxSC. При этом все триггеры таймера-счетчика установятся в «О», а программируемый делитель частоты будет настроен на режим единичного коэффициента деления частоты внутренней шины МК. Заметьте, что бит TRST не останавливает работу таймера-счетчика, с приходом очередного тактового импульса состояние счетчика станет равным $0001. Сброс таймера-счетчика рекомендуется проводить в следующем порядке: • остановите таймер-счетчик (бит TSOP = 1); • выполните операцию сброса таймера-счетчика (бит TRST = 1); • переинициализируйте биты PS2-PS0 регистра TxSC, которые определяют источник и • разрешите счет таймера-счетчика. Код таймера-счетчика в процессе счета может быть считан прикладной программой при обращении к регистрам текущего кода TxCNTH и TxCNTL. При обращении к регистру старшего байта код таймера-счетчика автоматически копируется в указанную регистровую пару. Поэтому, несмотря на то, что операции чтения старшего и младшего байтов разнесены во времени, вы прочитаете состояние таймера-счетчика в момент обращения к регистру старшего байта TxCNTH. Такое решение предотвращает получение ложной информации в случае, если частота тактирования таймера-счетчика высока, и по этой причине в моменты обращения к регистрам TxCNTH и TxCNTL состояния счетчика различаются. Однако нельзя допускать ситуацию, при которой после прочтения старшего байта младший прочитан не будет. Повторное чтение старшего байта не сопровождается защелкиванием текущего кода таймера-счетчика в регистрах TxCNTH и TxCNTL. При переполнении таймера-счетчика устанавливается флаг переполнения TOF в регистре управления TxSC (таб. 3.1) и генерируется запрос на прерывание, если бит разрешения прерывания TOIE установлен в «1», т. е. прерывания по переполнению таймера-счетчика разрешены. Формат регистра TxSC Таблица 3.1
Продолжение таблицы 3.1
Для управления таймером-счетчиком модуля TIM08 предусмотрены пять регистров специальных функций: TxSC - регистр управления таймером-счетчиком «х», где «х» - имя модуля процессора событий МК (для TIM1 х=1, для TIM2 х=2); TxMODH - регистр периода таймера-счетчика (старший байт); TxMODL - регистр периода таймера-счетчика (младший байт); TxCNTH - регистр текущего значения таймера-счетчика (старший байт); TxCNTL - регистр текущего значения таймера-счетчика (младший байт).
Рис. 3.1. Структурная схема процессора событии ТIМ08 МК MC68H0908GP32
Каждый канал захвата/сравнения в составе процессора событии связан с одним выводом МК (см. рис. 3.1). Вывод обозначают TxCHi, где i – порядковый номер канала захвата/ сравнения в составе процессора событии х. Например, T1СНО – вывод канала 0 процессoра событий ТIМ1. В режиме захвата аппаратные средства канала захвата/сравнения фиксируют моменты времени, когда логический сигнал на входе TxCHiК изменяет свое состояние. В режимах выходного сравнения и широтно-импульсной модуляции (ШИМ) канал захвата/сравнения формирует импульсный сигнал с заданными временными параметрами на выходе TxCHi. Направление передачи сигнала по линии TxCHi (вход или выход) определяется инициализацией каналов захвата/сравнения на тот или иной режим. Несмотря на то, что работа линии ТхСНi в составе процессора coбытий является альтернативной функцией линии одного из портов ввода/вывода МК, состояние регистра направления передачи порта DDRx в этом случае значения не имеет. Программно-логическая модель каждого канала захвата/сравнения включает три регистра: 16-разрядный регистр данных канала i (TxCHiH и TxCHiL – старший и младший байты этого регистра) и регистр управления каналом i – ТХSС1. Функция регистра данных определяется режимом работы канала захвата/сравнения, регистр управления TxSCi служит для выбора этого режима и для обслуживания прерываний по запросам модуля захвата/сравнения. В режиме входного захвата аппаратные средства модуля следят за уровнем сигнала на входе TxCHi микроконтроллера (рис. 3.2). При изменении уровня логического сигнала с «0» на «1» или наоборот вырабатывается строб записи, и текущее состояние таймера-счетчика временной базы копируется в 16-разрядный регистр данных TxCHi. канала захвата/сравнения. Событие захвата отмечается установкой в п1» флага CHiF в регистре управления каналом с номером i. Этот флаг может быть считан программно, а если прерывания по событию канала i разрешены (флаг СНi1Е в регистре управления установлен), то модуль процессора событий выставляет запрос на прерывание. Предусмотрены три типа изменения сигнала на входе TxCHi МК, которые воспринимаются модулем захвата/сравнения, как событие захвата: 1)передний (нарастающий) фронт сигнала; 2)задний (падающий) фронт сигнала; 3)любое изменение логического уровня сигнала. Выбор типа события захвата для модуля определяется битами ELSiB:ELSiA регистра управления каналом TxSCi. В режиме выходного сравнения аппаратные средства модуля непрерывно сравнивают изменяющийся во времени код таймера-счетчика с кодом, который записан в 16-раз-рядный регистр данных TxCHi модуля захвата/сравнения i (рис. 3.3). В момент равенства кодов аппаратные средства модуля устанавливают на выходе микроконтроллера TxCHi заданный уровень логического сигнала либо изменяют этот уровень на противоположный. При наступлении события выходного сравнения в регистре управления канала TxSCi устанавливается в «1» флаг CHiF, тот же, что и при настyплении события захвата. Аналогично предыдущему случаю этот флаг вызывает формирование запроса на прерывание, если прерывания от модуля i разрешены. Предусмотрены три типа изменения сигнала на выходе TxCHi МК в момент события выходного сравнения: 1)инвертирование сигнала на выходе; 2)установка низкого логического уровня; 3)установка высокого уровня. Выбор типа изменения выходного сигнала для модуля определяется битами ELSiB:ELSiA регистра управления каналом TxSCi Рис. 3.2. Временные диаграммы работы канала процессора событий в режиме захвата. Рис.3.3. Временные диаграммы работы канала процессора событий в режиме небуферированного выходного сравнения При работе в режиме выходного сравнения могут возникать нарушения алгоритма работы канала захвата/сравнения, приводящие к неправильному формированию сигнала на выходе TxCHi модуля. Причиной таких сбоев является изменение величины кода сравнения в процессе работы канала, а также конечное время выполнения программы перезагрузки кода сравнения в регистр данных канала TxCHi. Например, событие выходного сравнения еще не произошло, когда код в регистре данных TxCHi был изменен на меньшее значение (рис. 3.4). Причем это значение таково, что текущий код таймера-счетчика превышает его. В результате в текущем периоде работы таймера-счетчика события выходного сравнения уже не произойдет, так как равенство кодов наступит только в следующем периоде работы таймера-счетчика. Подобная ситуация исключается при использовании режима буферированного выходного сравнения. В режиме буферированного выходного сравнения каналы захвата/сравнения объединяются в пары: канал 0 с каналом 1 (канал 2 с каналом 3, канал 4 с каналом 5 - в другиx МК семейства НС08). Канал с нечетным номером работает в режиме выходного сравнения. Канал с четным номером переводится в нерабочее состояние, и его нельзя использовать ни в каком из режимов работы. Вывод TxCHi МК, принадлежащий каналу с четным номером, автоматически конфигурируется в режим обычной линии ввода/вывода. Далее для определенности рассмотрим логику работы на примере пары 0 и 1. Сразу после инициализации в качестве источника кода сравнения модуль 0 использует регистры данных ТХСНО, принадлежащие модулю 0. После того, как событие сравнения произошло, в качестве источника кода сравнения могут использоваться как регистры данных канала 0, так и регистры данных канала 1. Выбор регистра данных осуществляется модулем автоматически: используется та пара регистров данных, в которую запись была произведена последней. По этой причине не следует новое значение кода сравнения записывать в текущий активный регистр данных канала. Эта операция в соответствии с принципом действия режима буферированного сравнения фактически переведет канал в режим небуферированного выходного сравнения. Никаких сбоев формирования сигнала на выходе ТхСНi в режиме буферированного выходного сравнения не возникнет, если: · производить запись нового кода сравнения в регистр неактивного канала; · выполнять эту операцию в подпрограмме прерывания по событию выходного сравнения обслуживаемого канала. Рис. 3.4. Временные диаграммы работы канала процессора событии в режиме небуферированного выходного сравнения. Ошибка формирования по причине изменения кода сравнения Назначение режима буферированного выходного сравнения производится установкой бита MSiB в регистре управления каналом с номером i=0. Регистр управления канала 1 в этом случае не оказывает влияния на работу канала 0 в режиме буферированного выходного сравнения. Однако для однозначного определения состояния неиспользуемой в режиме буферированного выходного сравнения линии ТхСН1 канала 1 биты ELSiB:ELSiА регистра управления канала 1 должны быть установлены в «00». Особенности инициализации каналов захвата/сравнения поясняет табл. 3.2. Режим небуферированного выходного сравнения может быть использован для получения на выходе модуля TxCHi широтно-модулированного импульсного сигнала. С этой целью следует запрограммировать логику изменения сигнала на выходе TxCHi следующим обрезом (рис. 3.5): · при наступлении события выходного сравнения на выходе ТхСН устанавливается низкий логический уровень; · при переполнении таймера-счетчика уровень сигнала на выводе инвертируется. Вы получите ШИМ сигнал, у которого длительность импульса будет изменяться по закону: где К– код регистра данных канала, f – частота тактирования таймера-счетчика. Период широтно-модулированных импульсов определяется периодом таймера-счетчика: При тактировании таймера-счетчика от внутреннего генератора период таймера-счетчика составляет: где – коэффициент деления программируемого делителя частоты, – коэффициент счета таймера-счета.
Таблица 3.2 Инициализация режимов каналов захвата/сравнения
Коэффициент заполнения у по определению равен отношению длительности импульса к длительности периода ШИМ сигнала:
Рис. 3.5. Временные диаграммы работы канала процессора событии в режиме Из приведенного соотношения следует, что дискретизация коэффициента заполнения γ определяется выбранным коэффициентом счета таймера-счетчика. Следовательно, модуль процессора событии ТIМ08 может реализовать ШИМ с дискретизацией коэффициента заполнения вплоть до 16 бит. При необходимости полярность импульсов ШИМ-сигнала может быть изменена. Для этого необходимо при инициализации выбрать следующие опции. · при наступлении события выходного сравнения на выходе устанавливается высокий логический уровень; · при переполнении таймера-счетчика уровень сигнала на выходе инвертируется. Рассмотренный режим небуферированной ШИМ подвержен сбоям в работе так же, как и режим небуферированного выходного сравнения (рис. 3.5). Так, если вы станете менять код заполнения в течение периода, то при смене большего кода на меньший возможен пропуск момента сравнения и, как следствие, получение единичного коэффициента заполнения. Поэтому режим небуферированной ШИМ следует использовать тех случаях, когда код коэффициента заполнения требуется изменять крайне редко. В остальных случаях следует использовать режим буферированной ШИМ. Для получения буферированной ШИМ используют режим буферированного выходного сравнения, при котором каналы объединяются по парам, и для генерации ШИМ сигнала на одном выводе используются регистры сразу двух каналов захвата/сравнения. Вследствие этого число линий с ШИМ-сигналами для любого процессора событии ТIМ08 сокращается вдвое. Особенности инициализации модулей захвата/сравнения в режиме буферированной ШИМ определяются правилами инициализации канала на режим буферированного выходного сравнения. Формат регистра управления канала захвата/сравнения приведен в табл. 3.3. Регистры данных канала ТхСНiН и TxCHiL являются 8-разрядными регистрами, которые доступны для чтения и для записи. Полный перечень регистров двух процессоров событии МК МС68НС908GР32 приведен в табл. 3.4. Таблица 3.3 Формат регистра TxSCi
Таблица 3.4 Регистры специальных функций модулей процессора событий МК MC68HC908GP32
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |