Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
4.16.1. Небуферированные каналы входного захвата
Алгоритм функционирования небуферированных каналов входного захвата полностью аналогичен функционированию в аналогичном режиме каналов модуля TIM. Однако небуферированные каналы модуля EST снабжены дополнительной функцией управления режимом. Регистр управления порядком перезаписи ICOVW (Input Control Overwrite Register) содержит восемь битов NOVWn (рис. 4.49). Если бит NOVWn установлен в 1, то регистр данных небуферированного канала с номером n не может быть перезаписан под действием аппаратных средств, пока этот регистр не будет считан программой. Если бит NOVWn = 0, то функция блокировки записи для небуферированного
4.16.2. Буферированные каналы входного захвата
Четыре буферированных канала входного захвата оснащены вторым регистром данных. В результате, канал может запомнить два момента времени, которые соответствуют двум последовательным событиям на входе канала. Флаг события канала устанавливается после того, как оба регистра данных канала будут заполнены кодами событий.
В приложении к буферированным каналам входного захвата принято использовать следующую терминологию. Первый регистр данных канала считается очищенным, если его значение переписано во второй регистр данных или считано программой. Второй регистр данных канала считается очищенным, если его значение прочитано программой.
Буферированные каналы входного захвата могут работать или в режиме временного хранения, или в режиме очереди. Режим работы назначается битом LATQ в регистре управления режимом входного захвата ICSYS. Если бит LATQ установлен в 1, то буферированные каналы работают в режиме временного хранения. Если же бит LATQ = 0, то для буферированных каналов назначается режим очереди.
В режиме временного хранения (LATQ = 1) текущий код счетчика временной базы запоминается в первом регистре данных при изменении входного сигнала, на которое настроен детектор события. Далее этот код автоматически переписывается во второй регистр данных при наступлении одного из трех событий:
• Код 16-разрядного вычитающего счетчика MCCNT достиг $0000;
• В счетчик MCCNT под управлением программы вписан код $0000;
• Бит ICLAT в регистре управления вычитающим счетчиком MCCTL (рис. 4.50) программно установлен в 1.
Рис. 4.50. Аппаратные средства буферированного канала входного захвата — режим временного хранения
В режиме временного хранения биты управления NOVWn действуют также, как и небуферированных каналах (см. 14.6.1)
В режиме очереди (LATQ = 0) и при NOVWn = 0 событие входного захвата вызывает автоматическую перезапись содержимого первого регистра данных канала во второй регистр данных, а в первый регистр данных загружается текущий код счетчика временной базы (рис. 4.51). Если буферированный канал работает в режиме очереди и бит NOVWn = 1, то и первый и второй регистры данных не запоминают момента наступления события, если они не очищены, т.е. не были считаны программой до наступления события.
Рис. 4.51. Аппаратные средства буферированного канала входного захвата — режим очереди
4.16.3. Особенности счетчиков событий
Модуль таймера EST оснащен четырьмя 8-разрядными счетчиками событий (рис. 4.52). Счетчики событий могут быть объединены попарно, тогда они образуют два 16-разрядных счетчика события. Так же, как и каналы захвата, счетчики событий могут работать или в режиме временного хранения, или в режиме очереди (рис. 4.52).
Рис. 4.52. Аппаратные средства
счетчика внешних событий в составе таймера ECT4.16.4. Регистры управления модуля EST
На рис. 4.53 приведен формат регистров модуля таймера EST, которые отсутствуют в рассмотренном ранее модуле TIM. Адреса регистров указаны как для МК BE32 семейства 68HC12, так и для микроконтроллеров семейства HCS12. Приведенные адреса можно рассматривать как абсолютный адрес, если в проекте используется настоящий физический адрес начала блока регистров $0000. Если же блок регистров перемещен в другое, виртуальное адресное пространство, то указанные адреса следует рассматривать как смещение адреса регистра относительно адреса начала регистрового блока.
Рис. 4.53. Формат регистров модуля ECT
Регистр управления порядком перезаписи ICOVW (Input Control Overwrite Register) располагается в памяти МК по адресу $00AA/$002A. Формат регистра представлен на рис. 4.53. Регистр содержит восемь битов NOVWn (n — номер канала). Если бит NOVWn = 0, то первый и второй регистры данных канала входного захвата с номером n могут быть автоматически перезаписаны при наступлении очередного события входного захвата. Если же бит NOVWn = 1, то регистры данных канала не могут быть перезаписаны, если они предварительно не были очищены, т.е. считаны под управлением программы.
Регистр управления режимом входного захвата ICSYS (Input Control System Control Register) содержит бит разрешения буферированного режима в каналах BUFEN и бит выбора режима работы буферированных каналов LATQ (временного хранения или очереди). Если бит BUFEN установлен, то работа второго регистра данных и буферного регистра счетчика событий буферированных каналов модуля таймера разрешена. Если бит LATQ равен 1, то буферированные каналы входного захвата работают в режиме временного хранения, при LATQ = 0 эти каналы работают в режиме очереди.
Регистр управления счетчиком задержки DLYCT (Delay Counter Control Register) разрешает вставку регулируемого временного интервала между моментом распознавания детектором события изменения входного сигнала и интерпретацией этого изменения как события входного захвата со всеми последующими действиями аппаратных средств канала таймера. Событие входного захвата будет распознано, если логический уровень сигнала по истечении временной задержки будет противоположен уровню сигнала перед запуском счетчика задержки. Такое решение позволяет повысить устойчивость входов к шумам на фронтах переключения. Длительность задержки определяется битами DLY1:DLY0. При DLY1:DLY0 = 00 задержка не вставляется. При DLY1:DLY0 = 01 задержка равна 256 периодам сигнала P clock системы тактирования, при DLY1:DLY0 = 10 задержка составляет 512 периодов, при DLY1:DLY0 = 11 — 1024 периода того же сигнала.
Регистр управления вычитающим счетчиком MCCTL (Modulus Down-Counter Control Register) предназначен для задания режима работы 16-разрядным вычитающим счетчиком с изменяемым коэффициентом счета. Если бит MODMC установлен в 0, то счетчик уменьшает код, начиная с предварительно записанного значения до 0, затем останавливается. Если бит MODMC равен 1, счетчик считает непрерывно. При достижении кода $0000, он автоматически перезагружается кодом, записанным в регистр коэффициента счета MCCNT.