Курсовая работа: Проектирование цифрового сглаживающего фильтра
Входные отсчеты поступают на шину данных микропроцессора в виде 8-разрядного параллельного дополнительного кода с частотой Fд=1.2 кГц, которая формируется таймером . На выходе устройства стоит ЦАП, преобразующий код в аналоговый сигнал-ток.
Микросхема умножающего ЦАП К572ПА1Б предназначена для преобразования 12-разрядного двоичного кода на цифровых входах в ток на аналоговом выходе пропорциональный значениям кода.
Анализируя выше приведённые уравнения видно что в нашем алгоритме должны использоваться операции умножения на константу и сложения. Где операция умножения реализуется путём сдвига значения переменной и суммирования.
Техническое задание требует чтобы на выходе устройства действовало напряжение (-3…+3) В. Следовательно, для преобразования тока на выходе ЦАП в напряжение (-3…+3) В необходимо дополнительное устройство. Таким устройством может послужить операционный усилитель (ОУ).
Обработка отсчетов производится программой, хранящейся в ПЗУ. Размер одного цикла программы должен быть таким, чтобы к моменту прихода следующего отсчета устройство закончило обработку предыдущего и находилось в состоянии готовности.
Общий алгоритм функционирования устройства и его описание
При включении питания фильтр должен быть настроен на соответствующую работу. Для этого используется программа инициализации. В ПЗУ должны быть заложены данные о конфигурации и синхронизации устройства. При включении питания на адресной шине микропроцессора устанавливается начальный адрес 0000, поэтому программу инициализации следует располагать, начиная с этого адреса.
Вторым этапом работы обобщённого алгоритма является основная программа- алгоритм фильтрации. Таким образом, обобщённый алгоритм функционирования устройства имеет вид:
Инициализация устройства включает в себя следующие этапы:
1. Установка маски прерываний
2. Настройка портов ввода-вывода
3. Организация стека
4. Настройка таймера
После программы инициализации, т.е. после настройки работы, таймер начинает формировать импульсы следующие с частотой дискретизации, которые поступают на вывод STBA (PC2) порта С работающего в информационном режиме. В этом режиме через выводы PC0, PC1, PC2 происходит обмен управляющими сигналами для порта А .
По переднему фронту импульса на линии STBA формируется сигнал BF (PC1) "буфер полон" который используется в качестве сигнала квитирования. По заднему фронту импульса STBA формируется сигнал INTR (PC0) который является сигналом прерывания. С приходом сигнала запроса прерывания RST 7,5 процессор переходит в режим обслуживания прерываний. Соответственно программе обслуживания прерываний 7,5 производится считывание данных из порта ввода А.Затем процессор начинает выполнение основной программы. Основная программа, содержащая в себе алгоритм фильтрации производит операции над выборками, поступающих с внешнего устройства на порт ввода, в соответствии с заданным алгоритмом. По окончанию вычислений процессор выдаёт данные в порт вывода В. И процесс повторяется вновь.
Режим прерываний
Методология построения системы прерываний ВМ85 подчинена архитектуре ВМ80, однако число возможных источников прерываний на аппаратном уровне увеличено с одного до пяти. Наряду с типовым векторным запросом INTR (INT для ВМ80) введены ещё четыре, имеющие фиксированные векторы прерываний. Это означает, что при появлении соответствующего запроса управление передаётся на ячейку с фиксированным адресом приведённом в таблице 1:
Таблица 1: Описание прерываний процессора ВМ85
Имя | Приоритет | Стартовый адрес | Вид сигнала |
TRAP | 1 | 24CH | Переход из 0 в 1, затем в 1 |
RST 7.5 | 2 | 3CH | Переход из 0 в 1 |
RST 7.5 | 3 | 34CH | 1 |
RST 7.5 | 4 | 2CH | 1 |
INTR | 5 | Вводится при подтверждении прерывания | 1 |
Из таблицы видно, что стартовые адреса подпрограмм обслуживания прерываний находятся в области точек входа по команде RSTn, n=0-7, но расположены посередине между ними. Это разъясняет ряд наименований , принятых для запросов RSTn.5, n=5-7.
Все запросы, за исключением TRAP, могут быть запрещены или разрешены одновременно с помощью команд EI, DI, управляющих общим флагом разрешения прерываний IEN. Существует также возможность раздельного маскирования запросов типа RST независимо др. от друга, которое выполняется с помощью команды SIM. По команде SIMобеспечивается установка нового состояния маски в соответствии с содержимым аккумулятора. При выполнении этой команды содержимое аккумулятора интерпретируется следующим образом.
А7 | А6 | А5 | А4 | А3 | А2 | А1 | А0 |
SOD | SDEN | -- | R 7.5 | MSEN | M 7.5 | M 6.5 | M 5.5 |
M 7.5, M 6.5, M 5.5 – маски соответствующего прерывания
MSEN – разрешение установки маски прерываний
R 7.5 – бит, сбрасывающий триггер, где фиксируются запрос внешнего прерывания по входу RST 7.5
SDEN – Разрешение вывода данных, которые находятся в разряде A7
SOD – данные предназначенные для вывода через линию SOD
Установленная маска запрещает соответствующее прерывание. Смена маски в соответствии с А0-А2 выполняется только при разрешении её установки: MSEN=1. В противном случае функция установки маски подавляется.
Текущее состояние масок прерываний может быть прочитано по команде RIM.
При включении источника питания или пуске МП все индивидуальные маски устанавливаются, а флаг разрешения прерывания IEN сбрасывается, что приводит к запрету прерываний. Приём какого – либо запроса на прерывание тоже вызывает общее запрещение всех маскируемых прерываний, но при сохранении состояния индивидуальных масок. Кроме этого запрос TRAP сохраняет и состояние флага общего разрешения, которое может быть прочитано только после первой команды RIM. Вторая команда даёт результат текущего состояния маски, показывающего общий запрет прерываний.