- •Содержание
- •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.3.3 Настройка прерываний
В результате сброса МК при включении питания всем источникам прерываний назначается одинаковый, нулевой приоритет. Поскольку обработка прерываний от таймера Т/С0 и по входу не могут совпадать по времени, переопределять приоритеты прерываний не требуется.
После сброса МК все прерывания запрещены. Поэтому при инициализации требуется разрешить прерывания вообще (установить бит EA=1), и, в частности, разрешить прерывания от Т/С0 (ЕТО=1) и по входу (ЕХ0 = 1). Команда записи управляющего слова (константы #83) в регистр IE: MOV A8, #83
2.3.4 Настройка портов БИС КР1821РУ55 и КР1821РФ55
Порт РА РУ55 настраивается на ввод, а порт РA РФ55 – на вывод. Для этого соответствующий бит РА = 1 записывается в состав управляющего слова РУ55, биты PC2, PC1 управляющего слова той же БИС устанавливаются в 1.
Для настройки порта PА БИС КР1821РФ55 на вывод необходимо установить регистр направления передачи порта РA в 1.
2.3.5 Организация стека
При сбросе МК в указатель стека загружается адрес SP = 70 – во внутренней памяти данных назначается стек 16 ячеек ОЗУ. Его глубина достаточна для решаемой задачи, поэтому переопределения стека не требуется.
2.4 Формализация определений для рабочего цикла фильтра
2.4.1 Реализация прерываний по входу
Прерывание по внешнему входу выполняет сигнал оповещения с выхода АЦП о готовности кода текущего отсчета Хn. По прерыванию запускается подпрограмма вычисления выходного отсчета Yn (запускается рабочий цикл) цифрового фильтра.
Вектор прерывания по входу равен 0003. С этого адреса в ПЗУ загружается подпрограмма обслуживания прерывания данного типа.
2.4.2 Согласование кодов АЦП и МК
Согласование кодов АЦП и МК не требуется, так как выходной код AD7892AN-1 является арифметическим дополнительным кодом и отображает числовые значения входного знакопеременного напряжения.
2.4.3 Форма представления чисел
Представляем числовые значения отсчетов входного сигнала в виде правильной дроби с фиксированной запятой: старший разряд – знаковый, запятая, остальные двоичные разряды – числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от -1 до +1.
Коэффициенты разностного уравнения определяем как 8-разрядные числа без знака:
kp=0.19(10)=,00110000(2)=30(16)= 1∙2-3+1∙2-4=0,18750000(10)
lp=0.017(10)=,00000100(2)=04(16)= 1∙2-6=0,01562500(10)
Отличие реальных значений коэффициентов (Р) от заданных (Т) предопределяет отличие реальных характеристик фильтра от расчетных.
2.4.4 Хранение текущих данных
Необходимость хранения данных определяется видом заданного разностного уравнения. Для каждого цикла вычисления текущих выходных отсчетов Yn требуется использовать выборку входных отсчетов Xn, Xn-1, Xn-2 и выборку выходных отсчетов Yn, Yn-1,Yn-2. Все указанные отсчеты должны быть доступны для вычислений, и, следовательно, храниться в памяти МП-системы.
Требуется также вычислять 2 текущих произведения: p1n=kP · xn-2; p2n=lP·yn-2, которые также должны храниться в памяти.
Следовательно, 8 ячеек ОЗУ (РУ55) определим для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации).
После вычисления выходного отсчета Yn, преобразования прямого кода в дополнительный и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выборок в памяти: n-1-й отсчет на место n-2-го, n-й на место n-1-го. Это требуется для подготовки следующего цикла вычислений.