
- •Цифровой фильтр
- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •. Формализация определений для рабочего цикла фильтра
- •Разработка и описание общего алгоритма функционирования фильтра
- •Обоснование построения аппаратной части фильтра
- •Назначение выводов и настройки ad9708
- •Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»
- •Для положительных входных отсчётов
- •Для отрицательного входного отсчёта
- •Составление электрической принципиальной схемы и описание функционирования фильтра
- •Расчет быстродействия фильтра
- •Тип частотной избирательности фильтра. Характеристики для заданных и реальных значений коэффициентов (нули и полюсы, ачх, фчх)
- •Заключение (оценка результатов проектирования)
- •10. Список использованных источников
. Формализация определений для рабочего цикла фильтра
Реализация прерываний по входу INT0
Прерывание по внешнему входу INT0 выполняет сигнал оповещения ЕОС с выхода АЦП о готовности кода текущего отсчёта xn. По прерыванию INT0 запускается подпрограмма вычисления выходного отсчёта уn (запускается рабочий цикл) цифрового фильтра.
Вектор прерывания по входу INT0 равен 0003. С этого адреса в ПЗУ загружается подпрограмма обслуживания прерывания данного типа.
Согласование кодов АЦП и МК
Согласование кодов АЦП и МК не требуется, так как выходной код AD7892AN-1 является арифметическим дополнительным кодом и отображает числовые значения входного знакопеременного напряжения.
Форма представления чисел
Представляем числовые значения отсчетов входного сигнала в виде правильной дроби с фиксированной запятой: старший разряд - знаковый, запятая, остальные двоичные разряды - числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от -1 до +1.
Коэффициенты разностного уравнения определяем, как 8-разрядные числа без знака:
К1= 0,04(10)Т ≈.00001010(2) = 0A(16) = 0,0390625(10)Р.
К2= 0,02(10)Т ≈.00000101 (2) = 05(16) = 0,01953125(10)Р.
Отличие реализуемых значений от заданных предопределяет отличие реализуемых характеристик фильтра от расчётных, но с достаточной точностью приближённые к ним.
Хранение текущих данных
Необходимость хранения данных определяется видом заданного разностного уравнения. Для каждого цикла вычисления текущих выходных отсчётов yn требуется использовать выборку входных отсчетов Xn, Xn-1, Xn-2 и выборку выходных отсчетов Yn, Yn-1, Yn-2. Все указанные отсчеты должны быть доступны для вычислений, следовательно, должны храниться в памяти МП-системы.
Требуется также вычислять произведение:
p1n = 0.02xn-2, p2n = 0.04yn-2, которое также должно храниться в памяти.
Следовательно, 8 ячеек внутреннего ОЗУ при составлении программы определим для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации).
После вычисления выходного отсчета yn и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выборок в памяти: n-1-й отсчет на место n-2-го, n-й отсчет на место n-1-гo. Это требуется для подготовки следующего цикла вычислений.
Масштабирование входных отсчётов
Если при вычислении разностного уравнения при принятом 8-разрядном формате представления данных получен числовой результат, выходящий за пределы -1, +1 имеет место переполнение разрядной сетки.
Для исключения переполнения введем масштабирование (ослабление) входных отсчетов путем их умножения на коэффициент масштабирования kM < 1, при котором вычисление разностного уравнения не дает недопустимого результата.
Коэффициент kM получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (-1;+1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты.
Подставив такие значения в уравнение для вычисления Yn и просуммировав по модулю коэффициенты, получим ynmax = 2,06, что является недопустимым результатом. Отсюда заданный коэффициент масштабирования (число без знака) равен
kM = 1/ ynmax = 0,4854368932…(10)
Определяем его как 8-разрядное число без знака:
0,4854368932…(10) ≈ .01111100(2) = 7C(16)
Умножение отсчёта на коэффициент
При вычислении разностного уравнения и при масштабировании, перемножаются числа со знаком (отсчёты) на числа без знака (коэффициенты). Произведение - число со знаком. Система команд МК содержит команды умножения только для чисел без знака (положительных чисел).
Поэтому перемножение множимого со знаком на множитель без знака в системе команд МК реализуется либо на основе алгоритма умножения вручную (арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведений), либо на основе смены знака у отрицательного множимого, перемножения беззнаковых сомножителей с соответствующей сменой знака у произведения.
Примем для реализации второй алгоритм, как более эффективный по критериям: объём программы и длительность выполнения программы умножения.
Согласование кодов МК и ЦАП
Согласование кода МК и кода ЦАП необходимо, так как ЦАП преобразует в ток смещённый входной код (положительные числа), а арифметический код МК – дополнительный. Для согласования – вычисленный отсчет yn перед выводом на ЦАП суммируется с константой 1000 0000(2) = 80(16).
Напряжение на выходе ЦАП
Выходом ЦАП AD9708 являются два токовых выхода с максимальным током (ток полной шкалы), задаваемый внешним резистором, подключаемый к выводу FS ADJ. Таким образом, максимальный ток можно регулировать от 2 мА до 20 мА. Так как выходным сигналом должно служить знакопеременное напряжения, то на выходе ставятся два резистора нагрузки, с которых снимается выходное напряжение. Для расчета применим следующие формулы:
;
;
,
где
UMOUT – амплитуда напряжения на выходе ЦАП, IOUTFS – максимальный ток, RН – сопротивление нагрузки, IREF – опорный ток, UREFIO – опорное напряжение, RSET – внешний резистор на выводе FS ADJ для задания опорного тока IREF. Для правильного функционирования внутренних транзисторных структур ЦАП необходимо задать линейный режим работы, для чего необходимо выполнение условия: UMOUT << EП = 5 В.
Пусть UMOUT = 0.5 В; RH = 50 Ом. Тогда согласно соотношениям: IOUTFS = 0.5/50=10 мА, IREF = 0.01/32 = 0.31 мА. Так как в качестве источника опорного напряжения выбран внутренний источник +1.2 В, то UREFIO = 1.2 В,
RSET = 1.2/0.31·10-3 = 3.87 кОм.
Выбираем стандартное значение RSET = 3.9 кОм
Так как на выходе согласно ТЗ необходимо иметь размах -4…+4 В, то применим ОУ в дифференциальном включении. Схема усиления на ОУ в дифференциальном включении использует свойство операционного усилителя усиливать разность входного сигнала (рис. 2).
Операционный усилитель AD8072.
Рис. 2 Усилитель выходного сигнала ЦАП
Рассчитаем номиналы сопротивлений:
;
В нашем случае, Ku= 4/Umout = 4/0.5=8.
Рассчитаем номиналы резисторов:
R3=Ku·R1, R4=Ku·R2.
Входной ток 5мА. Сопротивление R1(R2) выбирается так, чтобы при входном токе (5 мА) падение напряжения на нем не превышало 10% от входного напряжения (0.5 В). Таким образом, R1=U/I=0.5/5·10-3=100 Oм, R1=R2=100 Ом.
Сопротивление R3(R4) находим по формулам R4= KUR2, R3=KUR1,
R3=R4=8·100=800 Ом.