- •Цифровой фильтр
- •Постановка задачи (введение)
- •Формализация задачи (определение функций аппаратной части и программы и способов их реализации)
- •Функциональная схема цифрового фильтра
- •Исходное состояние Фильтра после включения питания
- •2.3 Формализация настроек для инициализации фильтра
- •. Формализация определений для рабочего цикла фильтра
- •Разработка и описание общего алгоритма функционирования фильтра
- •Обоснование построения аппаратной части фильтра
- •Назначение выводов и настройки ad9708
- •Разработка и отладка программы на языке команд мк
- •Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»
- •Для положительных входных отсчётов
- •Для отрицательного входного отсчёта
- •Составление электрической принципиальной схемы и описание функционирования фильтра
- •Расчет быстродействия фильтра
- •Тип частотной избирательности фильтра. Характеристики для заданных и реальных значений коэффициентов (нули и полюсы, ачх, фчх)
- •Заключение (оценка результатов проектирования)
- •10. Список использованных источников
Расчет быстродействия фильтра
Быстродействие фильтра в рабочем режиме оценим как время, необходимое для выполнения всех операций, требуемых для получения входного отсчёта,
вычисления выходного, выдачи его на периферийное устройство, подготовки следующего цикла. Для проектируемого фильтра это время складывается как сумма затрат времени на преобразование аналогового входного отсчёта в код, обработку прерывания от Т/С0 и обработку прерывания от входа INT0 .
Длительность машинного цикла МК (1 мкс) постоянная, поэтому затраты времени на обработку прерываний можно оценивать количеством требуемых для этого машинных циклов. Число машинных циклов для каждой команды МК приведено в таблице команд.
При расчете суммарного количества машинных циклов для рабочего режима фильтра следует учесть, что разработанная программа содержит разветвления по знаку обрабатываемого отсчёта (команды JC). Умножение отрицательного отсчёта более длительно по времени. Время выполнения рабочего цикла фильтра максимально в том случае, когда все обрабатываемые программой отсчёты - отрицательные.
Таким образом, для выполнения одного цикла работы проектируемого фильтра Tф (с момента прерывания от Т/СО до выхода на метку STOP.) требуется время, равное ТФ = 87 ТМЦ + ТАЦП = 87·1·10-6 + 1.3·10-6 = 88.3 мкс < Тд = 125 мкс, где Тмц = 1 мкс - длительность машинного цикла, ТАЦП = 1,3 мкс - длительность преобразования АЦП, Тд = 1 / Fд = 1 /8000 - интервал дискретизации фильтра.
Число 88 показывает количество циклов программы необходимых для выполнения всех операций заложенных в программе, вычислении выходного отсчёта, подготовки следующего цикла. Количество циклов считается после того как выполнена инициализация программы(период переполнения Т/С0, пуск Т/С0, разрешение прерываний от Т/С0 и INT0, порт РA РФ55-ввод, порт РВ РФ55 вывод. Все обрабатываемые отсчёты – отрицательные, так как умножение отрицательного отсчёта более длительно по времени. Условие фильтрации аналогового сигнала в реальном времени выполняется.
Команда |
Число использований в программе |
Количество затраченных циклов |
MOV direct, A |
4 |
4 |
MOV direct, #data |
5 |
10 |
MOV direct, direct |
4 |
8 |
MOV A, direct |
6 |
6 |
MOVX |
2 |
4 |
JC |
3 |
6 |
RRC |
3 |
3 |
RLC |
3 |
3 |
INC |
6 |
6 |
MUL |
3 |
12 |
ADD |
2 |
2 |
RETI |
2 |
4 |
CPL |
6 |
6 |
SUBB |
1 |
1 |
CLR |
3 |
3 |
SJMP |
1 |
2 |
LJMP |
3 |
6 |
SETB |
1 |
1 |
