
- •Содержание
- •1. Постановка задачи
- •2. Формализация задачи
- •2.1 Функциональная схема цифрового фильтра
- •2.2 Исходное состояние фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •2.3.1 Частота синхронизации мк
- •2.3.2 Настройка таймера – счетчика т/с0
- •2.3.3 Настройка прерываний
- •2.4.4 Хранение текущих данных
- •2.4.5 Масштабирование входных отсчетов
- •2.4.6 Умножение отсчета на коэффициент
- •3. Разработка и описание общего алгоритма функционирования фильтра
- •4. Обоснование построения аппаратной части фильтра
- •5. Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчёт результатов работы программы: "Цифровой фильтр (режекторный)"
- •6. Расчет быстродействия фильтра
- •7. Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •8. Заключение (оценка результатов проектирования)
- •9. Список использованных источников.
- •Приложение а (схема мп-системы на базе мк кр1830ве31).
- •Приложение б (список условных сокращений).
2.2 Исходное состояние фильтра после включения питания
При включении питания в схеме МП-системы (приложение А) вырабатывается импульс сброса RST для микроконтроллера. По сигналу RST=1 выполняются следующие действия:
программный счетчик и все управляющие регистры МК, кроме PCON, IE, IP – устанавливаются в нулевое состояние;
в управляющих регистрах PCON, IE, IP – резервные биты принимают случайные значения, все остальные биты сбрасываются в 0;
в указателе стека устанавливается адрес SP=70 (вершина стека);
запрещаются прерывания от всех источников, запрещается работа таймеров/счетчиков, запрещается работа последовательного порта;
выбирается банк 0 POH (текущий банк регистров);
порты Р0, Р1, Р2, Р3 настраиваются на ввод для приема данных;
в обоих регистрах SBUF последовательного порта устанавливаются случайные значения.
В БИС КР1821РУ55 и КР1821РФ55 исходное состояние после включения питания произвольное, так как импульс RST на их входы сброса не поступает.
Таким образом, для перехода фильтра в рабочий режим требуется его предварительная настройка на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик.
2.3 Формализация настроек для инициализации фильтра
2.3.1 Частота синхронизации мк
Принимаем частоту задающего кварцевого генератора FOSC=12 МГц. Длительность машинного цикла при этом ТМЦ = 1 мкс.
2.3.2 Настройка таймера – счетчика т/с0
Таймер/счетчик
Т/С0 должен работать в непрерывном режиме
таймера (без блокирования сигналом
)
для формирования импульсов с частотой
дискретизации FД.
Поэтому выбираем режим 2 с перезагрузкой
после каждого цикла счета. Управляющие
биты GATE0
= 0 и С/
0
= 0 и код режима 10 записываются в состав
управляющего слова (константа #02) для
регистра TMOD
при инициализации фильтра – команда
MOV
89 #02.
Задание частоты дискретизации FД = 10000 Гц. Длительность интервала дискретизации ТД = 100 мкс. Количество машинных циклов ТМЦ, укладывающихся на интервале дискретизации: N= ТД / ТМЦ = 100, значит Т/С0 должен иметь в режиме с перезагрузкой коэффициент счета KСЧ=100.
Максимальный коэффициент пересчета 8-разрядного счетчика (без перезагрузки) равен 256. Чтобы в режиме суммирования 8-разрядный Т/С0 имел требуемый коэффициент пересчета, при перезагрузке в него должно записываться число NИСХ = kMAKC – N = 256-100 = 156 Константа #9C, обеспечивающая требуемую частоту дискретизации, при инициализации фильтра должна быть записана в регистр TH0 (прямой адрес 8С) – команда MOV 8C, #9C
Пуск Т/С0 осуществляется путем установки в регистре ТСОN управляющего бита TR0=1 при инициализации фильтра – команда SETB 8C.
Вывод импульса переполнения Т/С0 для запуска АЦП выполняется по прерыванию от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерываний от флага TF0 имеет стартовый адрес 000В и содержит команды CLR 90, SETB 90 – сброс и установка линии Р1.0 (порт Р1), так как исходное состояние линии – 1.