
- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания.
- •2.3Формализация настроек для инициализации фильтра.
- •Формализация определений для рабочего цикла фильтра.
- •Согласование кодов мк и цап
- •Разработка и описание общего алгоритма функционирования фильтра
- •Аппаратно - реализуемые операции Программно - реализуемые операции
- •5.Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчёт результатов работы программы: "Цифровой фильтр (верхних частот)"
- •6.Составление электрической принципиальной схемы и описание функционирования фильтра
- •7. Расчет быстродействия фильтра
- •8. Анализ характеристик фильтра для заданных и реальных значений коэффициентов (нули и полюса, ачх, фчх, оценка устойчивости)
- •9.Заключение
- •10. Список использованных источников
Формализация определений для рабочего цикла фильтра.
Реализация прерываний по входу INT1 .
Прерывание по внешнему входу INT1 выполняет сигнал оповещения ЕОС с выхода АЦП о готовности кода текущего отсчёта xn. По прерыванию INT1 запускается подпрограмма вычисления выходного отсчёта уn (запускается рабочий цикл) цифрового фильтра.
Вектор прерывания по входу INT1 равен 0013. С этого адреса в ПЗУ загружается подпрограмма обслуживания прерывания данного типа.
Согласование кодов АЦП и МК.
Согласование кодов АЦП и МК не требуется, так как выходной код AD7892AN-1 является арифметическим дополнительным кодом и отображает числовые значения входного знакопеременного напряжения.
Форма представления чисел
Представляем числовые значения отсчетов входного сигнала в виде правильной дроби с фиксированной запятой: старший разряд - знаковый, запятая, остальные двоичные разряды - числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от -1 до +1.
Коэффициенты разностного уравнения определяем, как 8-разрядные числа без знака:
k = 0,4950187510); kP =,01111110 (2) = 7Е(16) = 0,49501875(10);
Отличие реальных значений коэффициентов (Р) от заданных (Т) предопределяет отличие реальных характеристик фильтра от расчётных.
Хранение текущих данных
Необходимость хранения данных определяется видом заданного разностного уравнения. Для каждого цикла вычисления текущих выходных отсчётов yn требуется использовать выборку входных отсчетов xn, xn-1, и выборку выходных отсчетов yn, yn-1. Все указанные отсчеты должны быть доступны для вычислений, следовательно, должны храниться в памяти МП-системы.
Требуется также вычислить текущее произведение: p1n =0,49609375 xn
которое также должно храниться в памяти.
Следовательно, 8 ячеек ОЗУ (РФ55) при составлении программы определим для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации).
После вычисления выходного отсчета yn и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выборок в памяти: n-й отсчет на место n-1-гo. Это требуется для подготовки следующего цикла вычислений.
Масштабирование входных отсчётов
Если при вычислении разностного уравнения при принятом 8-разрядном формате представления данных получен числовой результат, выходящий за пределы -1, +1 имеет место переполнение разрядной сетки.
Для исключения переполнения введем масштабирование (ослабление) входных отсчетов путем их умножения на коэффициент масштабирования kM < 1, при котором вычисление разностного уравнения не дает недопустимого результата.
Коэффициент kM получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (- 1, + 1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты.
Подставив такие значения в уравнение для вычисления и просуммировав по модулю коэффициенты, получим ynmax =2.495, что является недопустимым результатом. Отсюда заданный коэффициент масштабирования (число без знака) равен:
kМ = 1/ ynmax = 0,400390625(10); kМР = 0,01100110(2) = 66(16) ≈ 0.4(10).
Умножение отсчёта на коэффициент
При вычислении разностного уравнения и при масштабировании, перемножаются числа со знаком (отсчёты) на числа без знака (коэффициенты). Произведение - число со знаком. Система команд МК содержит команды умножения только для чисел без знака (положительных чисел).
Поэтому перемножение множимого со знаком на множитель без знака в системе команд МК реализуется либо на основе алгоритма умножения вручную (арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведений), либо на основе смены знака у отрицательного множимого, перемножения беззнаковых сомножителей с соответствующей сменой знака у произведения.
Примем для реализации второй алгоритм, как более эффективный по критериям: объём программы и длительность выполнения программы умножения.