- •Цифровой фильтр
- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •. Формализация определений для рабочего цикла фильтра
- •Разработка и описание общего алгоритма функционирования фильтра
- •Обоснование построения аппаратной части фильтра
- •Назначение выводов и настройки ad9708
- •Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»
- •Для положительных входных отсчётов
- •Для отрицательного входного отсчёта
- •Составление электрической принципиальной схемы и описание функционирования фильтра
- •Расчет быстродействия фильтра
- •Тип частотной избирательности фильтра. Характеристики для заданных и реальных значений коэффициентов (нули и полюсы, ачх, фчх)
- •Заключение (оценка результатов проектирования)
- •10. Список использованных источников
Исходное состояние Фильтра после включения питания
При включении питания в схеме МП-системы вырабатывается импульс сброса RST для МК. По сигналу RST = 1 выполняются следующие действия:
1) программный счетчик и все управляющие регистры МК, кроме PCON, IE, IP - устанавливаются в нулевое состояние;
2) в управляющих регистрах PCON, IE, IP - резервные биты принимают случайные значения, все остальные биты сбрасываются в 0;
3) в указателе стека устанавливается адрес SP = 70 (вершина стека);
4) запрещаются прерывания от всех источников, запрещается работа таймеров/счётчиков, запрещается работа последовательного порта;
5) выбирается банк 0 РОН (текущий банк регистров),
6) порты Р0, Р1, Р2, РЗ настраиваются на ввод для приёма данных;
7) в обоих регистрах SBUF последовательного порта устанавливаются случайные значения.
В БИС РФ55 исходное состояние после включения питания произвольное, так как импульс RST на их входы сброса не поступает.
Из этого следует, что переходу фильтра в рабочий режим должна предшествовать его настройка (инициализация) на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик.
2.3 Формализация настроек для инициализации фильтра
Частота синхронизации МК
Примем частоту задающего кварцевого генератора Fosc = 12 МГц. Длительность машинного цикла при этом равна Тмц = 1 мкс.
Настройка таймера-счётчика Т/С0
Режим работы. По сформулированному выше определению Т/С0 должен работать в непрерывном режиме таймера (без блокирования сигналом INT0) для формирования импульсов с частотой дискретизации FД. Выбираем поэтому режим 2 с перезагрузкой после каждого цикла счёта. Управляющие биты GATE0 = 0, С/Т 0 = 0 и код режима 10 записываются в состав управляющего слова (константа #02) для регистра TMOD при инициализации фильтра - команда MOV 89, #02.
Управляющее слово для регистра TMOD (прямой адрес 89) |
|||||||
TMOD.7 |
TMOD.6 |
ТМОD.5 |
ТМOD.4 |
TMOD.3 |
TMOD.2 |
TMOD.1 |
TMOD.0 |
х(0) |
х(0) |
х(0) |
х(0) |
0 |
0 |
1 |
0 |
GATE1 |
С |
М1.1 |
М0.1 |
GATE0 |
С /Т 0 |
М1.0 |
М0.0 |
Задание частоты дискретизации FД равной 8000 Гц. Длительность интервала дискретизации (Tд) равна 125 мкс. Количество машинных циклов Тмц=1 мкс, укладывающихся на интервале дискретизации: N = Тд / Тмц = 125, т.е. Т/С0 должен иметь в режиме с перезагрузкой коэффициент счёта kсч = N = 125.
Максимальный коэффициент пересчёта 8-разрядного счётчика (без перезагрузки) равен kМАКС = 28 = 256. Чтобы в режиме суммирования 8-разрядный Т/С0 имел требуемый коэффициент пересчёта kсч = N, при перезагрузке в него должно записываться число Nиcx = kМАКС - N, для рассматриваемого примера Nиcx = (256-125)(10) = 131(10) = 83(16).
Константа #83, обеспечивающая требуемую частоту дискретизации, при инициализации фильтра должна быть записана для хранения в регистр TH0 (прямой адрес 8С) - команда MOV 8C, #83.
Пуск Т/С0 осуществляется путём установки в регистре TCON управляющего бита TR0 =1 при инициализации фильтра - команда SETB 8C.
Вывод импульса переполнения Т/С0 для запуска АЦП выполняется по прерыванию от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерывания от флага TF0 имеет стартовый адрес 000В и содержит команды: CLR 92, SETB 92 - сброс и установка линии Р1.2 (порт Р1), так как исходное состояние линии - 1 (во все защёлки портов при сбросе МК записаны 1, - порты настроены на ввод).
Настройка прерываний
В результате сброса МК при включении питания всем источникам прерываний назначается одинаковый, нулевой приоритет. Поскольку обработка прерываний от таймера Т/С0 и по входу INT0 не могут совпадать по времени, переопределять приоритеты прерываний не требуется.
После сброса МК все прерывания запрещены. Поэтому при инициализации требуется разрешить прерывания вообще (установить бит ЕА = 1), и, в частности, разрешить прерывания от Т/С0 (ЕТ0 = 1) и по входу INT0(ЕХ0 = 1). Команда записи управляющего слова (константы #83) в регистр IE: MOVA8,#83.
Управляющее слово для регистра IE (прямой адрес А8) |
|||||||
IE.7 |
IE.6 |
IE.5 |
IE.4 |
IE.3 |
IE.2 |
IE.1 |
IE.0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
ЕА |
- |
- |
ES |
ЕТ1 |
ЕХ1 |
ЕТ0 |
ЕХ0 |
Настройка портов БИС КР1821РФ55.
Порт РА РФ55 настраивается на ввод. При инициализации фильтра - команды:
MOV DPTR, #0802;
MOV A, #00;
MOVX @DPTR,A;
а порт РВ РФ55 – на вывод. При инициализации фильтра команды:
MOV DPTR, #0803;
MOV A, #FF;
MOVX @DPTR,A;
Организация стека При сбросе МК в указатель стека загружается адрес SP = 70, во внутренней памяти данных назначается стек (16 ячеек ОЗУ) с начальным адресом 70. Глубина стека достаточна для решаемой задачи, поэтому переопределение стека не требуется.

/Т
1