Смекни!
smekni.com

Проектирование цифрового режекторного фильтра (стр. 2 из 3)

3.Разработка общего алгоритма функционирования фильтра:

Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций.


Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESET для установки МП-системы в исходное состояние.

Таким образом запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. В указатель стека SP записывается начальный адрес, с которого начинается стек; порт РВ (РУ55) настраивается на ввод; порт РА (РУ55) – на вывод в режиме обмена с квитированием; таймер настраивается на период переполнения, равный ТД в режиме 3; таймер запускается для формирования непрерывной последо–вательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала . Программа инициализации завершается операцией останова МП.

Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра.

Каждый рабочий цикл МП есть реакция на прерывание (выполнение подпрограммы обслуживания прерывания), поэтому после обслуживания прерывания по команде возврата из подпрограммы в каждом рабочем цикле МП возвращается в состояние останова (в состояние ожидания очередного прерывания).

4.Обоснование аппаратной части устройства:

Минимальная конфигурация МП–системы, на которой реализуется устройство, полностью определяется заданным набором К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 запоминание

в памяти

программный модуль вычисления

произведения


хранится в ячейке ОЗУ с адресом X2

записать в ячейку ОЗУ с адресом P1

LDAX2

MOVH,A

ARHLарифметические сдвиги в право

ARHLотсчета и накопление суммы

ARHLчастичных произведений

MOVA,Hв аккумуляторе

ARHL

ADD H

ARHL

ADD H

ARHL

ARHL

ADDH

STAAP1 запоминание

в памяти

программный модуль вычисления произведения

хранится в ячейке ОЗУ с адресом Y2

записать в ячейку ОЗУ с адресом P2

LDAX2

STAAP2 запоминание

в памяти

программный модуль вычисления произведения

хранится в ячейке ОЗУ с адресом Y2

записать в ячейку ОЗУ с адресом P3

LDAY2

MOVH,A

ARHLарифметические сдвиги в право

ARHLотсчета и накопление суммы

ARHLчастичных произведений

ARHLв аккумуляторе

ARHL

ARHL

MOVA,H

ARHL

ADDH

STAAP3 запоминание в памяти

программный модуль вычисления выходного

отсчета

слагаемые хранятся в ячейке ОЗУ, результат

вычисления записать в ячейки ОЗУ

LDAAX