3.Разработка общего алгоритма функционирования фильтра:
Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций.
Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESET для установки МП-системы в исходное состояние.
Таким образом запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. В указатель стека SP записывается начальный адрес, с которого начинается стек; порт РВ (РУ55) настраивается на ввод; порт РА (РУ55) – на вывод в режиме обмена с квитированием; таймер настраивается на период переполнения, равный ТД в режиме 3; таймер запускается для формирования непрерывной последо–вательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала . Программа инициализации завершается операцией останова МП.
Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра.
Каждый рабочий цикл МП есть реакция на прерывание (выполнение подпрограммы обслуживания прерывания), поэтому после обслуживания прерывания по команде возврата из подпрограммы в каждом рабочем цикле МП возвращается в состояние останова (в состояние ожидания очередного прерывания).
Минимальная конфигурация МП–системы, на которой реализуется устройство, полностью определяется заданным набором К1821, в состав которого входят следующие микросхемы: К1821ВМ85 - микропроцессор; КР1821РФ55 - ПЗУ ёмкостью 2К x 8 бит и два 8 – разрядных порта ввода–вывода; КР1821РУ55 - ОЗУ ёмкостью 258 x 8 (2048) бит, два 8 – разрядных и один 6 – разрядный порты ввода–вывода и 14–разрядный программируемый счётчик – таймер.
Полная схема фильтра получается при объединении минимальной конфигурации МП–системы и дополнительных аппаратных узлов. Такими дополнительными аппаратными узлами в данном случае являются- АЦП и преобразователь ток/напряжение
АЦП используется для преобразования выходного двоичного кода микропроцессора в аналоговый сигнал, в виде тока. Для преобразования токового сигнала в сигнал в виде напряжения используется преобразователь ток/напряжение, который реализован на двух ОУ К157УД3 и дополнительных стабилизирующих элементах. Опорное напряжение на ЦАП подается от внешнего источника.
5.Разработка и отладка программы на языке команд микропроцессора:
Рабочая программа разработана на основе спроектированного алгоритма функционирования устройства и результатов анализа и формализации задачи. Программа привязана к минимальной конфигурации аппаратной части фильтра, рис.1
Распределение памяти ПЗУ:
0000h....003Bh-программа инициализации;
003Ch....07FFh-программа реакции на прерывание RST 7
Распределение памяти OЗУ:
5000h,5001h,5002h-хранение отсчетов
, ,5003h,5004h,5005h-хранение отсчетов
, ,5006h,5007h,5008h-хранение отсчетов
, ,50FFh-начальный адрес стека.
;Программа «Цифровой режекторный фильтр»
;Автор:Прусс Александр Владимирович ст.гр.111
;Дата:10 апреля 2004г.
;Разностное уравнение
;Определение символических переменных
PARF.EQU0800hпорт РА(РФ55)
RGARF.EQU0802hрегистр направления передачи
порта РА(РФ55)
PARU.EQU7001h порт РА(РУ55)
RGRU.EQU7000hрегистр управляющего слова (РУ55)
TL.EQU7004hмладший байт таймера
TH.EQU7005hстарший байт таймера
STL.EQU61hмладшее слово для загрузки в таймер
STH.EQU0C1hстаршее слово для загрузки в таймер
SRF.EQU0FFhуправляющее слово для настройки порта
РА(РФ55)
SRU.EQU0C0hуправляющее слово для настройки
портов и пуска таймера (РУ55)
SPR.EQU1Bhуправляющее слово для настройки
прерываний
AX.EQU5000hадрес отсчета
AX1 .EQU5001hадрес отсчета
AX2 .EQU5002hадрес отсчета
AY.EQU5003hадрес отсчета
AY1 .EQU5004hадрес отсчета
AY2 .EQU5005hадрес отсчета
AP1 .EQU5006hадрес отсчета
AP2 .EQU5007hадрес отсчета
AP2 .EQU5007hадрес отсчета
AP3 .EQU5008hадрес отсчета
;Инициализация по сигналу «Сброс»
.ORG0 начальный адрес программного модуля инициализации
DIзапрет прерываний
LXISP,50FFhорганизация стека
MVIA,SRFнастройка таймера на частоту
переполнения Т=Тд в режиме 3
MVIA,STH
STATH
MVIA,SRUнастройка порта РА(РУ55) на ввод
STARGRUи пуск таймера
MVIA,SPRнастройка режима прерываний
SIM
EIразрешение прерываний
M1: HLTостанов, ожидание прерывания
JMPM1 переход на команду останова
процессора по окончании подпрограммы обслуживания прерывания
.ORG3Сhначальный адрес программной реакции на прерывание типа RST 7
LDAPARUввод текущего кода АЦП в аккумулятор
ADI80hполучение дополнительного кода для текущего отсчета
программный модуль масштабирования вычисления произведения
входной отсчет хранится в аккумуляторе
масштабированный отсчет записать в ячейку
ОЗУ с адресом AX
MOVH,A
ARHLарифметические сдвиги в право
ARHLотсчета и накопление суммы
MOVA,H частичных произведений
ARHL в аккумуляторе
ADD H
ARHL
ADD H
ARHL
ADDH
STAAX запоминание
в памятипрограммный модуль вычисления
произведения
LDAX2
MOVH,A
ARHLарифметические сдвиги в право
ARHLотсчета и накопление суммы
ARHLчастичных произведений
MOVA,Hв аккумуляторе
ARHL
ADD H
ARHL
ADD H
ARHL
ARHL
ADDH
STAAP1 запоминание
в памятипрограммный модуль вычисления произведения
хранится в ячейке ОЗУ с адресом Y2 записать в ячейку ОЗУ с адресом P2LDAX2
STAAP2 запоминание
в памятипрограммный модуль вычисления произведения
хранится в ячейке ОЗУ с адресом Y2 записать в ячейку ОЗУ с адресом P3LDAY2
MOVH,A
ARHLарифметические сдвиги в право
ARHLотсчета и накопление суммы
ARHLчастичных произведений
ARHLв аккумуляторе
ARHL
ARHL
MOVA,H
ARHL
ADDH
STAAP3 запоминание в памяти
программный модуль вычисления выходного
отсчета
слагаемые хранятся в ячейке ОЗУ, результат
вычисления записать в ячейки ОЗУ
LDAAX